BuscarEntrar al ChatboxPortal del foroÍndiceSpellsRegistrarseConectarseGrupos de Usuarios
Eventos Actuales
¡ Bienvenido Invitado!

Editar Perfil

Tus temas
Tus Mensajes ()

Enlaces rápidos








Comparte | .
 

 Sistema de Buff para GUI

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Marcos_M

avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 2714
Reputación Reputación : 416
Monedas de oro : 8318
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Sistema de Buff para GUI Vie Mayo 26, 2017 1:51 am

Muy buenas a todos chicos Very Happy

Hoy les traigo un sistema completísimo para crear un buff como en Warcraft y sin los problemas que trae tener varias habilidades basadas en Golpe de sombras o Ralentizar, o la habilidad que sea

Usarlo puede ser "difícil" para el que no está acostumbrado a usar detonadores, pero está diseñado de una manera sencilla y funcional.
Y lo escribiré aquí ahora, comenten cualquier duda que tengan con el sistema

Trataré de explicar lo mejor posible como funciona el sistema en el post

El sistema requiere que el usuario "registre" su buff en el sistema:

[gui]TBS Set BuffType
   Acontecimientos
   Condiciones
   Acciones
       Set TBS_set_ability = TBS_set_ability
       Set TBS_set_buff = TBS_set_buff
       Set TBS_set_clasificacion = TBS_set_clasificacion
       Set TBS_set_prioridad = TBS_set_prioridad
       Set TBS_set_espacio_extra = TBS_set_espacio_extra
       Set TBS_set_tipo = TBS_set_tipo
       Set TBS_trigger_apply = TBS_trigger_apply
       Set TBS_trigger_periodic = TBS_trigger_periodic
       Set TBS_trigger_refresh = TBS_trigger_refresh
       Set TBS_trigger_remove = TBS_trigger_remove
       Custom script:   call TBS_SetBuffType()
[/gui]
Se debe ejecutar este trigger
Explicación variables:
 

Un ejemplo de uso es este:

[gui]Berserk SetBuffType
   Acontecimientos
       Map initialization
   Condiciones
   Acciones
       Set TBS_set_buff = Berserk
       Set TBS_set_ability = Berserk (BuffAbility)
       Set TBS_set_clasificacion = TBS_BUFF_NEUTRAL
       Set TBS_set_prioridad = 0
       Set TBS_set_espacio_extra = 0
       -------- Este es un tipo secundario, para mejorar la legibilidad --------
       -------- recomiendo crear variables de tipo número entero --------
       -------- para dividir sus distintos tipos --------
       Set TBS_set_tipo = EJEMPLO_Fisico
       Set TBS_trigger_apply = Berserk onApply
       Set TBS_trigger_periodic = Berserk onPeriodic
       Set TBS_trigger_refresh = Berserk onRefresh
       Set TBS_trigger_remove = Berserk onRemove
       Detonador - Run TBS Set BuffType (ignoring conditions)
[/gui]

Luego pasamos a la forma de aplicar el buff.

[gui]TBS Add Buff example
   Acontecimientos
   Condiciones
   Acciones
       Set TBS_set_buff = TBS_set_buff
       Set TBS_set_duracion = TBS_set_duracion
       Set TBS_set_intervalo = TBS_set_intervalo
       Set TBS_set_target = TBS_set_target
       Set TBS_set_caster = TBS_set_caster
       Set TBS_Activate = 1.00
       Set TBS_Activate = 0.00
[/gui]

Explicación variables:
 

Aquí un ejemplo de uso:

[gui]Rejuvenecer onCast
   Acontecimientos
       Unidad - A unit Inicia el efecto de una habilidad
   Condiciones
       (Ability being cast) Igual a (==) Rejuvenecimiento (Hostil neutral)
   Acciones
       Set TBS_set_buff = Rejuvenecimiento
       Set TBS_set_caster = (Triggering unit)
       Set TBS_set_target = (Target unit of ability being cast)
       Set TBS_set_intervalo = 0.10
       Set TBS_set_duracion = 5.00
       Set TBS_Activate = 1.00
[/gui]

Bueno, ahora pasemos a como usar cada detonador del buff, es muy fácil y sencillo.

En los detonador apply,periodic,remove y refresh. Deben utilizar las variables "TBS_current", pueden modificarlas a su gusto y el sistema guardará los nuevos valores.
Es así de sencillo Very Happy

Fijense estos ejemplos

[gui]Phoenix Fire onApply
   Acontecimientos
   Condiciones
   Acciones
       Set TBS_current_extra_real[1] = 10.00
       Set TBS_current_extra_integer[1] = 0
[/gui]

[gui]Phoenix Fire onPeriodic
   Acontecimientos
   Condiciones
   Acciones
       Unidad - Cause TBS_current_caster to damage TBS_current_target, dealing TBS_current_extra_real[1] damage of attack type Conjuros and damage type Normal
       Set TBS_current_extra_integer[1] = (TBS_current_extra_integer[1] + 1)
        Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
           Si: Condiciones
               TBS_current_extra_integer[1] Menor que o igual a (<=) 10
           Entonces: Acciones
               Efecto especial - Create a special effect attached to the chest of TBS_current_target using Abilities\Weapons\PhoenixMissile\Phoenix_Missile_mini.mdl
               Set TBS_current_extra_effect[TBS_current_extra_integer[1]] = (Last created special effect)
           Otros: Acciones
               Set TBS_current_extra_real[1] = (TBS_current_extra_real[1] x 2.00)
               Set TBS_current_duracion = 0.00
[/gui]

[gui]Phoenix Fire onRemove
   Acontecimientos
   Condiciones
   Acciones
       Unidad - Cause TBS_current_caster to damage TBS_current_target, dealing (TBS_current_extra_real[1] x 5.00) damage of attack type Conjuros and damage type Normal
[/gui]

[gui]Rejuvenate onRefresh
   Acontecimientos
   Condiciones
   Acciones
       Set TBS_current_extra_real[1] = (TBS_current_extra_real[1] + 25.00)
       Set TBS_current_duracion = TBS_auxiliar_duracion
[/gui]

Si se fijan, pueden observar 2 cosas: A) No estoy destruyendo los efectos especiales creados. Esto es porque el sistema lo hace por mí
B) "TBS_auxiliar_duracion". Esta variable, ahora explico

En los detonadores "Refresh" se usan 3 variables auxiliares
TBS_auxiliar_caster
TBS_auxiliar_duracion
TBS_auxiliar_intervalo

Como refresh se activa cuando el mismo buff se aplica en una unidad, estos 3 valores de la nueva aplicación se guardan, por si desean usarlos. Es así de sencillo.

Por ahora lo dejaré explicado hasta ahí, si quieren acceder al map deben comentar



Última edición por Marcos_M el Lun Mayo 29, 2017 5:43 pm, editado 1 vez
Volver arriba Ir abajo
GhxBronie

avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 919
Reputación Reputación : 166
Monedas de oro : 4054
Monedas de Platino : 5

Inventario :



Mensaje(#) Tema: Re: Sistema de Buff para GUI Vie Mayo 26, 2017 3:13 am

Yo he visto a Marcos trabajando este Sistema y haciendolo sencillo para todos. Ojala la gente lo pueda usar, ya que con esto puedes hacer un monton de cosas, en especial para un AoS Razz

Saludos Cool




[ Mis Otras Cuentas ]
Volver arriba Ir abajo
angelcraft
Soldado
avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 87
Reputación Reputación : 15
Monedas de oro : 263


Inventario :



Mensaje(#) Tema: Re: Sistema de Buff para GUI Vie Mayo 26, 2017 9:31 pm

Sencillamente bueno, gracias por el aporte marcos, los usuarios en si ahora tendrian un sistema propio sin recurrir a jass. Tecnicamente un sistema de realizar complicado sobre todo si es en gui, pero vale la pena inplementarlo.
Saludos...
Volver arriba Ir abajo
MuSe

avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 215
Reputación Reputación : 45
Monedas de oro : 2585
Monedas de Platino : 5

Inventario :



Mensaje(#) Tema: Re: Sistema de Buff para GUI Dom Mayo 28, 2017 6:41 pm

Interesante, pero el hecho de que sea gui me da mucha flojera ver el codigo, para que sirve la variable Prioridad ?

Ah y seria bueno poner los detos de ejemplo de una sola habilidad. Resulta un poco confuso leer los detos asi como esta.

Saludos.
Volver arriba Ir abajo
Marcos_M

avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 2714
Reputación Reputación : 416
Monedas de oro : 8318
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Sistema de Buff para GUI Dom Mayo 28, 2017 11:20 pm

La variable Prioridad, imita a "Prioridad robar conjuro" del editor de objetos

El sistema tiene funciones extra, no explicadas en el post, entre las cuales tiene "Get Priority Buff" y "Change Unit", permitiéndole al sistema poder robar conjuros fácilmente

PD: Ya veré de mejorar mi librería de vJASS para que el funcionamiento sea más igual a esta, pero tengo que ver cual sería la mejor manera de realizarlo
Volver arriba Ir abajo
MuSe

avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 215
Reputación Reputación : 45
Monedas de oro : 2585
Monedas de Platino : 5

Inventario :



Mensaje(#) Tema: Re: Sistema de Buff para GUI Lun Mayo 29, 2017 5:02 pm

Wow esta pro, seria bueno un ejemplo de robar hechizo. Smile
Volver arriba Ir abajo
Marcos_M

avatar


Barra de Salud : Su salud está al 100% - Este usuario no ha recibido infracciones

Mensajes Mensajes : 2714
Reputación Reputación : 416
Monedas de oro : 8318
Monedas de Platino : 0

Inventario :



Mensaje(#) Tema: Re: Sistema de Buff para GUI Lun Mayo 29, 2017 5:44 pm

Resubido con el pequeño ejemplo para robar conjuros n_n

Como ven, es super simple
Volver arriba Ir abajo
Contenido patrocinado




Mensaje(#) Tema: Re: Sistema de Buff para GUI

Volver arriba Ir abajo
 

Sistema de Buff para GUI

Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.

 Temas similares

-
» Filosofía de la Política: El Sistema Político Ideal
» Catálogo de Proyectos PUNTO-NADIR
» Las Vegas Roleplay - SA-MP LVRP
» Deposito de agua del limpiaparabrisas
» Formula 1 2012 (Calendario Gp,Sistema de puntuación,Equipos y pilotos y )

Permisos de este foro:No puedes responder a temas en este foro.
Warcraft III - WorldEditor :: Academia :: Area GUI :: Sistemas-