Решил написать и сразу перевести в нормальное состояние вот такой код.
Герой использует на союзнике способность, союзнику дается перерождение и вешается спецэффект на грудь( сияние типа броня) действует пока он жив. Когда умирает, то воскрешается и спецэффект удаляется. Все примитивно просто, но возникли большие проблемы в правильностью написания кода. Именно ошибки в самом синтаксисе
  • Ругается на то, что локальную 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

Принятый ответ

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
37
5 месяцев назад
1
Нормально вы тут нафлудили, Hate, можно было без издевательств отвечать
nazarpunk, сравнил iterable с random access
SсRealm, у нас куча статей есть по кнопке статьи
Статья Сергея xgm.guru/p/wc3/jass_functions
Видеоуроки xgm.guru/p/wc3/jass-videos
Все статьи с поиском xgm.guru/p/wc3/articles
0
20
5 месяцев назад
Отредактирован SсRealm
0
ScorpioT1000:
Да. Главное что решили вопрос. Странно, что они смеются, хотя эти вопросы уже внутри изучения джасса, хотя до сих пор приходят ребята, которые даже гуи не понимают.
Статьи Сергея были хорошие, только его уже давно нет на хгм и многое из того, что там написано уже не актуально. К примеру он зачем то рекомендует сохранять в глобальную, потом кидать в локальную, потом возвращать назад. Не думаю, что в его время не было простого присвоения локальных.
2
29
5 месяцев назад
2
сравнил iterable с random access
С каких это пор итератор стал имманентен массиву? В том же JASS ни о каких итераторах никто не слышал.
К примеру он зачем то рекомендует сохранять в глобальную, потом кидать в локальную, потом возвращать назад.
Можно ссылочку на цитату? А то есть у меня чувства, что кое-кто использует для чтения неподобающий орган.
Видеоуроки
Просто шикарные видеоуроки:
Мы будем писать на чистом жасс и посему объявим глобалку в блоке globals.
0
20
5 месяцев назад
0
((цитата Из его статьи, самая первая :
....Итак, при помощи локальных переменных мы можем сохранить юнит-цель для каждого запуска заклинания файербол. А через некоторое время, равное времени полета файербола, мы должны создать на юните спецэффект. Мы делаем нужную паузу и затем помещаем в глобальную переменную unit ссылку на юнит из переменной u. И создаем спецэффект над юнитом из переменной unit.
Таким приемом мы можем гарантировать, что сколько бы файерболов не было выпущено, спецэффект будет создаваться над юнитом-целью и только над ним. Никаких сбоев не будет. Точно такой же прием с удалением спецэффекта через 3 секунды после создания. Все эти три секунды ссылка на спецэффект будет храниться в локальной переменной e. А затем мы перебросим ее значение в глобальную переменную se и удалим спецэффект....."
0
25
5 месяцев назад
Отредактирован konvan5
0
цитата Из его статьи, самая первая
И ничего, что там дальше написано:
Вообще говоря, в нашем примере можно обойтись и без глобальных переменных – одними локальными. Но проблема в том, что использование локальных переменных не предусмотрено в редакторе. Чтобы использовать эти переменные необходимо записывать команды на jass.
Человек говорит о совместной работе триггеров и jassа. Если писать на чистом jass то в этих случаях можно глобалки и не использовать :D
Не путаем контексты)

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

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

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

Вообще не понимаю, что там можно не понять с первого раза?
Сейчас я то понимаю что написано. Но ты не в состоянии (как всегда впрочем), поставить себя на место новичка, который никогда не сталкивался с кодом, и это джассовое безобразие является первым инструментом в этой сфере для него. Я могу себя поставить на место этих людей потому что я помню свои первые шаги, когда мне было совсем мало лет, и я помню эту статью, которая до сих пор вызывает кринж мозга
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.