SC
pedido

Usar item apenas com x Item

Por ScythePhantom, 07 de out. de 2013 em Scripts

resolvido
15
1.3k
ScythePhantomS
07 de outubro de 2013 às 15:24

#Edit, resolvido.

Editado Dezembro 4 por ScythePhantom

KilluaK
07 de outubro de 2013 às 15:38

Fiz aqui mas nao testei

 

movements/scripts cria crystalarrow.lua e coloca:

 

PS: Usei a ideia do omega :)


function onEquip(cid, item, slot)
    if not(getPlayerWeapon(cid).itemid == 7438 and isInArray({5,6}, slot)) then
    return doPlayerSendCancel(cid, "Vc so pode usar a crystal arrow se estiver com o elvish bow")
end
return true
end

no movements.xml

<movevent type="DeEquip" itemid="2352" slot="ammo" event="script" value="crystalarrow.lua"/><movevent type="Equip" itemid="2352" slot="ammo" event="script" value="crystalarrow.lua">
<vocation id="3"/>
<vocation id="7" showInDescription="0"/>
</movevent>

Editado Outubro 7 por amoeba13

OmegaO
07 de outubro de 2013 às 16:52

amoeba, o doPlayerSendCancel retorna false? Porque se retornar true, vai poder equipar.

Acho que você deveria trocar:

return doPlayerSendCancel(cid, "Vc so pode usar a crystal arrow se estiver com o elvish bow")

Por

doPlayerSendCancel(cid, "Vc so pode usar a crystal arrow se estiver com o elvish bow")
return false
KilluaK
07 de outubro de 2013 às 17:18

Eu acho que retorna sim, omega... Eu sempre uso dessa forma e funciona. Mas de qq jeito se nao funcionar a outra opcao ta ae :)

ScythePhantomS
07 de outubro de 2013 às 18:11

Não funcionou... tipo, a mensagem aparece, porém o item ainda assim é equipa.

RoksasR
07 de outubro de 2013 às 19:11

Tente desta forma meu jovem:

 

 

function onEquip(cid, item, slot)

    if (getPlayerSlotItem(cid, 5) ~= 7438) or (getPlayerSlotItem(cid, 6) ~= 7438) then
        return doPlayerSendCancel(cid, "You can not address this item here.") and false
    end

    return true
end
ScythePhantomS
07 de outubro de 2013 às 19:23

Ainda não.. não aparece a mensagem, e o item não equipa mais.

RoksasR
07 de outubro de 2013 às 20:03

Reinicia o servidor.

ScythePhantomS
07 de outubro de 2013 às 20:09

Já fiz isso amore, porém dá no mesmo...

KilluaK
07 de outubro de 2013 às 20:11

Roksas, assim n fica return true and false?

 

O return doPlayerSendCancel n retorna false msm... Usa do jeito q o omega falou.

 

function onEquip(cid, item, slot)
    if not(getPlayerWeapon(cid).itemid == 7438 and isInArray({5,6}, slot)) then
    doPlayerSendCancel(cid, "Vc so pode usar a crystal arrow se estiver com o elvish bow")
return false
end
return true
end

Editado Outubro 7 por amoeba13

RoksasR
07 de outubro de 2013 às 20:20

Essa função retornando true? Não rsrs,

KilluaK
07 de outubro de 2013 às 20:25

Então false and false? :S

 

Ou ela n retorna nd?

ScythePhantomS
08 de outubro de 2013 às 11:43

Resolvido, podem fechar, obrigado.

SnowszS
08 de outubro de 2013 às 11:54

Reportado para moverem e fecharem.

RoksasR
08 de outubro de 2013 às 12:25

Tópico movido para a seção de dúvidas e pedidos resolvidos.