Ir para conteúdo
  • Cadastre-se

(Resolvido)como colocar uma magia pra healar por magic level?


Ir para solução Resolvido por Jamison Collins,

Posts Recomendados

bom , eu so queria que as magias exana mort,exura san, exura vita e exura sio fossem por magic level

exemplo: exura san, healar +100 de vida por cada 1 de magic level 

mas eu nao sei calcular isto

COMBAT_FORMULA_LEVELMAGIC, ?, ?, ?, ?)

Link para o post
Compartilhar em outros sites

tem várias maneiras, uma delas é fazer por função (e não por comando de spell normal)

function onCastSpell (cid, var)
local life = ((getPlayerMagLevel(cid)) * 100)
doCreatureAddHealth(cid, life)
local pos = getCreaturePosition(cid)
doSendMagicEffect(pos, 12)
return true
end

outra maneira é setar um combat callback pra fazer as fórmulas e acho que se fizer a fórmula certinha dá pra fazer do jeito que vc citou também, só que não vou conseguir te ajudar.

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

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
  • Solução

Só você fazer o seguinte:

Nas spells que você gostaria de modificar, você apaga essa linha de COMBAT_FORMULA_LEVELMAGIC, ?, ?, ?, ?)

E embaixo, você cola isso: 

function onGetFormulaValues(cid, level, maglevel)
	min = (maglevel * 100)
	max = (maglevel * 100)
	return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

É só você alterar o valor acima representado como "100" para o valor desejado. Isso serve para todas as magias.

 

Ficará assim:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

function onGetFormulaValues(cid, level, maglevel)
	min = ((level / 5) + (maglevel * 1.4) + 8)
	max = ((level / 5) + (maglevel * 1.8) + 11)
	return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

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

"A alma permanece em suas criações" V89E5aN.png


142c9d3439.jpg
(Não dou suporte por mensagem privada.)

Link para o post
Compartilhar em outros sites

obrigado de novo, tenho mais uma duvida, se eu puder mudar o dano da sd com essas formulas como ficaria?
 
 
SD
 
 
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -50, -1, -80, 5, 35, 33, 7)


local condition = createConditionObject(CONDITION_CURSED)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, 5, 1000, -250)
setCombatCondition(combat, condition)

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

Link para o post
Compartilhar em outros sites

Seria algo tipo isso:

setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, mina, minb, maxa, maxb)

minDamage = (Level + Magic Level * 4) * mina + minb
maxDamage = (Level + Magic Level * 4) * maxa + maxb

Eu não recomendo isso para você que queira fazer um formula mais exata, pois há indícios que essa formula que eu apresentei agora, ela vem se alterando nos TFSs.

Você pode usar a SD assim: 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SUDDENDEATH)
function onGetFormulaValues(cid, level, maglevel)
min = -((level / 5) + (maglevel * 4.3) + 32)
max = -((level / 5) + (maglevel * 7.4) + 48)
return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

local condition = createConditionObject(CONDITION_CURSED)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, 5, 1000, -250)
setCombatCondition(combat, condition)

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

A formula apresentada acima, foi um formula que eu fiz referente à formula do site Tibia Wikia.

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

"A alma permanece em suas criações" V89E5aN.png


142c9d3439.jpg
(Não dou suporte por mensagem privada.)

Link para o post
Compartilhar em outros sites
  • 3 weeks later...

Para definir um dano só por level pela seguinte fórmula

 

min = -((level / 5) + (maglevel * 4.3) + 32)
max = -((level / 5) + (maglevel * 7.4) + 48)

 

é só apagar a outr aparte kkkk tipo vc quer que de 5x o level do dacar adano

 

min = level * 2

max = level * 5

 

Menor dano será 2 X o level dele e o maior 5 X o level dele...

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

@Jamison Collins,

 

me ajuda em 1 spell por esse sistema que voce me mostrou, que nao to conseguindo resolver pf

 

http://www.tibiaking.com/forum/topic/34691-spells-juntar-script-sem-bugar-ajuda/

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo