Ir para conteúdo

Featured Replies

Postado
10 horas atrás, bpm91 disse:

aproveitando que vc aparenta entender bastante de 0.4 saberia me dizer como faço pro meu exori usar apenas skills e lvl. e remover a arma dele?

 

@bpm91

Segue abaixo o script de exori que estou utilizando:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatParam(combat, COMBAT_PARAM_USECHARGES, true)

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

function onGetFormulaValues(cid, level, skill, attack, factor)
	local skillTotal, levelTotal = skill + attack, level / 5
	return -(skillTotal * 0.5 + levelTotal), -(skillTotal * 1.5 + levelTotal)
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

Note que temos ali uma função onGetFormulaValues, onde temos uma tupla sendo atribuida às variáveis skillTotal e levelTotal, que recebem:

skillTotal = skill + attack
levelTotal = level / 5

 

Estou supondo que o parâmetro attack corresponde ao ataque da arma que o jogador tem equipada, então para tirar o ataque dela da fórmula simplesmente troco a função onGetFormulaValues por esta:

function onGetFormulaValues(cid, level, skill, attack, factor)
	local skillTotal, levelTotal = skill, level / 5
	return -(skillTotal * 0.5 + levelTotal), -(skillTotal * 1.5 + levelTotal)
end

 

Teste no meu servidor e a arma, de fato, parou de influenciar no nível, mas é provável que você precise modificar a fórmula de damage.

Editado por marcot (veja o histórico de edições)

  • Respostas 10
  • Visualizações 600
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Ele está te dizendo aí que tentou chamar a função doSetItemActionId e disse que isso é um valor nil, porque se não me engano em LUA tudo que não tá criado é nulo. Não sei qual base está utilizand

Posted Images

Postado
  • Autor
1 hora atrás, marcot disse:

@bpm91

Segue abaixo o script de exori que estou utilizando:


local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatParam(combat, COMBAT_PARAM_USECHARGES, true)

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

function onGetFormulaValues(cid, level, skill, attack, factor)
	local skillTotal, levelTotal = skill + attack, level / 5
	return -(skillTotal * 0.5 + levelTotal), -(skillTotal * 1.5 + levelTotal)
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

Note que temos ali uma função onGetFormulaValues, onde temos uma tupla sendo atribuida às variáveis skillTotal e levelTotal, que recebem:


skillTotal = skill + attack
levelTotal = level / 5

 

Estou supondo que o parâmetro attack corresponde ao ataque da arma que o jogador tem equipada, então para tirar o ataque dela da fórmula simplesmente troco a função onGetFormulaValues por esta:


function onGetFormulaValues(cid, level, skill, attack, factor)
	local skillTotal, levelTotal = skill, level / 5
	return -(skillTotal * 0.5 + levelTotal), -(skillTotal * 1.5 + levelTotal)
end

 

Teste no meu servidor e a arma, de fato, parou de influenciar no nível, mas é provável que você precise modificar a fórmula de damage.

 

eu tentei mas segue batendo mais forte com a arma, tb fui em spells e tirei o needweapon"1" e coloquei 0

que estranho eu copiei exatamente oq vc me mandou.

Postado
23 minutos atrás, bpm91 disse:

eu tentei mas segue batendo mais forte com a arma, tb fui em spells e tirei o needweapon"1" e coloquei 0

que estranho eu copiei exatamente oq vc me mandou.

 

Você poderia postar como ficou o script após a modificação?

Postado
  • Autor

fiz como vc disse

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatParam(combat, COMBAT_PARAM_USECHARGES, true)

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

function onGetFormulaValues(cid, level, skill, attack, factor)
    local skillTotal, levelTotal = skill, level / 5
    return -(skillTotal * 0.5 + levelTotal), -(skillTotal * 1.5 + levelTotal)
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")
function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end

Postado

Estranho isso, porque aqui funcionou direitinho, você tem certeza que alterou os scripts corretos e deu o reload spells?

 

Sem arma depois da modificação:

image.png

 

Com arma depois da modificação:

image.png

 

Com arma antes da modificação:

image.png

 

Sem arma antes da modificação:

image.png

Editado por marcot (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