Добавлен scopterectus
Во многих ресурсах из хайвы заметил такой код:
private module Init
private static method onInit takes nothing returns nothing
set rx = GetRectMaxX(bj_mapInitialPlayableArea) - 1
set ry = GetRectMaxY(bj_mapInitialPlayableArea) - 1
set reviver = CreateUnit(Player(15), DUMMY, rx, ry, 0)
call SetUnitPathing(reviver, false)
call UnitAddAbility(reviver, RESURRECT)
endmethod
endmodule
struct Revive extends array
/* For backwards compatibility */
static method Unit takes unit whichUnit returns boolean
return ReviveUnit(whichUnit)
endmethod
implement Init
endstruct
Зачем это нужно? Почему нельзя инициализировать через initializer библиотеки или области?
Принятый ответ
Module Initializers are used because they run first :p
After module initializers -> struct initializers
After that -> library initializers
After that -> scope initializers
After that -> ... nothing :p
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Насрать каким образом вы будите подгружать что либо, кому как удобнее.
как хотят, так и делают
При старте карты функция main. В скрипте вызывается первой, в нее переносятся функции инициализации библиотек, а некоторые оптимизаторы сливают туда вовсе весь код из InitTrig_.функций.
Отредактирован Doc