Гайд по написанию скриптов для гомункулусов
-
кстати, данс атака у всех работает?
у меня работает, но почему-то хромает -
Ее типа пофиксили, точнее сделали практически невозможным ее использование. По крайней мере у меня так, с включенной танцующей атакой, Минутку все нормально, а потом сильно зависает чар, а лифка начинает тупо прыгать вокруг моба не бьет его. И тормоза тормоза тормоза... Вынуждена была убрать эту функцию.
Но вон кто то говорил что у него все норм с танцующей атакой работает. Если бы этот человек поделился еще как у него так все хорошо работает. -
Florencia, мой вариант
[code:2g5ogyeb] elseif (MyState == ATTACK_ST) then
OnATTACK_ST()
local zx, zy = GetV(V_POSITION, MyEnemy)
Move(MyID,zx ,zy + 1)
OnATTACK_ST ()
elseif (MyState == FOLLOW_ST) then
[/code:2g5ogyeb]пришлось сильно порезать, зато работает
но иногда хромаетпеченьку тому, кто выяснит, почему хромает
-
Прозреваю, что был специальный фикс супротив читорства. -
Некогда сейчас сильно тестировать, но побегала минут 6-10 - вроде бы, всё работает...
-
JdM , не у меня чето тож тупит. Причем после того как она вроде всех красиво убила с танцами и бубнами. И мне вдруг вздумалось пройтись пешком, она за мной не идет. Стоит как приклеенная.
-
Побегала ещё минут 10-15, проблем не обнаружила. Florencia, предлагаю протестировать мой вариант (сработает - хорошо, нет - так хоть буду знать, что может не сработать ^^):
[code:1pm7j49k]elseif (MyState == ATTACK_ST) then
local ax, ay = GetV( V_POSITION, MyID )
local bx, by = GetV( V_POSITION, MyEnemy )
Move(MyID,DoCompare(ax, bx),DoCompare(ay, by))
OnATTACK_ST ()[/code:1pm7j49k]Функция DoCompare отдельно:
[code:1pm7j49k]--------------------------------------------------
function DoCompare(a,b)if a>b then return (b-1) else return (b+1) end
end[/code:1pm7j49k]
-
Я в этом не бум бум. Могу тока тупо что то куда то вставить (скопировать). Это "Функция DoCompare отдельно:" где найти то?
elseif (MyState == ATTACK_ST) then
local ax, ay = GetV( V_POSITION, MyID )
local bx, by = GetV( V_POSITION, MyEnemy )
Move(MyID,DoCompare(ax, bx),DoCompare(ay, by))
OnATTACK_ST ()Это я поняла в AI. Нашла вставила. А вот это куда втюхать?
function DoCompare(a,b)
if a>b then
return (b-1)
else
return (b+1)
end
endИ че прям в такой виде? с пунктирчиками?
-
Можно без пунктирчиков, а можно и с ними, они ни на что не влияют, просто для красоты и соответствия оригинальному виду MirAI ^^ А втюхать можно, например, так, в тот же ai.lua:
[code:32xdzpmt]--------------------------------------------------
function DoCompare(a,b)if a>b then return (b-1) else return (b+1) end
end
function AI(myid)
--------------------------------------------------[/code:32xdzpmt] -
ясно , спасибки.
upd/ Проверила. Работает. еще раз спасибо. Единственное что мне показалось, что при той танцующей атаке что у меня была раньше.
Было прописано вот что:
elseif (MyState == ATTACK_ST) then
if GetV(V_SP, MyID) >= 30 then
local zx, zy = GetV( V_POSITION, MyEnemy )
OnATTACK_ST()
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Гомка как бы не на целую клетку отходила, а как бы на поклетки, а щас она прям на противоположную стороны от моба скачет. Но лучше так чем ваще никак. Так хоть какая то движуха.
-
использую старый вариант (до 'фикса') от Loneliness - работает нормально
-
Данс атака в AzziAi работает без изменений
-
У меня AzziAi из ировики почему-то вообще не заработал (вернее работает, но на настройки по мобам никак не реагирует никак).
Мой мод по МирАИ (где-то тут был прикреплён) работает без осложнений. -
@"LisandreL":
У меня AzziAi из ировики почему-то вообще не заработал
насколько я помню, я качала вот этот
<!-- m --><a class="postlink" href="http://iro.ragnarokonline.com/forum/forums/thread-view.asp?tid=32534&start=1">http://iro.ragnarokonline.com/forum/for ... 34&start=1</a><!-- m --> -
Как в RampageAI дописать, что бы гомункул атаковал различных мобов в зависимости от его HP/SP, ну и так что бы это в дальнейшем просто настраивалось? Я так понял в Monster.lua можно дописать мобов нужных, и выставить на них то, как их атаковать. А вот где выставить хп/сп при котором бросаться на мобов стоит, я что-то не нашел.
И вторая проблемма с рампейджем, гомункул слив все сп начинает кидать автокаст не 5-ого лвла, а того на который хватает, после тика сп. Как бы это поправить, что бы он все-таки дожидался когда будет 31 сп и кидал уже болт 5-ого лвла. -
не подскажите, чтоб traceAI начала писать лог какие-либо действия, кроме вызова ее в коде AI, нужно совершить?
-
Давно не баловалась, но варианта два: или только вызов функции из кода или вызов + в клиенте вписать что-то типа /traceai. Точно не помню, поэтому не гарантирую. Но вроде бы так.
-
@"Vierge":
Как в RampageAI дописать, что бы гомункул атаковал различных мобов в зависимости от его HP/SP, ну и так что бы это в дальнейшем просто настраивалось? Я так понял в Monster.lua можно дописать мобов нужных, и выставить на них то, как их атаковать. А вот где выставить хп/сп при котором бросаться на мобов стоит, я что-то не нашел.И вторая проблемма с рампейджем, гомункул слив все сп начинает кидать автокаст не 5-ого лвла, а того на который хватает, после тика сп. Как бы это поправить, что бы он все-таки дожидался когда будет 31 сп и кидал уже болт 5-ого лвла.
*на всех монстров одни и теже значения хп\сп действуют- config.lua MinAttackSkillLevel = 1 -дефолт, требуеться изменить на 5 чтобы гом всегда использовал 5лвл скила
-
Что я нашла
<!-- m --><a class="postlink" href="http://code.google.com/p/ro-rail/">http://code.google.com/p/ro-rail/</a><!-- m --> никто не пробовал?Кстати, может кто подскажет как данс атаку к рампаге прикрутить?
и как заставить хомячка возвращаться к алхимику, после того как всех убил, а не зависать в точке где убил последнего моба? -
Оп, интересная штука, заценим... как не лень будет в ро зайти :oops:
Касательно возврата - где-то там был тайм-аут, сейчас сходу не нашла.
Касательно данс-атаки. Где-то здесь это уже было, но все же.
Файл /Conf/Custom.lua, раздел Customization Initialization внутри функции function InitCustom() пишем следующее:
[code:3sbq1gfv]SavedAttack = Attack
Attack = DancingAttack[/code:3sbq1gfv]
Тот же файл, раздел Custom Functions:
[code:3sbq1gfv]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 ((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:3sbq1gfv]
Что есть что - уже не помню, надо, опять же, рыться вспоминать, мне влом. Но вроде должно работать. Если будет ругаться - поиграться с условиями внутри if, я туда что-то дописывала.