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

Принятый ответ

Dimari93, во первых
для того чтобы написать комментарий не надо цитировать предыдущий
во вторых
ai файл это файл с джасс кодом
не знаешь джасс - ничего не поймёшь в ai и следовательно не сможешь модифицировать
в общем все возможные ответы даны и разжёвано так что любой знающий основы джасс поймёт
вопрос закрыт
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
20
8 лет назад
1
да их обычный комп юзает, если бить его юниты с возвышенности, он дирижаблем сбросит войск тебе на голову
0
2
8 лет назад
0
ssbbssc:
да их обычный комп юзает, если бить его юниты с возвышенности, он дирижаблем сбросит войск тебе на голову
юзает не всегда я сделал 2 базы и воду между ними это в наработке- так и проверил сделал волну где 4 вурдалака должны напасть на меня и дирижабль был я даже пробовал тот же транспортный корабль нежити ставить они сами несадяться в него и нелетят на базу мою что только не делал невкакую нелетят как писал даже дирижабль добовлял в волну мою невкакую в него не садяться-пробовал ставить мост и волну делать с дерижаблем тогда происохдит такая вещь 1 дерижабль летит только не садит в него юнитов.юниты идут пешком
Может кто подскажет поточнее как заставить ии посадить войска в дерижабль и атаковать мою базу-в близардовских компаниях такое было
так же кто помнит компанию король мертвых была мисия битва в айронфорже-как то та-где комп прилетал на дерижабле и высаживал юнитов-
вот как так сделать что указать нужно ?
может что то прописывать в тригерах надо еще?
0
32
8 лет назад
0
Для ии создавать их надо триггерно, или сделать продаваемыми в ратуше (так в компании у всех ИИ)
Тогда ии купит себе дирижабли.
0
2
8 лет назад
Отредактирован Dimari93
0
quq_CCCP:
Для ии создавать их надо триггерно, или сделать продаваемыми в ратуше (так в компании у всех ИИ)
Тогда ии купит себе дирижабли.
пробовал я уже и так,ии их делал в ратуше- но ии их не использовал(хотя я даже в волну прописывал в атаку дерижабли и прописывая и непрописывая не использует он их
а тригерно как правильно использовать?
напишите этот тригер
или раскажите как близардовцы это сделали или как это любители сделали в карте король мертвых
0
17
8 лет назад
0
Он должен сам купить его из магазина . Когда ему это понадобится . Таким образом , как ты сделал , он не всегда будет работать .
4
3
8 лет назад
Отредактирован Themis
4
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, не верно
0
16
8 лет назад
0
Dimari93:
quq_CCCP:
Для ии создавать их надо триггерно, или сделать продаваемыми в ратуше (так в компании у всех ИИ)
Тогда ии купит себе дирижабли.
пробовал я уже и так,ии их делал в ратуше- но ии их не использовал(хотя я даже в волну прописывал в атаку дерижабли и прописывая и непрописывая не использует он их
а тригерно как правильно использовать?
напишите этот тригер
или раскажите как близардовцы это сделали или как это любители сделали в карте король мертвых
а ты в редакторе ИИ добавил эти войска в отряд? Ну дерижабли. Что бы он знал, что их можно использовать.
Этот комментарий удален
4
3
8 лет назад
4
Неважно как появился дирижабль. Добавление дирижабля в войско дает лишь то, что он всегда будет рядом, в том числе под огнем противника.
Dimari93, в той кампании тоже вызывается LoadZepWave.
А раз слишком сложно, то получай более правильный вариант.
call LoadZepWave(I2R(GetWidgetX(target)),I2R(GetWidgetY(target)))
0
2
8 лет назад
Отредактирован Dimari93
0
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 я редактировал строчку добавил эту но оно не сохраняеться продовал сохранять на раб стол .....может я не так что делают раскажите подробнее
1
3
8 лет назад
1
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
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.