Ir para conteúdo

Featured Replies

Postado

Olá pessoal bom dia,

 

Alguém poderia está me ajudar a fazer uma alteração no meu script de ring.

Ele funciona da seguinte maneira, ao equipar ele consome 150 de vida e da 200 de mana, porem gostaria que esses valores seriam em porcentagem.

Exemplo 5% de vida e da 10% em mana.

 

Spoiler

local mana = 200 -- Mana obtida
local health = 150 -- Vida consumida
local duration = 10 -- Duração da mana
local exhaustion = 15 -- Exhaustion
local exhaustion_storage = 38913 -- Storage da exhaustion
local effect = 15 -- Efeito ao usar o item
local can_kill = false -- Usar o item com vida menor do que a vida consumida pode matar? (true / false)
local mana_storage = 38914
 
function onUse(cid, item)
    if exhaustion.check(cid, exhaustion_storage) then
        return doPlayerSendCancel(cid, "Wait "..(exhaustion.get(cid, exhaustion_storage)).." seconds to use this item again.")
    end
    if getCreatureHealth(cid) <= health then
        if not can_kill then
            health = getCreatureHealth(cid)-1
        else
            return doCreatureAddHealth(cid, -getCreatureHealth(cid))
        end
    end
    
    doCreatureSetStorage(cid, mana_storage, getPlayerMana(cid))
    doCreatureAddHealth(cid, -health)
    doPlayerAddMana(cid, mana)
    exhaustion.set(cid, exhaustion_storage, exhaustion)
    doSendMagicEffect(getCreaturePosition(cid), effect)
    addEvent(function()
        if not isPlayer(cid) then
            return true
        end
        if getCreatureStorage(cid, mana_storage) < getPlayerMana(cid) then
            doPlayerAddMana(cid, getPlayerMana(cid)-getCreatureStorage(cid, mana_storage))
        end
    end, duration*1000)
    return true
end

 

 

Utilizo OTX 0.4 - 8.60

 

MUITO OBRIGADO DESDE JÁ!

 

VENHAM JOGAR O MELHOR BAIAK JÁ CRIADO DE 2022!!

 

CRIE SUA CONTA AGORA MESMO!

 

www.baiakudo.com

Postado

no meu server tem essa função


function doPlayerAddManaPercent(cid, percent)
local mana = getPlayerMaxMana(cid)
doPlayerAddMana(cid, (mana / 100) * percent)
return TRUE
end

 vai na lib, em functions, e adiciona isso, verifique antes se ja nao tem dando um CTRL F, e ai onde tem addmana, vc troca por addmanapercent, 
vc copia a função e cola em baixo trocando mana por health e faz a mesma coisa. nao sei se isso vai ajudar.

Postado
  • Autor
Em 28/04/2022 em 11:25, koyotestark disse:

no meu server tem essa função



function doPlayerAddManaPercent(cid, percent)
local mana = getPlayerMaxMana(cid)
doPlayerAddMana(cid, (mana / 100) * percent)
return TRUE
end

 vai na lib, em functions, e adiciona isso, verifique antes se ja nao tem dando um CTRL F, e ai onde tem addmana, vc troca por addmanapercent, 
vc copia a função e cola em baixo trocando mana por health e faz a mesma coisa. nao sei se isso vai ajudar.

Olá boa tarde,

 

Não funcionou...

Citar

[Error - Action Interface]
data/actions/scripts/SoulRing.lua:onUse
Description:
data/lib/050-function.lua:51: attempt to call global 'getPlayerMaxHealth' (a nil value)
stack traceback:
        data/lib/050-function.lua:51: in function 'doPlayerAddHealthPercent'
        data/actions/scripts/SoulRing.lua:23: in function <data/actions/scripts/SoulRing.lua:10>

 

Spoiler

function doPlayerAddHealthPercent(cid, percent)
local health = getPlayerMaxHealth(cid)
doCreatureAddHealth(cid, (health / 100) * percent)
return TRUE
end

function doPlayerAddManaPercent(cid, percent)
local mana = getPlayerMaxMana(cid)
doPlayerAddMana(cid, (mana / 100) * percent)
return TRUE
end

Script

Spoiler

local mana = 10 -- % Mana obtida
local health = 5 -- % Vida consumida
local duration = 10 -- Duração da mana
local exhaustion = 15 -- Exhaustion
local exhaustion_storage = 38913 -- Storage da exhaustion
local effect = 15 -- Efeito ao usar o item
local can_kill = false -- Usar o item com vida menor do que a vida consumida pode matar? (true / false)
local mana_storage = 38914
 
function onUse(cid, item)
    if exhaustion.check(cid, exhaustion_storage) then
        return doPlayerSendCancel(cid, "Wait "..(exhaustion.get(cid, exhaustion_storage)).." seconds to use this item again.")
    end
    if getCreatureHealth(cid) <= health then
        if not can_kill then
            health = getCreatureHealth(cid)-1
        else
            return doPlayerAddHealthPercent(cid, -getCreatureHealth(cid))
        end
    end
    
    doCreatureSetStorage(cid, mana_storage, getPlayerMana(cid))
    doPlayerAddHealthPercent(cid, -health)
    doPlayerAddManaPercent(cid, mana)
    exhaustion.set(cid, exhaustion_storage, exhaustion)
    doSendMagicEffect(getCreaturePosition(cid), effect)
    addEvent(function()
        if not isPlayer(cid) then
            return true
        end
        if getCreatureStorage(cid, mana_storage) < getPlayerMana(cid) then
            doPlayerAddManaPercent(cid, getPlayerMana(cid)-getCreatureStorage(cid, mana_storage))
        end
    end, duration*1000)
    return true
end
 

 

VENHAM JOGAR O MELHOR BAIAK JÁ CRIADO DE 2022!!

 

CRIE SUA CONTA AGORA MESMO!

 

www.baiakudo.com

Postado

agora que eu vi  q o seu é OTX, por isso nao funcionou, bom meu senzu eu uso isso aqui pra deixar em porcentagem

	local porcentagem = math.random(11, 12)

doCreatureAddHealth(cid, getCreatureMaxHealth(cid) * (porcentagem / 100))

tenta entender isso e converter pra o seu, no se pelo que vi nao tem MaxHealth, entao teria que ver oq no seu substitui isso.

Postado
Em 25/04/2022 em 08:11, DeathRocks disse:

Exemplo 5% de vida e da 10% em mana.

coloca pra quando ele equipar o ring, em vez de vc retirar o "health" seu que eh 150 fixo, coloca "novavida = getPlayerMaxHealth(cid) * 0.95"  nisso vc vai pegar a vida maxima menos 5%, ai vc coloca o "doAddCreatureHealth(cid, novavida - getPlayerHealth(cid)) 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo