Ir para conteúdo
  • Cadastre-se

(Resolvido)Usar item só se tiver tal storage.


Ir para solução Resolvido por Wise,

Posts Recomendados

  • Moderador
É possivel colocar algum comando para usar esse item só se o player tiver tal storage ?
Gostaria que o item fosse usado somente por players que possuisem tal storage (30023,4)
 
function onUse(cid, item, frompos, item2, topos)
if item.itemid == 2415 then
local playerpos = getCreaturePosition(cid)
doRemoveItem(item.uid,2415)
doPlayerSetVocation(cid,525)
doCreatureChangeOutfit(cid, {lookType=462})
doSendMagicEffect(playerpos, 32)
doPlayerSendTextMessage(cid,22,"Agora voce foi promovido.")
end
end

function onLove()
if getPlayerTrueLove(girlfriend) then
doPlayerBeHappy(cid, true)
doRemoveVirginity(cid, true)
else
doSendCancel(cid,"you do not know how good it feels to be loved")
end end

;)

 

Link para o post
Compartilhar em outros sites

Tem que usar o onEquip e der um return false caso o player não tenha, eu to pelo celular e não sei os parâmetros de cabeça, mas seria mais ou menos assim:

function onEquip(Os parametros aqui)

if getPlayerStorage(30023,4) then

return doPlayerSendCancel(cid,"Voce nao pode usar isso)

end

return true

end

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites
  • Solução
Tem que usar o onEquip

Note que o script no qual ele informou, faz uso do callback onUse e portanto, é uma action. Ele quer que essa ação aconteça ao usar o item, literalmente.

Usar é diferente de equipar, lembre-se.

 

 

 

Gostaria que o item fosse usado somente por players que possuisem tal storage (30023,4)
local stor = {30023, 4}

function onUse(cid, item, fromPos, toPos)
    if getPlayerStorageValue(cid, stor[1]) ~= stor[2] then
        return doPlayerSendCancel(cid, 'You can\'t use this item.') and false
    end
    
    doRemoveItem(item.uid, 2415)
    doPlayerSetVocation(cid, 525)
    doCreatureChangeOutfit(cid, {lookType = 462})
    doSendMagicEffect(toPos, 32)
    doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Agora voce foi promovido.')
    doRemoveItem(item.uid)
    return true
end

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Note que o script no qual ele informou, faz uso do callback onUse e portanto, é uma action. Ele quer que essa ação aconteça ao usar o item, literalmente.

Usar é diferente de equipar, lembre-se.

Calma , calma ,rsrs

Eu não li o script.

Leia só a explicação dele para ver como não dá para confundir..

De qualquer maneira só tentei ajudar, desculpa aí o erro então..

Não precisa dar um return true na função ?

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

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

De qualquer maneira só tentei ajudar, desculpa aí o erro então..
Não precisa dar um return true na função ?

Não têm que se desculpar, eu só disse que usar é diferente de equipar.
Na função, não, no callback. Só copiei o script dele e adicionei o escopo, já ajustei.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
  • Moderador

Deu tudo certo, porém aparece uma mensagem no console <luaDoRemoveItem> Item not found , creio que esse erro não resultara em nem 1 bug, ele só aparece quando o item é usado.

 

Gostaria de saber também se da para fazer uma melhoria neste script pois uso uns 6 dele, se der certo creio que ira ajudar muitas pessoas.

Exemplo o script checaria as storages caso o player tiver a storage {30023, 4} ficaria com a vocação id 462 e se tiver a storage {7101,1 } sua vocação seria 463.

 

Estou muito grato a ajuda de vocês, eu nunca vi esse tipo de script como eu falei, eu não tenho o tal conhecimento para fazer ele como pode ver a primeira versão que eu tinha feito foi bem básica.

 

 

local stor = {30023, 4}
 
function onUse(cid, item, fromPos, toPos)
    if getPlayerStorageValue(cid, stor[1]) ~= stor[2] then
        return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Voce nao fez a EXODUS QUEST, para usar este DOLL.')
    end
 
    doRemoveItem(item.uid, 2415)
    doPlayerSetVocation(cid, 525)
    doCreatureChangeOutfit(cid, {lookType = 462})
    doSendMagicEffect(toPos, 32)
    doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Voce foi promovido a Knight Templario.')
    doRemoveItem(item.uid)
    return true
end

 

 

function onLove()
if getPlayerTrueLove(girlfriend) then
doPlayerBeHappy(cid, true)
doRemoveVirginity(cid, true)
else
doSendCancel(cid,"you do not know how good it feels to be loved")
end end

;)

 

Link para o post
Compartilhar em outros sites
  • 1 year later...

Ola desculpa reviver o tópico pois achei o script muito interessante gostaria de saber se tem como colocar para o player mudar de storage pra que não possa usar o item novamente ou dar continuidade em uma missão por exemplo.

agradeço ajuda!!! 

Link para o post
Compartilhar em outros sites
26 minutos atrás, Babilonia disse:

Ola desculpa reviver o tópico pois achei o script muito interessante gostaria de saber se tem como colocar para o player mudar de storage pra que não possa usar o item novamente ou dar continuidade em uma missão por exemplo.

agradeço ajuda!!! 

local stor = {30023, 4}
local storage = 657489

function onUse(cid, item, fromPos, toPos)
    if getPlayerStorageValue(cid, stor[1]) ~= stor[2] then
        return doPlayerSendCancel(cid, 'You can\'t use this item.') and false
    end
	
    if getPlayerStorageValue (cid, storage) == 1 then return true end
    
    doRemoveItem(item.uid, 2415)
    doPlayerSetVocation(cid, 525)
    doCreatureChangeOutfit(cid, {lookType = 462})
    doSendMagicEffect(toPos, 32)
    doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Agora voce foi promovido.')
    setPlayerStorageValue (cid, storage, 1)
    doRemoveItem(item.uid)
return true
end

 

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

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

Link para o post
Compartilhar em outros sites
  • 4 weeks later...
Em 25/08/2016 ás 17:58, Talesigorvr disse:

 

A SCRIPTER E ACTION ?

NTO PANZER SERVIDOR 24H 

1554689_1.png

http://narutopanzer.blogspot.com.br/

RATE  EXP 999

 

DBO SERVIDOR 24H 

1549171_1.png

http://dbowtf.ddns.net/

RATE EXP 400

 

 

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo