Dos soluciones, una con sistema y otra sin sistema:
[gui]Apunto de atacar
Acontecimientos
Unidad - A unit Es atacado
Condiciones
((Attacking unit) has an item of type Corona de Reyes +5) Igual a (==) True
Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
Bonus_Enteros[1] Igual a (==) 0
Entonces: Acciones
Detonador - Turn on Atacado
Otros: Acciones
Set Bonus_Enteros[1] = (Bonus_Enteros[1] + 1)
Set Bonus_Enteros[2] = (Bonus_Enteros[2] + 1)
Set Bonus_Atacado[Bonus_Enteros[2]] = (Triggering unit)
Set Bonus_Atacante[Bonus_Enteros[2]] = (Attacking unit)
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
((Triggering unit) is in Bonus_GrupoDeAtacados) Igual a (==) False
Entonces: Acciones
Grupo de unidad - Add (Triggering unit) to Bonus_GrupoDeAtacados
Detonador - Add to Atacado the event (Unidad - (Triggering unit) Recibe daño)
Otros: Acciones
[/gui]
[gui]Atacado
Acontecimientos
Condiciones
Acciones
Do Multiple ActionsFor each (Integer Bonus_Enteros[3]) from 1 to Bonus_Enteros[2], do (Actions)
Bucle: Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
(Triggering unit) Igual a (==) Bonus_Atacado[Bonus_Enteros[3]]
(Damage source) Igual a (==) Bonus_Atacante[Bonus_Enteros[3]]
Entonces: Acciones
Detonador - Turn off (This trigger)
Unidad - Cause (Damage source) to damage (Triggering unit), dealing 100.00 damage of attack type Conjuros and damage type Normal
Set Bonus_Atacado[Bonus_Enteros[3]] = Ninguna unidad
Set Bonus_Atacante[Bonus_Enteros[3]] = Ninguna unidad
Set Bonus_Enteros[1] = (Bonus_Enteros[1] - 1)
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
Bonus_Enteros[1] Igual a (==) 0
Entonces: Acciones
Set Bonus_Enteros[2] = 0
Detonador - Turn off (This trigger)
Otros: Acciones
Detonador - Turn on (This trigger)
Otros: Acciones
[/gui]
Esto es sin sistema, es muy, y funciona "bien". Si tienes algo como Inmolación, aura de daño, o cualquier spell que haga dps puede buguear antes de que el daño pegue, y no tomé en cuenta si cancelas el ataque. Se añade este detonador si tomamos eso en cuenta
[gui]Cancelar ataque
Acontecimientos
Unidad - A unit Emite una orden con un objeto como objetivo
Unidad - A unit Emite una orden con un punto como objetivo
Unidad - A unit Emite una orden sin objetivo
Condiciones
Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
Bonus_Enteros[1] Mayor que (>) 0
Entonces: Acciones
Do Multiple ActionsFor each (Integer Bonus_Enteros[3]) from 1 to Bonus_Enteros[2], do (Actions)
Bucle: Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
(Triggering unit) Igual a (==) Bonus_Atacante[Bonus_Enteros[3]]
Entonces: Acciones
Set Bonus_Booleana = False
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
(Issued order) No igual a (!=) (Order(attack))
(Issued order) No igual a (!=) (Order(smart))
Entonces: Acciones
Set Bonus_Booleana = True
Otros: Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
(Target unit of issued order) No igual a (!=) Bonus_Atacado[Bonus_Enteros[3]]
(Target unit of issued order) No igual a (!=) Ninguna unidad
Entonces: Acciones
Set Bonus_Booleana = True
Otros: Acciones
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
Bonus_Booleana Igual a (==) True
Entonces: Acciones
Set Bonus_Atacado[Bonus_Enteros[3]] = Ninguna unidad
Set Bonus_Atacante[Bonus_Enteros[3]] = Ninguna unidad
Set Bonus_Enteros[1] = (Bonus_Enteros[1] - 1)
Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si: Condiciones
Bonus_Enteros[1] Igual a (==) 0
Entonces: Acciones
Set Bonus_Enteros[2] = 0
Detonador - Turn off (This trigger)
Otros: Acciones
Otros: Acciones
Otros: Acciones
Otros: Acciones
[/gui]
Ahora, con sistema hacemos esto:
[gui]More dmg
Acontecimientos
Partida - DamageEvent becomes Igual a 1.00
Condiciones
IsDamageSpell Igual a (==) False
(DamageEventSource has an item of type Corona de Reyes +5) Igual a (==) True
Acciones
Unidad - Cause DamageEventSource to damage DamageEventTarget, dealing 100.00 damage of attack type Conjuros and damage type Normal
[/gui]
El sistema es
https://www.hiveworkshop.com/threads/gui-damage-engine-v3-6-1-0.201016/