Postado Dezembro 9, 2020 4 anos .Qual servidor ou website você utiliza como base? 8.6 Qual o motivo deste tópico? Pedindo Ajuda Está surgindo algum erro? Se sim coloque-o aqui. Citar Você tem o código disponível? Se tiver publique-o aqui: Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. Para tentar ilustrar imaginem uma magia que causa esse efeito Apos ser conjurada X vezes ela muda a formula de efeito e de dano Grato se alguém puder me ajudar !!!
Postado Dezembro 10, 2020 4 anos Solução algo assim? local config = { effects_per_level = { [1] = 25, -- efeito no [level 1] [2] = 177 -- efeito no [level 2] }, casts_to_up = 300, -- quantas vezes tem que soltar para alcançar o level 2 storages = {level = 46890, cast = 46891} -- só modifique se necessário } local function getPlayerRasenganLevel(cid) return getPlayerStorageValue(cid, config.storages.level) end local function getPlayerRasenganCasts(cid) return getPlayerStorageValue(cid, config.storages.cast) > 0 and getPlayerStorageValue(cid, config.storages.cast) or 0 end local function doPlayerRasenganUp(cid, round) return setPlayerStorageValue(cid, config.storages.cast, getPlayerRasenganCasts(cid) + round) end local combat = {} for i = 1, 2 do combat[i] = createCombatObject() setCombatParam(combat[i] , COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat[i] , COMBAT_PARAM_EFFECT, config.effects_per_level[i]) function onGetFormulaValues(cid, level, maglevel) min = -(level * 0.28 + maglevel * 1.48) * 1.0 * getPlayerRasenganLevel(cid) max = -(level * 0.34 + maglevel * 2.34) * 1.0 * getPlayerRasenganLevel(cid) return min, max end setCombatCallback(combat[i], CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") end function onCastSpell(cid, var) if getPlayerRasenganLevel(cid) == -1 then setPlayerStorageValue(cid, config.storages.level, 1) end if getPlayerRasenganLevel(cid) ~= 2 then doPlayerRasenganUp(cid, 1) local casts, str = getPlayerRasenganCasts(cid), '' if casts == 1 then str = "First time casting Rasengan! You need "..config.casts_to_up.." casts to advance to level 2 and improve its power!" elseif casts == (config.casts_to_up / 2) then str = "You reached 50% on Rasengan level 1. Now you need "..(config.casts_to_up/2).. " casts to advance to level 2." elseif casts == config.casts_to_up then str = "Congratulations! You advanced the Rasengan jutsu from level 1 to level 2." setPlayerStorageValue(cid, config.storages.level, 2) end if str ~= '' then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, str) end end return doCombat(cid, combat[getPlayerRasenganLevel(cid)], var) end
Postado Dezembro 10, 2020 4 anos Autor 6 horas atrás, Fabi Marzan disse: algo assim? local config = { effects_per_level = { [1] = 25, -- efeito no [level 1] [2] = 177 -- efeito no [level 2] }, casts_to_up = 300, -- quantas vezes tem que soltar para alcançar o level 2 storages = {level = 46890, cast = 46891} -- só modifique se necessário } local function getPlayerRasenganLevel(cid) return getPlayerStorageValue(cid, config.storages.level) end local function getPlayerRasenganCasts(cid) return getPlayerStorageValue(cid, config.storages.cast) > 0 and getPlayerStorageValue(cid, config.storages.cast) or 0 end local function doPlayerRasenganUp(cid, round) return setPlayerStorageValue(cid, config.storages.cast, getPlayerRasenganCasts(cid) + round) end local combat = {} for i = 1, 2 do combat[i] = createCombatObject() setCombatParam(combat[i] , COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat[i] , COMBAT_PARAM_EFFECT, config.effects_per_level[i]) function onGetFormulaValues(cid, level, maglevel) min = -(level * 0.28 + maglevel * 1.48) * 1.0 * getPlayerRasenganLevel(cid) max = -(level * 0.34 + maglevel * 2.34) * 1.0 * getPlayerRasenganLevel(cid) return min, max end setCombatCallback(combat[i], CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") end function onCastSpell(cid, var) if getPlayerRasenganLevel(cid) == -1 then setPlayerStorageValue(cid, config.storages.level, 1) end if getPlayerRasenganLevel(cid) ~= 2 then doPlayerRasenganUp(cid, 1) local casts, str = getPlayerRasenganCasts(cid), '' if casts == 1 then str = "First time casting Rasengan! You need "..config.casts_to_up.." casts to advance to level 2 and improve its power!" elseif casts == (config.casts_to_up / 2) then str = "You reached 50% on Rasengan level 1. Now you need "..(config.casts_to_up/2).. " casts to advance to level 2." elseif casts == config.casts_to_up then str = "Congratulations! You advanced the Rasengan jutsu from level 1 to level 2." setPlayerStorageValue(cid, config.storages.level, 2) end if str ~= '' then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, str) end end return doCombat(cid, combat[getPlayerRasenganLevel(cid)], var) end Nossa irmão ficou perfeito !! Eu achei o script bem intuitivo, ainda consigo mudar as coisas do jeito que eu quero. Muito obrigado
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.