function main takes nothing returns nothing
call Sleep( 2 ) <--- Чтобы удостовериться, что игра готова записать приветствие.
call DisplayTimedTextToPlayer( GetLocalPlayer(), 0.0, 0.0, 3600, "Hello World!" )
endfunction
То краш при инициализации карты.
Если подгружать этот файл пустым - краша нет. Крестьяне просто начинают добывать золото.
Если подгрузить в этот файл извлечённый из mpq код humans.ai - то он работает, краша нет.
Если в этот же файл в конце добавить код, что написан выше - игра крашится.
Значит дело в коде, а не в принципе его интеграции.
Я попытался вызвать просто:
call Sleep( 2 ) <--- Чтобы удостовериться, что игра готова записать приветствие.
Но получил краш. Добавил его к human.ai оригинальный - краш (хотя функция слипа там используется, и она не крашит).
Стерев русский текст - игра крашится перестала.
Теперь этот код:
function main takes nothing returns nothing
call Sleep( 2 )
call DisplayTimedTextToPlayer( GetLocalPlayer(), 0.0, 0.0, 3600, "Hello World!" )
endfunction
Не крашится.
Но и не исполняется.
Я не уверен, но возможно файл .ai не имеет доступа к функциям common.j. Ведь функция DisplayTimedTextToPlayer расположена там.
function main takes nothing returns nothing
call Sleep( 2 ) <--- Чтобы удостовериться, что игра готова записать приветствие.
call DisplayTimedTextToPlayer( GetLocalPlayer(), 0.0, 0.0, 3600, "Hello World!" )
endfunction
То краш при инициализации карты.
Если подгружать этот файл пустым - краша нет. Крестьяне просто начинают добывать золото.
Если подгрузить в этот файл извлечённый из mpq код humans.ai - то он работает, краша нет.
Если в этот же файл в конце добавить код, что написан выше - игра крашится.
Значит дело в коде, а не в принципе его интеграции.
Я попытался вызвать просто:
call Sleep( 2 ) <--- Чтобы удостовериться, что игра готова записать приветствие.
Но получил краш. Добавил его к human.ai оригинальный - краш (хотя функция слипа там используется, и она не крашит).
Стерев русский текст - игра крашится перестала.
Теперь этот код:
function main takes nothing returns nothing
call Sleep( 2 )
call DisplayTimedTextToPlayer( GetLocalPlayer(), 0.0, 0.0, 3600, "Hello World!" )
endfunction
Не крашится.
Но и не исполняется.
Я не уверен, но возможно файл .ai не имеет доступа к функциям common.j. Ведь функция DisplayTimedTextToPlayer расположена там.
замечание от EugeAl: 1.5 Злоупотребление форматированием. Здесь нужно код всегда писать в формате кода, чтобы другие люди, если что, могли скопировать код через кнопку.
Кажется очевидным, что это не работает, так как ИИ компьютера начинает обычное строительство.
То есть стандартный ИИ переписывает мой ИИ.
Но в случае если я уберу код из mpq архива в файле human.ai и заменю на эти строки, то карта просто не запускается.
Если создать папку Scripts, которой по умолчанию нету, и туда закинуть файл human.ai, а в пути убрать слэш с “\Scripts\human.ai” на “Scripts\human.ai”, то при выборе расы компьютеру альянса - игра просто крашит при завершении загрузки карты.
При выборе другой расы - всё нормально.
Можно предположить, что теперь происходит чтение этого ai файла. Но происходит краш
EugeAl, я заменил, но он не обновляет даже стандартные функции из файла
Разобрался.
В правой колонке, которая называется Native List в самом низу есть кнопка "Show Options". Там нужно поставить галочку на обновлённый файл "common.ai". С другими, наверное также будет
IzobretatelBoom, Многий, это какой?
Я читал статью перед публикацией этой темы, и там вроде речь шла только про утечку из глобальных переменных. В редакторе триггеров локальную не создать
» WarCraft 3 / Как начать писать свой код ИИ?
Даже если они закомментированы.
» WarCraft 3 / Вывод сообщения на экран о количестве юнитов (I2S не работает в ИИ)
В этом случае передаётся (null)
» WarCraft 3 / Вывод сообщения на экран о количестве юнитов (I2S не работает в ИИ)
Варкрафтовская, стандартная функция из движка
Ред. Svintus
» WarCraft 3 / Как начать писать свой код ИИ?
» WarCraft 3 / Как начать писать свой код ИИ?
Ред. Svintus
» WarCraft 3 / Как начать писать свой код ИИ?
call Sleep( 2 ) <--- Чтобы удостовериться, что игра готова записать приветствие.
call DisplayTimedTextToPlayer( GetLocalPlayer(), 0.0, 0.0, 3600, "Hello World!" )
endfunction
Если подгружать этот файл пустым - краша нет. Крестьяне просто начинают добывать золото.
Если подгрузить в этот файл извлечённый из mpq код humans.ai - то он работает, краша нет.
Если в этот же файл в конце добавить код, что написан выше - игра крашится.
Я попытался вызвать просто:
call Sleep( 2 ) <--- Чтобы удостовериться, что игра готова записать приветствие.
Но получил краш. Добавил его к human.ai оригинальный - краш (хотя функция слипа там используется, и она не крашит).
Теперь этот код:
function main takes nothing returns nothing
call Sleep( 2 )
call DisplayTimedTextToPlayer( GetLocalPlayer(), 0.0, 0.0, 3600, "Hello World!" )
endfunction
Но и не исполняется.
Я не уверен, но возможно файл .ai не имеет доступа к функциям common.j. Ведь функция DisplayTimedTextToPlayer расположена там.
» WarCraft 3 / Как начать писать свой код ИИ?
Так я именно это и делаю, что изучаю как работает ИИ. Нашёл статью, и по ней пытаюсь запустить первые функции. Которые не работают
Ред. Svintus
» WarCraft 3 / Как начать писать свой код ИИ?
common.ai есть в war3.mpq, в War3Patch.mpq, в War3x.mpq и все они разные. Какой из них используется?
» WarCraft 3 / Как начать писать свой код ИИ?
А как мне понять, что такой функции нет? Я импортировал список функций из движка в JassCraft, и там отображается, что она есть
» WarCraft 3 / Как начать писать свой код ИИ?
» WarCraft 3 / Как начать писать свой код ИИ?
Жаль что не получилось добиться нужного результата, но спасибо за проявленный интерес!
» WarCraft 3 / Как начать писать свой код ИИ?
» WarCraft 3 / Как начать писать свой код ИИ?
» WarCraft 3 / Как начать писать свой код ИИ?
То есть стандартный ИИ переписывает мой ИИ.
Но в случае если я уберу код из mpq архива в файле human.ai и заменю на эти строки, то карта просто не запускается.
При выборе другой расы - всё нормально.
Можно предположить, что теперь происходит чтение этого ai файла. Но происходит краш
» WarCraft 3 / Как начать писать свой код ИИ?
Можно проверить это в карте
» WarCraft 3 / Запрос актуальной информация по моддингу warcraft 3 TFT
В правой колонке, которая называется Native List в самом низу есть кнопка "Show Options". Там нужно поставить галочку на обновлённый файл "common.ai". С другими, наверное также будет
Ред. Svintus
» WarCraft 3 / Запрос актуальной информация по моддингу warcraft 3 TFT
» WarCraft 3 / Запрос актуальной информация по моддингу warcraft 3 TFT
Или предстоит самостоятельно изучать их?
» WarCraft 3 / Запрос актуальной информация по моддингу warcraft 3 TFT
Я читал статью перед публикацией этой темы, и там вроде речь шла только про утечку из глобальных переменных. В редакторе триггеров локальную не создать
» WarCraft 3 / Запрос актуальной информация по моддингу warcraft 3 TFT
В JassCraft есть не все функции. Их можно как то обновить или добавить?
» WarCraft 3 / Запрос актуальной информация по моддингу warcraft 3 TFT
» WarCraft 3 / Запрос актуальной информация по моддингу warcraft 3 TFT
» WarCraft 3 / Запрос актуальной информация по моддингу warcraft 3 TFT
Спустя около 3-4х минут там появились файлы.
» WarCraft 3 / Запрос актуальной информация по моддингу warcraft 3 TFT
Он показывает, что папка Scripts пустая
» WarCraft 3 / Отряды
Капец. А я два дня мучался....