Фаталит карта при вызове функции GetConstructedStructure() или GetTriggeringUnit() в потоке триггера, который был вызван отловом события EVENT_PLAYER_UNIT_CONSTRUCT_FINISH.
Регистрация события идёт следующим образом:
library RegisterAnyUnitEvent initializer onInit


    globals
        private  trigger  array  triggers
    endglobals


    function RegisterAnyUnitEvent takes playerunitevent whichPlayerUnitEvent, code actionFunc returns nothing
        local integer index = GetHandleId(whichPlayerUnitEvent)

        if (triggers[index] == null) then
            set triggers[index] = CreateTrigger()

            call TriggerRegisterPlayerUnitEvent(triggers[index], Player(0), whichPlayerUnitEvent, null)
            call TriggerRegisterPlayerUnitEvent(triggers[index], Player(1), whichPlayerUnitEvent, null)
            call TriggerRegisterPlayerUnitEvent(triggers[index], Player(2), whichPlayerUnitEvent, null)
            call TriggerRegisterPlayerUnitEvent(triggers[index], Player(3), whichPlayerUnitEvent, null)
            call TriggerRegisterPlayerUnitEvent(triggers[index], Player(4), whichPlayerUnitEvent, null)
            call TriggerRegisterPlayerUnitEvent(triggers[index], Player(5), whichPlayerUnitEvent, null)
        endif

        call TriggerAddAction(triggers[index], actionFunc)
    endfunction


endlibrary
Логи приложил.

ScopteRectuS, насколько я помню, эти 2 функции вызывают ошибку, если в параметре идентификатор героя.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
27
ScopteRectuS, эта функция GetUnitGoldCost не стандартна, это вы ее написали?
21
Steal nerves, нет не я. она из common.ai
native GetUnitWoodCost takes integer unitid returns integer
native GetUnitGoldCost takes integer unitid returns integer
27
ScopteRectuS, так догадывался. но у меня она почему не работает. jasshelper ругается (ее можно запустить?)
ничего не могу поделать. ждем умнейших
21
Steal nerves, чтобы она заработала нужно её объявить, где-нибудь написав:
((
native GetUnitWoodCost takes integer unitid returns integer
native GetUnitGoldCost takes integer unitid returns integer
))
13
Такое бывает, если у юнита есть что-то недопустимое в редакторе объектов (помню как-то делал перевоплощение в юнита, который в свою очередь тоже перевоплощался) - в итоге от размещения подобного юнита на карте (соответственно, ввиду его создания и прогрузки способностей) карта фаталила сразу. Думаю, может стоит РО проверить? Просто юнит при строительстве не будет обладать глючной способностью, что и даст фатал в момент ее обретения при завершении строительства.
21
Пушистый, Фатал происходит не из-за юнита, а из-за функций GetUnitGoldCost() и GetUnitWoodCost().
Вернее когда этот юнит и эти функции встречаются с друг другом
.
1
ScopteRectuS, насколько я помню, эти 2 функции вызывают ошибку, если в параметре идентификатор героя.
Принятый ответ
13
ScopteRectuS, ранее функции ai работали (так как они были даже основой мемхака). Может, в РО какая-то некорректная для вывода стоимость?
21
чет не пойму, так это че, есть стандартные функции определения голдкоста и "древесного коста"?
мб потому близзы их и отрубили, что нашлись косяки и времени фиксить не было
21
PT153, а на голдкост предмета нет такой?
в крайнем случае лично посмотрю
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.