[Q]Обсуждение гомункулусов, их билдов и способов кача
-
Не считал.
Если 430 как максимум набирается, значит уже точно часть регена будет улетать впустую.
Не забываем что 130 инт это средненький такой хомячок, пусть и неплохой. -
Итак, провели вчера с Aroch серию тестов танцующей атаки. Я то и дело засыпала и срывала серию, но мы это сделали. Результаты, по-моему, довольно интересные.
Ваниль, аспд 176, пинг ~280
Танцующая атака: 150 ударов в минуту (~180 аспд)
Обычная атака: 120 ударов в минуту (~175 аспд)Лиф, аспд 146, пинг ~280
Танцующая атака: 67 ударов в минуту (~155 аспд)
Обычная атака: 63 удара в минуту (~152 аспд)Лиф, аспд 144, пинг ~190
Танцующая атака: 72 удара в минуту (~158 аспд)
Обычная атака: 69 ударов в минуту (~156 аспд)Никакого влияния Emergency avoid на скорость атаки лифок, по крайней мере, при данных параметрах, выявлено не было.
Выводы, которые удалось сделать:- При большей аспд хома танцующая атака более эффективна.
- Танцующая атака скорее работает, чем нет ^^
- Скорость атаки хома также зависит от температуры на Марсе =_=
-
- Какое время тестов? 1 минута или больше, а потом поделенно и усреднено?
- Пробовали ли ускорять ванила (скажем при помощи блудика)?
- Какой АИ и какая реализация «танцующей атаки» использовались?
Просто, скажем, при стандартной MirAI'шной «танцующей атаке» мой филирчик далеко не всегда танцует.
-
- Серии по 50~51 атаке. Потом, для удобства, привела к минутному показателю. Как правило, владелец хома считал атаки (соответственно, натравив его и отзывая обратно), а тот, кого кусали - засекал время от первой до последней атаки. Потом количество промежутков между атаками делилось на время ^^
- Нет.
- Реализация - "стандартная МирАИ-шная", только без проверки на сп. Моя лифка проверялась на МирАИ-шном АИ и на стандартном (разницы не было), остальные хомы, вроде бы, только на стандартном.
Обратный вопрос: при какой танцует?..
Один из интересных результатов тестов (его видно): лиф с меньшей аспд кусалась быстрее, чем лиф с большей, даже без всяких там танцующих. Перепроверяли это несколько раз - результат стабильный. Единственное, что с ходу лезет в голову - пинг влияет на скорость атаки хома вообще
-
Когда-то был баг, связанный с тем, что аспд хомяков поднималось за счет скорости прогона скрипта - многочисленные команды атаки серверу как-то сбивали задержку без всяких танцев. Это фиксили, но ситуация
лиф с меньшей аспд кусалась быстрее, чем лиф с большей, даже без всяких там танцующих.
очень напоминает. -
В общем-то, главный вывод, который я хотела сделать - что, вероятнее всего, в большинстве случаев танцующая атака хотя бы не повредит. А в некоторых случаях аспд может и правда существенно увеличиться.
Что даёт вполне однозначный ответ на вопрос - стоит ли танцующую атаку использовать в современных реалиях мотра (который меня и интересовал) ^^
Чтобы получить какие-то точные данные зависимости всего от всего, боюсь, нужно тестировать куда больше, точнее и нуднее, и не уверена, что у меня есть желание такими танцами с бубном заниматься (да и не нужно это, кроме как из научного интереса). -
@Loneliness:
Обратный вопрос: при какой танцует?..Если не ситать случаев «упирания» в препятствия, то при такой:
[code:baj8i8op]----------------------------------
-- Fast Attack Mod by LisandreL --function ModInit()
StdOnATTACK_ST = OnATTACK_ST
OnATTACK_ST = FastOnATTACK_ST
endfunction FastOnATTACK_ST()
local ex, ey = GetV(V_POSITION, MyEnemy)
local mx, my = GetV(V_POSITION, MyID)
if (ey < my) then
if (ex < mx) then
Move(MyID,mx-2,my-2)
else
Move(MyID,mx+2,my-2)
end
else
if (ex < mx) then
Move(MyID,mx-2,my+2)
else
Move(MyID,mx+2,my+2)
end
end
StdOnATTACK_ST ()
end[/code:baj8i8op]
Влияние на скорость атаки не проверялось. -
Посмотрела на вариант Lisandrel, подумала, сделала "на коленке" вот такую (принцип аналогичный - шлёт хома на противоположную сторону от противника)...
[code:3p1v11lj]--------------------------------------------------
function DoCompare(a,b)if a>b then return (b-1) else return (b+1) end
end
-- (...)
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:3p1v11lj]Немного померяла, точность оставляет желать большего (на волках неудобно) и поэтому могу и ошибиться, но я бы сказала, что работает лучше, причём заметно.
И, по-моему, с Emergency avoid работает ещё лучше, в одном тесте получилось выбить 56 атак за 39 секунд (моей лифкой, той, что 144 аспд), а это 165 аспд. При том, что она била штук пять волков и, соответственно, тратила время ещё на переключения.
Чаще же набивалось что-то около 75 атак в минуту (160 аспд). Но длинных серии было только три (56 атак за 39, 43 за 34, 50 за 38).upd: пинг 185
-
А можно для тех кто в танке набросать вариант "самых быстрых" танцев, при прочих равных условиях :pardon: Пожалуйста :pardon:
-
Haunted, на свой страх и риск. Потому что всё это немножко танцы с бубном и гарантировать "самую быструю скорость" вряд ли кто сможет, по крайней мере, сейчас ^^
Итак, мне пока кажется самым быстрым вариант - то, что приведено постом выше.
Функция DoCompare() вставляется, например, в AI.lua (можно в Utils.lua).
То, что между (...) - вставляется в AI.lua вместо стандартного
[code:13is2qyh]elseif (MyState == ATTACK_ST) then
OnATTACK_ST ()[/code:13is2qyh]Либо вариант от LisandreL, парой постов выше. По идее, он примерно с той же скоростью должен работать.
-
Loneliness, ясно, спасибо, попробую сегодня.
-
Поясню: мой вариант для MirAI не требует модификации оригинального скрипта.
Просто распаковываете архив в папочку USER_AI и в конфиге выбираете этот мод:
](link)
При желании так же отключается или переключается на другую модификацию.То, что это самые быстрые танцы никто вам не гарантирует, но по ошушениям (а теперь и тестам) работает неплохо. :pardon:
-
Loneliness, а можно еще подробнее, что куда и как? Не, я не совсем идиот, но всё таки.
Потому что после тупо вставки первой части скрипта в AI.lua и второй вместо стандартной функцииelseif (MyState == ATTACK_ST) then
OnATTACK_ST ()Ваниль начала бессовестно киллстилить, сбегать и перестала бить болтами совсем о_о
что-то я явно куда-то не туда засунула ^^"" -
а можно сразу несколько модов ставить в мирке?)
-
MJ, по идее, добиться настолько радикальных перемен такой правкой должно быть тяжело...
А точно включен МирАИ-шный АИ, а не базовый? Ну, мало ли... просто это первое, что пришло в голову ^^
Замена осуществляется в функции
[code:3bl0n6fq]--------------------------------------------------
function AI(myid)
--------------------------------------------------[/code:3bl0n6fq]
, но в других указанных строк кода, вроде бы, и нет.И ещё что-нибудь нехорошее могло случиться, если функция DoCompare() была случайно вставлена внутрь другой функции ^^
Это, наверное, всё, что с ходу могу придумать на сей счёт. -
@"ГеоПак":
а можно сразу несколько модов ставить в мирке?)Можно.
Вариант1:
Открываем SelectedMod.lua и вбиваем туда все моды:
[code:p6mhvkdw]require "./AI/USER_AI/1_Mod.lua"
require "./AI/USER_AI/2_Mod.lua"
require "./AI/USER_AI/3_Mod.lua"
...
require "./AI/USER_AI/N_Mod.lua"[/code:p6mhvkdw]Вариант2:
Позволяет использовать стандартный GUI.
Создаём мод, который содержит набор нужных нам модов всё с тем же кодом:
[code:p6mhvkdw]require "./AI/USER_AI/1_Mod.lua"
require "./AI/USER_AI/2_Mod.lua"
require "./AI/USER_AI/3_Mod.lua"
...
require "./AI/USER_AI/N_Mod.lua"[/code:p6mhvkdw]
Сохраняем, например, как SetOfMods_Mod.lua. Выбираем этот мод через GUI. -
Loneliness, через час-два посмотрю еще раз. Мне тоже показалось, что тупо выключился мирАи вообще и заработал базовый, но многократный /hoai проблему не решил, чарселект, перезапущенный ро тоже. )
наглючить я могла, так как торопилась... хотя вряд ли я засунула бы одну функцию в другую х) -
Ах да, забыл сказать. Не ставьте с танцующей атакой дистанцию гомункула больше 14 иначе он будет вылетать за пределы экрана и подвисать.
-
@LisandreL:
Ах да, забыл сказать. Не ставьте с танцующей атакой дистанцию гомункула больше 14 иначе он будет вылетать за пределы экрана и подвисать.
Ради порядка, конечно, стоит до 14 сократить, но лично у меня такого не бывает. Когда моб находится далеко, то он просто атакует его в лоб как в обычном режиме, не забегая за спину.ПС
На каком лвл ванила примерно уже можно комфортно идти качаться на ванберков и исил разных? -
Если есть нормальный реген или шмот на инт чтобы часто ресать - можно где то с 65. Нормальное фли и выживаемость будет думаю, ближе к 80-85.