Ir para conteúdo

(Script) Item Que Adiciona Spell


Nido

Posts Recomendados

Bom , como o Titulo já diz eu quero um item xxxx desse uma magia qualquer ( pode ser até o simples exura) , porém quando retirasse o item o Jogador esqueçesse a spell

Ex:

Wedding Ring , quando o jogador colocasse o Wedding ring ele aprenderia o exori gran(Exemplo) , qndo ele retirasse ele não iria poder mais usar o exori gran

Link para o comentário
Compartilhar em outros sites

Olha um exemplo do exura, não sei se tem outra forma:

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)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0.15, 0, 0.43, 0)

function onCastSpell(cid, var)
if getPlayerSlotItem(cid, CONST_SLOT_RING).itemid == xxxx then
	return doCombat(cid, combat, var)
end
doPlayerSendCancel(cid, "Você precisa estar equipando o item ##### para usar esta magia.")
return FALSE
end

 

Onde ta CONST_SLOT_RING pode ser:

CONST_SLOT_FIRST = 1
CONST_SLOT_HEAD = CONST_SLOT_FIRST
CONST_SLOT_NECKLACE = 2
CONST_SLOT_BACKPACK = 3
CONST_SLOT_ARMOR = 4
CONST_SLOT_RIGHT = 5
CONST_SLOT_LEFT = 6
CONST_SLOT_LEGS = 7
CONST_SLOT_FEET = 8
CONST_SLOT_RING = 9
CONST_SLOT_AMMO = 10
CONST_SLOT_LAST = CONST_SLOT_AMMO

O xxxx deve ser trocado pelo id do item.

Editado por kydrai
Link para o comentário
Compartilhar em outros sites

Acho que é isso que ele quer:

 

function onEquip(cid, item, slot)
        return doPlayerLearnInstantSpell(cid, "Light Healing")
        end

function onDeEquip(cid, item, slot)
        if getPlayerLearnedInstantSpell(cid, "Light Healing") then
        doPlayerUnlearnInstantSpell(cid, "Light healing")
        else

        return 0
          end
          return TRUE
          end        

 

 

flw

Link para o comentário
Compartilhar em outros sites

Olha um exemplo do exura, não sei se tem outra forma:

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)setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0.15, 0, 0.43, 0)function onCastSpell(cid, var)	if getPlayerSlotItem(cid, CONST_SLOT_RING).itemid == xxxx then		return doCombat(cid, combat, var)	end	doPlayerSendCancel(cid, "Você precisa estar equipando o item ##### para usar esta magia.")	return FALSEend

Onde ta CONST_SLOT_RING pode ser:

CONST_SLOT_FIRST = 1CONST_SLOT_HEAD = CONST_SLOT_FIRSTCONST_SLOT_NECKLACE = 2CONST_SLOT_BACKPACK = 3CONST_SLOT_ARMOR = 4CONST_SLOT_RIGHT = 5CONST_SLOT_LEFT = 6CONST_SLOT_LEGS = 7CONST_SLOT_FEET = 8CONST_SLOT_RING = 9CONST_SLOT_AMMO = 10CONST_SLOT_LAST = CONST_SLOT_AMMO

O xxxx deve ser trocado pelo id do item.

Muito obrigado por tentar me ajudar , não consegui entender muito bem o Script , não tem um mais simplificado pra eu somente colocar o nome da spell e ela funcionar ? ;x

Obrigado

Link para o comentário
Compartilhar em outros sites

Tem o jeito do apocarai que é por movements, aí vc precisa colocar para aprender a magia no spells.xml (needlearn="1").

 

movements.xml

<movevent type="Equip" itemid="xxxx" slot="ring" event="script" value="script.lua"/>
<movevent type="DeEquip" itemid="xxxx" slot="ring" event="script" value="script.lua"/>

script.lua

local magia = "Light Healing" -- nome da magia

function onEquip(cid, item, slot)
   return doPlayerLearnInstantSpell(cid, magia)
end

function onDeEquip(cid, item, slot)
   if getPlayerLearnedInstantSpell(cid, magia) then
       doPlayerUnlearnInstantSpell(cid, magia)
   end
   return TRUE
end

Editado por kydrai
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...