Ir para conteúdo
  • 0

quero um script usando function onMove(ja tenho ela)


tonynamoral

Pergunta

Olá galera do Xtibia, eu adicionei uma nova funçao aki nas minhas sourcers . o nome dela é function onMove

 

e eu gostaria de um script que só podesse mover o equipamento para o slot , se tivesse as seguintes skills

 

então , seria uma tabela tipo essa aki olha

 

local helmets = {

["demon helmet"] = {fist = 10, sword = 20, axe = 10, shield = 10},

}

 

E não é exatamente esse numero não , só daria para equipar se fosse >=

 

aki , irei postar a funçao , para voces entenderem mais um pouco sobre.

 

 

function onMoveItem(cid, item, formPosition, toPosition, fromItem, toItem, fromGround, toGround, status)

Structure :

fromItem, toItem = -- return the item just below the moveditem, or returns the container it was moved from

fromGround, toGround = --returns the tile , so if tile have many items and u removed first one, you can get the gorund moved from

 

status.inInv = 0 -- unwearing

1 -- wearing

2 -- rearrange in inventory

3 -- action not included in inventory

 

status.inInvBag= 0 -- removeing from bags

1 -- holding in bags

2 -- rearrange in bags

3 -- action not included in bags

 

status.Slot = contain the slot that the item is moved to if it is included in inventory

 

status.inDepot= 0 -- removeing from depot

1 -- holding in depot

2 -- rearrange in depotot

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

7 respostass a esta questão

Posts Recomendados

  • 0

Tenta assim:

 

local helmets = {
["demon helmet"] = {fist = 10, sword = 20, axe = 10, shield = 10},
}
function onMoveItem(cid, item, formPosition, toPosition, fromItem, toItem, fromGround, toGround, status)
x = helmets[getItemNameById(item.itemid)]
if x then 
if not isPlayer(cid) then return false end
if not getPlayerAccess(cid) < 4 then return false end
  if getPlayerSkill(cid, 0) >= x.fist and getPlayerSkill(cid, 2) >= x.sword and getPlayerSkill(cid, 3) >= x.axe and getPlayerSkill(cid, 5) >= x.shield then 
  else
  return doPlayerSendCancel(cid, "Sorry, you don't have this permision")
  end
else return false
end
return true
end 

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, não acha mais fácil usar onEquip?

 

 

function onEquip(cid, item)
local helmets = {
["demon helmet"] = {fist = 0, sword = 0, axe = 0, shield = 0},
}
local a = helmets[getItemNameById(item.itemid)]

if getPlayerSkill(cid, 0) >= a.fist and getPlayerSkill(cid, 2) >= a.sword and getPlayerSkill(cid, 3) >= a.axe and getPlayerSkill(cid, 5) >= a.shield then
else
doPlayerSendCancel(cid, "Você não possui as skills necessárias.")
return false
end
return true
end

 

Tags:

 

<movevent type="Equip" itemid="2493" slot="head" script="script.lua"/>
<movevent type="DeEquip" itemid="2493" slot="head" event="function" value="onDeEquipItem"/>

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

  • 0

@LuckOake

Mais acho que ele pediu por essa função, por que ela permite mover o item em qualquer tipo de lugar e não apenas em slots.

 

@Topic

O script só vai funcionar se o jogador for de GM para baixo.

Link para o comentário
Compartilhar em outros sites

  • 0

Eu testei com players, apareceu um error aki olhe ;

 

 

[18/12/2012 17:11:17] [Error - CreatureEvent::configureEvent] No valid type for creature event.moveitem

[18/12/2012 17:11:17] [Warning - BaseEvents::loadFromXml] Cannot configure an event

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...