Postado Março 28, 2021 4 anos .Qual servidor ou website você utiliza como base? 3996 - 0.4 - 8.60 Qual o motivo deste tópico? Preciso de uma Big Regeneration por formula (level+ML) aonde cada classe tem uma cura diferente; Exemplo: Tank vai curar 10% a mais que a classe dano - Suporte vai ficar com a cura entre tank e dano - Dano vai curar menos. Naruto - Classe Dano - Voc [1 a 10] Sasuke - Classe Dano - Voc [11 a 20] Spoiler function onGetFormulaValues(cid, level, maglevel) local min = ((level*0)+(maglevel*0)+200) local max = ((level*0)+(maglevel*0)+250) return min, max end Chouji - Classe Tank - Voc [21 a 30] Hidan - Classe Tank - Voc [31 a 40] Spoiler function onGetFormulaValues(cid, level, maglevel) local min = ((level*0)+(maglevel*0)+300) local max = ((level*0)+(maglevel*0)+350) return min, max end Hashirama - Classe Suporte - - Voc [41 a 50] Obito - Classe Suporte - - Voc [51 a 60] Spoiler function onGetFormulaValues(cid, level, maglevel) local min = ((level*0)+(maglevel*0)+280) local max = ((level*0)+(maglevel*0)+320) return min, max end Você tem o código disponível? Se tiver publique-o aqui: Essa é a base do código, só não sei determina pra cada vocação ter uma cura diferente. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) function onGetFormulaValues(cid, level, maglevel) local min = ((level*0)+(maglevel*0)+200) local max = ((level*0)+(maglevel*0)+250) return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) local waittime = 1 -- Tempo de exhaustion local storage = 8205 if exhaustion.check(cid, storage) then return false end exhaustion.set(cid, storage, waittime) return doCombat(cid, combat, var) end
Postado Março 31, 2021 4 anos Solução @elielder local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local voc_bonus = { -- valor da cura adicional, ex: 0%, 10%, 50%, 100%, 200% ["Tanque"] = 50, ["Suporte"] = 25, ["Dano"] = 0, } local table_vocs = { -- last_id é o último id da vocação, a tabela precisa estar em ordem crescente. [1] = {last_id = 12, voc = "Naruto", classe = "Dano"}, [2] = {last_id = 20, voc = "Sasuke", classe = "Dano"}, [3] = {last_id = 30, voc = "Chouji", classe = "Tanque"}, [4] = {last_id = 40, voc = "Hidan", classe = "Tanque"}, [5] = {last_id = 50, voc = "Hashirama", classe = "Suporte"}, [6] = {last_id = 60, voc = "Obito", classe = "Suporte"}, } local function getBonus(cid, base) local pvoc = getPlayerVocation(cid) for k, _ in ipairs(table_vocs) do if pvoc <= table_vocs[k].last_id then bonus = voc_bonus[table_vocs[k].classe]/100 + 1 total = base * bonus return total end end end function onGetPlayerMinMaxValues(cid, level, magLevel) local min = ((level*0)+(magLevel*0)+200) local max = ((level*0)+(magLevel*0)+250) return getBonus(cid, min), getBonus(cid, max) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetPlayerMinMaxValues") function onCastSpell(cid, var) return doCombat(cid, combat, var) end Editado Março 31, 2021 4 anos por 139 Alteração 3 (veja o histórico de edições)
Postado Março 31, 2021 4 anos Autor 22 minutos atrás, 139 disse: @elielder Boa noite, fiquei com duvida nessa linha: [1] = {last_id = 10, voc = "Naruto", classe = "Dano"}, minha vocação Naruto é do 1 ao 12. [1] = {last_id = 12, voc = "Naruto", classe = "Dano"}, <<<< então eu deixo assim [13] = {last_id = 22, voc = "Sasuke", classe = "Dano"}, << eu deixo assim ? pq o bonus nao esta ativando, e esta curando a mesma quantidade. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local voc_bonus = { -- valor da cura adicional, ex: 0%, 10%, 50%, 100%, 200% ["Tanque"] = 50, ["Suporte"] = 25, ["Dano"] = 0, } local table_vocs = { -- last_id é o último id da vocação, a tabela precisa estar em ordem crescente. [1] = {last_id = 10, voc = "Naruto", classe = "Dano"}, [2] = {last_id = 20, voc = "Sasuke", classe = "Dano"}, [3] = {last_id = 30, voc = "Chouji", classe = "Tanque"}, [4] = {last_id = 40, voc = "Hidan", classe = "Tanque"}, [5] = {last_id = 50, voc = "Hashirama", classe = "Suporte"}, [6] = {last_id = 60, voc = "Obito", classe = "Suporte"}, } local function getBonus(cid, base) local pvoc = getPlayerVocation(cid) for k, _ in pairs(table_vocs) do if pvoc <= table_vocs[k].last_id then bonus = voc_bonus[table_vocs[k].classe]/100 if bonus < 1 then bonus = bonus + 1 end total = base * bonus return total end end end function onGetFormulaValues(cid, level, maglevel) local min = ((level*0)+(maglevel*0)+200) local max = ((level*0)+(maglevel*0)+250) return getBonus(cid, min), getBonus(cid, max) end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onCastSpell(cid, var) local waittime = 1 -- Tempo de exhaustion local storage = 8205 if exhaustion.check(cid, storage) then return false end exhaustion.set(cid, storage, waittime) return doCombat(cid, combat, var) end
Postado Março 31, 2021 4 anos @elielder Nesse caso é só alterar o "last_id" de 10 pra 12 mesmo. O "[1]" não tem nada a ver com os ids da vocação, é só pra organizar a tabela mesmo, tipo: 1ª vocação -> Naruto 2ª vocação -> Sasuke Etc. Ah, alterei uma linha do script, atualiza o seu aí. Editado Março 31, 2021 4 anos por 139 (veja o histórico de edições)
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.