Postado Agosto 26, 2017 7 anos Olá, gostaria que alguém me ensinasse como fazer o seguinte... Exemplo: o player tem que ter 3 itens, item 1, item 2 e item 3 o player vai ter que usa o item 3 em uma mesa X (a mesa já faz parte da quest, ela da o item 2) quando o player usa o item 3 na mesa os 3 itens some e ele ganha 2 itens. e queria aprende a checar storage (exemplo: checar se o player tem a storage da quest do item 3 antes de ganhar os itens) to aprendendo a mexer com lua, fiquei um tempinho tentando e não consegui.
Postado Agosto 26, 2017 7 anos Como você quer que ensine como é, vou mostrar da forma mais simples: Spoiler local items = {1111, 2222, 3333} local mesa_aid = 7777 --actionid da mesa local recompensa = {4444, 5555} local storage_item3 = 11111 function onUse(player, item, fromPosition, target, toPosition, isHotkey) if target.actionid == mesa_aid then if player:getStorageValue(storage_item3) ~= -1 then if player:getItemCount(items[1]) >= 1 and player:getItemCount(items[2]) >= 1 and player:getItemCount(items[3]) >= 1 then player:removeItem(items[1], 1) player:removeItem(items[2], 1) player:removeItem(items[3], 1) else player:sendCancelMessage("Você não tem todos os itens necessários.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return true end player:addItem(recompensa[1], 1) player:addItem(recompensa[2], 1) player:getPosition():sendMagicEffect(CONST_ME_STUN) else player:sendCancelMessage("Você não fez a quest do item 3 ainda.") player:getPosition():sendMagicEffect(CONST_ME_POFF) end end return true end Claro que você também poderia fazer algo do tipo: Spoiler local t = { items = {{1111, 3}, {2222, 2}, {3333, 1}}, mesa_aid = 7777, recompensa = {{4444, 1}, {5555,2}}, storage_item3 = 11111 } function onUse(player, item, fromPosition, target, toPosition, isHotkey) if target.actionid == t.mesa_aid then if player:getStorageValue(t.storage_item3) == -1 then player:sendCancelMessage("Você não fez a quest do item 3 ainda.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return true end for i, k in ipairs(t.items) do if player:getItemCount(k[1]) < k[2] then player:sendCancelMessage("Você não tem todos os itens necessários.") player:getPosition():sendMagicEffect(CONST_ME_POFF) return true end end for i, k in ipairs(t.items) do player:removeItem(k[1], k[2]) end for i = 1, #t.recompensa do player:addItem(t.recompensa[i][1], t.recompensa[i][2]) end player:getPosition():sendMagicEffect(CONST_ME_STUN) end return true end Editado Agosto 26, 2017 7 anos por Dwarfer (veja o histórico de edições) Contato: Email: [email protected] Discord: Dwarfer#2715
Postado Agosto 26, 2017 7 anos local table = { item_id = {1111, 1}, recompensa = {4444, 1}, mesa_id = 7777, storage = 11111 } function onUse(player, item, fromPosition, target, toPosition, isHotkey) if target then if target:getId() == table.mesa_id then if player:getStorageValue(table.storage) < 1 then if player:getItemCount(table.item_id[1]) >= table.item_id[2] then if player:removeItem(items[1], items[2]) then player:addItem(table.recompensa[1], table.recompensa[2]) player:getPosition():sendMagicEffect(CONST_ME_STUN) end else player:sendCancelMessage("Voce nao tem o item necessario.") player:getPosition():sendMagicEffect(CONST_ME_POFF) end else player:sendCancelMessage("Voce nao fez a quest do item 3 ainda.") player:getPosition():sendMagicEffect(CONST_ME_POFF) end end end return true end Editado Agosto 26, 2017 7 anos por luanluciano93 (veja o histórico de edições) STYLLER OT 2022
Postado Agosto 26, 2017 7 anos Autor @Dwarfer @luanluciano93 valeu mesmo pela ajuda, só queria um exemplo mesmo, quero aprende a fazer (me expressei errado na hora de criar o tópico). @edit eu estou tentando adicionar uma linha no primeiro codigo do @Dwarfer que é pra da storage pro player depois que ele receber os itens da mesa mas não estou conseguindo... tentei dessas maneira... setPlayerStorageValue(cid, 55555, 1) player:setPlayerStorageValue(cid, storage, 1) (e adicionei uma linha na parte de cima do codigo com a storage) player:setPlayerStorageValue(cid, 55555, 1) OBS: tentei colocar na linha depois que recebe a recompensa. tentei assim, não sei outro jeito Editado Agosto 27, 2017 7 anos por Koring4 (veja o histórico de edições)
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.