Jump to content
  • 0

Como aumentar o dano conforme os resets


teteusinhu

Question

Boa noite, tenho uma dúvida relacionada ao sistema de resets. Gostaria de saber como posso fazer com que o dano base, tanto de ataques corpo a corpo, como spells, aumentem de acordo com a quantidade de resets.

 

-> Suponhamos que após o primeiro reset, o dano seja aumentado em 2 vezes, segundo reset em 3x e assim por diante.

 

Creio que se fosse por storage seria mais fácil, porem com o sistema de reset do MarcelloMkez no seguinte tópico:

http://www.xtibia.com/forum/topic/142463-advanced-reset-system-20/ ele acaba sendo por Database.

 

Gostaria de saber como proceder? Estou realmente perdido. Quem puder me ajudar agradeço imensamente.

 

Agradeço desde já,

Abraços.

Edited by teteusinhu
Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Você tem que remove:

setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 6, 12)

e adiciona oque eu falei ficando assim:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
 
 
local area = createCombatArea(AREA_CROSS5X5)
setCombatArea(combat, area)
 
function onGetFormulaValues(cid, level, skill, attack, factor)
local reset = getPlayerReset(cid) -- variavel
local skillTotal, levelTotal = skill + attack, level / 5
return -(skillTotal * 1.5 + levelTotal)*(reset*0.1), -(skillTotal * 2.5 + levelTotal)*(reset*0.1) -- dano
end
 
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
Link to comment
Share on other sites

  • 0

#CORPO A CORPO

Para combate corpo a corpo "DO JEITO QUE EU TO PENSANDO", amenos que funcione apenas para player vai da um trabalho bem grande porque vai ter que registrar o evento em todos os monstro.

 

#SPELL

Nesse sistema a função que ver é quantidade de reset do player é essa:

getPlayerReset(cid)

Você teraque troca todas essas linhas de spells (pelomenos das magias que você quer que aumente).

function onGetFormulaValues(cid, level, skill, attack, factor)
local skillTotal, levelTotal = skill + attack, level / 5
return -(skillTotal * 1.5 + levelTotal), -(skillTotal * 2.5 + levelTotal)
end
 
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
por essa

 

function onGetFormulaValues(cid, level, skill, attack, factor)
local reset = getPlayerReset(cid)
local skillTotal, levelTotal = skill + attack, level / 5
return -(skillTotal * 1.5 + levelTotal)*(reset*0.1), -(skillTotal * 2.5 + levelTotal)*(reset*0.1)
end
 
setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
Eu so adicionei isso "local reset = getPlayerReset(cid)" "(reset*0.1)"
só basta você alterar em "(reset*0.1)" o quanto você quer que aumente por reset.
Link to comment
Share on other sites

  • 0

Antes de tudo ja vou te agradecendo RigBy pela atenção já tem meu REP+, mas voltando ao tópico creio então que o combate corpo a corpo ira acabar sendo bem mais complicado de se realizar, vamos deixar de lado por enquanto. Já em relação as spells, peguei um exemplo do exevo gran mas frigo aqui, como ficaria? Eu teria que criar a variavel do reset do mesmo modo, mas como faria em relação ao dano?

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICETORNADO)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 6, 12)


local area = createCombatArea(AREA_CROSS5X5)
setCombatArea(combat, area)

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

Link to comment
Share on other sites

  • 0

Aparentemente tinha dado tudo certo, até a spell não dar mais dano e aparecer seguinte erro no console:

 

7Tvrsfq.png

 

 

 

 

Adiciona essa função na lib/050-function, antes do ultimo end

function getPlayerReset(cid)
local qr = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid)..";")
rss = qr:getDataInt("reset", getPlayerGUID(cid))
if rss < 0 then
rss = 0
end
return rss
end
Link to comment
Share on other sites

  • 0

 

 

Adiciona essa função na lib/050-function, antes do ultimo end

function getPlayerReset(cid)
local qr = db.getResult("SELECT `reset` FROM `players` WHERE `id`= "..getPlayerGUID(cid)..";")
rss = qr:getDataInt("reset", getPlayerGUID(cid))
if rss < 0 then
rss = 0
end
return rss
end

 

Muito obrigado RigBy! A questão Spell esta tinindo agora! Mas ainda gostaria de saber se realmente há uma resolução para o problema do ataque corpo a corpo. Vou esperar alguém se pronunciar sobre o assunto, caso não haja outra possibilidade, menos complicada que a sua listada irei dar por dúvida sanada =) E novamente, muito obrigado pela atenção e paciência RigBy.

 

Edit:

 

Aparentemente, não existe outro possibilidade mais prática e fácil em relação ao ataque corpo a corpo. Então irei dar por dúvida sanada. Caso alguém, por algum acaso, tenha alguma ideia ou uma solução, peço encarecidamente que me envie um PM.

Edited by teteusinhu
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...