[SISTEMA] Duelos/Torneos (TiposDeDuelo{TodosContraTodos/EnEquipos})

Ver el tema anterior Ver el tema siguiente Ir abajo

[SISTEMA] Duelos/Torneos (TiposDeDuelo{TodosContraTodos/EnEquipos})

Mensaje por Koleshy el Vie Dic 18, 2015 2:30 pm

[SISTEMA] Duelos/Torneos (TiposDeDuelo{TodosContraTodos/EnEquipos})





Descripcion:

inicia un duelo aleatorio, de tipo aleatorio, en un arena/zona aleatoria (la cual si te toca tal arena es ese tipo de duelo), osea no es aparte todo random e__e
esto ya lo defines en el detonador de configuracion Smile
bueno creo que es mejor probar el mapita con los detos para entenderlo mejor Very Happy


Duelo Configuracion:
Código:
Duelo Configuracion
   Acontecimientos
       Map initialization
   Condiciones
   Acciones
       -------- ******************************************************************************** --------
       -------- ******************************************************************************** --------
       -------- ///////////  LAS ARENAS SON ALEATORIAS :D/////////// --------
       -------- ******************************************************************************** --------
       -------- ******************************************************************************** --------
       -------- --------------- Cantidad de Jugadores en tu Mapa --------------- --------
       Set Duelo_IntValue[1] = 8
       -------- ******************************************************************************** --------
       -------- --------------- Setea aqui tus zonas de duelo (regiones) --------------- --------
       Set Duel_Zonas[1] = Arena 1 <gen>
       Set Duel_Zonas[2] = Arena 2 <gen>
       Set Duel_Zonas[3] = Arena 3 <gen>
       -------- --------------- El tipo de duelo que será, en esa arena (Msg) --------------- --------
       Set Duelo_Tipo[1] = Todos contra Todos
       Set Duelo_Tipo[2] = En Equipos
       Set Duelo_Tipo[3] = Todos contra Todos
       -------- true = todos contra todos --------
       -------- false = en equipos --------
       Set Duel_Tipos[1] = True
       Set Duel_Tipos[2] = False
       Set Duel_Tipos[3] = True
       -------- --------------- el total de zonas de duelo seteadas --------------- --------
       Set Duelo_IntValue[2] = 3
       -------- ******************************************************************************** --------
       -------- --------------- El tiempo en que empezara el duelo (segundos) --------------- --------
       Set Duelo_IntValue[3] = 15
       -------- --------------- El tiempo en que terminara el duelo automaticamente (segundos) --------------- --------
       Set Duelo_IntValue[5] = 45
       -------- ******************************************************************************** --------
       -------- --------------- Iniciar el contador de duelo automaticamente de nuevo al terminar? --------------- --------
       -------- --------------- 0 = NO --------------- --------
       -------- --------------- 1 = SI --------------- --------
       Set Duelo_IntValue[4] = 1
       -------- ******************************************************************************** --------

Duelo EmpezarContador:
Código:
Duelo EmpezarContador
   Acontecimientos
   Condiciones
   Acciones
       Cuenta atrás del reloj - Start duelclock1 as a Un tiro timer that will expire in (Real(Duelo_IntValue[3])) seconds
       Cuenta atrás del reloj - Create a timer window for duelclock1 with title Duelo en:
       Set duelclockwindows1 = (Last created timer window)
[/gui][/spoiler]

[spoiler="Duelo IniciarDuelo"][gui]Duelo IniciarDuelo
   Acontecimientos
       Tiempo - duelclock1 expires
   Condiciones
   Acciones
       -------- Pausamos a todas las unidades del mapa para que no jodan un rato --------
       Unidad - Activar pausa all units
       -------- Activamos los detonadores siguientes, para proceder con sus funciones respectivas --------
       Detonador - Turn on Duelo Matadas <gen>
       Detonador - Turn on Duelo ExContTermDuelo <gen>
       Cuenta atrás del reloj - Destroy duelclockwindows1
       -------- Ejecutamos el contador para terminar un duelo automaticamente despues de pasar cierta cantidad de tiempo --------
       Detonador - Run Duelo ContadorTerminarDuelo <gen> (ignoring conditions)
       -------- Obtenemos un id aleatorio el cual lo usaremos como array para un arena aleatoria... --------
       Set duelgetrandint = (Random integer number between 1 and Duelo_IntValue[2])
       -------- Seteamos un punto en el centro de la arena aleatoria que usaremos --------
       Set duelmsgpoint = (Center of Duel_Zonas[duelgetrandint])
       -------- Luego mandamos un texto flotante en ese punto seteado --------
       Texto flotante - Create floating text that reads (Duelo  + (Duelo_Tipo[duelgetrandint] +  ha comenzado!!!)) at duelmsgpoint with Z offset 0.00, using font size 15.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
       Custom script:   call RemoveLocation(udg_duelmsgpoint)
       Texto flotante - Change (Last created floating text): Desactivar permanence
       -------- limitamos el tiempo de vida del texto flotante e le agregamos efecto de movimiento --------
       Texto flotante - Change the lifespan of (Last created floating text) to 4.00 seconds
       Texto flotante - Set the velocity of (Last created floating text) to 75.00 towards 75.00 degrees
       Texto flotante - Change the fading age of (Last created floating text) to 0.00 seconds
       -------- Corriendo ya el sistema, hasta el limite de jugadores que se selecciono en la configuracion --------
       For each (Integer A) from 1 to Duelo_IntValue[1], do (Actions)
           Bucle: Acciones
               -------- Identificando el tipo de duelo respectivo al id aleatorio obtenido --------
               If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                   Si: Condiciones
                       Duel_Tipos[duelgetrandint] Igual a True
                   Entonces: Acciones
                       Set duelbool = True
                   Otros: Acciones
                       Set duelbool = False
               -------- guardando la posicion del heroe antes de ser transportado en la Arena --------
               Set duelsaveheropoint[(Integer A)] = (Position of duelheroid[(Integer A)])
               -------- limitando la camara de los jugadores hacia solo esa Arena --------
               Cámara - Set the camera bounds for (Player((Integer A))) to Duel_Zonas[duelgetrandint]
               -------- seteando puntos aleatorios, en los que seran transportados los jugadores en la Arena --------
               Set duelpoint = (Random point in Duel_Zonas[duelgetrandint])
               -------- revivir el heroe si es que esta muerto --------
               Hé️roe - Instantly revive duelheroid[(Integer A)] at duelpoint, Ocultar revival graphics
               Cámara - Pan camera for (Player((Integer A))) to duelpoint over 0.25 seconds
               Selección - Select duelheroid[(Integer A)] for (Player((Integer A)))
               -------- moviendo al heroe hacia la Arena y curandole 100% vida y mana --------
               Unidad - Move duelheroid[(Integer A)] instantly to duelpoint
               Unidad - Set life of duelheroid[(Integer A)] to 100.00%
               Unidad - Set mana of duelheroid[(Integer A)] to 100.00%
               Unidad - Desactivar pausa duelheroid[(Integer A)]
               Custom script:   call RemoveLocation(udg_duelpoint)
               -------- moviendo al heroe hacia la Arena y curandole 100% vida y mana --------
               If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                   Si: Condiciones
                       duelbool Igual a True
                   Entonces: Acciones
                       -------- sumando los heroes para identificar la cantidad respectiva que se debe obtener --------
                       -------- para terminar ese duelo y fijar un ganador --------
                       -------- ejemplo son 8 jugadores, se jala 8 heroes, entonces sumaria +1, quedando 8 --------
                       Set duelcounts[1] = (duelcounts[1] + 1)
                       -------- Guardando los aliados --------
                       Set duelsaveteamsally[(Integer A)] = (All allies of (Player((Integer A))))
                       -------- haciendolos enemigos a todos --------
                       -------- si no fuera por MuSe, en esta parte de enemigos me ubiera trabado por un buen ratico con un problemita, gracias :3--------
                       Grupo de jugadores - Pick every player in (All players matching ((Matching player) No igual a (Player((Integer A))))) and do (Actions)
                           Bucle: Acciones
                               Jugador - Make (Picked player) treat (Player((Integer A))) as an Enemigo
                               Jugador - Make (Player((Integer A))) treat (Picked player) as an Enemigo
                   Otros: Acciones
                       -------- aqui algo similar que arriba pero esto es por equipos asi que se debe --------
                       -------- incrementar la respectiva cantidad de heroes que se trae cada equipo --------
                       If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               ((Owner of duelheroid[(Integer A)]) is an ally of Jugador 1 (rojo)) Igual a True
                           Entonces: Acciones
                               Set duelcounts[1] = (duelcounts[1] + 1)
                           Otros: Acciones
                               Set duelcounts[2] = (duelcounts[2] + 1)

Duelo Matadas:
Código:
Duelo Matadas
   Acontecimientos
       Unidad - A unit Muere
   Condiciones
       ((Triggering unit) is Un hé️roe) Igual a True
   Acciones
       If (All Conditions are True) then do (Then Actions) else do (Else Actions)
           Si: Condiciones
               duelbool Igual a True
           Entonces: Acciones
               -------- reduciendo los val de los heroes, claro este es en el modo "Todos contra Todos" --------
               Set duelcounts[1] = (duelcounts[1] - 1)
               If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                   Si: Condiciones
                       duelcounts[1] Igual a 1
                   Entonces: Acciones
                       -------- aqui obtenemos el id del heroe que quedo en la arena --------
                       Set duelgetlastheroid = (Units in Duel_Zonas[duelgetrandint] matching ((((Matching unit) is Un hé️roe) Igual a True) and (((Matching unit) is alive) Igual a True)))
                       Grupo de unidad - Pick every unit in duelgetlastheroid and do (Set duellastheroid = (Picked unit))
                       Custom script:   call DestroyGroup(udg_duelgetlastheroid)
                       -------- y ese id obtenido le identificamos su dueño e mandamos el msg que queramos --------
                       -------- en este caso envia un mensaje mostrando el nombre del ultimo que quedo vivo ("PlayerName") --------
                       Partida - Display to (All players) the text: (El que gano el duelo como ultimo sobreviviente es:  + (Name of (Owner of duellastheroid)))
                       -------- ejecutamos nuestra "funcion/public" como lo vean ustds... --------
                       Detonador - Run Duelo ExEnd <gen> (ignoring conditions)
                   Otros: Acciones
                       -------- caso contrario si no queda sobrevivientes --------
                       -------- talvez suene raro, pero aveces sucede empates y bueno no se xd --------
                       If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               duelcounts[1] Igual a 0
                           Entonces: Acciones
                               Misión - Display to (All players) the Actualización de misión message: No quedo sobrevivie...
                               -------- ejecutamos nuestra "funcion/public" como lo vean ustds... --------
                               Detonador - Run Duelo ExEnd <gen> (ignoring conditions)
                           Otros: Acciones
           Otros: Acciones
               -------- reduciendo los val de los heroes, claro este es en el modo "En Equipos" --------
               If (((Owner of (Triggering unit)) is an ally of Jugador 1 (rojo)) Igual a True) then do (Set duelcounts[1] = (duelcounts[1] - 1)) else do (Do nothing)
               If (((Owner of (Triggering unit)) is an ally of Jugador 1 (rojo)) Igual a False) then do (Set duelcounts[2] = (duelcounts[2] - 1)) else do (Do nothing)
               -------- Si no queda sobrevivientes en el equipo 2 entonces claro que gana el equipo 1 --------
               If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                   Si: Condiciones
                       duelcounts[2] Igual a 0
                   Entonces: Acciones
                       Misión - Display to (All players) the Actualización de misión message: El Equipo 1 ha gana...
                       -------- ejecutamos nuestra "funcion/public" como lo vean ustds... --------
                       Detonador - Run Duelo ExEnd <gen> (ignoring conditions)
                   Otros: Acciones
                       -------- Si no queda sobrevivientes en el equipo 1 entonces claro que gana el equipo 2 --------
                       If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               duelcounts[1] Igual a 0
                           Entonces: Acciones
                               Misión - Display to (All players) the Actualización de misión message: El Equipo 2 ha gana...
                               -------- ejecutamos nuestra "funcion/public" como lo vean ustds... --------
                               Detonador - Run Duelo ExEnd <gen> (ignoring conditions)
                           Otros: Acciones
                               -------- Si no queda sobrevivientes en ambos equipos entonces empate e__e --------
                               If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                   Si: Condiciones
                                       duelcounts[1] Igual a 0
                                       duelcounts[2] Igual a 0
                                   Entonces: Acciones
                                       Misión - Display to (All players) the Actualización de misión message: Ambos equipos han e...
                                       -------- ejecutamos nuestra "funcion/public" como lo vean ustds... --------
                                       Detonador - Run Duelo ExEnd <gen> (ignoring conditions)
                                   Otros: Acciones

Duelo ContadorTerminarDuelo:
Código:
Duelo ContadorTerminarDuelo
   Acontecimientos
   Condiciones
   Acciones
       Cuenta atrás del reloj - Start duelclock2 as a Un tiro timer that will expire in (Real(Duelo_IntValue[5])) seconds
       Cuenta atrás del reloj - Create a timer window for duelclock2 with title Duelo Termina en:
       Set duelclockwindows2 = (Last created timer window)

Duelo ExContTermDuelo:
Código:
Duelo ExContTermDuelo
   Acontecimientos
       Tiempo - duelclock2 expires
   Condiciones
   Acciones
       Misión - Display to (All players) the Actualización de misión message: El tiempo de duelo ...
       -------- ejecutamos directamente nuestro detonador tipo "funcion/public" o como lo vean  e__e --------
       Detonador - Run Duelo ExEnd <gen> (ignoring conditions)

Duelo ExEnd:
Código:
Duelo ExEnd
   Acontecimientos
   Condiciones
   Acciones
       -------- funcion/public o como lo quieran llamar e__e --------
       -------- esto se ejecuta desde el otro detonador, asi ahorramos varias lineas --------
       Detonador - Turn off Duelo Matadas <gen>
       Detonador - Turn off Duelo ExContTermDuelo <gen>
       Unidad - Desactivar pausa all units
       Cuenta atrás del reloj - Destroy duelclockwindows2
       If (Duelo_IntValue[4] Igual a 1) then do (Detonador - Run Duelo EmpezarContador <gen> (ignoring conditions)) else do (Do nothing)
       -------- reseteamos los valores de los heroes para no causar problemas/bugs --------
       Set duelcounts[1] = 0
       Set duelcounts[2] = 0
       For each (Integer A) from 1 to Duelo_IntValue[1], do (Actions)
           Bucle: Acciones
               -------- limitamos su camara para el mapa completo --------
               Cámara - Set the camera bounds for (Player((Integer A))) to (Playable map area)
               -------- y bueno lo de aca ya esta claro asi que blah blah blah... --------
               Hé️roe - Instantly revive duelheroid[(Integer A)] at duelsaveheropoint[(Integer A)], Ocultar revival graphics
               Unidad - Move duelheroid[(Integer A)] instantly to duelsaveheropoint[(Integer A)]
               Cámara - Pan camera for (Player((Integer A))) to duelsaveheropoint[(Integer A)] over 0.10 seconds
               Selección - Select duelheroid[(Integer A)] for (Player((Integer A)))
               Custom script:   call RemoveLocation(udg_duelsaveheropoint[bj_forLoopAIndex])
               If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                   Si: Condiciones
                       duelbool Igual a True
                   Entonces: Acciones
                       -------- les devolvemos sus equipos respectivos almacenados anteriormente en una variable --------
                       Grupo de jugadores - Pick every player in duelsaveteamsally[(Integer A)] and do (Actions)
                           Bucle: Acciones
                               Jugador - Make (Player((Integer A))) treat (Picked player) as an Aliado con visión compartida
                               Jugador - Make (Picked player) treat (Player((Integer A))) as an Aliado con visión compartida
                       Custom script:   call DestroyForce(udg_duelsaveteamsally[bj_forLoopAIndex])
                   Otros: Acciones

descarga
[Tienes que estar registrado y conectado para ver este vínculo]

Pass(RAR): koleshyengine
avatar
Koleshy
Pendejo
Pendejo

Mensajes : 37
Fecha de inscripción : 21/11/2013
Edad : 21
Localización : Lima, Perú

Ver perfil de usuario http://koleshyengine.foroactivo.mx

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.