Фаталит карта при вызове функции 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, так догадывался. но у меня она почему не работает. 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, а на голдкост предмета нет такой?
в крайнем случае лично посмотрю
26
ScopteRectuS, может ловить не юнит, а тип юнита, как для события Юнит начинает тренировку?
GetTrainedUnitType()
28
может ловить не юнит, а тип юнита, как для события Юнит начинает тренировку?
А он тип и ловит, функции принимают равкод юнита.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.