Ir para conteúdo
  • 0

Monster ritar de acordo com o level do player


AdilsonHacker

Pergunta

Olá galera, tudo bem? bom eu gostaria de saber se seria possível um script que o monstro ritasse de acordo com o level do jogador que ele está atacando.

Exemplo:

 

o script iria funcionar assim, iria ter varias tag lá (configurável) na seguinte forma:

Level do player: 200

Quando o monstro vai ritar no player level 200 : de 300 a 400 hitpoints (rit variando não podendo passar do 400 nem ritar menos de 300)

e assim por diante.

 

Desculpem se não expliquei direito, qualquer coisa só perguntar.

 

Abçs.

 


up

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

/\ pronto editei o post ai agora ele ta atacando a cada 1 segundo(configurado), e o dano é pelo level.

obs: não repita o level e math.huge que dizer infinito


#não tinha visto o post, ta jaja eu posto com o efeito


pronto

 

local dps = 1 -- dano por segundo
local a = {
    {levelMin = 0, levelMax = 10, danoMin = 1 , danoMax = 3}, 
    {levelMin = 11, levelMax = 20, danoMin = 4 , danoMax = 7},
    {levelMin = 21, levelMax = math.huge, danoMin = 20 , danoMax = 40} 
}
 
function onAttack(cid, target)
    for _, b in pairs(a) do
        if getPlayerLevel(target) >= b.levelMin and getPlayerLevel(target) <= b.levelMax then
            if getPlayerStorageValue(cid, 8374239743824793874) < os.time() then
                doSendDistanceShoot(getThingPos(cid), getThingPos(target), CONST_ANI_SPEAR)
                doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -b.danoMin, -b.danoMax, CONST_ME_BLOCKHIT)
                setPlayerStorageValue(cid, 8374239743824793874, os.time() + dps)
            end
        end
    end
    return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

ps: não testei mas acho que ta funcionando de boa

 

.lua

local config = { 
[10] = {danoMin = 1, danoMax = 10}, -- [level]  = {dano minimo, dano maximo},
[20] = {danoMin = 10, danoMax = 20},
[30] = {danoMin = 30, danoMax = 40},
[200] = {danoMin = 40, danoMax = 50},
}
 
function onAttack(cid, target)
    for level, dpl in pairs(config) do
        if getPlayerLevel(target) >= level then
            doTargetCombatHealth(cid, target, COMBAT_LIFEDRAIN, -dpl.danoMin, -dpl.danoMax, CONST_ME_BLOCKHIT)
        end
    end
return true
end
.xml
<event type="attack" name="mobAttack" event="script" value="nomedoscript.lua"/>
e registre no mob que vai ataca
<script>
<event name="mobAttack"/>
</script>
Link para o comentário
Compartilhar em outros sites

  • 0

o script funcionou, mais apresentou erros amigo.

ele ataca o player com um fast atk enorme e não obedece ao script exemplo min=40 max= 50, ele rita de 40 a 200 e vai variando muito o rit

e se o player for level 201 o script não funfa, tá parecendo que tenho que configurar de 201 ritar tanto, 202 ritar tanto.. tem como arrumar isto?

e ele tá mudando o atk do monster, invez de aumentar ele muda tudo.

Obrigado por tentar me ajudar, desculpe se expliquei meio enrolado.

Reputado por tentar me ajudar.

Abçs

 

Level 10 apanhando:

 

 
12:32 Você perdeu 3 hitpoints devido a um ataque de um guarda.
12:32 Você perdeu 7 hitpoints devido a um ataque de um guarda.
12:32 Você perdeu 5 hitpoints devido a um ataque de um guarda.
12:32 Você perdeu 105 hitpoints devido a um ataque de um guarda.
Link para o comentário
Compartilhar em outros sites

  • 0
pronto testa agora:
local dps = 1 -- dano por segundo
local a = {
    {levelMin = 0, levelMax = 10, danoMin = 1 , danoMax = 3}, 
    {levelMin = 11, levelMax = 20, danoMin = 4 , danoMax = 7},
    {levelMin = 21, levelMax = math.huge, danoMin = 20 , danoMax = 40} 
}
 
function onAttack(cid, target)
    for _, b in pairs(a) do
        if getPlayerLevel(target) >= b.levelMin and getPlayerLevel(target) <= b.levelMax then
            if getPlayerStorageValue(cid, 8374239743824793874) < os.time() then
                doTargetCombatHealth(cid, target, COMBAT_LIFEDRAIN, -b.danoMin, -b.danoMax, CONST_ME_BLOCKHIT)
                setPlayerStorageValue(cid, 8374239743824793874, os.time() + dps)
            end
        end
    end
    return true
end

 

Editado por RigBy
Link para o comentário
Compartilhar em outros sites

  • 0

Quase perfeito, só que ele ta ritando com um fast attack fora do normal de um monster qualquer, queria que o exausted do atk fosse 1.5 segundos, ou 2, e o efeito como um atk de spear normal olha como está:

am466f.png

Obrigador por tentar me ajudar!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...