Ir para conteúdo

Featured Replies

Postado

Isto mesmo pessoal, estou precisando de um script onde tal item, exemplo eu crio um item novo que vai servir como uma especie de "runa" que ao clicar em use neste item ele solta a magia que eu colocar nele para que ele solte, exemplo "Livro da Vida" ai ele solta a magia "exura".

alguém poderia me ajudar?

Resolvido por marcot

Ir para solução
  • Respostas 19
  • Visualizações 906
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Você pode fazer assim no caso da exura, cria o arquivo item_skill.lua em data/actions/scripts: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setComb

  • Você vai fazer o seguinte: copia tudo que está na magia e cola no action, depois procura essa parte:   function onCastSpell(cid, var) return doCombat(cid, combat, var) end e substitua por:

  • Vou tentar explicar dando um exemplo. Quero fazer um item que solte "Exevo Mas San", o script equivalente no meu servidor é o holy light.lua. A princípio temos: local combat = createCombatObj

Postado

Você pode fazer assim no caso da exura, cria o arquivo item_skill.lua em data/actions/scripts:

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

function onGetFormulaValues(cid, level, maglevel)
	min = (level * 2 + maglevel * 3) * 0.5 - 30
	max = (level * 2 + maglevel * 3) * 0.6
	
	if min < 25 then
		min = 25
	end

	return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onUse(cid, item, frompos, item2, topos)
	return doCombat(cid, combat, numberToVariant(cid))
end

E adicionar em actions.xml a tag:

<action itemid="2195" script="item_skill.lua" />

Isso no OTServ SVN Version 0.6.0.

Basicamente, qual a diferença? Um action você teria que ter a função "onUse". Dentro dela você chama o "doCombat" e como não temos o parâmetro "var" vamos usar o "numberToVariant(cid)".

Postado
  • Autor
12 minutos atrás, marcot disse:

Você pode fazer assim no caso da exura, cria o arquivo item_skill.lua em data/actions/scripts:


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

function onGetFormulaValues(cid, level, maglevel)
	min = (level * 2 + maglevel * 3) * 0.5 - 30
	max = (level * 2 + maglevel * 3) * 0.6
	
	if min < 25 then
		min = 25
	end

	return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onUse(cid, item, frompos, item2, topos)
	return doCombat(cid, combat, numberToVariant(cid))
end

E adicionar em actions.xml a tag:


<action itemid="2195" script="item_skill.lua" />

Isso no OTServ SVN Version 0.6.0.

Basicamente, qual a diferença? Um action você teria que ter a função "onUse". Dentro dela você chama o "doCombat" e como não temos o parâmetro "var" vamos usar o "numberToVariant(cid)".

onde mudo a magia que ira soltar?, e teria como fazer para quando usar ele perder mana, pois deu tudo certo mas nao usa mana :/

 

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

Postado

Você vai fazer o seguinte: copia tudo que está na magia e cola no action, depois procura essa parte:
 

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

e substitua por:

function onUse(cid, item, frompos, item2, topos)
	return doCombat(cid, combat, numberToVariant(cid))
end

 

Postado
  • Autor

 

22 minutos atrás, marcot disse:

Você vai fazer o seguinte: copia tudo que está na magia e cola no action, depois procura essa parte:
 


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

e substitua por:


function onUse(cid, item, frompos, item2, topos)
	return doCombat(cid, combat, numberToVariant(cid))
end

 

fiz o que disse só que ainda nao esta gastando mana :/ 

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