Editor de Warcraft.

¿Cómo utilizar el movimiento definitivo de Blackbird en Dota?

la función M5D no toma nada y devuelve booleano

devuelve GetSpellAbilityId()=='A0OK' o GetSpellAbilityId()=='A1VW'

función final

la función M2D no toma nada y no devuelve nada

unidad local TT7=GetEnumUnit()

unidad local M_D=GetTriggerUnit()

entero local N4D=GetHeroInt( M_D, verdadero)-GetHeroInt(TT7, verdadero)

matriz de enteros local N7D

entero local Y17=GetUnitAbilityLevel(M_D, 'A0OK')

entero local N8D=7 1*Y17

si Y17==0 entonces

establezca Y17=GetUnitAbilityLevel(M_D,'A1VW')

establezca N8D=7 1* Y17 1

endif

establecer N7D[1]=10

establecer N7D[2]=30

establecer N7D[3] =50

si(N4Dgt; 0)entonces

llame a UnitDamageTarget(M_D, TT7, N4D*N8D, verdadero, falso, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)

llamar a VX7(I2S(R2I(N4D*N8D)), 3, TT7, 0.023, 216, 30, 30, 216)

si(N4Dlt;N7D[Y17])entonces

llamar a DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Human\\Feedback\\SpellBreakerAttack.mdl", TT7, "overhead"))

llamar a SetUnitState(TT7, UNIT_STATE_MANA, GetUnitState(TT7, UNIT_STATE_MANA)*.25)

endif

endif

establecer TT7=null

establecer M_D=null

función final

la función N9D no toma nada y devuelve booleano

if(IsUnitType(GetFilterUnit(), UNIT_TYPE_HERO)==true)entonces

if(IsUnitEnemy(GetFilterUnit( ), GetOwningPlayer(GetTriggerUnit())))luego

devuelve verdadero

endif

endif

devuelve falso

endfu

nction

función NDD no toma nada y no devuelve nada

unidad local O49=GetTriggerUnit()

entero local RL9=GetUnitAbilityLevel(O49,'A0OK')

local real x=GetLocationX(GetSpellTargetLoc())

local real y=GetLocationY(GetSpellTargetLoc())

grupo local RS9=TN7()

entero local K09=0

unidad local NED=(MG7(GetHandleId(O49), "748"))

si RL9==0 entonces

set RL9=GetUnitAbilityLevel(O49,'A1VW')

endif

llamar a DestroyEffect(AddSpecialEffect("Habilidades\\Spells\\Human\\MarkOfChaos\\MarkOfChaosTarget.mdl", x, y))

bucle

salir cuando K09gt;=360

llamar a DestroyEffect(AddSpecialEffect("Habilidades\\Spells\\Human\\MarkOfChaos\\ MarkOfChaosTarget.mdl", x (200 RL9*50)*Cos(K09*bj_DEGTORAD), y (200 RL9*50)*Sin(K09*bj_DEGTORAD)))

set K09=K09 45

endloop

llamar a GroupEnumUnitsInRange(RS9, x, y, 300 RL9*100, Condition(function N9D))

si NED!=null y IY7(x, y, GetUnitX(NED), GetUnitY(NED))lt; (300 RL9*100)luego

llame a SetUnitInvulnerable(NED, false)

llame a GroupAddUnit(RS9, NED)

endif

llamar a ForGroup(RS9, función M2D)

si NED!=null y UF7(NED)==false entonces

llamar a SetUnitInvulnerable(NED, true)

endif

llamar a TM7(RS9)

establecer O49=null

establecer RS9=null

función final

función GP8 no toma nada y no devuelve nada

disparador local t=CreateTrigger()

llamada TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER

_UNIT_SPELL_EFFECT)

llamar a TriggerAddCondition(t, Condición(función M5D))

llamar a TriggerAddAction(t, función NDD)

establecer t=null

función final

Espero que puedas entender que A0OK es el movimiento definitivo Eclipse of Sanity, A1VW es el ID de habilidad detrás de la cuenta A, y puedes estudiar el resto lentamente por tu cuenta de acuerdo con la descripción de la habilidad. la mayoría de las frases son todos clichés, y la segunda mitad es para efectos especiales. Solo hay unas pocas frases útiles: seleccione una unidad dentro de un rango de 300 RL9*100, emita un juicio sobre la unidad seleccionada, lance un hechizo. el chaleco y la unidad daña al objetivo

UnitDamageTarget( M_D, TT7, N4D*N8D, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)

Si quieres aprender las habilidades En dota, abra el archivo J del mapa de dota y eche un vistazo. No es fácil escribir el código, pero aún así es muy fácil de leer.

¡Espero adoptarlo!