Использую AngelScript
При вызове DisplayTextToForce() у меня крашит игру, предположительно потому что в ней есть нативные функции, которые находятся в common.j, с которым я незнаю что делать (его же не нужно импортировать, верно? (хотя я и пробывал) Он уже есть в варкрафте по нужному расположению)
Причём парсер AngelScriptParser.exe показывает что всё нормально и ошибок нет - ссылка на парсер - github.com/UnryzeC/WC3_AngelScript/tree/main/Parser
Скинул 2 файла (в комментарии, тут чё-то не получается), 1 - основой (там слегка изменёный код из примера на сайте с документацией) и 2 - мой, там просто DisplayTextToForce() с другим названием, который конечно же так же крашит
Думаю что проблема в том что я чего-то не понимаю и где-то ошибся
Как правильно всё подключить, чтобы стандартные функции, не крашили? Помогите пожалуйста

Стандартные функции написаны на Jass
Чтобы стандартные JASS функции (не относится к нативкам, а относится например к DisplayTextToForce) не крашили на AngelScript, нужно их полностью переписать на этом же AngelScript, потому что это всё-таки 2 разных языка программирования с разным синтаксисом
`
ОЖИДАНИЕ РЕКЛАМЫ...
8
Вот файлики, там вместо двух файлов появлялась 1 большая кнопка скачать и чё-то у меня затуп произошёл
Загруженные файлы
Ответы (8)
15
Tredor46, больше не крашает если убрать
TriggerSleepAction(2.f)
я вообще таймеры юзаю вместо таких функций и живу счастливо, там таких отстрелов не случается.
Но основная проблема, по-видимому, в GetPlayersAll, это вспомогательная функция из blizzard.j , не знаю почему именно она фаталит именно при задержке триггера, но в любом случае я советую вообще никаким функционалом из blizzard.j не пользоваться, там полно косяков, и, видимо, здешняя реализация AngelScript его не особо поддерживает. (GetPlayersAll возвращает пустую группу игроков, например)
8
fenathesnake, а без него у меня ничего на экран и не выводится, так как карта ещё не успевает доиницилизорваться, поэтому функция там и не срабатывает и не крашит
Сейчас перепишу через таймер, я тоже обычно пишу всё через таймеры, просто тут новый язык для меня, решил быстро протетстить
8
fenathesnake, Ну теперь чуть лучше, оно теперь не крашит, а просто у меня не выводится (именно DisplayTextToForce)
Остальное выводится
Загруженные файлы
15
Tredor46, как и писал, GetPlayersAll возвращает пустую группу игроков, потому что функции из blizzard.as, видимо, не работают или не работают как надо. Используй нормальные нативки.
15
fenathesnake, например так (код не проверял пишу из памяти)
force allPlayers = CreateForce();
for(int i = 0; i < 12; i++) ForceAddPlayer(allPlayers, Player(i));
15
Tredor46, которые в common.j
они перечислены, например, здесь: github.com/UnryzeC/UjAPI/blob/main/uJAPIFiles/common.j
(по ссылке все нативки, и ванилльные и ujapi, этим этот список удобен)
Если используешь JNGP то там в редактировании кода и в списке функций нативки из blizzard.j помечаются красным цветом, а из common.j фиолетовым.
Для Visual Studio Code есть плагин для AngelScript (скачать можно в самом vscode) который все неверные нативки перечеркивает красным.
Загруженные файлы
8
fenathesnake, Минуточку, до меня только сейчас дошло, DisplayTextToForce() это же jass функция, она вообще не должна работать на другом языке (AngelScript), вот это я рыбка адун
8
Стандартные функции написаны на Jass
Чтобы стандартные JASS функции (не относится к нативкам, а относится например к DisplayTextToForce) не крашили на AngelScript, нужно их полностью переписать на этом же AngelScript, потому что это всё-таки 2 разных языка программирования с разным синтаксисом
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.