Решил написать и сразу перевести в нормальное состояние вот такой код.
Герой использует на союзнике способность, союзнику дается перерождение и вешается спецэффект на грудь( сияние типа броня) действует пока он жив. Когда умирает, то воскрешается и спецэффект удаляется. Все примитивно просто, но возникли большие проблемы в правильностью написания кода. Именно ошибки в самом синтаксисе
  • Ругается на то, что локальную u не видит, хоть она и объявлена.
  • Ругается на, что заменил условие что он не мертв, на
   return ( GetUnitState(u, UNIT_STATE_LIFE) <= 0 )
Код как он есть ниже. Заранее благодарю function
Trig_First_pit______________________2__________________________________________u_Conditions takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'A08B' ) ) then
        return false
    endif
    return true
endfunction

function Trig_First_pit______________________2__________________________________________u_Func007001 takes nothing returns boolean
    return ( GetUnitState(u, UNIT_STATE_LIFE) <= 0 )
endfunction

function Trig_First_pit______________________2__________________________________________u_Actions takes nothing returns nothing
    local effect a
    local unit u
    set u = GetSpellTargetUnit()
      call UnitAddAbility( u,'A08C' )
      set bj_lastCreatedEffect = AddSpecialEffectTarget(u,"chest", "manaFlareTarget.mdx" )
    set a = bj_lastCreatedEffect
    loop
        exitwhen ( Trig_First_pit______________________2__________________________________________u_Func007001() )
        call TriggerSleepAction(RMaxBJ(bj_WAIT_FOR_COND_MIN_INTERVAL, 1))
    endloop
     call DestroyEffect (a)
    set u= null
    set a= null
endfunction

//===========================================================================
function InitTrig_First_pit______________________2__________________________________________u takes nothing returns nothing
    set gg_trg_First_pit______________________2__________________________________________u = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_First_pit______________________2__________________________________________u, EVENT_PLAYER_UNIT_SPELL_CAST )
    call TriggerAddCondition( gg_trg_First_pit______________________2__________________________________________u, Condition( function Trig_First_pit______________________2__________________________________________u_Conditions ) )
    call TriggerAddAction( gg_trg_First_pit______________________2__________________________________________u, function Trig_First_pit______________________2__________________________________________u_Actions )
endfunction

Accepted answer

Ориентируюсь по образцу: Модель, виджет, точки крепления
Но я честно не знаю, как правильно присваивать спецэффект кодом именно с локальной!
Сам написал ответ и сам указал в коде по другому :D
Первый параметр - модель. Не юнит, а модель.
set bj_lastCreatedEffect = AddSpecialEffectTarget("manaFlareTarget.mdx", u, "chest")
Надоело уже страдать. Пусть будет как у Лоха через bj по другому я просто не могу понять!
call AddSpecialEffectTargetUnitBJ( "chest", u, "ManaFlareTarget.mdx" )
`
LOADING AD...

Only a small set of comments around the pointed one shown. Go to actual.
2
29
3 months ago
2
сравнил iterable с random access
С каких это пор итератор стал имманентен массиву? В том же JASS ни о каких итераторах никто не слышал.
К примеру он зачем то рекомендует сохранять в глобальную, потом кидать в локальную, потом возвращать назад.
Можно ссылочку на цитату? А то есть у меня чувства, что кое-кто использует для чтения неподобающий орган.
Видеоуроки
Просто шикарные видеоуроки:
Мы будем писать на чистом жасс и посему объявим глобалку в блоке globals.
0
20
3 months ago
0
((цитата Из его статьи, самая первая :
....Итак, при помощи локальных переменных мы можем сохранить юнит-цель для каждого запуска заклинания файербол. А через некоторое время, равное времени полета файербола, мы должны создать на юните спецэффект. Мы делаем нужную паузу и затем помещаем в глобальную переменную unit ссылку на юнит из переменной u. И создаем спецэффект над юнитом из переменной unit.
Таким приемом мы можем гарантировать, что сколько бы файерболов не было выпущено, спецэффект будет создаваться над юнитом-целью и только над ним. Никаких сбоев не будет. Точно такой же прием с удалением спецэффекта через 3 секунды после создания. Все эти три секунды ссылка на спецэффект будет храниться в локальной переменной e. А затем мы перебросим ее значение в глобальную переменную se и удалим спецэффект....."
0
24
3 months ago
Edited by konvan5
0
цитата Из его статьи, самая первая
И ничего, что там дальше написано:
Вообще говоря, в нашем примере можно обойтись и без глобальных переменных – одними локальными. Но проблема в том, что использование локальных переменных не предусмотрено в редакторе. Чтобы использовать эти переменные необходимо записывать команды на jass.
Человек говорит о совместной работе триггеров и jassа. Если писать на чистом jass то в этих случаях можно глобалки и не использовать :D
Не путаем контексты)

Да и в целом это все инструменты. Нам же что главное - чтобы работало так, как нам нужно, с нашими условными ограничениями (критериями). Если задача выполняется по заданным критериям - то решение годится.
0
20
3 months ago
0
konvan5:
custom script как бы никто не отменял
0
24
3 months ago
0
konvan5:
custom script как бы никто не отменял
Естественно :)
0
27
3 months ago
0
SсRealm, ну и статья, я хоть и знаю джасс, гуи, муи, но половина из сказанного мне не понятна с первого раза
0
20
3 months ago
0
SсRealm, ну и статья, я хоть и знаю джасс, гуи, муи, но половина из сказанного мне не понятна с первого раза
А нас, триггерщиков, вы отправляете эти статьи читать и потом ржете, от того, что мы ничего не понимаем. Вообще есть где -нибудь нормальные конспекты по jass или его Близзы никогда не ракрывали и люди учили его методом научного тыка?
0
29
3 months ago
0
ну и статья, я хоть и знаю джасс, гуи, муи, но половина из сказанного мне не понятна с первого раза
Вообще не понимаю, что там можно не понять с первого раза?
А нас, триггерщиков, вы отправляете эти статьи читать и потом ржете, от того, что мы ничего не понимаем.
Потому что вы для чтения используете не тот орган. За примерами далеко ходить не нужно.
Вообще есть где -нибудь нормальные конспекты по jass
Что там конспектировать? Как думать через мозг? JASS простой как палка и при наличии хотя бы одной извилины учится за пару недель под пиво. Ну или за месяц, если времени на изучение совсем нет.
0
27
3 months ago
0
SсRealm, ну во первых, если тебя не тянет к коду то тебе никакие даже самые детальные конспекты не помогут, во вторых, нужен минимум знаний английского языка, иначе, опять же, в коде тебе делать нечего, когда ты не понимаешь банально приставки end, в третьих, джасс учится примерно за один активный год до уверенного пользователя вместе с его диалектами (вджасс и сджасс, зинк), в четвёртых, нужна внимательность, сделаешь ошибку хоть в одной буковке или регистре - код работать не будет, в пятых - полно видосов для попугаев, просто под диктовку копируешь способность и знания по любому появятся, а далее только практика на основе полученных знаний, в шестых, если ты даже в гуи не был уверенным пользователем, то как ты будешь справляться с кодом не имея логики работы триггера?

Впрочем, касательно той вырезки из статьи только моё согласие, мне тоже приходилось пытаться учиться по ней и нужно было миллион раз перечитывать чтобы мозг понял, что там вообще написано то

Есть люди вроде меня, которые могут помогать с изучением и стать гидами

Вообще не понимаю, что там можно не понять с первого раза?
Сейчас я то понимаю что написано. Но ты не в состоянии (как всегда впрочем), поставить себя на место новичка, который никогда не сталкивался с кодом, и это джассовое безобразие является первым инструментом в этой сфере для него. Я могу себя поставить на место этих людей потому что я помню свои первые шаги, когда мне было совсем мало лет, и я помню эту статью, которая до сих пор вызывает кринж мозга
0
20
3 months ago
0
nazarpunk:
Вот мы такие тупые значит. Если бы все было так просто, может люди и исходный движок Варика давно крякнули, чтобы заменить там оригинальный на чистый си и тогда бы все уже зажили по другому, и гуишники в том числе. Я за пять лет знакомства с редактором не смог даже джас понять, а кто -то может, редакторы делает, кто - то "затемнение" черт бы его побрал, чтобы автозамену глобалок на локалки делать, одного парня знал, который свои типы атак и защиты писал, то же удЖапи, вон какие чудеса мемхачит, правда запускается через отдельный лаунчер, но что поделаешь.
Знаю, что сейчас будет ответ, что я фигню сморозил, но это я про то, что одним легко все дается, кто -то вообще программирует вне варкрафта для варкрафта, а кто -то сидит и учит Дждасс. Мы все любим варкрафт, все мы люди!)
0
29
3 months ago
0
Если бы все было так просто, может люди и исходный движок Варика давно крякнули
Изи. Ты только трудочасы оплати.
Я за пять лет знакомства с редактором не смог даже джас понять
А что ты сделал, чтоб его понять?
Only a small set of comments around the pointed one shown. Go to actual.
To leave a comment please sign in to the site.