Age of Empires 2 Definitive Edition - Редактор карты Урок 5

2023 ж. 16 Қар.
233 Рет қаралды

В этом видео я расскажу, как создавать простые скрипты для ИИ, а так же, как посылать сигналы от ИИ триггерам на карту, чтобы их можно было обработать. Это поможет создать простой ИИ для кастомных карт, где потребовалось бы для игры несколько игроков.
--------------------------------------
Каждый ваш лайк и дизлайк показывает ваш интерес к видео и тематике роликов, поэтому, ставьте лайк, если вам понравилось это видео.
Автор ничего не получает за свою работу, поэтому, если желаете его поддержать, вы можете это сделать такими способами:
Патреон: patreon.com/user?u=79316736
Buy Me A Coffee: www.buymeacoffee.com/extremea...

Пікірлер
  • Ты сам разбираешься? Или берёшь информацию откуда то? Мне интересен редактор в игре

    @sawadpro8693@sawadpro86935 ай бұрын
    • Да, сам )) Возможно, в самом начале пытался понять, как работают некоторые триггеры, но по триггерам сам догнал. А вот ИИ в первый раз, когда 4 урока выпускал 4 года назад, не догнал. А сейчас как-то решил глянуть, и стало понятно всё (ну почти). Просто объяснять людям без навыков программирования по поводу того, что можно сделать, как-то не то, поскольку стоит объяснить сперва почему я сделал то-то и то-то. У меня была идея создать небольшую кастомную карту, где ИИ может играть, но это ж будет не понятно людям, которые не шарят в том, как ИИ скрипты создавать. Поэтому решил такой простой ИИ накатать. Думаю, это будет посложнее, чем просто сравнивать еду или какие-то вещи. Да и сам я помню, пытался создать карту, где ты должен защищать деревню торговцев, которые строят торговые повозки, а рабочие заняты только сбором ресурсов, а не начинают расстраивать свою деревню, и в результате чего, идут и выносят твоего противника.

      @eXtreamAngel@eXtreamAngel5 ай бұрын
    • @@eXtreamAngel я просто сам по себе больше по декору карт, триггеры не шарю , эпоху играл с 7 лет сейчас 18 и За все годы игры в эпоху любил карты делать и играть с друзьями, прикольные видео, спасибо

      @sawadpro8693@sawadpro86935 ай бұрын
    • @@sawadpro8693 Та не за что. Ну триггеры не сложные. Я бы сказал, что когда я делал карты различные, то я сталкивался с другой проблемой. Когда у меня на карте было около 230 триггеров, то часть переставала работать (тупо не срабатывали), а когда я в режиме редактора клацал на них, чтобы посмотреть в чем же дело, то оказывалось, что те еффекты, где надо было указать локацию (чтобы туда пошел юнит, или он там заспавнился, или происходит какое-то событие), то эта локация не указана. Указываешь в этом еффекте, другой слетает. И я без понятия что это такое. Некоторые говорят, что они карту большую создавали с кучей триггеров, и все у них работало. А у меня складывается ощущение, что у игры есть какой-то "лимит" на триггеры, после превышения которого, предыдущие начинают отключаться. Но это чисто мои догадки. Я всего 2 карты большие создавал.

      @eXtreamAngel@eXtreamAngel5 ай бұрын
    • @@eXtreamAngel Привет, а ты не знаешь как сделать так, чтобы изначальное количество золота в Золотых копях было больше, чем 800 или вообще бесконечное?

      @Lorpen@LorpenАй бұрын
    • @@Lorpen Я давно в редактор не заходил, поэтому, по памяти я не помню. Могу только предположить, что если количество золота нельзя менять, то можно попробовать его постоянно респавнить. Сделать триггер, который проверяет условие - существует ли этот объект в данном месте, с указанием места и конкретный тип объекта. Если объекта нет (рабочие добыли золото), то запускать триггер, который создает в этом самом месте новую кучу золота. Единственная проблема может быть - это если в твоем месте, будет кто-то находиться, например, кто-то из твоих рабочих. В таком случае, надо что-то думать про то, как их оттуда выгнать. Либо полагаться на то, что игрок сам их уберет, и создавать кучу золота с проверкой, что в этом тайле нет ни одного юнита или здания (чтобы если здание построил, то обязательно его снес), и тогда этот триггер зациклить на проверку местности, либо, если в ней все таки кто-то есть, то создать триггер, где если в тайле есть юниты, то он берет, и выгоняет всех этих юнитов в другое место. В таком случае, надо сделать проверку и для каждого из игроков, которые могут зайти в этот тайл, и указать место, куда должны отходить юниты, которые зашли в эту зону. В обоих случаях проверки на наличие юнитов в зоне, стоит зацикливать триггер, и я бы поставил таймер в 3-5 секунд, чтобы карта не тормозила от запросов. Типа: Условие: Таймер 5 секунд Условие (второе): в тайле нет юнитов Эффект: создать объект "Гайя/Золотая Жила". Поставить галочку на "Повторять триггер". Примерно так. Более детально - надо уже разбираться, но сейчас я не могу в игру зайти. Думаю, если ты знаком с триггерами и эффектами, то идею ты понял.

      @eXtreamAngel@eXtreamAngelАй бұрын
  • Привет, можешь помочь советом с такой проблемой: я создаю вражескую базу и вражеского героя в ней. Управляется ИИ. Я хочу, чтобы герой стоял на своей исходной точке в оборонительной позиции. Но как только приходит время врагу идти в атаку - герой тоже рвется в атаку вместе с обычными солдатами. Я всячески пытался решить эту проблему, но ничего не помогает. Ни зафиксировать объект, ни смена его отношения с агрессии на пассивку. Он все равно не стоит на месте. В некоторых картах я решал эту проблему очень легко: героев ставил от другого игрока без поведения и контроля ИИ и перекрашивал цвет. Но, блин, в данной карте все 8 игроков у меня заняты( таой трюк не могу позволить(

    @mihailmike6183@mihailmike618315 күн бұрын
    • Не думаю, что я могу тут помочь. Это проблема, которую и я пытался решить, поскольку в кампании были миссии, где враг вообще не реагирует, пока ты воинами своими не найдешь рабочих с базой, и не сможешь играть в развитие. Я загрузил эту карту из кампании, и увидел там такую схему, что когда ты получаешь контроль над юнитами, то посылается триггер в скрипт, и ИИ начинает играть. В целом, это известная проблема,которую не выходит многим решить. Я пробовал и создавать тупо пустой файл с расширением .ai, чтобы этот пустой файл использовать в качестве ИИ над компьютером. Пробовал использовать эффект "Freeze", который замораживает цель на месте. Цель все равно ходила, только с рывками. Пробовал через твой метод, который оказывался рабочим, но с помощью отдельного ИИ, а не на текущем. Могу только сделать несколько туповатых хаков, которые могут не подойти к твоей ситуации: - Зафиксировать с помощью деревянного забора, чтобы он не мог выйти. - Зафиксировать с помощью непроходимых объектов, вроде стога сена или камней. Как только враг подходит на горизонте, то убирать камни, чтобы герой мог атаковать. Или можно сделать его лучником, имеющим дальнюю атаку, и не убирать камни. - Сделать ему нулячую скорость, чтобы он не мог двигаться через Modify Stats (или как-то так). Правда, тут непредсказуемость есть в виде ИИ, который послал армию в атаку, а герой стоит. Он считает, что армия еще не вся атаковала, ибо герой на месте, и не атакует повторно. Можно еще "заморочиться" со скриптами. Например, когда приходит время для атаки, то выбирать конкретные юниты, которые ИИ использует для атаки, а героя сделать таким юнитом, который в этот список не входит. Например, ты играешь за Британцев, а юнит - кельский разбойник. Изменить ему параметры, имя, чтобы он походил на героя, и не включать его в список атакующих юнитов. Почему не поставить тупо героя? Потому, что я не нашел в списках юнитов категории для героев. Возможно, они считаются обычными юнитами с измененными характеристиками, типа, ЕльСид - обычный всадник, ну и так далее. Но я бы не стал тратить столько усилий на это. Тут реально замахаешься все делать. Лучше что-то попроще использовать.

      @eXtreamAngel@eXtreamAngel14 күн бұрын
    • @@eXtreamAngel спасибо большое за ответ. Это действительно одна из самых проблемных тем в редакторе. Вот в Warcrafte с этим все предельно просто - ты используешь триггер pause unit и он не шевелится, пока в триггерах не попадется команда unpause. Или же, что более эффективно, в редакторе ИИ можно выбирать, какие типы юниов/героев участвуют в атаке, а какие нет. Там много несложных действенных способов контролировать поведение юнитов. В aoe с этим гораздо сложнее.

      @mihailmike6183@mihailmike618314 күн бұрын
    • @@mihailmike6183 Ну редактор Варкрафта на совершенно ином уровне. Этот же редактор не придумали с нуля. В оригинальной игре 1999 года, был точно такой же редактор. Просто добавили сюда пару триггеров, и скриптов для генерации карт. Улучшили ИИ, парочку опций для юнитов с возможностями добавили, и все. Другой момент, что риггер "Freeze" мог бы делать то, что от него требуется, но он этого не делает. Думаю, из-за того, что есть прямые конфликты с ИИ. Кто-то увтерждает, что ему помог тот или иной метод, но я считаю, что если ИИ не может развиваться т.е. у него нет рабов, то метод "Заморозки" может помочь. Если у ИИ есть рабочий, которым он может строить и развиваться, то тогда он запускает разведку, и даже тот юнит, которого ты заморозил, будет двигаться не смотря ни на что. Я даже сделал триггер, который постоянно себя повторяет т.е. применяет эффект "Заморозки" без всякой задержки. Постоянно. Итог - юнит смотрел в ту сторону, в какую он был создан, дрыгался, но медленно двигался вот во время тех долей секунд, пока триггер снова применялся. И ничего с этим не сделаешь. Возможно есть какой-то метод, который бы это фиксил, но я бы "подогнал под результат" карту. То есть, если у тебя есть какие-то события, при которых можно "разблокировать" героя, то лучше стоит оградить его камнями, или забором деревянным, в котором ворота будут закрыты, и герой сможет передвигаться только в пределах этого забора, а в нужный момент - разблокировать их. Еще один из возможных методов - это создать триггер с условиями, при котором проверяет наличие любых юнитов определенного игрока в заданном радиусе, и одновременно с этим - проверка на то - жив ли герой, и не находится ли он в этом радиусе. Если эти условия соблюдаются (нет врагов, герой жив, герой вне этой зоны), то использовать эффект "Move" (или как там он называется), при котором указывается герою, чтобы он вернулся в стартовую позицию. Таким образом, если врага нет рядом, герой жив, но он убежал в разведку, триггер будет его возвращать. Если враг рядом, то героя никто не будет возвращать на стартовую локацию. Как только враг убежал, и в зоне снова не стало вражеских юнитов, а герой гонится за врагами, то триггер увидит это, и отправит героя к стартовой локации.

      @eXtreamAngel@eXtreamAngel14 күн бұрын
    • @@eXtreamAngel остаётся только надеяться, что они наладят это дело или добавят какой-нибудь другой триггер. Я пробовал окружить героя невидимыми препятствиями, но его мотать начинает судорожно на месте)

      @mihailmike6183@mihailmike618314 күн бұрын
    • @@mihailmike6183 Ну это потому, что ИИ пытается его послать, а герой не может пройти. Это предсказуемо.

      @eXtreamAngel@eXtreamAngel14 күн бұрын
  • Как бы было проще, если бы игра у тебя была на русском хотя бы...

    @FugenSP@FugenSP4 ай бұрын
  • Почему ты делаешь видео на языке оккупантов? ))) Посмотрел твои ролики, молодец, несколько раз прям помог. Но камон, чел… ты называешь нас оккупантами, но видики на нашем же языке пишешь. Это лицемерие? Ну а вообще… без негатива, добра тебе! это просто забавно)))

    @Blackboba228@Blackboba2285 ай бұрын
    • Так что делай что делал и не лезь в политическое дерьмо, чище будешь.

      @Blackboba228@Blackboba2285 ай бұрын
    • ​@@Blackboba228 Без негатива, объясняю. Восточные и южные регионы Украины имеют высокий процент русскоязычных украинцев. Почему? Расскажу на примере моего деда. Он вырос в Полтавской области, и его отец (мой пра-прадед), был зажиточным человеком. Но однажды, когда ему было 9 лет, он вышел из дома, и увидел, как его отец срубает вишневый сад у себя на участке. Почему? Тот не ответил. Сказал "Выростишь - поймешь". И он понял. Коммунисты обязали платить деньги тем гражданам, у которых было своё хозяйство. По сути, они раскулачивали украинцев и заставляли их идти в колхозы. Когда дед вырос, то в селе было разрушено всё производство. Остался только 1 колхоз по засеиванию и сбору зерна. Все в селе бухали, и единственный путь, который был тогда в селе - это пойти в армию. Но из Полтавы, его направили служить в Москву, а потом и предложили закончить офицерское училище в ракетных войсках. Позже, он рассказывал мне, что по выходу на пенсию, им СССР предлагало на выбор любое место для заселения и проживания своей старости. В Украине, это были: Чернигов, Полтава, Крым. Многие военные пенсионеры выбирали Чернигов, поскольку там было спокойно, ну и Крым. Полтаву он выбрал чисто потому, что там родился. В армии у нас он разговаривал на Украинском, а когда перевели в Москву, то говорил уже на русском. Таким образом, он является этническим украинцем, но при этом, разговаривал на русском. А его жена (моя бабушка), тоже из Украины, и училась в каком-то престижном московском университете. Она тоже после приезда с Москвы, говорила по русски, но при этом, оставалась украинкой. Добавь сюда еще 1933-1937 года, когда был голодомор в Украине, организованный Сталиным, и где на освобожденные земли заселялись россияне, как это сейчас делают с Мариуполем и Крымом, где 30% населения - уже приезжие из России мигранты, и ты увидишь, что тут много русскоязычных людей. Но это совсем не значит, что они - россияне. Кстати, ваша Симонян хотела ебануть ядеркой по Сибири. Так вот. Почему именно по Сибири? А потому, что именно туда ссылали Украинцев и неугодных СССР людей. И там россиян не так много живет. Теперь вернемся конкретно ко мне. Я русскоязычный, и создавал свой канал еще в 2012 году, еще до оккупации Крыма в феврале 2014. Я тогда думал, что русский язык - это язык людей, живших при СССР, а не конкретно россиян. Это и люди в Латвии, Литве, Казахстане, Молдове (хотя это название придумало СССР после разделения Румынии в 1945), Беларуси и России. Тогда, истерия против Украины, которая разгонялась у вас по телеку, воспринималась, как попытка отвлечь народ от президентских выборов, ибо Путин не мог на 3-й срок идти по Конституции, ибо в Конституции РФ написано, что 2 срока он только может сидеть. Но как видно было дальше, это уже переросло не в истерию, а захват Крыма. Тем не менее, моё отношение к языку - как к инструменту коммуникаций. И именно так я к нему отношусь. Но по статистике Ютуба, все же, я вижу, что большинство зрителей - это как раз из России. Есть и из Молдовы, и Казахстана, и даже 11 человек из Германии, и 3 из Нидерландов, и из Эстонии 6 человек. Но все же, большинство - из России. Так же я знаю, что там есть нормальные люди, с которыми я общался лично на стримах, и просто так в комментариях, которые так же ненавидят Путина и хотят, чтобы Украина победила, ибо в победе Украины, они видят смену элит, и поражение Путина. Поэтому, если говорить в общих чертах, то россияне - оккупанты, где нет нормальных русских. Если говорить о конкретике, то есть нормальные русские, которые прекрасно понимают, что происходит, и к ним можно применить формулировку "Заложник режима", который есть в документе ООН, говорящий, что это человек, не согласный с режимом, но ничего не могущий сделать, и живущий у него в заложниках. Не смотря на то, что его налоги идут на войну, и покупая товар, он спонсирует тем самым режим, к нему можно отнестись более снисходительно. Ну а являешься ли ты оккупантом, или заложником режима - это зависит конкретно от твоей позиции, и как ее будут воспринимать украинцы и мировое сообщество.

      @eXtreamAngel@eXtreamAngel5 ай бұрын
    • @@Blackboba228 Ну а по поводу "Не лезь в политику" - это про россиян. В Украине политикой интересуются, а вот в России часто слышишь "Я не интересуюсь политикой. Они лучше знают, как управлять страной", а потом открываются рынки, где продают просрочку, и бараки деревянные, которым по 70-80 лет не ремонтируют, и статистика говорит, что люди на еде экономят, и за 2 года стали сильнее экономить. И вдруг инфляция начинается, и вдруг с авторынка пропали иностранные автомобили, и вдруг ушли бренды разные. Да и с медициной всё очень плохо стало. Я вот когда Acutol искал - спрей с эффектом остановления крови, чтобы им брызгать на рану, откуда течет кровь, так у нас стоит 360 грн, а в России 19 марта этого года стоил 5000 рублей, а в мае смотрел (выпадал реклама), уже 5700 рублей. Средство польское. Если перевести наши гривны на рубли, то получится примерно 750-800 рублей за банку со спреем. Вот что бывает, когда политикой не интересуешься, ибо на верху лучше знают что делать. И это еще не затронули тему ухода Ютуба из России, повальной мобилизации, этнических разборок внутри России, и возвращение СВОшников домой. Кстати, в недавнем опросе, около 36% россиян ответили, что больше всего их напрягает экономическая жопа, и 28% напрягают вернувшиеся СВОшники, поскольку они решают все вопросы очень просто. А если вдруг в тюрьму, то всегда можно опять подписать контракт с Минобороны, и тебя выпустят без всяких проблем.

      @eXtreamAngel@eXtreamAngel5 ай бұрын
    • Кстати, мне некоторые россияне писали, что через мои видео, они понимают, какие изменения начинают твориться из-за войны. Многие игры, на которые я делал обзоры или упоминал в Сообществе, просто недоступны для России. На некоторые игры, поднялись ценники в Стим. Если раньше в Украине цены были ниже, чем в России, ибо считалось, что средний достаток в Украине меньше, чем средний достаток в России, то теперь наоборот - в России цены на игры стали ниже, чем в Украине, ибо её экономическая составляющая ухудшилась. И я даже скажу по Black Desert Online. Я играл в нее в 2016-2017 года. Потом забил. Играл на русском сервере, ибо с европейского, меня, как плешивую собаку, выкидывали на русский сервер, ибо Украина - относится к региону СНГ. Но вчера я решил посмотреть - что там изменилось, а то видосы выходят о новых героях. И меня пустили на европейский сервер )) Менря теперь не выкидывают с него, и я могу играть с европейцами. Еще, некоторым россиянам интересно узнавать на стримах какие-то новости, которые им по телеку вещают, и как у нас на самом деле обстоят дела. По типу того, что у нас тут блекауты ежедневно, или что "Правда, что потери у россиян большие?". Ну я думаю, для тебя это не секрет. Если что, все мои 3 сообщения, читай не в духе, что я это говорю с наездом или с каким-то негативом, а просто как обычный ответ при спокойном состоянии. А то многие воспринимают ответ без смайликов как какой-то наезд, что ли.

      @eXtreamAngel@eXtreamAngel5 ай бұрын
KZhead