Всем привет.
В кратце:
В кратце:
- Есть одна способность.
library NULLFIELD
define {
private SPELL = 'A00G' //рав код cпособности, "NullField"
private SPELL_NULL_FIELD = 'A01C' //рав код cпособности, "NullDield(resist)"
private SPELL_DIS = 'A01F' //рав код cпособности, "NullField(disable)"
private BUFF = 'B01I' //рав код cпособности "NullField"
private RADIUS = 1000. // радиус действия Ауры, должно быть равно в самой способности
}
//*****************************************************************************************
function Trig_NullField_Conditions takes nothing returns boolean
return GetLearnedSkill()==SPELL and GetUnitAbilityLevel(GetTriggerUnit(),SPELL)==1
endfunction
//*****************************************************************************************
function NULL_FIELD takes nothing returns nothing
local timer t=GetExpiredTimer()
local integer id=GetHandleId(t)
local unit u=LoadUnitHandle(H,id,1)
local group G=LoadGroupHandle(H,id,2)
local group g=CreateGroup()
local unit e
call GroupAddGroup(G,g)
loop
set e=FirstOfGroup(g)
exitwhen e==null
if GetUnitAbilityLevel(e,BUFF)<=0 then
call SetUnitAbilityLevel(e,SPELL_NULL_FIELD,5)
call GroupRemoveUnit(G,e)
endif
call GroupRemoveUnit(g,e)
endloop
call GroupEnumUnitsInRange(g,GetWidgetX(u),GetWidgetY(u),RADIUS,null)
loop
set e=FirstOfGroup(g)
exitwhen e==null
if GetUnitAbilityLevel(e,BUFF)>0 then
if GetUnitAbilityLevel(e,SPELL_DIS)<=0 then
call UnitAddAbility(e,SPELL_DIS)
endif
call SetUnitAbilityLevel(e,SPELL_NULL_FIELD,GetUnitAbilityLevel(u,SPELL))
call GroupAddUnit(G,e)
endif
call GroupRemoveUnit(g,e)
endloop
call SaveGroupHandle(H,id,2,G)
call DestroyGroup(g)
set t=null
set u=null
set g=null
set G=null
set e=null
endfunction
//*****************************************************************************************
function Trig_NullField_Actions takes nothing returns nothing
local timer t=CreateTimer()
local integer id=GetHandleId(t)
call SaveUnitHandle(H,id,1,GetTriggerUnit())
call SaveGroupHandle(H,id,2,CreateGroup())
call TimerStart(t,1.,true,function NULL_FIELD)
set t=null
endfunction
//*****************************************************************************************
function InitTrig_NullField takes nothing returns nothing
local integer i=0
set gg_trg_NullField=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg_NullField,EVENT_PLAYER_HERO_SKILL)
call TriggerAddCondition(gg_trg_NullField,Condition(function Trig_NullField_Conditions))
call TriggerAddAction(gg_trg_NullField,function Trig_NullField_Actions)
loop
exitwhen i==12
call SetPlayerAbilityAvailable(Player(i),SPELL_DIS,false)
set i=i+1
endloop
endfunction
//*****************************************************************************************
endlibrary
Это рабочие способность Аура с защитой от магии, обычная способность Rubick из дота.
При сохранении карты мне редактор выдает такую ошибку -
При сохранении карты мне редактор выдает такую ошибку -
настройки редактора перепроверял все, уже 100 раз...
так же перекачивал два разных редактора, и оба с такими ошибками...
В чем может быть проблема?
В чем может быть проблема?
Принятый ответ
mistwood, пришли карту или вопрос будет закрыт, мы ничем не поможем без информации обо всём коде)
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован rsfghd
у тебя сджасс отключён, а дефайны это фишка сджасса
единственное что, убери знаки вопроса, если они у тебя есть
"Ge?tWidgetX(u2)"
Этот тригер я взял с Dota, потому что он рабочий.
Но видимо в моем редакторе есть "защита от дауна" раз вылетает такая ошибка
Если не понимания, что такое дефайн и константы, марш читать мануалы вжасса и сижасса.
Отредактирован mistwood
Отредактирован rsfghd
Отредактирован mistwood
Тут еще прикол вот в чем, перекидывая тригер на новую карту сохраняет ее и все работает.
А импортируя в мою, выдает такую ошибку. Вроде бы одна переменная всего, и рабочий код, но....
Буду думать и искать вариант, как эту ауру переписать на jass...
Отредактирован Гуванч
Вопрос второй: этот скилл даёт маг резист но не отбиает его втф?