Некоторые нативки.
что делают сие нативки?
native StartThread takes code c returns nothing
native Sleep takes real returns nothing
native DisplayTextII takes integer i1,string s1, integer i2, integer i3 returns nothing
можно ли их использовать каким-то образом в коде ? первые 2 относятся к ИИ, но если их добавить в редактор, карта не вылетит. Третья сам не знаю откуда и где применяется.

Лучший ответ:
StartThread создает новый поток для текущего ИИ, прерывая текущий поток. Есть лимит в 6 потоков на 1 ИИ. Нет лимита на количество операций в потоке.
Sleep - безглючная пауза потока.(TriggerSleepAction в ИИ не работает)
DisplayTextII - ничего не делает. Предназначена для форматированного вывода. Работает только с отладочной версией game.dll, которая не распространяется. Переход в отладочный режим не требуется.
Непосредственно в war3map.j не работают. Но можно вынести в .ai безглючный бесконечный цикл без доступа к триггерам, предметам и декорациям. Пока еще никому это не понадобилось.
Есть несколько нативок из common.ai, которые работают в war3map.j, но только со стандартными юнитами. Возможно .slk тут поможет. Если вы не собираетесь делать ИИ или ставить рекорды по оптимизации кода, то ничего из common.ai вам не пригодится.


Views: 1 699

» Лучшие комментарии


quq_CCCP #1 - 5 years ago 0
Голосов: +0 / -0
Первая - создание потока, аналог ExecuteFunc() или TriggerExecute()
Вторая -пауза потока в ИИ, нахрена вам еще 1 TriggerSleepAction да и скорее всего будет фатал если юзать в common.j
Третья хз, мне хватает DisplayTextToPlayer....
Alexander12 #2 - 5 years ago 2
Голосов: +2 / -0
quq_CCCP:
Первая - создание потока, аналог ExecuteFunc() или TriggerExecute()
Вторая -пауза потока в ИИ, нахрена вам еще 1 TriggerSleepAction да и скорее всего будет фатал если юзать в common.j
Третья хз, мне хватает DisplayTextToPlayer....
есть ещё DisplayTextI и DisplayTextIII они не где не встречались. Кстати, если внимательно посмотреть на функции game.dll, можно без внешних прог добавить "скрытые нативки" пробую найти их
ENAleksey #4 - 5 years ago 0
Голосов: +0 / -0
Alexander12, эти функции объявлены в "common.ai":
native DisplayText          takes integer p, string str                 returns nothing
native DisplayTextI         takes integer p, string str, integer val    returns nothing
native DisplayTextII        takes integer p, string str, integer v1, integer v2 returns nothing
native DisplayTextIII       takes integer p, string str, integer v1, integer v2, integer v3 returns nothing
И, похоже, они работают только в debug mode.
Themis #5 - 5 years ago 5
Голосов: +5 / -0

StartThread создает новый поток для текущего ИИ, прерывая текущий поток. Есть лимит в 6 потоков на 1 ИИ. Нет лимита на количество операций в потоке.
Sleep - безглючная пауза потока.(TriggerSleepAction в ИИ не работает)
DisplayTextII - ничего не делает. Предназначена для форматированного вывода. Работает только с отладочной версией game.dll, которая не распространяется. Переход в отладочный режим не требуется.
Непосредственно в war3map.j не работают. Но можно вынести в .ai безглючный бесконечный цикл без доступа к триггерам, предметам и декорациям. Пока еще никому это не понадобилось.
Есть несколько нативок из common.ai, которые работают в war3map.j, но только со стандартными юнитами. Возможно .slk тут поможет. Если вы не собираетесь делать ИИ или ставить рекорды по оптимизации кода, то ничего из common.ai вам не пригодится.
nvc123 #7 - 5 years ago 0
Голосов: +0 / -0
если мне не изменяет память то можно юзать собственный common.j для доступа к функциям из common.ai
Alexander12 #8 - 5 years ago 0
Голосов: +0 / -0
native DebugS takes string s returns nothing
native DebugFI takes string s,integer i returns nothing
native DebugUnitID takes string s, integer i returns nothing
скорее всего тут дебаг включается
Themis #9 - 5 years ago 0
Голосов: +0 / -0
Забудьте про дебаг. Это миф. DebugS, DebugFI, DebugUnitID, DisplayText, DisplayTextI, DisplayTextII, DisplayTextIII, DoAiScriptDebug, DebugBreak - все они предназначены для программистов Близзард.
Весь режим отладки в том, что строка, перед которой поставлено КС debug (например debug call DoAnything()) выполняется.
Все это выпилено из релизной версии варкрафт.