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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
20
5 месяцев назад
0
Все исправил. Теперь только ругается что не заявлена локальная u ( которая боевая единица)
Где ее правильно заявить?
Загруженные файлы
0
25
5 месяцев назад
Отредактирован konvan5
0
Ты создал переменную, но она пустая. Где ты юнита берешь?

Тебе надо указать, чему равна переменная. Присвоить ей юнита.

Раньше ты делал вот так:
local unit u
set u = GetSpellTargetUnit()
Вот это действие SET устанавливает значение переменной, которое берется из GetSpellTargetUnit().
Видимо после переработки кода ты потерял эту строку...
0
20
5 месяцев назад
0
Все работает! Спасибо тебе, ДРУГ!)))
1
29
5 месяцев назад
1
Да я не спамлю, я пытаюсь быстрее ответить
Нормальное оформление занимает десяток секунд. Врятли за это время все разбегутся.
0
20
5 месяцев назад
0
nazarpunk:
Бывает, что на вопросы днями не отвечают. Никто так то и не обязан на них отвечать. Варкрафт - тема узконапоавленая, если тут не получу ответа то где? На Хайве еще с английского нужно перевести, да и варик 1.26 для них - прошлый век. ( не понять им русскую душу)
Ладно, я просто хочу довести до ума три версии своей карты. Эта тема закрыта, давно хочу понять хэш таблицу, она мне прямо очень нужна, но пока не понимаю. Это тема для следующего вопроса)
0
25
5 месяцев назад
0
давно хочу понять хэш таблицу, она мне прямо очень нужна, но пока не понимаю. Это тема для следующего вопроса)
Пс, тут есть великий секрет XGM! Зайдешь сюда, нажимая на эту никому-неизвестную кнопку, найдешь интересующую тебя тему, прочитаешь и вопросы все сами отпадут :)
(Для быстрого поиска по странице можно использовать комбинацию клавиш CTRL+F)
Загруженные файлы
0
20
5 месяцев назад
0
konvan5:
Я пытался. Это сложно. Я знаю, что хэш - таблица работает по принципу ключ- замок. То есть можно присвоить чему угодно в игре например номер, а потом по этому номеру его найти. Практики пока нет. Это долгая тема
0
29
5 месяцев назад
0
Пс, тут есть великий секрет XGM!
За раскрытие секретов XGM обычно плагается бан.

Я знаю, что хэш - таблица работает по принципу ключ- замок.
В первом приближении, которого достаточно для 99.9(9)% задач можно рассматривать её как двумерный массив.
0
25
5 месяцев назад
0
За раскрытие секретов XGM обычно плагается бан.
Ты ничего не видел :D
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:
Да. Главное что решили вопрос. Странно, что они смеются, хотя эти вопросы уже внутри изучения джасса, хотя до сих пор приходят ребята, которые даже гуи не понимают.
Статьи Сергея были хорошие, только его уже давно нет на хгм и многое из того, что там написано уже не актуально. К примеру он зачем то рекомендует сохранять в глобальную, потом кидать в локальную, потом возвращать назад. Не думаю, что в его время не было простого присвоения локальных.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.