Гайд по написанию скриптов для гомункулусов
-
Немножко оффтопик
Те, у кого на тестовом были агрессивные гомункулы - получалось ли их надежно сделать неагрессивными?.. Потому что мне удобнее был бы как раз тихий-мирный гомункул вроде Лиф, только с боевыми способностями Филира :). И не килстиллит, и танковать я сама смогу, и точно на паразитов не нападет, когда я их после скиллрезета возьму :).
Если нет, то можно ли несложным образом (мне лень разбираться со скриптами :() задать всем гомункулам пассивные скрипты неигровыми методами? Стереть агрессивные, например :). -
Скрипт один. На всех гомункулусов. И по умолчанию (скрипт, который предоставляет Гравити) он довольно туп. Никаких проверок на киллстил нет, агрессивные покемончики атакуют всех подряд (и травку химов тоже). Так что пользуйте готовые скрипты, если лень разбираться
PS Так как с РО завязала, за новостями сервера больше не слежу. Напишите сюда, когда патч все-таки введут, я напишу последнюю часть гайда, после чего можно будет совсем спокойно исчезнуть отсюда
-
А нельзя ли достать стандартный скрипт и заменить в нем то, что прописано для агрессивного поведения, на то, что прописано для пассивного?
Должно получиться дешево и сердито :).
Пойду поищу, что там есть в AI :). -
Loneliness, исправить там надо, если мне память не изменяет, строчку проверки типа покемона. Или вообще ее убрать и сразу вызывать соотв. функцию выбора цели (смотрим мой гайд, там это все есть, мне лень искать просто )
-
Кажется, я уже почти разобралась в скрипте, который сам лежит :). И гайд очень помог :). Спасибо :).
-
Для того и писала, пользуйтесь хонана...
-
Начал ковыряться в скриптах (MirAI).
Возник такой вопрос: функция GetV(V_TARGET,owner) - возвращает цель алхимика, но только в том случае, если атакуешь ручками. А если кастуешь на какого-то монстра фаер/колд болт, то можно как-то его ID получить? -
LisandreL
Сорь, торможу с ответом. Если GetV(V_TARGET) не хватает цель с момента каста, надо думать, как быть... Пока есть несколько задумок, попробую их сформулировать во что-то более-менее понимаемое остальнымиPS В эти выходные обновлю гайд 100%. Просьба великим и ужасным модераторам как-то сие увековечить и от флуда в начале топика почистить, коль не сложно.
-
Собственно, оно и свершилось. Обновленный гайд лежит на первой странице. Ура великой мне!
-
Aiko Star
Ниасилил, но выглядит круто.
Добавила ссылку в faq. -
Автор конечно молодец!, но это геморой какой-то
пока читал крыша уехала дальше некуда, по мне вариант МирАи для КАЧА, а дэфолтный с некоторыми исправлениями для ПВП (бонально переключать режимы командой /hoai) и не замарачиватся)) -
А нафиг читать тогда было?
Я ни на что и не претендую, это для маньяков вроде меня, которым интересно что-нибудь свое добавить. -
Да я так)), настроение плохое было.., да и мозг уехал :oops:
-
Вообще я так понял все что можно снимать с клиента - это расстояние до цели, хп/сп гома, его статус и тип цели, ее координаты?
Из этого много не наработаешь. =/ -
Состояние цели, список действующих лиц на экране, цель цели и т.д. Простор для фантазии. Вон, Рэмпэйдж АИ чего только не вытворяет...
-
Aiko Star, на счёт каста ничего не придумалось?
Ну или хотя бы способ определить не "моб атакует хозяина", а "моб идёт к хозяину, собираясь атаковать". На данный момент не для кача это не нужно, но всё же. -
LisandreL
Вариант "моб идет бить морду хозяину" легко делается. Показала бы на рэмпейдже, но там такое количество собственных типов данных и функций... ща из мираи утащу нужный кусок.[code:1smano8l]--------------------------------------------------
function GetEnemyOf(id) -- this function is not for PvP Modslocal result = 0 local actors = GetActors() local enemies = {} local index = 1 local target for i,v in ipairs(actors) do if (v ~= OwnerID and v ~= myid) then if (IsMonster(v) == 1) then if GetV(V_MOTION, v) ~= MOTION_DEAD then target = GetV(V_TARGET, v) if (target == id) then enemies[index] = v index = index + 1 end end end end end local min_dis = 100 local dis for i,v in ipairs(enemies) do dis = GetDistance2(MyID, v) if (dis < min_dis) then result = v min_dis = dis end end return result
end
[/code:1smano8l]Проверка на движение (уже от себя):
[code:1smano8l]
local mob_motion = GetV(V_MOTION, MobID)
if GetV(V_TARGET,MobID)==OwnerID then
if mob_motion == MOTION_MOVE then
бла-бла-бла
elseif mob_motion == MOTION_STAND then
бу-бу-бу
elseif mob_motion == MOTION_HIT and MyState ~= ATTACK_ST then -- кто-то другой бьет моба
бз-бз-бз
[/code:1smano8l] -
Состояние цели - что есть? Стуатусы на цели возвращает?
-
Состояние - это V_MOTION. Стоит, бьет, идет, кастует, etc. Все ж в гайде написано х_х
-
здравствуйте. скачала RampageAI и меня очень раздражает, что когда хим стоит гомункул нарезает вокруг него круги, а не стоит рядом. где это можно отменить, подскажите, пожалуйста? (у меня проблемы с анлийским, сама не разберусь