Ir para conteúdo
  • 0

[PEDIDO] -=[TFS]=- 0.4 8.60 - Reflect Stone Só Falta Action/Scripts


Muvuka

Pergunta

Quero que ela reflita danos em %(da minha escolha). Padrão pode ser 10%, mas que der pra editar e não sistema aleatório, quero que o player ganha-se um storage igual a system da critical e dodge.

data\creaturescripts\scripts crie um arquivo chamado reflectStone.lua e adicione isso nele:

local lvldodge = 48903
local percent = 0.5

function onStatsChange(cid, attacker, type, combat, value)
if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS and isCreature(attacker) then
if (getPlayerStorageValue(cid, lvldodge)*3) >= math.random (0,1000) then
	value = math.ceil(value*(percent))
	doCreatureAddHealth(attacker, -value)
	doSendAnimatedText(getCreaturePos(cid), "Reflected!", 6)
return false
end
end
return true
end
 

creaturescripts.xml:

<event type="statschange" name="ReflectStone" event="script" value="reflectStone.lua"/>
 

login.lua:

registerCreatureEvent(cid, "ReflectStone")

 

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

1 resposta a esta questão

Posts Recomendados

  • 1
local lvldodge = 48903
local percent = 0.1 -- Porcentagem padrão de reflexão de dano
local storageID = 10001 -- ID do storage para controlar a habilidade de reflexão

function onStatsChange(cid, attacker, type, combat, value)
    if type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS and isCreature(attacker) then
        if (getPlayerStorageValue(cid, lvldodge) * 3) >= math.random(0, 1000) then
            local reflectValue = math.ceil(value * percent)
            doCreatureAddHealth(attacker, -reflectValue)
            doSendAnimatedText(getCreaturePos(cid), "Reflected!", 6)
            
            -- Incrementar o storage para indicar que a habilidade foi usada
            setPlayerStorageValue(cid, storageID, 1)
            return false
        end
    end
    return true
end

-- Adicionando o evento ao XML
local eventXML = [=[<event type="statschange" name="ReflectStone" event="script" value="reflectStone.lua"/>]=]
local file = io.open('data/creaturescripts/creaturescripts.xml', 'a')
if file then
    file:write(eventXML)
    file:close()
else
    print("Erro ao abrir o arquivo creaturescripts.xml")
end

-- Registro do evento no login.lua
local loginScript = [=[registerCreatureEvent(cid, "ReflectStone")]=]
local loginFile = io.open('data/creaturescripts/login.lua', 'a')
if loginFile then
    loginFile:write(loginScript)
    loginFile:close()
else
    print("Erro ao abrir o arquivo login.lua")
end

 

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...