Postado Abril 25, 2022 3 anos 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 Abril 28, 2022 3 anos 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 Abril 30, 2022 3 anos 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 Maio 2, 2022 3 anos 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 Maio 4, 2022 3 anos 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.