AI редактор и дирижабли
как в редакторе ИИ указать чтобы ИИ пользовалась дирижаблем
например сделал я воду ИИ прописал (указал волны атаки) все -но ИИ всеравно не использовала дирижабль а тупо стояли хотя дирижабль был у них
когда поставил мост все без проблем нападали волны,как мост убрал все ии даже если был дирижабль стояли и нечего не делали
прообовал и в волны вписывать атакующим и дирижабль и войска-все бесполезно
Подскажите как правильно это делаеться что я нет так делал то?
Как через редактор AI(ИИ) заставить искуственный интелект использовать дирижабль гоблинов для переправы через воду
МНЕ это нужно для компании
например сделал я волну 4 вурдалака создал дирижабль дальше должны они сесть в него и лететь через воду-но они нечего неделают
вот и хочу знать как это делаеться в редакторе ии

Лучший ответ:
Dimari93, во первых
для того чтобы написать комментарий не надо цитировать предыдущий
во вторых
ai файл это файл с джасс кодом
не знаешь джасс - ничего не поймёшь в ai и следовательно не сможешь модифицировать
в общем все возможные ответы даны и разжёвано так что любой знающий основы джасс поймёт
вопрос закрыт


Views: 4 748

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


ssbbssc #1 - 5 years ago 0
Голосов: +1 / -1
да их обычный комп юзает, если бить его юниты с возвышенности, он дирижаблем сбросит войск тебе на голову
Dimari93 #2 - 5 years ago 0
Голосов: +0 / -0
ssbbssc:
да их обычный комп юзает, если бить его юниты с возвышенности, он дирижаблем сбросит войск тебе на голову
юзает не всегда я сделал 2 базы и воду между ними это в наработке- так и проверил сделал волну где 4 вурдалака должны напасть на меня и дирижабль был я даже пробовал тот же транспортный корабль нежити ставить они сами несадяться в него и нелетят на базу мою что только не делал невкакую нелетят как писал даже дирижабль добовлял в волну мою невкакую в него не садяться-пробовал ставить мост и волну делать с дерижаблем тогда происохдит такая вещь 1 дерижабль летит только не садит в него юнитов.юниты идут пешком
Может кто подскажет поточнее как заставить ии посадить войска в дерижабль и атаковать мою базу-в близардовских компаниях такое было
так же кто помнит компанию король мертвых была мисия битва в айронфорже-как то та-где комп прилетал на дерижабле и высаживал юнитов-
вот как так сделать что указать нужно ?
может что то прописывать в тригерах надо еще?
quq_CCCP #3 - 5 years ago 0
Голосов: +0 / -0
Для ии создавать их надо триггерно, или сделать продаваемыми в ратуше (так в компании у всех ИИ)
Тогда ии купит себе дирижабли.
Dimari93 #4 - 5 years ago (изм. ) 0
Голосов: +0 / -0
quq_CCCP:
Для ии создавать их надо триггерно, или сделать продаваемыми в ратуше (так в компании у всех ИИ)
Тогда ии купит себе дирижабли.
пробовал я уже и так,ии их делал в ратуше- но ии их не использовал(хотя я даже в волну прописывал в атаку дерижабли и прописывая и непрописывая не использует он их
а тригерно как правильно использовать?
напишите этот тригер
или раскажите как близардовцы это сделали или как это любители сделали в карте король мертвых
Mrachny #5 - 5 years ago 0
Голосов: +0 / -0
Он должен сам купить его из магазина . Когда ему это понадобится . Таким образом , как ты сделал , он не всегда будет работать .
Themis #6 - 5 years ago (изм. ) 4
Голосов: +4 / -0
ssbbssc, Ваш код обычного компа великолепен, я позаимствую из него управление дирижаблем.
В редакторе ИИ никак. Нужно редактировать получившийся файл .ai вручную.
Взгляните в окошко Приоритеты целей из вкладки Атака. Прикиньте для каких целей нужен дирижабль.
Закройте WE. Откройте карту редактором MPQ(WinMPQ). Переименуйте .wai, откройте .ai
Найдите функцию LaunchAttack. В этой функции каждой цели соответствует строчка Target Priority #
Ниже следующего set нужно вставить свою строку call LoadZepWave(GetWidgetX(target),GetWidgetY(target))
Пример:
Первая цель - Обычная цель
Код:
function LaunchAttack takes nothing returns nothing
    local unit target = null
    local boolean setAlly = true

    // Don't launch any attack while town is threatened
    if (TownThreatened()) then
        call Sleep( 2 )
        return
    endif

    // Target Priority #1
    if (target == null) then
        set target = GetAllianceTarget()
        if (target != null) then
            set setAlly = false
            call LoadZepWave(GetWidgetX(target),GetWidgetY(target))
        endif
    endif

LoadZepWave работает со сбоями(вместо цели летит на базу или в центр карты; загружает/высаживает не всех). Альтернатива - триггерно отбирать войска у ИИ, по одному усаживать каждого юнита в дирижабль и так далее.
Mrachny, не верно
Fraps #8 - 5 years ago 0
Голосов: +0 / -0
Dimari93:
quq_CCCP:
Для ии создавать их надо триггерно, или сделать продаваемыми в ратуше (так в компании у всех ИИ)
Тогда ии купит себе дирижабли.
пробовал я уже и так,ии их делал в ратуше- но ии их не использовал(хотя я даже в волну прописывал в атаку дерижабли и прописывая и непрописывая не использует он их
а тригерно как правильно использовать?
напишите этот тригер
или раскажите как близардовцы это сделали или как это любители сделали в карте король мертвых
а ты в редакторе ИИ добавил эти войска в отряд? Ну дерижабли. Что бы он знал, что их можно использовать.
Это сообщение удалено
Themis #11 - 5 years ago 4
Голосов: +4 / -0
Неважно как появился дирижабль. Добавление дирижабля в войско дает лишь то, что он всегда будет рядом, в том числе под огнем противника.
Dimari93, в той кампании тоже вызывается LoadZepWave.
А раз слишком сложно, то получай более правильный вариант.
call LoadZepWave(I2R(GetWidgetX(target)),I2R(GetWidgetY(target)))
Dimari93 #12 - 5 years ago (изм. ) -2
Голосов: +0 / -2
Themis:
Неважно как появился дирижабль. Добавление дирижабля в войско дает лишь то, что он всегда будет рядом, в том числе под огнем противника.
Dimari93, в той кампании тоже вызывается LoadZepWave.
А раз слишком сложно, то получай более правильный вариант.
call LoadZepWave(I2R(GetWidgetX(target)),I2R(GetWidgetY(target)))
будь добр напиши
этот код готовым как он будет выглядеть я его скопирую и вставлю в свою карту
мне надо чтобы дерижабль с войсками врага летел на мою базу и скидывал войска или хотябы войска врага переправлял через воду
Dimari93:
Themis:
Неважно как появился дирижабль. Добавление дирижабля в войско дает лишь то, что он всегда будет рядом, в том числе под огнем противника.
Dimari93, в той кампании тоже вызывается LoadZepWave.
А раз слишком сложно, то получай более правильный вариант.
call LoadZepWave(I2R(GetWidgetX(target)),I2R(GetWidgetY(target)))
впинципе я понел как-я написал тебе в лс ответь
хочу уточнить кое что -что я не так делаю то....
РАскажите как через MPQ(WinMPQ правильно отредактировать фаилы
если можно сделайте видео и покажите или распишите все тут как правильно все делаеться
я вроде редактировал то не сохраняет а если wai переименовываю то он вообще становиться нерабочим при следующим импортировании в карту,или я может что делаю не так?
ai я редактировал строчку добавил эту но оно не сохраняеться продовал сохранять на раб стол .....может я не так что делают раскажите подробнее
Themis #13 - 5 years ago 1
Голосов: +1 / -0
WinMPQ должен быть версии 1.66.
Карта не должна быть открыта в WE или выбрана в варе.
Каждый раз при сохранении карты WE перезаписывает .ai, чтобы этого не происходило нужно переименовать или исключить из карты .wai
Алгоритм редактирования:
1 Open (открыть карту)
2 Выбрать файл
3 Extract (извлечь)
4 Отредактировать извлеченный файл
5 Щелкнуть в WinMPQ для редактирования имени файла
6 Скопировать имя
7 Delete (удалить)
8 Add (добавить отредактированный)
9 Переименовать, вставив скопированное имя
Есть много других более удобных прог для mpq, но эта меня еще ни разу не подвела.

В случае с ИИ WinMPQ не нужен, все можно сделать в менеджере импорта WE.

Моя подсказка оказалась не верной. LoadZepWave в версии 1.26 не работает. Не помню, как было раньше.
Вставлять нужно:
	if (target != null) then
            call CommonSuicideOnPlayer(true,true,0,GetOwningPlayer(target),0,0)
            return
        endif
Dimari93 #14 - 5 years ago 0
Голосов: +0 / -0
Themis:
WinMPQ должен быть версии 1.66.
Карта не должна быть открыта в WE или выбрана в варе.
Каждый раз при сохранении карты WE перезаписывает .ai, чтобы этого не происходило нужно переименовать или исключить из карты .wai
Алгоритм редактирования:
1 Open (открыть карту)
2 Выбрать файл
3 Extract (извлечь)
4 Отредактировать извлеченный файл
5 Щелкнуть в WinMPQ для редактирования имени файла
6 Скопировать имя
7 Delete (удалить)
8 Add (добавить отредактированный)
9 Переименовать, вставив скопированное имя
Есть много других более удобных прог для mpq, но эта меня еще ни разу не подвела.

В случае с ИИ WinMPQ не нужен, все можно сделать в менеджере импорта WE.

Моя подсказка оказалась не верной. LoadZepWave в версии 1.26 не работает. Не помню, как было раньше.
Вставлять нужно:
	if (target != null) then
            call CommonSuicideOnPlayer(true,true,0,GetOwningPlayer(target),0,0)
            return
        endif
я правильно понимаю фаил wai нужно переименовать в любое название да?
потом ai извлечь в папку куда нибудь
зайти в ai - а вот теперь вопрос -напиши будь добр код от Target Priority #1 измененный полностью до Target Priority #2 чтобы я понел как код полностью выглядит
потом удалить старый ai верно? и запихнуть отредактированный?
потом нужно фаил wai переименовывать обратно или нет?
и нужно ли фаилы wai и ai извлечь отдельно потом и потом заново импортировать в карту?
потятнее было бы если бы я мог бы тебе это показать скринами (например в вк-или ты мне все показать там же) и ты бы сказал все ли так я делаю
или если бы ты снял видео то потянее было бы тоже-я сам то с ютуба всему и учусь основному в редакторе+некоторые и сам делаю
2)В случае с ИИ WinMPQ не нужен, все можно сделать в менеджере импорта WE.
а в менеджере то так?
nvc123 #15 - 5 years ago 2
Голосов: +2 / -0
Dimari93, ты не по тупым видеогайдам учись а по статьям и примерам
это намного полезнее
Dimari93 #16 - 5 years ago (изм. ) 0
Голосов: +0 / -0
nvc123:
Dimari93, ты не по тупым видеогайдам учись а по статьям и примерам
это намного полезнее
а видеогайдов по ИИ нормальных я невидел так што вот и учусь по статьям -решил освоить атаку с переправой на дерижабле-и тут застрял ибо мне нужно подробное описание-чтобы не перепутать нечего потом
знать как этот код пишеться полностью на любой Target Priority #
если бы кто помог.......
Dimari93:
nvc123:
Dimari93, ты не по тупым видеогайдам учись а по статьям и примерам
это намного полезнее
а видеогайдов по ИИ нормальных я невидел так што вот и учусь по статьям -решил освоить атаку с переправой на дерижабле-и тут застрял ибо мне нужно подробное описание-чтобы не перепутать нечего потом
знать как этот код пишеться полностью на любой Target Priority #
если бы кто помог.......хотя уже помогают....но я надеюсь мне конкретно и подробно все распишут
Dimari93:
Themis:
WinMPQ должен быть версии 1.66.
Карта не должна быть открыта в WE или выбрана в варе.
Каждый раз при сохранении карты WE перезаписывает .ai, чтобы этого не происходило нужно переименовать или исключить из карты .wai
Алгоритм редактирования:
1 Open (открыть карту)
2 Выбрать файл
3 Extract (извлечь)
4 Отредактировать извлеченный файл
5 Щелкнуть в WinMPQ для редактирования имени файла
6 Скопировать имя
7 Delete (удалить)
8 Add (добавить отредактированный)
9 Переименовать, вставив скопированное имя
Есть много других более удобных прог для mpq, но эта меня еще ни разу не подвела.

В случае с ИИ WinMPQ не нужен, все можно сделать в менеджере импорта WE.

Моя подсказка оказалась не верной. LoadZepWave в версии 1.26 не работает. Не помню, как было раньше.
Вставлять нужно:
	if (target != null) then
            call CommonSuicideOnPlayer(true,true,0,GetOwningPlayer(target),0,0)
            return
        endif
я правильно понимаю фаил wai нужно переименовать в любое название да?
потом ai извлечь в папку куда нибудь
зайти в ai - а вот теперь вопрос -напиши будь добр код от Target Priority #1 измененный полностью до Target Priority #2 чтобы я понел как код полностью выглядит
потом удалить старый ai верно? и запихнуть отредактированный?
потом нужно фаил wai переименовывать обратно или нет?
и нужно ли фаилы wai и ai извлечь отдельно потом и потом заново импортировать в карту?
потятнее было бы если бы я мог бы тебе это показать скринами (например в вк-или ты мне все показать там же) и ты бы сказал все ли так я делаю
или если бы ты снял видео то потянее было бы тоже-я сам то с ютуба всему и учусь основному в редакторе+некоторые и сам делаю
2)В случае с ИИ WinMPQ не нужен, все можно сделать в менеджере импорта WE.
а в менеджере то так?
я делал так импортировал фаил открывал в mpq
потом изменял имя wai на waiu например
потом брал ai извлекал отдельно в папку а там уже изменял
потом брал удаля ai c mpq и загружал отредактированный ai свой
потом изменял waiu обратно на wai
так же потом обои извлекал и заходил в WE И заново импортировал их
я все верно делал?
но код не сработал-видимо я его неправильно напиписал- будь добр распиши его как ты предыдущий писал код чтобы я проверил что же я не так делал то
Themis #17 - 5 years ago (изм. ) 2
Голосов: +2 / -0
Общепринято дописывать в конце .bak, - это значит: "больше не нужно, но на всякий случай оставим".
.wai обратно переименовывал напрасно. Это нужно будет сделать перед редактированием в редакторе ИИ. Но у тебя же окончательный вариант?
Конкретно .ai файлы можно не удалять/вновь импортировать, а заменять в 1 действие через контекстное меню.
Ниже под #1 "Обычная атака" атаковать юнита, отмеченного союзником. #2 - "Новый лагерь" - ближайший рудник на котором крипы или враги.
function LaunchAttack takes nothing returns nothing
    local unit target = null
    local boolean setAlly = true

    // Don't launch any attack while town is threatened
    if (TownThreatened()) then
        call Sleep( 2 )
        return
    endif

    // Target Priority #1
    if (target == null) then
        set target = GetAllianceTarget()
        if (target != null) then
            set setAlly = false
        endif
        
    endif

    // Target Priority #2
    if (target == null) then
        set target = GetExpansionFoe()
        
        if (target != null) then
            set take_exp = false
            call CommonSuicideOnPlayer(true,true,1,Player(0),0,0)
            return
        endif
    endif
    
    // Target Priority #3
Еще раз по комменту #12: Да; да; да; нет; нет. А в менеджере все то же самое, но доступны только некоторые файлы, зато есть команда "заменить", позволяющая не следить за правильными именем и путем файла.
Dimari93 #18 - 5 years ago (изм. ) -2
Голосов: +0 / -2
спасибо код рабочий оказываеться можно с сначала запрогромировать ИИ а потом уже редактировать фаил ai,потом будет можно и незагружать фаил wai в карту а загрузить только ai
но есть пару нюансов-я в ии указывал атаку 4 вурдалаками например но ии возил на дирижабле только 1-почему?
так же они очень тупили-т.е вурдалаки ишли и застревали в каком нить месте и там двигались с одной стороны в другую только тогда дирижабль подлетал потиху к ним и в итоге брал тока 1 один раз и 2х взял и не больше,хотя в волну я прописывал 4воина-можеш сказать что не так?
может я код не так вписывал?
можеш написать код на все Target Priority # основные(с этим кодом) кроме атак рудников а так же атак крипов
возможно дело в том что я вписывал не туда код
Themis #19 - 5 years ago 0
Голосов: +0 / -0
Если сработала CommonSuicideOnPlayer, то все юниты сразу лезут в дирижабль. Определить, по какой цели началась атака поможет такая строка
call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,20, +"attack 1")
Пишет текст на экране.
Dimari93 #20 - 5 years ago (изм. ) 0
Голосов: +0 / -0
Themis:
Если сработала CommonSuicideOnPlayer, то все юниты сразу лезут в дирижабль. Определить, по какой цели началась атака поможет такая строка
call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,20, +"attack 1")
Пишет текст на экране.
это call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,20, +"attack 1") куда вписываеться то?
вот карта наработка посмотри ее и скажи что неправильно тут?
тут я сделал 2 базы менжду ними воду
в ии прописал строить 4 вурдалака и написал атака главной базы ну вот код такой:
Target Priority #1
if (target == null) then
set target = GetMegaTarget()
call CommonSuicideOnPlayer(true,true,1,Player(0),0,0)
return
endif
в итоге все происходило как я писал выше-не так как надо
Прикрепленные файлы
nvc123 #21 - 5 years ago 0
Голосов: +0 / -0
Dimari93, xgm.guru/p/wc3/articles
раздел 2
там статьи по джасс
ток сначала это прочти
Dimari93 #22 - 5 years ago -2
Голосов: +0 / -2
nvc123:
Dimari93, xgm.guru/p/wc3/articles
раздел 2
там статьи по джасс
ток сначала это прочти
там нет нечего по ai
nvc123:
Dimari93, xgm.guru/p/wc3/articles
раздел 2
там статьи по джасс
ток сначала это прочти
ты бы карту скачал что я закрепил да сам посмотрел что не так я ввел
Dimari93:
nvc123:
Dimari93, xgm.guru/p/wc3/articles
раздел 2
там статьи по джасс
ток сначала это прочти
там нет нечего по ai
nvc123:
Dimari93, xgm.guru/p/wc3/articles
раздел 2
там статьи по джасс
ток сначала это прочти
ты бы карту скачал что я закрепил да сам посмотрел что не так я ввел
вродебы я строчку так прописал указанную но ии всеравно тупит
nvc123 #23 - 5 years ago 0
Голосов: +1 / -1

Dimari93, во первых
для того чтобы написать комментарий не надо цитировать предыдущий
во вторых
ai файл это файл с джасс кодом
не знаешь джасс - ничего не поймёшь в ai и следовательно не сможешь модифицировать
в общем все возможные ответы даны и разжёвано так что любой знающий основы джасс поймёт
вопрос закрыт