[SISTEMA] Duelos/Torneos (TiposDeDuelo{TodosContraTodos/EnEquipos})
Koleshy Engine :: Warcraft 3 :: World Editor :: Sistemas
Página 1 de 1.
[SISTEMA] Duelos/Torneos (TiposDeDuelo{TodosContraTodos/EnEquipos})
[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
bueno creo que es mejor probar el mapita con los detos para entenderlo mejor
[Tienes que estar registrado y conectado para ver este vínculo]
Pass(RAR): koleshyengine
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
bueno creo que es mejor probar el mapita con los detos para entenderlo mejor
- 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
[Tienes que estar registrado y conectado para ver este vínculo]
Pass(RAR): koleshyengine
Koleshy Engine :: Warcraft 3 :: World Editor :: Sistemas
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
Lun Dic 21, 2015 2:17 pm por Koleshy
» [TOOL] Wifi Free
Sáb Dic 19, 2015 10:30 pm por Koleshy
» [SISTEMA] Comprar|Levelear Habilidades (max. 7)|con criterios
Vie Dic 18, 2015 2:34 pm por Koleshy
» [SISTEMA] Duelos Ultimate
Vie Dic 18, 2015 2:32 pm por Koleshy
» [SISTEMA] Duelos/Torneos (TiposDeDuelo{TodosContraTodos/EnEquipos})
Vie Dic 18, 2015 2:30 pm por Koleshy
» [SISTEMA] Creditos Flotantes
Vie Dic 18, 2015 2:27 pm por Koleshy
» [SISTEMA] Cospre Items con estadistica y Duracion
Vie Dic 18, 2015 2:26 pm por Koleshy
» [SISTEMA] Runas Avanzado
Vie Dic 18, 2015 2:23 pm por Koleshy
» [SISTEMA] Comprar habilidades y hacerlas leveleables
Vie Dic 18, 2015 2:19 pm por Koleshy