Tenho um filir lvl 85 por enquanto, ainda não evolui ele (é a segunda forma, que vira Fênix).
Realmente no começo era um pouco dificil upar ele, gastava muitas poções, mas agora vale a pena. Desde o lvl 82 ele consegue matar a múmia anciã quando está com o SP acima de 300. Para matá-la eu atraia para o portal, ficava esperando o SP dele recuperar e depois entrava e detonava ela.
Claro que usei a dancinha para fazer isso. E é nisso que quero dar minha contribuição.
Analisando os códigos da dancinha, vi que ele faz dois movimentos entre os ataques, e faz um cálculo enorme para saber se é para dançar ou não. Com isso cheguei a conclusão de que eu podia reduzir os movimentos e usar um valor fixo para definir quando dançar.
Aqui está a sequência do código postada pelo Janus:
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 |
|
Fiz o seguinte
. . . elseif (MyState == ATTACK_ST) then OnATTACK_ST () -- Se observar nos dois trechos, tanto if como no else, a primeira linha é um ataque, então ataco antes de calcular algo. -- Dancinha if (GetV( V_SP, MyID) >20) -- Se meu SP é suficiente para usar pica-pau ele começa a dançar local zx, zy = GetV( V_POSITION, MyEnemy ) --Pego a posição do inimigo Move(MyID,zx+1,zy) --Faço um movimento para um lado OnATTACK_ST () --Já ataco novamente Move(MyID,zx+1,zy) --Faço um movimento para o outro lado end . . .
|
|
Como faço um movimento a menos em cada ataque, ele ataca mais rápido. Ele fica indo de um lado para o outro e atacando no meio do caminho. No outro código ele passa de um lado para o outro, dai ataca, vai pra frente e para trás, dai ataca. O único problema do meu código é se o monstro estiver encostado de lado na parede, pq dai ele faz uma semi dança por não poder ir do outro lado, mas até agora não tive problema com isso.
O outro detalhe é o cálculo da porcentagem ideal para ele usar a dancinha. Quando está em níveis mais baixos, que upa muito rápido, talvez seja interessante manter o cálculo de porcentagem, mas qdo ele já está forte, um valor fixo atende muito bem. Quem quer dançar apenas qdo tiver sp suficiente usar um número x de skill pica-pau, basta multiplicar x * 20. Ex: Só dançar qdo puder usar 4 "pica-pau". 4 * 20 = 80, a linha de código fica assim:
if (GetV( V_SP, MyID) >80)
E por último, como eu sempre vou atacar no bloco MyState==ATTACK_ST, já usei o ataque no ínício para evitar perda de tempo com os cálculos ou lendo a instrução "else".
Não estou querendo dizer que esse código é melhor do que os demais, só que para o meu filir ele ficou bom. Gostaria que alguns de vcs testassem para ver se também acham que tem alguma melhora, ou se ele fica deficitário na situaçào de mosntro encostado em obstáculo.
Por enquanto é isso. Depois volto para postar um trecho para monstros que não são agressivos, mas que precisam de uma certa quantidade de SP para serem atacados (Zenorc, Mi Gao).
Estou colocando essa customizaçã aqui porque não sei se em outros
homunculus ela será tão efetiva. Se alguém quiser testar e
colocar sua experiência aqui acho que ajudará a todos.Espero ter ajudado.
Toda e qualquer sugestão de melhoria será bem vinda.