Предыстория
Как-то не давно, я спрашивал, как сделать универсальный каст
и ответом было:
С большой вероятностью можно идти спать
Но я не пошёл тогда спать и получилась она....
С большой вероятностью можно идти спать
Но я не пошёл тогда спать и получилась она....
Функция универсального каста
---@param u unit
---@param x real
---@param y real
---@param target unit
function Cast(u,x,y,target)
if UnitAlive(u) then
AllPoint(u,x,y)
AllTarget(u,target)
AllImmediate(u)
end
end
полный код
TargetOrders={"innerfire","slow","heal","controlmagic","invisibility","magicleash","spellsteal","polymorph","repair","thunderbolt","banish","holybolt","load","unstableconcoctoin","spirintlink",
"bloodlust","ensnare","devour","purge","lightingshield","healingwave","hex","chainlightning","antimagicshell","unholyfrenzy","possession","web","absorbmana","curse","restoration","cripple","frostarmor",
"deathpact","sleep","darkritual","faeriefire","renew","autodispel","cyclone","entanglingroots","flamingarrows","manaburn","shadowstrike","creepthunderbolt","mindrot","deathcoil",
"parasite","charm","creepdevour","forkedlighting","cripple","blackarrow","acidbomb","doom","soulburn","transmute","rejuvination"}
PointOrders={"flare","dispel","cloudoffog","flamestrike","blizzard","healingward","stasistrap","evileye","farsight","eathquake","ward","serpentward","shockwave","inferno","impale","deathanddecay","carrionswarm",
"detonate","forceofnature","blink","selfdestruct","silence","rainoffire","breathofirre","volcano","stampede","healingspray","clusterrockets","summonfactory","drunkenhaze"}
ImmediateOrders={"defend","magicdefense","militia","townbellon","avatar","divineshield","resurrection","massteleport","waterelemental","thunderclap","summonphoenix","etherealform","berserk",
"battlestations","corporealform","whirlwind","stomp","spiritwolf","locustswarm","mirrorimage","voodoo","windwalk","raisedead","recharge","replenish","borrow","stoneform","cannibalize","sphinksform","replenishlife",
"replenishmana","carrionscarabs","animatedead","coupletarget","manaflareon","vengeance","ravenform","bearform","taunt","roar","ambush", "fanofknives","starfall","metamorphosis","immolation",
"tranquility","monsoon","frenzy","howlofterror","manashield","battleroar","elementalfury","wateryminion","slimemonster","robogoblin","tornado","chemicalrage"}
---@param u unit
---@param x real
---@param y real
---@param target unit
function Cast(u,x,y,target)
if UnitAlive(u) then
AllPoint(u,x,y)
AllTarget(u,target)
AllImmediate(u)
end
end
function AllImmediate(u)
for i = 1,#ImmediateOrders do
--print(ImmediateOrders[i].." is immediate")
IssueImmediateOrder(u,ImmediateOrders[i])
end
end
function AllPoint(u,x,y)
for i = 1,#PointOrders do
-- print(PointOrders[i].." is point")
IssuePointOrder(u,PointOrders[i],x,y)
end
end
function AllTarget(u,target)
for i = 1,#TargetOrders do
--print(TargetOrders[i].." is target")
IssueTargetOrder(u,TargetOrders[i],target)
end
end
Зачем это нужно?
Чтобы не смотреть в РО, какой приказ у способности
Область применения:
ИИ
Дамми касты
Дамми касты
Примеры использования
на цель
Cast(caster,0,0,target)
область на точку
Cast(caster,x,y)
без цели
Cast(caster)
Рекомендации в использовании
- Всё всегда будет работать, если делать на основе стандарта или околостандарта
- Всё будет работать, если канальным способностям выдавать приказ для нужно типа из списка выше
- Если чего то нет, просто через запятую в кавычках прописывать нужный приказ в таблице {}
Ред. GetLocalPlayer
Тем более близард поддерживаемый и для ИИ не подходит, если кастовать функцию раз в секунду... это больше для даммикаста - идельное решение
Наверное надо было целиком функцию показать
Ред. PROSHELDOTU
А так чётко
Канал наше спасение