Ir para conteúdo

Featured Replies

Postado

.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 

 

 

 

Resolvido por 139

Ir para solução
  • Respostas 11
  • Visualizações 1.1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @elielder   local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(comba

Postado
  • 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 por 139
Alteração 3 (veja o histórico de edições)

Postado
  • 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

@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 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.

Visitante
Responder

Quem Está Navegando 0

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

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo