Созданный Melee AI часто отступает
Приветствую всех, подскажите - я создал своего мелее ИИ, поставил галочку (чтобы он иногда отступал).
Но он отступает почти всегда! Даже когда у него оч много армии!
Можно ли как нибудь триггерно посылать в атаку, когда лимит, к примеру, будет 80.

Лучший ответ:
Посылать триггерно можно будет после небольшой правки JASS кода ИИ.
Да, только по лвлу. Если достаточно редактора ИИ, то да подбирать лвл его войск и нужно. Или убрать галочку.
Или же растоптать свою гордость и влезть в код ИИ, вставив эти строки:
    if GetPlayerState(Player(GetAiPlayer()),PLAYER_STATE_RESOURCE_FOOD_USED)> 79 then
        call SetHeroesFlee(false)
        call SetIgnoreInjured(false)
        call SetUnitsFlee(false)
        call SetGroupsFlee(false)
    elseif GetPlayerState(Player(GetAiPlayer()),PLAYER_STATE_RESOURCE_FOOD_USED) < 76 then
        call SetHeroesFlee(true)
        call SetIgnoreInjured(true)
        call SetUnitsFlee(true)
        call SetGroupsFlee(true)
    endif
Где, SetHeroesFlee - разрешает героям уходить из под ассиста. (2 шага назад и снова в бой)
SetIgnoreInjured - убегают домой те и кого здоровья меньше половины.
SetUnitsFlee - разрешает негероям уходить из под ассиста.
SetGroupsFlee - все войска убегают от более сильного врага. Проверяются только уровни.


Views: 1 122

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


SamuraiKing #2 - 5 years ago -8
Голосов: +0 / -8
вот так можно
Прикрепленные файлы
ssbbssc #3 - 5 years ago 0
Голосов: +0 / -0
SamuraiKing:
в итоге у тебя побегут в бой даже рабочие, и триггер сработает только тогда, когда будет меняться потребление пищи
фигню предложил
Fraps #4 - 5 years ago 0
Голосов: +0 / -0
Хм мне вот интересно... А по каким критериям этот комп определяет у кого лучше армия? Может по лвлу?
Тогда я просто могу в редакторе могу сделать лвл его войск высоком, и он меньше будет отступать...
И вот я подумал... У меня же стоит флажек чтобы ИИ помогал своим.
Что если когда комп наберет 80 лимита, то создать невидимую союзную ратушу на базе врага, комп же будет пытаться её защитить и начнет атаковать?
ssbbssc #5 - 5 years ago 0
Голосов: +0 / -0
есть предла внимательнее пошерстить редактор ИИ, почитать статьи, а не писать костыли)
ну не может быть, чтобы нельзя было нормально сделать
nvc123 #6 - 5 years ago 0
Голосов: +0 / -0
ssbbssc, это вар3 так что возможно всё
ну вообще стоит глянуть код твоего AI
но для этого нужно знать джасс
а ты его походу не знаешь
а мне лень копаться в твоём коде
но если всё же выучишь то посмотри common.ai
там все функции по работе с ai
Themis #7 - 5 years ago (изм. ) 4
Голосов: +4 / -0

Посылать триггерно можно будет после небольшой правки JASS кода ИИ.
Да, только по лвлу. Если достаточно редактора ИИ, то да подбирать лвл его войск и нужно. Или убрать галочку.
Или же растоптать свою гордость и влезть в код ИИ, вставив эти строки:
    if GetPlayerState(Player(GetAiPlayer()),PLAYER_STATE_RESOURCE_FOOD_USED)> 79 then
        call SetHeroesFlee(false)
        call SetIgnoreInjured(false)
        call SetUnitsFlee(false)
        call SetGroupsFlee(false)
    elseif GetPlayerState(Player(GetAiPlayer()),PLAYER_STATE_RESOURCE_FOOD_USED) < 76 then
        call SetHeroesFlee(true)
        call SetIgnoreInjured(true)
        call SetUnitsFlee(true)
        call SetGroupsFlee(true)
    endif
Где, SetHeroesFlee - разрешает героям уходить из под ассиста. (2 шага назад и снова в бой)
SetIgnoreInjured - убегают домой те и кого здоровья меньше половины.
SetUnitsFlee - разрешает негероям уходить из под ассиста.
SetGroupsFlee - все войска убегают от более сильного врага. Проверяются только уровни.
Fraps #9 - 5 years ago (изм. ) 0
Голосов: +0 / -0
Themis, хм я вставил это в помощью Notepad++ фаил .ai, просто вставляю это в низ. Но в самой игре AI перестает что либо делать...
Куда именно там это написать?