Гайд по написанию скриптов для гомункулусов
-
..Ошибочка вышла с кодом из мира.
-
остаётся надеяться, что кто-то увидит недочет в скрипте
-
Не даблпостим.
Какой BeAction, кстати? Что это вообще за нафиг? х_х
-
как прописать в мираи данс атак?
-
ГеоПак,
Не забываем делать бэкап перед изменениями
Для MirAI в AI.lua замените это:
[code:2xafm5qg]elseif (Mystate == ATTACK_ST) then
OnATTACK_ST()[/code:2xafm5qg]
На это:
[code:2xafm5qg]elseif (MyState == ATTACK_ST) then
if ((GetV( V_SP, MyID) * 100) / GetV( V_MAXSP, MyID) > 80) then
OnATTACK_ST ()
local zx, zy = GetV( V_POSITION, MyEnemy )
Move(MyID,zx+1,zy)
Move(MyID,zx-1,zy)
OnATTACK_ST ()
Move(MyID,zx,zy+1)
Move(MyID,zx,zy-1)
else
OnATTACK_ST ()
end [/code:2xafm5qg]
80 это СП в процентах выше которого гомункул танцует, цифру можно заменить на ту которая устраивает (например 0).Мопед не мой, не тестил, но выглядит неплохо.
Для RampageAI:
Файл Conf/Custom.lua
найти:
[code:2xafm5qg]--[[Initialize your customizations here.
Hook or replace functions, and set some settings if you like.
--]]
-- An example to initialize the Advanced Movement Commands InitCustomAMCs()[/code:2xafm5qg]
Добавить после этого:
[code:2xafm5qg] SavedAttack = Attack
Attack = DancingAttack[/code:2xafm5qg]
Найти
[code:2xafm5qg]----------------------
-- Custom Functions ----[[
Put any extra functions here.
--]]
[/code:2xafm5qg]
Добавить после этого:
[code:2xafm5qg]-- Dancing Attack
function DancingAttack(homunID, targetID)
-- stop dancing if hp or sp lower then 0%, or 25%, or the homunculus is too far from its owner
-- this schould fix the "dance out of range bug"
-- Dancing Attack is also disabled for Monsters, which are to be kited
local t = MDBTable(actor)
if ((ActorHPPercent(HomunID) >= 0) and (ActorSPPercent(HomunID) >= 25) and (AABlocks(HomunID,OwnerID) <= 12) and (not t[11])) then
-- determine the targets position
local x, y = GetV(V_POSITION, targetID)
SavedAttack(homunID, targetID)
Move(homunID, x+1, y)
Move(homunID, x-1, y)
SavedAttack(homunID, targetID)
Move(homunID, x, y+1)
Move(homunID, x, y-1)
else SavedAttack(homunID, targetID)
end
end[/code:2xafm5qg]0 и 25 это ХП и СП гомункула в процентах выше которого активируется танцующая атака.
-
@"ГеоПак":
как прописать в мираи данс атак?1) FastAttack_Mod.lua закидываем в папку с игрой.
2) запускаем gui (Config.exe), открываем закладочку Extra, в окошечке Plugin выбираем FastAttack_Mod.lua
3) Жмём Save configuration
4) ????
5) Profit! (в смысле наслаждаемся результам) -
@"Aiko-Star":
Не даблпостим.Какой BeAction, кстати? Что это вообще за нафиг? х_х
Это остатки которые я не вычистил. Удалил.
Я пытался сделать гомункула активнее, чтобы он не ждал следующего вызова AI() а сразу переходил к выполнению действия, и заканчивал работу только если была отправлена команда (на сервер) атаковать, использовать скилл или идти. Если прирост и был то он был незначительный. -
@"iSe":
Интересует такой вопрос: у меня стоит Rampage AI rc6 - ничего в нем не правил - т.к. разбиратся долго и тяжело поэтому спрашиваю мэтров - что в нем поправить чтобы хом (ванилька) при начале атаки сразу же сплавлял все СП на болты и как только у него скопится сп во время боя с мобом он сразу же бил болтом на все что есть?) ато чот он у меня постоянно с полным СП ходит, и всегда умирает)и еще вопрос - встречал на просторах сети RampageAI_v1.0_rc7_by_Nakayama стоит ли ставить его? он с какого то левого сайта... или лучше остановится на rc6 с его офа?
Не только можно, но и НУЖНО использовать именно этот вариант Rampage. В исходном есть опечатка из-за которой ГОМ КИЛСТИЛИТ чужих мобов.
-
при испотльзование Rampage AI очень часто в чате появляеться надпись Not Enought SP, что подправить и где нужно в срипте, чтобы эта надпись пореже возникала?
-
В настроках поставить минимальное сп у гомункула равным единице.
-
Расскажите пожалуйста, как заставить его патрулировать вокруг меня в поисках жертвы?
-
Смысла в "патрулировании" нет, т.к. функция, используемая для получения списка присутствующих (мобы-игроки-etc), не имеет радиуса и действует где-то на экран. Т.е. что он в одном углу экрана будет, что в другом - результат получится один и тот же, лишних мобов хомяк не поймает
-
Sanq!
-
@"Aiko-Star":
Смысла в "патрулировании" нет, т.к. функция, используемая для получения списка присутствующих (мобы-игроки-etc), не имеет радиуса и действует где-то на экран. Т.е. что он в одном углу экрана будет, что в другом - результат получится один и тот же, лишних мобов хомяк не поймаетХомяк-то больше не увидит, а вот мобы увидят хомяка с большей площади и если агресвные - нападут. Так что смысл всё же есть. -
@"LisandreL":
Хомяк-то больше не увидит, а вот мобы увидят хомяка с большей площади и если агресвные - нападут. Так что смысл всё же есть.
Ну тогда еще можно в подобные плюсы записать и то, что покемон может оказаться ближе к мобу и быстрее до него бежать будетКрайне сомнительное преимущество, если честно.
-
Может оказаться и дальше, если по кругу. Но приманивание издали агрессивных монстров - несомненный плюс.
-
Так как реализовать?
-
Как вариант - уменьшить значение хп-сп для функции прохода по кругу и поставить ей радиус побольше (RampageAI).
-
вопрос следующий.
при поставленном мираи хом носится от моба к мобу как ужаленный, а при рампейже - тормозит после каждого убийства секунд 5-6. в чем разница и где поправить скрипт? ) -
Предположу что в файле Config.lua нужно выставить значение 0 тут:
-- Check for a new target only once every this many milliseconds
AcquireTargetTimeout = 0Кто знает, как в ремпедже включить автокастом скилл лифки - Emergency Avoid? В мирке срабатывает сразу если лиф начинает бить моба, а тут никак. Все перерыл...