MOTR logo
    • Категории
    • Последние
    • Популярные
    • Метки
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Гайд по написанию скриптов для гомункулусов

    Запланировано Прикреплена Закрыта Перенесена Жизнь в пробирке
    528 Сообщения 60 Posters 51.3k Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • L Не в сети
      LittleHarry
      отредактировано

      @"sepulka":

      @"Йокко":
      Где-то рядом есть леший, который держит лесавку как цель для хила...)
      а это воспринимается как атака на моба и срабатывает защита от киллстила в аи?
      а как объяснить похожее поведение лифки на волках тогда? тоже бывает забивает на волка не добежав до него.
      Есть подозрение, что Йокко пошутил 🙂

      @"sepulka":

      @"LittleHarry":
      Хомяки втихаря раскидывают на пеньке кости на предмет того, кто следующий пойдет мочить моба
      а мираишные хомяки как гопнеги - если даже проиграли идут и тупо мочат -_-
      Так смысл игры именно в том и заключается, чтоб мобов мочил проигравший 🙂

      1 ответ Последний ответ Ответить Цитировать 0
      • Eternal OneE Не в сети
        Eternal One
        отредактировано

        @"LittleHarry":
        Eternal One Повторится еще этот глюк - попробую. Хотя, я кажется тогда все перепробовал, и алт+т и /hoai туда обратно. да и вообще - не люблю я этот хоткей и никогда им не пользуюсь. Лентяи девелоперы могли бы хоть системное сообщение выводить после ALT+T. А то непонятно агро включено или нет... Чарселект понадежнее будет, имхо. 🙂 Вообще, повторюсь, это либо пинг проблемный либо глюки серверной части. Как обьяснить, когда мимо десятка злобных хомяков проплывает неспеша через весь экран леска и исчезает на противоположной стороне? И ни один не дернется, и локмоб тут ни при чем т.к. никто ее не атаковал.

        После перехода в пассивный режим гом побежит к хозяину (см. функцию OnFOLLOW_CMD_ST), а после активации активного режима вновь, он войдет в режим IDLE_ST начинает опять бегать кругами и атачить жертв (ну... в зависимости от скрипта). После перехода как в пассивный, так и в активный режим, текущая цель сбрасывается (см. функцию OnFOLLOW_CMD), поэтому при выходе вновь в активный режим гом найдет нового моба.
        Если следить за ним (а не тыкать альт+т несколько раз подряд), можно легко заметить, как он переходит сначала в пассивный, а затем в активный режим 😃
        С ними надо легко, аккуратно, нежно, а не "пошел, пошел, пошел!!" 😃 Три раза нажать альт+т, так он в пассивном снова окажется и тоже лежать будет 😃

        1 ответ Последний ответ Ответить Цитировать 0
        • L Не в сети
          LittleHarry
          отредактировано

          Eternal One не надо меня агитировать 🙂 Я высказал свое мнение относительно этого способа, каждый выбирает что ему удобнее. Кроме того, когда вингаешься в толпу агрессивных мобов, то хочется чтоб хомяк именно "пошел! пошел! пошел!". В конфиге Rampage есть параметр, который по идее отвечает за задержку на срабатывание AI после вингов, телепортов:
          [code:3nnpyq42]-- Wait this number of milliseconds before starting the AI logic
          -- (Idea from Fallen~Angel)
          AIStartWait = 100
          [/code:3nnpyq42]

          Там по дефолту было 5000мс, кажется. Я уменьшил до 100, но задержка осталась явно больше 1/10 секунды. Когда активно качаешься и скачешь вингами - хочется чтоб гом мгновенно атаковал, даже секундная задержка сводит на нет смысл изводить на прыжки кучу флай-вингов. Надо и вправду, наверное, покопаться в коде.... Можно как минимум было бы убрать всякие лишние проверки и неработающие функции типа автохила, автореса и т.д. и т.п.

          1 ответ Последний ответ Ответить Цитировать 0
          • Eternal OneE Не в сети
            Eternal One
            отредактировано

            А пинг сколько? )
            А сколько еще времени надо, чтобы считать с сервера окружение? )
            Когда я прыгаю во время лагов, замечаю, что мобы не сразу подгружаются.

            Задержка нужна, чтобы можно было бы перед атакой гома скастовать что-нибудь (e.g. выбрать мэнтал чендж или эмёдженси эвоид). А если она не нужна, так и убрать ее вовсе, к чему 100мс? )

            1 ответ Последний ответ Ответить Цитировать 0
            • L Не в сети
              LittleHarry
              отредактировано

              Дайте ссылку еще на спецификацию протокола UDP... Уважаемый, я знаю что сам процесс взаимодействия клиент-сервер подразумевает некоторые задержки. У вас, я вижу, есть навязчивое желание тут провозглашать прописные истины?
              А 100мс - это нормальная value которая позволяет не беспокоится о конфликте с логикой скрипта не вникая в него. Можно и nil, и 0, и minus one попробовать вписать. Но так - проще.

              Если поюзать поиск, можно найти посты где говорилось о тормознутости дефолтного Rampage относительно дефолтного же MirAI. Там еще ZENO говорил что в рампэйдже движок более вдумчивый и проводит больше проверок. Но, никому и в голову не приходило начинать в связи с этим ликбез по стеку протокола TCP/IP и иже с ними.

              Курите тему сначала. Я тут и про пинг писал несколькими постами ранее. А то, теряется смысл общения с вами.

              1 ответ Последний ответ Ответить Цитировать 0
              • Eternal OneE Не в сети
                Eternal One
                отредактировано

                Спецификация UDP - это RFC 768, иногда полезно почитать.
                Также полезно бы знать, что пинг (как он есть) - это все же ICMP.
                А человек, более-менее знакомый с сетевыми технологиями должен был бы знать, что не только пинг определяет время передачи данных.
                Человек, хоть минимально понимающий смысл скрипта, должен был бы понять, что задержку вызывает не параметр, а некоторая функция, этот параметр использующий. Но нет, поколение пепси и программистов мышкой предпочитает менять константу и удивляться, почему это работает не так, как хотелось.
                О, да, к сожалению приходится повторять не раз прописные истины, потому что у кого-то они через одно ухо влетают, а через другое вылетают, и они продолжают ставить глупые вопросы, даже не потрудившись вникнуть в тематику, не говоря уже о том, чтобы поблагодарить тех, кто пытается помочь.
                А вообще, какой смысл пытаться помочь человеку, который даже не пытается думать, вникать в то, с чем он работает? Может проще посмотреть, как он будет наступать на грабли, в очередной раз разбивая себе лоб. Если повезет, когда-нибудь и научится думать. Говорят, это тоже полезно...

                Как бы мне хотелось заставить хомячка говорить в чат :sorry:

                1 ответ Последний ответ Ответить Цитировать 0
                • L Не в сети
                  LittleHarry
                  отредактировано

                  Спецификация UDP - это RFC 768, иногда полезно почитать.

                  Также полезно бы знать, что пинг (как он есть) - это все же ICMP.
                  А человек, более-менее знакомый с сетевыми технологиями должен был бы знать, что не только пинг определяет время передачи данных.
                  Человек, хоть минимально понимающий смысл скрипта, должен был бы понять, что задержку вызывает не параметр, а некоторая функция, этот параметр использующий. Но нет, поколение пепси и программистов мышкой предпочитает менять константу и удивляться, почему это работает не так, как хотелось.
                  О, да, к сожалению приходится повторять не раз прописные истины, потому что у кого-то они через одно ухо влетают, а через другое вылетают, и они продолжают ставить глупые вопросы, даже не потрудившись вникнуть в тематику, не говоря уже о том, чтобы поблагодарить тех, кто пытается помочь.
                  А вообще, какой смысл пытаться помочь человеку, который даже не пытается думать, вникать в то, с чем он работает? Может проще посмотреть, как он будет наступать на грабли, в очередной раз разбивая себе лоб. Если повезет, когда-нибудь и научится думать. Говорят, это тоже полезно...

                  Как бы мне хотелось заставить хомячка говорить в чат :sorry:
                  Да-да! Я именно этого и ждал! Массированного копи-паста RFC. По факту, я надеюсь что для людей котрые это прочтут, будет более важно то, что я указал КОНКРЕТНЫЙ ПАРАМЕТР в config.lua, который позволяет регулировать таймаут вколючения AI гома. Если есть что-то вменяемое предложить помимо околопрогамистских рассуждений - велкам.
                  Кроме того, если у вас возникло ошибочное впечатление что я просил мне чем-то помочь, то вы ошибаетесь. А если, у вас, паче чаяния. есть проблемы с "поколением пепси" - то тем-более не стоит выносить свой душевный надрыв на всеобщее рассмотрение 🙂
                  Если вышеозначенное поколение Вас чем-то обидело, в ветке по написанию скриптов для гомункулосов вам врядли чем-то помогут. Попробуйте обратиться в оффтоп. уверен что встретите там самый радушный прием.
                  Да, попытка угадывать вот так эмпирическит возраст оппонента очень забавляет 🙂
                  Хотя, индивид мыслящий категориями "copy-paste" наверное и не сможет по-другому.

                  Как бы мне хотелось заставить хомячка говорить в чат :sorry:

                  Сочувствую. Ваш голос в чате уже ничего не значит? Хотите чтоб хомячок пришел на помощь?

                  1 ответ Последний ответ Ответить Цитировать 0
                  • sepulkaS Не в сети
                    sepulka
                    отредактировано

                    вы еще подеритесь, горячие финские парни.
                    /me не хочет лезть в код AI

                    1 ответ Последний ответ Ответить Цитировать 0
                    • L Не в сети
                      LittleHarry
                      отредактировано

                      Да здесь навскидку этих энтузиастов не так много:
                      Лично мне была интересна инфа Йокко. Он был первым, кто здесь привлек внимание
                      к AzzyAi. А то тут уже как постулат провозглашалось, что Rampage - true, MirAI - suks!
                      Для меня вот было откровением, что скрипты для наемников - это вообще тема выходящая далеко за рамки обсуждения в разделе "жизнь в пробирке".
                      Йокко давай открывай тред про AI наемников! это актуально практически для всех проф, не только для химической ветки 🙂

                      1 ответ Последний ответ Ответить Цитировать 0
                      • Aiko StarA Не в сети
                        Aiko Star
                        отредактировано

                        LittleHarry, Eternal One, устное. Меряться количеством знаков в минуту и прочими программерскими показателями будете в личке.
                        LittleHarry, скрипты для наемников не сильно актуальны. Функционал, предоставляемый гравити, сильно ниже, чем у ИИ хомяков. Если не ошибаюсь, в гайде Зено по наемникам в соответствующем разделе были ссылки на уже существующие скрипты типа того же Azzy. Вряд ли кто-то будет сильно это переделывать... Но можете попробовать открыть где-нибудь соответствующий топик. Вдруг прокатит.

                        1 ответ Последний ответ Ответить Цитировать 0
                        • L Не в сети
                          LittleHarry
                          отредактировано

                          Проект AzzyAi , в отличии от столь любимого вами Rampage, поддерживается автором. По сей день. И фидбэк есть даже на форуме.
                          http://iro.ragnarokonline.com/forum/forums/thread-view.asp?tid=32534&posts=81&start=1

                          1 ответ Последний ответ Ответить Цитировать 0
                          • Aiko StarA Не в сети
                            Aiko Star
                            отредактировано

                            Вести интеллектуальное трололо я не собираюсь. Равно как и предложу не строить догадки о моей (не)компетентности, это не простым смертным судить.
                            Флуд вычистила, оставляю только полезную инфу.

                            1 ответ Последний ответ Ответить Цитировать 0
                            • L Не в сети
                              LittleHarry
                              отредактировано

                              А что вести еще здесь? Тема умирает, топикстартер давно уже руки не прикладывет...
                              Зато очень жостко караит за флад. Я поместил ссылку на ветку в форуме мотра, гле Йокко выкладывал готовый скрипт для AzzyAI. Ты, или Вы - эту инфу стерла.

                              <!-- l --><a class="postlink-local" href="http://forum.motronline.com/viewtopic.php?f=94&t=128745&p=2029380#p2029380">viewtopic.php?f=94&t=128745&p=2029380#p2029380</a><!-- l -->
                              Безапелляционные заявления типа
                              [code:276potja]LittleHarry, скрипты для наемников не сильно актуальны. Функционал, предоставляемый гравити, сильно ниже, чем у ИИ хомяков. Если не ошибаюсь, в гайде Зено по наемникам в соответствующем разделе были ссылки на уже существующие скрипты типа того же Azzy. Вряд ли кто-то будет сильно это переделывать... Но можете попробовать открыть где-нибудь соответствующий топик. Вдруг прокатит.[/code:276potja]

                              я не в праве оспаривать здесь, да?

                              1 ответ Последний ответ Ответить Цитировать 0
                              • Aiko StarA Не в сети
                                Aiko Star
                                отредактировано

                                @"LittleHarry":
                                А что вести еще здесь? Тема умирает, топикстартер давно уже руки не прикладывет...
                                Это не флуд-топик, чтобы здесь постоянно были новые сообщения. Возникает вопрос или идея - люди обсуждают.
                                Хочется "живого общения" - предложите нормальную тему для обсуждения. И поддерживайте ее адекватно - без наездов в чужой адрес. Это не так уж и сложно, постоянные обитатели данного раздела с этим успешно справляются.

                                Зато очень жостко караит за флад. Я поместил ссылку на ветку в форуме мотра, гле Йокко выкладывал готовый скрипт для AzzyAI. Ты, или Вы - эту инфу стерла.

                                <!-- l --><a class="postlink-local" href="http://forum.motronline.com/viewtopic.php?f=94&t=128745&p=2029380#p2029380">viewtopic.php?f=94&t=128745&p=2029380#p2029380</a><!-- l -->

                                Ссылки на ИИ для наемников есть в гайде Зено. В данном действе я ничего полезного не вижу, тем более что ссылку на ирошный форум я оставила.

                                Безапелляционные заявления типа

                                ...
                                я не в праве оспаривать здесь, да?
                                Оспорьте. Аргументированно. Я свою точку зрения могу подтвердить тем фактом, что для наемников отсутствует функция Get(V_HOMUNTYPE):

                                @"Zeno":
                                Есть принципиальное отличие между ИИ для наемника и ИИ для гомункула. Наемник не может использовать Get(V_HOMUNTYPE,id)! То есть наемник никак не сможет различать монстров/игроков/NPC и т.п. по типам, имейте это в виду.
                                Что, в свою очередь, сильно ограничивает их функционал посредством скриптов.

                                1 ответ Последний ответ Ответить Цитировать 0
                                • L Не в сети
                                  LittleHarry
                                  отредактировано

                                  Вопрос мой, возможно, покажется идиотским :lol:
                                  Но, с некоторого времени, мобы из бранчей стали называться именно так - типа "моб из бранча". Раньше просто мобы бегали, и как положено имели свои собственные имена. Я редко играю, поэтому не не знаю с какого момента ситуевина изменилась. Да это и не важно, принципе.
                                  Так вот, собственно вопрос - ID для них будет для всех одинаковый? Если да. то можно будет безошибочно идентифицировать их, и настроить скрипт на киллстил этих мобов, чтоб помогать другим химам. Это было бы классно если б несколько хомяков одновременно мочили бранч-моба пока их хозяева мирно попивали кофееек АФК. Ну, если это конечно не мутанты из лабы-3, тут уже и 30 хомяков в базарный день наверное не справятся :lol:

                                  UPD. Чуть позже додумал, что включенный "lockmob" все равно не даст их бить...

                                  1 ответ Последний ответ Ответить Цитировать 0
                                  • ГеоПакГ Не в сети
                                    ГеоПак Заблокирован
                                    отредактировано

                                    мобов из дб бить могут все

                                    1 ответ Последний ответ Ответить Цитировать 0
                                    • L Не в сети
                                      LittleHarry
                                      отредактировано

                                      @"ГеоПак":
                                      мобов из дб бить могут все

                                      я может не понимаю разницы между могут и имеют право?
                                      И что, режим "lockmob" на мобов из дедбранчей не работает?

                                      1 ответ Последний ответ Ответить Цитировать 0
                                      • Aiko StarA Не в сети
                                        Aiko Star
                                        отредактировано

                                        Kvik Myndir, устное предупреждение. Все разборки в личку.

                                        1 ответ Последний ответ Ответить Цитировать 0
                                        • ГеоПакГ Не в сети
                                          ГеоПак Заблокирован
                                          отредактировано

                                          LittleHarry, попробуй хотябы правила прочесть
                                          Раздел 9 (Преступления против этики игры)

                                          Запрещено

                                          1. Без разрешения добивать монстра, участвующего в битве с другим игроком, за исключением
                                            a) MVP (монстры, после убийства которых появляется надпись MVP).
                                            b) Монстров из dead-branch.
                                          1 ответ Последний ответ Ответить Цитировать 0
                                          • sepulkaS Не в сети
                                            sepulka
                                            отредактировано

                                            заметила гадость: при рвботе ро в оконном режиме скрипты аи выполняются медленнее, чем при работе в полноэкранном. во всяком случае в московии хомяк тупит пару секунд перед атакой моба или бросается к уже мертвому, тупит перед реакцией на атаку. В полноэкранном такого не наблюдается.
                                            Хотя, с другой стороны, хорошо это заметно только в московии, из-за того, что мобов что ли больше? Хотя на респауне их там раз, два и обчелся, а все равно тупит.
                                            Есть идеи как с этим бороться?

                                            1 ответ Последний ответ Ответить Цитировать 0
                                            • Первое сообщение
                                              Последнее сообщение