По итогу, получаю: вместо юнита, который должен был создаться (dummy), ничего не создается, а холлиболт дается любому другому созданному юинту. Что, собственно, делать? Как сделать так, чтобы он давался dummy? Ошибок jngp, к слову, не выдает.
Сообщение отредактировал Samedy_ - Четверг, 01 Октября 2015, 23:42:09
Эта функция, возвращает значение, содержащееся в глобальной переменной bj_lastCreatedUnit. Вот код этой функции:
Код
function GetLastCreatedUnit takes nothing returns unit return bj_lastCreatedUnit endfunction
Последний созданный юнит, записывается в переменную bj_lastCreatedUnit, кодом соответствующих BJ-функций, например CreateNUnitsAtLoc. Используемая тобой функция CreateUnitAtLoc являтся нативной, то есть, без каких-либо дополнительных действий с jass-переменными или функциями, она не присваивает значение переменной bj_lastCreatedUnit, которое ты получаешь вызывая функцию GetLastCreatedUnit. А значит, на момент вызова GetLastCreatedUnit, переменная bj_lastCreatedUnit имет значение null, либо значение любого другого созданного ранее юнита.
Присваивай значение переменной dummy в момент ее объявления
Код
local unit dummy = CreateUnitAtLoc(Player(pId), 'e000', loc, bj_UNIT_FACING)
Не используй нативные функции вперемешку с BJ-функциями, во избежание подобных прьблем.
Как я понял, надо создать даммика и дать ему x-способность. такс, делаю по памяти:
С использованием Location:
Код
function UnitAddBuff takes integer pId, unit tUnit, location loc, integer buffId, string orderId returns nothing local unit dummy = CreateUnitAtLoc(Player(pId), 'e000', loc, 270.0) call UnitAddAbilityBJ(buffId, dummy) call IssueTargetOrderBJ(dummy, orderId, tUnit) call RemoveLocation(loc) set loc = null set dummy = null endfunction
С использованием точек:
Код
function UnitAddBuff takes integer pId, unit tUnit, real x, real y, integer buffId, string orderId returns nothing local unit dummy = CreateUnit(Player(pId), 'e000', x, y, 270.0) call UnitAddAbilityBJ(buffId, dummy) call IssueTargetOrderBJ(dummy, orderId, tUnit) set dummy = null endfunction
А вообще я бы в этих функциях не обнулял и возвращал дамми юнита. Иначе ты их попросту не сможешь использовать в дальнейшем.
Тискаю клаву... остальных пока некогда!
Сообщение отредактировал Kaotika - Суббота, 03 Октября 2015, 20:11:37