Koleshy Engine
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

[KE] Funcion GUI DamageOverTime

Ir abajo

[KE] Funcion GUI DamageOverTime Empty [KE] Funcion GUI DamageOverTime

Mensaje por Koleshy Vie Dic 18, 2015 1:51 pm

[KE] Funcion GUI DamageOverTime

Descripcion: Funcion que te permite causar X daño a las unidades que se encuentren en X AoE de X unidad durante X tiempo. tambien contiene para una sola unidad.

Detonadores de la Funcion:

Código:
DamageOverTime
   Acontecimientos
   Condiciones
   Acciones
       -------- ###### .::Maqueta::. ###### --------
       -------- DamageOverTime(unidad_dañador, unidad_objetivo, daño, intervaloDaño, tipoDeAtaque, tipoDeDaño, bool, tiempo, AoE. TipoObjetivo) --------
       -------- ###################### --------
       -------- Bool >>> true = daño en AoE de la "unidad_dañador" --------
       -------- Bool >>> false = daño single unit (daña solo a la "unidad_objetivo" que coloques, y ya no en AoE --------
       -------- ------------------------------------------- --------
       -------- TipoObjetivo >>> true = daña aliados | false = daña enemigos --------
       -------- ------------------------------------------- --------
       Set DamageOverTimeSYS_UnitOwner = DamageOverTimeSYS_UnitOwner
       Set DamageOverTimeSYS_UnitTarget = DamageOverTimeSYS_UnitTarget
       Set DamageOverTimeSYS_Damage = DamageOverTimeSYS_Damage
       Set DamageOverTimeSYS_IntervaloDmg = DamageOverTimeSYS_IntervaloDmg
       Set DamageOverTimeSYS_AttkType = DamageOverTimeSYS_AttkType
       Set DamageOverTimeSYS_DmgType = DamageOverTimeSYS_DmgType
       Set DamageOverTimeSYS_Bool = DamageOverTimeSYS_Bool
       Set DamageOverTimeSYS_Tiempo = DamageOverTimeSYS_Tiempo
       Set DamageOverTimeSYS_AoE = DamageOverTimeSYS_AoE
       Set DamageOverTimeSYS_TipoObjetivo = DamageOverTimeSYS_TipoObjetivo
       -------- ------------------------------------------- --------
       Set DamageOverTime_IDX[0] = (DamageOverTime_IDX[0] + 1)
       If (All Conditions are True) then do (Then Actions) else do (Else Actions)
           Si: Condiciones
               DamageOverTime_IDX[0] Igual a 1
           Entonces: Acciones
               Detonador - Turn on DamageOverTime Loop <gen>
           Otros: Acciones
       Set DamageOverTime_C[DamageOverTime_IDX[0]] = 0
       Set DamageOverTime_AC[DamageOverTime_IDX[0]] = 0
       Set DamageOverTime_T[DamageOverTime_IDX[0]] = DamageOverTimeSYS_Tiempo
       Set DamageOverTime_UnitT[DamageOverTime_IDX[0]] = DamageOverTimeSYS_UnitTarget
       Set DamageOverTime_UnitO[DamageOverTime_IDX[0]] = DamageOverTimeSYS_UnitOwner
       Set DamageOverTime_A[DamageOverTime_IDX[0]] = DamageOverTimeSYS_AoE
       Set DamageOverTime_D[DamageOverTime_IDX[0]] = DamageOverTimeSYS_Damage
       Set DamageOverTime_B[DamageOverTime_IDX[0]] = DamageOverTimeSYS_Bool
       Set DamageOverTime_BC[DamageOverTime_IDX[0]] = DamageOverTimeSYS_TipoObjetivo
       Set DamageOverTime_AT[DamageOverTime_IDX[0]] = DamageOverTimeSYS_AttkType
       Set DamageOverTime_DT[DamageOverTime_IDX[0]] = DamageOverTimeSYS_DmgType
       Set DamageOverTime_I[DamageOverTime_IDX[0]] = DamageOverTimeSYS_IntervaloDmg

Código:
DamageOverTime Loop
   Acontecimientos
       Tiempo - Every 0.03 seconds of game time
   Condiciones
   Acciones
       For each (Integer DamageOverTime_IDX[1]) from 1 to DamageOverTime_IDX[0], do (Actions)
           Bucle: Acciones
               Set DamageOverTime_C[DamageOverTime_IDX[1]] = (DamageOverTime_C[DamageOverTime_IDX[1]] + 1)
               If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                   Si: Condiciones
                       DamageOverTime_C[DamageOverTime_IDX[1]] Mayor que o igual a (Integer((DamageOverTime_T[DamageOverTime_IDX[1]] / 0.03)))
                   Entonces: Acciones
                       Set DamageOverTime_A[DamageOverTime_IDX[1]] = DamageOverTime_A[DamageOverTime_IDX[0]]
                       Set DamageOverTime_D[DamageOverTime_IDX[1]] = DamageOverTime_D[DamageOverTime_IDX[0]]
                       Set DamageOverTime_B[DamageOverTime_IDX[1]] = DamageOverTime_B[DamageOverTime_IDX[0]]
                       Set DamageOverTime_BC[DamageOverTime_IDX[1]] = DamageOverTime_BC[DamageOverTime_IDX[0]]
                       Set DamageOverTime_C[DamageOverTime_IDX[1]] = DamageOverTime_C[DamageOverTime_IDX[0]]
                       Set DamageOverTime_T[DamageOverTime_IDX[1]] = DamageOverTime_T[DamageOverTime_IDX[0]]
                       Set DamageOverTime_UnitO[DamageOverTime_IDX[1]] = DamageOverTime_UnitO[DamageOverTime_IDX[0]]
                       Set DamageOverTime_UnitT[DamageOverTime_IDX[1]] = DamageOverTime_UnitT[DamageOverTime_IDX[0]]
                       Set DamageOverTime_AT[DamageOverTime_IDX[1]] = DamageOverTime_AT[DamageOverTime_IDX[0]]
                       Set DamageOverTime_DT[DamageOverTime_IDX[1]] = DamageOverTime_DT[DamageOverTime_IDX[0]]
                       Set DamageOverTime_AC[DamageOverTime_IDX[1]] = DamageOverTime_AC[DamageOverTime_IDX[0]]
                       Set DamageOverTime_I[DamageOverTime_IDX[1]] = DamageOverTime_I[DamageOverTime_IDX[0]]
                       Set DamageOverTime_IDX[1] = (DamageOverTime_IDX[1] - 1)
                       Set DamageOverTime_IDX[0] = (DamageOverTime_IDX[0] - 1)
                       If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               DamageOverTime_IDX[0] Igual a 0
                           Entonces: Acciones
                               Detonador - Turn off (This trigger)
                           Otros: Acciones
                   Otros: Acciones
                       Set DamageOverTime_AC[DamageOverTime_IDX[1]] = (DamageOverTime_AC[DamageOverTime_IDX[1]] + 1)
                       If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                           Si: Condiciones
                               DamageOverTime_AC[DamageOverTime_IDX[1]] Igual a (Integer((DamageOverTime_I[DamageOverTime_IDX[1]] / 0.03)))
                           Entonces: Acciones
                               If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                   Si: Condiciones
                                       DamageOverTime_B[DamageOverTime_IDX[1]] Igual a True
                                   Entonces: Acciones
                                       If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                           Si: Condiciones
                                               (DamageOverTime_UnitO[DamageOverTime_IDX[1]] is alive) Igual a True
                                           Entonces: Acciones
                                               Set DamageOverTime_P = (Position of DamageOverTime_UnitO[DamageOverTime_IDX[1]])
                                               Set DamageOverTime_G = (Units within DamageOverTime_A[DamageOverTime_IDX[1]] of DamageOverTime_P matching ((((Matching unit) is Una estructura) Igual a False) and ((((Matching unit) is Inmune a la magia) Igual a False) and ((((Matching unit) is alive) Igual a True) and (((Matching
                                               Grupo de unidad - Pick every unit in DamageOverTime_G and do (Actions)
                                                   Bucle: Acciones
                                                       Unidad - Cause DamageOverTime_UnitO[DamageOverTime_IDX[1]] to damage (Picked unit), dealing DamageOverTime_D[DamageOverTime_IDX[1]] damage of attack type DamageOverTime_AT[DamageOverTime_IDX[1]] and damage type DamageOverTime_DT[DamageOverTime_IDX[1]]
                                               Custom script:   call DestroyGroup(udg_DamageOverTime_G)
                                               Custom script:   call RemoveLocation(udg_DamageOverTime_P)
                                           Otros: Acciones
                                               Set DamageOverTime_C[DamageOverTime_IDX[1]] = (Integer((DamageOverTime_T[DamageOverTime_IDX[1]] / 0.03)))
                                   Otros: Acciones
                                       Unidad - Cause DamageOverTime_UnitO[DamageOverTime_IDX[1]] to damage DamageOverTime_UnitT[DamageOverTime_IDX[1]], dealing DamageOverTime_D[DamageOverTime_IDX[1]] damage of attack type DamageOverTime_AT[DamageOverTime_IDX[1]] and damage type DamageOverTime_DT[DamageOverTime_IDX[1]]
                               Set DamageOverTime_AC[DamageOverTime_IDX[1]] = 0
                           Otros: Acciones

Ejemplos como usar: los ejemplos estan en el mismo mapa con la funcion incluida. descarguelo y revise c:

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

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

https://koleshyengine.foroactivo.mx

Volver arriba Ir abajo

Volver arriba


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