Editor de Warcraft.
¿Cómo es el último movimiento del Blackbird en Dota?
Devuelve GetSpellAbilityId()=='A0OK' o GetSpellAbilityId()== 'a 1VW'
Finaliza la función p>
La función M2D no toma ningún contenido y no devuelve nada
Unidad local TT7=GetEnumUnit()
Unidad local M_D=GetTriggerUnit()
Entero local N4D=GetHeroInt(M_D, true)-GetHeroInt(TT7, true)
Matriz de enteros local N7D
Entero local y 17 = GetUnitAbilityLevel(M_D, 'A0OK') p> p>
Entero local N8D=7+1*Y17
Si Y17==0, entonces
establezca y 17 = GetUnitAbilityLevel(M_D,'A1VW')
Establecer N8D = 7+1 * y 17+1
endif
Establecer N7D[1]=10
Establecer N7D[2 ]=30
Establezca N7D[3]=50
if(N4D>0) y luego
llame a UnitDamageTarget(M_D, TT7, N4D*N8D, verdadero , false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)
Llamar a VX7(I2S(R2I(N4D*N8D)), 3, TT7, 0.023, 216, 30, 30, 216 )
if(N4D<N7D[Y17]), entonces
llame al efecto destructor(addspecialeffectarget("Ability\\Spell\\Human\\Feedback\\SpellBreakerAttack.mdl ", TT7, "overhead"))
Llamar a SetUnitState(TT7, UNIT_STATE_MANA, GetUnitState(TT7, UNIT_STATE_MANA)*.25)
endif
endif
Establecer TT7 = nulo
set M_D=null
Finalizar función
La función N9D no acepta ningún contenido y devuelve un valor booleano
If (IsUnitType( GetFilterUnit(), UNIT_TYPE_HERO) == verdadero, entonces
si (IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(GetTriggerUnit()))) entonces
Devuelve verdadero
endif
endif
Devuelve falso
Finalizar función
La función NDD no toma ningún valor, no devuelve ningún valor p>
Unidad local O49=GetTriggerUnit()
Entero local RL9=GetUnitAbilityLevel(O49, 'A0OK')
X real local = GetLocationX(GetSpellTargetLoc()) p>
local real y = GetLocationY(GetSpellTargetLoc())
Grupo local RS9=TN7()
Entero local K09=0
Unidad local NED=(MG7(GetHandleId(O49), "748"))
>
Si RL9==0, entonces
Establezca RL9=GetUnitAbilityLevel(O49, ' A1VW ')
endif
efecto destructor de llamadas (AddSpecialEffect( "Habilidad\\Hechizo\\Humanidad\\MarkOfChaos\\markofchaostarget.MDL",x,y))
Timbre
Salir cuando K09>=360
Llamar al efecto destructor(AddSpecialEffect("Ability\\Spell\\Humanity\\MarkOfChaos\\markofchaostarget.MDL", x+(20RL9 * 50)* Cos(K09 * bj _ DEGTORAD), y+(20RL9 * 50 )* Sin(K09 * bj _ DEGTORAD)))
Establecer K09=K09+45
Finalizar bucle
Llamar a GroupEnumUnitsInRange(RS9, x, y, 30RL9*100, condición (función N9D))
Si Ned! =null e IY7(x, y, GetUnitX(NED), obtiene unity(NED))<(30RL9*100) y luego
Llame a setunitinvurable(NED, false)
Llamar a GrupoAddUnit(RS9, NED)
endif
Llamar a Grupo(RS9, función M2D)
Si NED! =null y UF7(NED)==false, luego
Llamar a setunitinvurable(NED, true)
endif
Llamar a TM7(RS9)
Establecer O49 = vacío
Establecer RS9 = vacío
Finalizar función
La función GP8 no toma ningún valor y no devuelve ningún valor
Disparador local t=CreateTrigger()
Llamar a 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
Finalizar función
Espero que puedas entender que A0OK es el último movimiento y A1VW es la habilidad después de la cuenta A ID, el resto se aprende lentamente según las habilidades. La mayoría de las frases son clichés y el resto son efectos especiales. Lo que es útil son solo unas pocas palabras: seleccione una unidad dentro del rango de 30RL9*100, lance hechizos sobre la unidad seleccionada y conviértala, y emita un juicio sobre la unidad.
UnitDamageTarget(M_D, TT7, N4D*N8D, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC, WEAPON_TYPE_WHOKNOWS)
Si quieres aprender las habilidades en dota, abre el archivo J del mapa de dota y echa un vistazo. El código no es fácil de escribir, pero sigue siendo muy sencillo de leer.
¡Espero adoptarlo!