Гайд по написанию скриптов для гомункулусов
-
Это связано с тем, что так написан ИИ. Вы можете поискать где проверяются состояния и пускаются болты и переписать там, чтобы сидя пускались.
-
Как добавочка для любителей покастовать сидя.
файл battle.luaДанный кусок кода отвечает за это.
[code:2qkeagz8]
-- If our owner is sitting, we can't cast //anything//
if GetV(V_MOTION,OwnerID) == MOTION_SIT then
-- Nope, no can do
return false
end[/code:2qkeagz8]Далее можно фантазировать.... Например снести данный кусок нафиг, ну или к примеру заменить на:
[code:2qkeagz8]
-- If our owner is sitting, use SittingSkill variable to determine if skill usage is allowed or not
if GetV(V_MOTION,OwnerID) == MOTION_SIT and SittingSkill == false then
-- Nope, no can do
return false
end[/code:2qkeagz8]и добавить в файл Conf/Config.lua
[code:2qkeagz8]-- Should our Homunculus use skills while its owner is sitting? true for "yes", false for "no"
SittingSkill = true[/code:2qkeagz8]Ну или придумать что-то более экзотичное.
Не забываем про бэкапы файлов перед внесением изменений, не забываем, что я не гарантирую отсутствие ошибок итд. итп.
Гома под Rampage AI на арене тестил на последней eAthena, стукал исправно, скилы использовал. В ПвП тоже хорошо стукал, пати хима трогал только если натравить шифт+двойной клик правой кнопкой вручную. Друзей и пати на арене пока не проверял. Ну и к тому же последняя eAthena это не совсем Мотр, хотя и должна имхо примерно совпадать в этом плане.
-
Есть у меня сильное подозрение, что пока хим сидит, хомяк не сможет скиллы использовать. И дело тут не в проверках, а в том, что команды на использование скиллов севрер обрабатывает как исходящие от хима (а по сути так оно и есть, хомяк-то у нас рулится на компе). Но надо проверять.
-
Индусы. А сразу return true прописать религия не позволяет?
-
@"Aiko-Star":
Есть у меня сильное подозрение, что пока хим сидит, хомяк не сможет скиллы использовать. И дело тут не в проверках, а в том, что команды на использование скиллов севрер обрабатывает как исходящие от хима (а по сути так оно и есть, хомяк-то у нас рулится на компе). Но надо проверять.
может я не про то но когдя я на афк каче у меня хим сидит а гом юзает скилы вовсю -
Может. Просто удобно, сел и он не тратит зря сп.
-
@"абракадавр":
Индусы. А сразу return true прописать религия не позволяет?
Посмотри код и скажи кто из нас индус :twisted: . После этой проверки идет еще проверка достаточно ли у нас СП, агрессивный гом или пассивный и проверка поставлены ли атакующие скилы на паузу (не помню зачем последняя нужна, но эта фича используется в каких-то рассчетах).
Кроме того моей целью было ввести возможность выбора для пользователя (хочу чтобы кастовал/не кастовал когда хим сидит), ибо:@"Zeno":
Просто удобно, сел и он не тратит зря сп.
А вообще индусы рулят, у них такой классный акцентAiko Star, скилы юзаются если хим сидит, проверено. "Некастование" это чисто фича Ремпеджа и введена видимо для того чтобы гом регенил СП когда хим сидит, или по каким-то мне не ясным причинам.
-
Интересует такой вопрос: у меня стоит Rampage AI rc6 - ничего в нем не правил - т.к. разбиратся долго и тяжело поэтому спрашиваю мэтров - что в нем поправить чтобы хом (ванилька) при начале атаки сразу же сплавлял все СП на болты и как только у него скопится сп во время боя с мобом он сразу же бил болтом на все что есть?) ато чот он у меня постоянно с полным СП ходит, и всегда умирает)
и еще вопрос - встречал на просторах сети RampageAI_v1.0_rc7_by_Nakayama стоит ли ставить его? он с какого то левого сайта... или лучше остановится на rc6 с его офа? -
iSe, для начала хотелось бы знать использует ли ванилька скилы самостоятельно. Другими словами: проблема в неиспользовании скилов, или слишком большом перерыве между скилами. Либо же в том, что при определенном уроне СП скилы перестают кастоваться скилы (СП не сливается полностью).
Все вопросы связаны с автоматическими кастами, вручную с панели они всегда работают.
С rc7 by Nakayama (если имеется ввиду этот) проблем никогда не было, кажись он даже рекомендовался самим Faithful (создателем скрипта). Какие именно были проведены изменения я правда не вникал.
-
поставил rc7 от Накаямы в принципе картина та же.. появляется не агрессивный моб в зоне видимости - ванилька кидает на него 1 болт (сама) и бежит в атаку и бьет обычными ударами при том что сп у нее еще 80-100% она все равно бьет обычными уларами, повторных попыток кинуться болтом ванилька не предпренимает.
Хочется чтобы было: ванилька видит отреспившегося моба - кидает на него болты пока есть сп и после кидается в бой с обычными ударами, пожже скопив СП еще на один болт - кидается опять болтом, сама, без постороннего вмешательства. На то ведь он и ИИ (искусственный интелект) чтобы самому за меня думать ^_^ -
iSe, проблема понятна, предполагаемое решение:
открываем файл:
"папка с игрой"\AI\USER_AI\Conf\Monsters.luaНаходим там (по идее в саааамом конце)
[code:38hbj47j]DefaultMonsterSettings = { многабукоф }[/code:38hbj47j]Где-то в скобках будет стоять
skMax=1 (вероятно 1, это число ограничивает количество кастов по одному стандартному мобу, -1 означает бесконечность)исправляем на
skMax=-1Сохраняем, перезапускаем гома (например чар селектом или Rest-Call) и по идее все должно быть в порядке. Если нет будем думать дальше.
Для пояснения: стандартными являются все мобы, которые не были определены отдельно (например грибочки, планты химов определены изначально отдельно). Отдельно можно определить любого другого моба, тогда поведения гомункула на нем будет отличаться от других (ну например более низкий приоритет, ограничение по количеству кастов, бить только с расстояния)
-
Спасибо, помогло, эффективность гома реско выросла) Спамит болтами как саг под брагой ^_^
-
замучалась ==
где (и как, и можно ли) в Рампейдже прописать, чтобы гом не атаковал нового моба, если у него, скажем, меньше 30% хп и 5% сп?
(та, я нупко = -
Нельзя. Нужен модификация. Например, у меня существуют такие параметры как atkHP и atkSP, для тех или иных монстров.
-
хм. а можно попросить вас выложить кусок этого скрипта?
как я понимаю, такая настройка возможна в мираи, но не для типа монстра. не очень хочется переходить снова на него =/
-
А я не помню где я это дописывал. Надо брать чистый и сравнивать, а потом из дифов вырезать нужные кусочки.
Пример:
[code:j4095g5f]{ 1881, prio=4, atkHP=50, atkSP=61 }, -- Lesavka[/code:j4095g5f] -
Зено, не жмотничай. Это идет в процедуре взятия инфы из таблицы прописанных мобов.
-
..\AI\USER_AI\MonSupport.lua 80
[code:sht2cj71]-- Verify monster settings
function VerifyMonSettings(t,defaultTable,id)
-- Parameter names
local argNames = { nil, "prio", "atk", "skLvl", "skDly", "skMax", "aSkLv", "aSkDl",
"aSkMx", "defOnly", "kite", "ffa", "hlBm", "mammo", "aTer", "aBmb", "atkHP", "atkSP" }[/code:sht2cj71]
..\AI\USER_AI\MonSupport.lua 235
[code:sht2cj71]-- Check if we are allowed to melee the monster
function MAttackAllowed(actor)
-- Get the monster's table
local t = MDBTable(actor)-- Check if it's not attaking us if (GetV(V_TARGET,actor) ~= OwnerID) and (GetV(V_TARGET,actor) ~= HomunID) then -- Check if HP or SP is higher than needed if (ActorHPPercent(HomunID) < t[17]) or (ActorSPAmount(HomunID) < t[18]) -- Check if skill is not paused or (t[4] > 0 and PauseAttackSkill) then return false end end -- Return the melee allowed value return t[3]
end[/code:sht2cj71]
..\AI\USER_AI\MonSupport.lua 377
[code:sht2cj71] -- Get the monster's table
local t = MDBTable(actor)-- Check if it's not attaking us if (GetV(V_TARGET,actor) ~= OwnerID) and (GetV(V_TARGET,actor) ~= HomunID) then -- Check if HP or SP is higher than needed if (ActorHPPercent(HomunID) < t[17]) or (ActorSPAmount(HomunID) < t[18]) then return false end end -- Check if level is greater than 0 and we haven't casted too often -- against them if t[4] > 0 and MSkillMaxCasts(actor) > ActorData[actor].Count.HomuSkill then return true end[/code:sht2cj71]
..\AI\USER_AI\Conf\Monsters.lua 97
[code:sht2cj71] - "atkHP" число HP в процентах ниже которого гомункул не будет проявлять
агрессию, если его или хозяина не бьют.- "atkSP" число SP при котором гомункул начнет атаковать.[/code:sht2cj71]
..\AI\USER_AI\Conf\Monsters.lua 211
[code:sht2cj71]DefaultMonsterSettings = { nil, prio=1, atk=true, skLvl=5, skDly=500, skMax=-1, aSkLv=5,
aSkDl=1000, aSkMx=-1, defOnly=false, kite=false, ffa=false,
hlBm=false, mammo=0, aTer=0, aBmb=0, atkHP=10, atkSP=0 }[/code:sht2cj71] -
а MirAI случайно никто не модифицировал?
не знаю как сделать, чтоб гомункул атаковал мобов другого гомункула
пример: в пати 2 хима, один гомункул танчит мобов мой их бьётсейчас мой гомункул не атакует моба, пока я бить не начну
ничейных мобов он нормально атакуетзаранее спасибо
-
М... поиграться с описанием друзей, имхо. Если оно есть в мирке.