Ir para conteúdo
  • 0

Função para checar tipo de arma equipada.


pvjf

Pergunta

Existe alguma função que verifique qual o tipo de arma o player está equipando? Fiz uma pesquisa pela wab e pela pelo Lua_Functions do meu server (TFS 0.3.6) e encontrei algumas interessantes:

((getPlayerSlotItem(cid, 6).itemid == ID de todos os itens do tipo) or (getPlayerSlotItem(cid, 5).itemid == ID de todos os itens do tipo))getItemWeaponType(uid)getItemWeaponType(getPlayerWeapon(cid, true).uid)

Existe alguma forma de "juntar"  tais funções para verificar se o jogador está usando um shield, uma sword, um axe , uma club ou uma wand.
 

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 1
21 minutos atrás, Ed'Specter disse:

Você pode utilizar :

getItemInfo(itemid).wieldPosition

isso vai retornar o slot do itemid.

 

Ex:

 

local item = 2321if (getItemInfo(item).wieldPosition == 3) then    doPlayerSendTextMessage(cid, 24, "O item eh uma backpack")end

no caso se o item 2321 for uma backpack o player vai receber a msg.

 

Vlw por querer ajudar, mas não é isso que estou procurando exatamente. Eu kero q retorne  o valor do tipo de arma que o jogador está utilizando Ex: Wand = 6. .

 

Eu consegui fazer da seguinte maneira : 

if getPlayerWeaponType(cid) == 6 then

Está funcionando, porém quando n tem nenhum item equipado nos slots da mão  ocorre  um erro na distro:

 

[Error - Spell Interface]data/spells/scripts/attack/exevo flam hur.lua:onCastSpellDescription:(luaGetThing) Thing not found

Obrigado pela atenção, se puder me ajudar a contornar este erro seria de grande ajuda.

 

Edit: O erro ocorre quando está  sem arma na mão ou com um item qualquer que não seja uma arma e não possua um weapon type.

Consegui! Um usuário de outro fórum, chamado Colandus, me enviou uma função para se adicionar em functions.lua (pode ter outro nome dependendo do servidor):

 

function getPlayerWeaponType(cid)    local weapon = getPlayerWeapon(cid, true)    if weapon and weapon.uid > 0 then        return getItemWeaponType(weapon.uid)    end    return WEAPON_NONEend

Assim, conseguimos usar as magias apenas se tivermos o item equipado, como por exemplo uma magia que só sai se segurarmos uma wand.

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

  • 0

Você pode utilizar :

getItemInfo(itemid).wieldPosition

isso vai retornar o slot do itemid.

Ex:
 

local item = 2321if (getItemInfo(item).wieldPosition == 3) then    doPlayerSendTextMessage(cid, 24, "O item eh uma backpack")end

no caso se o item 2321 for uma backpack o player vai receber a msg.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...