Через триггеры можно включить ИИ для игрока, а если нужно для конкретных рас, то, как вариант, можно пройтись по всем игрокам, сверяя их расу и включая ИИ, если оно требуется.
human.ai, orc.ai, undead.ai, elf.ai - вроде такие названия имеют файлы с ИИ для каждой расы.
VuRdaLaK1337, в таком случае вот вам ответ. Если переменная записана в аргументах функции, то при стандартном вызове в C++ (_cdecl) все аргументы передаются через стэк. В случае, если вы объявляете переменную внутри функции, она может быть локальной - обнуляться при повторном вызове функции (не работает с массивами), либо статичной (при объявлении указано static). Статичная переменная в данном случае будет в области видимости этой функции, но при этом будет сохранять свои значения при повторном вызове. Пример:
#include <cstdio>
int a() {
static int i = 0;
printf("%d\n", i++);
return i;
}
int main() {
while(a() < 10);
return 0;
}
Получается, если я хочу использовать эти функции в war3map.j, я должен их каким-то образом загрузить заранее?
Всё верно. Можно их прописать вверху war3map.j (как делал ENAleksey в картах RenderEdge), в common.j (как делают китайцы, сам иногда также делаю), хукнуть метод выделения памяти варика, когда выделяется память под файлы скриптов, увеличить её на N количество символов, куда потом вы добавите свои обьявления (чтобы не обьявлять их в common.j явно), ну и последний вариант. В варике все скрипты преобразуются в коды операций, каждая из которых состоит из 8 байт, первые 4 являются самой операцией, а оставшиеся 4 - это значение. Таким образом вы можете как создать свой триггер, так и обьявить функцию.
Вот вам типы данных и структуры, которые пригодятся, если вы воспользуетесь последним способом:
Ред. Ev3nt
» WarCraft 3 / Поделитесь кто нибудь фаилами ИИ на основные расы режима Melee
Ред. Ev3nt
» Warcraft III - Lua / Warcraft III - Lua
Ред. Ev3nt
» Программирование / Какое отличие у этих двух локальных переменных ( C )
Ред. Ev3nt
» Программирование / Какое отличие у этих двух локальных переменных ( C )
» WarCraft 3 / Движение наводящегося снаряда
» XGM Team / Новый 2022
» XGM Team / Новый 2022
» Warcraft III - Lua / Warcraft III - Lua
» Warcraft III - Lua / Warcraft III - Lua
» Warcraft III - Lua / Warcraft III - Lua
» Warcraft III - Lua / Warcraft III - Lua
Ред. Ev3nt
» Warcraft III - Lua / Warcraft III - Lua
» Warcraft III - Lua / Warcraft III - Lua
» XGM — Премия года / XGM — Премия 2021 года
» Программирование / Ошибка в Коде
» WarCraft 3 / YDWE - Китайский редактор карт
» WarCraft 3 / YDWE - Китайский редактор карт
» WarCraft 3 / YDWE - Китайский редактор карт
Ред. Ev3nt
» WarCraft 3 / Синхронизируем данные через gamecache
» WarCraft 3 / Синхронизируем данные через gamecache
» WarCraft 3 / Lua в WarCraft III
» RadikalRagnarok / RadikalRagnarok
» XGM Team / Хунта снова у власти
Ред. Ev3nt
» WarCraft 3 / Новые нативки для мемхака.
» WarCraft 3 / Как конвентировать объекты w3o на slk таблицу?