Всем привет.
В кратце:
  1. Есть одна способность.
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, пришли карту или вопрос будет закрыт, мы ничем не поможем без информации обо всём коде)
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
27
3 года назад
Отредактирован rsfghd
2
ты говоришь, что проверил настройки, но видимо ты даже не шаришь что нужно проверять
у тебя сджасс отключён, а дефайны это фишка сджасса

поставь тут самую верхнюю галочку
Загруженные файлы
0
6
3 года назад
0
rsfghd:
ты говоришь, что проверил настройки, но видимо ты даже не шаришь что нужно проверять
у тебя сджасс отключён, а дефайны это фишка сджасса

поставь тут самую верхнюю галочку
Ставил, тот же самый эффект...
2
27
3 года назад
2
ну тогда я без понятия, на новой карте запустил всё хорошо
единственное что, убери знаки вопроса, если они у тебя есть

Там где у тебя создаются и перемещаются молнии, при копировании кода, ставятся знаки вопроса
"Ge?tWidgetX(u2)"
0
28
3 года назад
0
Если с включённым сижассом не выходит, тырубить сижасс и переделать дефайны под константы.
0
6
3 года назад
0
PT153:
Если с включённым сижассом не выходит, тырубить сижасс и переделать дефайны под константы.
Если бы я приемлимо "шарил" в коде, то так и сделал бы...
Этот тригер я взял с Dota, потому что он рабочий.
Но видимо в моем редакторе есть "защита от дауна" раз вылетает такая ошибка
1
28
3 года назад
1
В доте точно не было сижасса, скил из другого места.
Если не понимания, что такое дефайн и константы, марш читать мануалы вжасса и сижасса.
3
16
3 года назад
3
в доте нет никакого сахара, чистый jass, который работает везде
3
27
3 года назад
3
mistwood, я же сказал, если это импорт какого-то спелла с хгм, проверь, чтобы не было этих вопросиков. У меня такая ошибка вылезает только при их наличии
0
6
3 года назад
Отредактирован mistwood
0
интересно девки пляшут... видимо я что-то путаю. лады, спасибо. буду копать дальше.
4
27
3 года назад
Отредактирован rsfghd
4
mistwood, это значит, что их не было даже?

или ты не понял что нужно исправить?)

зайди в код этих спеллов на самый вверх, нажми ctrl+f и введи туда знак вопроса, нажми ок и посмотри выделит ли что-нибудь
0
6
3 года назад
Отредактирован mistwood
0
rsfghd:
mistwood, это значит, что их не было даже?

или ты не понял что нужно исправить?)

зайди в код этих спеллов на самый вверх, нажми ctrl+f и введи туда знак вопроса, нажми ок и посмотри выделит ли что-нибудь
я понял и проверил код именно через поиск, и вопросов там не нашлось.
Тут еще прикол вот в чем, перекидывая тригер на новую карту сохраняет ее и все работает.
А импортируя в мою, выдает такую ошибку. Вроде бы одна переменная всего, и рабочий код, но....
Понял одно, что cjass говно еще то.
Буду думать и искать вариант, как эту ауру переписать на jass...
3
28
3 года назад
3
mistwood, cjass норм тема, просто преппроцессор имеет некоторые ошибки + оптимизатор лучше отключать.
3
27
3 года назад
3
mistwood, если ты пишешь для себя на сджассе, то всё будет хорошо, ты знаешь свой код от и до. Но импортируя чужие системы очень часто сталкивался с жалобами, что какая-то непонятная чепуха происходит, компилятор не в состоянии указать на ошибку, а ты её ещё фиг найдёшь
0
14
3 года назад
Отредактирован Гуванч
0
Вопрос первый: Зачем дефайнить то что в либе под приват стоит?
Вопрос второй: этот скилл даёт маг резист но не отбиает его втф?
2
27
3 года назад
2
mistwood, пришли карту или вопрос будет закрыт, мы ничем не поможем без информации обо всём коде)
Принятый ответ
0
12
3 года назад
0
Буду думать и искать вариант, как эту ауру переписать на jass...
В таком случае редактор никак не показывает на реальную ошибку, нужно постепенно отключать и смотреть в чем проблема. Тут используются дефайны от Cjass, что по сути и есть сахар. Как оптимальный вариант будет убрать то, что может мешать сохраниться коду. Если еще актуально ,то свяжись со мной, помогу...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.