Postado Agosto 3, 2017 7 anos Um script de alavanca, que só permite o uso dela, se o player estiver em determina X posição, e se estiver portando 5 itens, após isso, sai um efeito e o teleporta para x local e mostra 2 mensagem diferente no default. Um script de check storage, se o player tiver 5 storage diferente, inibe a passagem dele e emite uma mensagem Uma action que eu possa colocar em um item, que remove 5 storage do player.
Postado Agosto 3, 2017 7 anos 1 hora atrás, JcA disse: Um script de alavanca, que só permite o uso dela, se o player estiver em determina X posição, e se estiver portando 5 itens, após isso, sai um efeito e o teleporta para x local e mostra 2 mensagem diferente no default. function onUse(cid, item, frompos, item2, topos) local pos = {x=623, y=377, z=8} -- pos que precisara estar para ser teleportado local newpos = {x=623, y=377, z=8} -- pos que ira ser teleportado local effect = 10 -- efeito que ira sair ao ser teleportado local pid = getCreaturePosition(cid) local item1 = 2323 -- id do item 1 local item2 = 2327 -- id do item 2 local item3 = 2326 -- id do item 3 local item4 = 2325 -- id do item 4 local item5 = 2324 -- id do item 5 local qnt1 = 1 -- qnt do item1 necessaria local qnt2 = 1 -- qnt do item2 necessaria local qnt3 = 1 -- qnt do item3 necessaria local qnt4 = 1 -- qnt do item4 necessaria local qnt5 = 1 -- qnt do item5 necessaria if getCreaturePosition(cid) == pos then if getPlayerItemCount(cid, item1) >= qnt1 then if getPlayerItemCount(cid, item2) >= qnt2 then if getPlayerItemCount(cid, item3) >= qnt3 then if getPlayerItemCount(cid, item4) >= qnt4 then if getPlayerItemCount(cid, item5) >= qnt5 then doTeleportThing(cid, newpos) doSendMagicEffect(pid, effect) doPlayerSendTextMessage(cid, 24, "mensagem 1") doPlayerSendTextMessage(cid, 24, "mensagem 2") else doPlayerSendTextMessage(cid, 24, "voce nao tah na posicao certa") end else doPlayerSendTextMessage(cid, 24, "voce nao tem o item1 ou sua quantidade certa") end else doPlayerSendTextMessage(cid, 24, "voce nao tem o item2 ou sua quantidade certa") end else doPlayerSendTextMessage(cid, 24, "voce nao tem o item3 ou sua quantidade certa") end else doPlayerSendTextMessage(cid, 24, "voce nao tem o item4 ou sua quantidade certa") end else doPlayerSendTextMessage(cid, 24, "voce nao tem o item5 ou sua quantidade certa") end return true end
Postado Agosto 4, 2017 7 anos Solução 6 horas atrás, JcA disse: Um script de alavanca, que só permite o uso dela, se o player estiver em determina X posição, e se estiver portando 5 itens, após isso, sai um efeito e o teleporta para x local e mostra 2 mensagem diferente no default. Um script de check storage, se o player tiver 5 storage diferente, inibe a passagem dele e emite uma mensagem Uma action que eu possa colocar em um item, que remove 5 storage do player. 1. Script de Alavanca Em actions/scripts: leverItens.lua Spoiler local config = { pos = {x = 1, y = 1, z = 1}, -- posição que o player deve estar newpos = {x = 1, y = 1, z = 1}, -- posição para qual o player será levado msg1 = "MENSAGEM 1 NO DEFAULT", msg2 = "MENSAGEM 2 NO DEFAULT", items = {{1111, 1}, {2222, 5}, {3333, 12}, {4444, 20}, {5555, 7}} -- {id_do_item, quantidade} } function onUse(cid, item, fromPosition, itemEx, toPosition) local p = getPlayerPosition(cid) for _, v in ipairs(config.items) do if getPlayerItemCount(cid, v[1]) < v[2] then return doPlayerSendCancel(cid, "Você não possui os itens necessários.") end end if not(p.x == config.pos.x and p.y == config.pos.y and p.z == config.pos.z) then return doPlayerSendCancel(cid, "Você não está na posição correta.") end doTeleportThing(cid, config.newpos) doSendMagicEffect(config.newpos, CONST_ME_TELEPORT) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, config.msg1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, config.msg2) return true end Em actions.xml, insira a tag: <action actionid="ACTION_ID_DA_ALAVANCA" script="leverItens.lua" /> 2. Checar storage e proibir passagem Em movements/scripts: checkStor.lua Spoiler local storages = {12345, 21345, 32145, 41235, 54321} -- storages que serão verificadas function onStepIn(cid, item, position, fromPosition) for _, v in ipairs(storages) do if getPlayerStorageValue(cid, v) <= 0 then doPlayerSendCancel(cid, "Você não tem acesso a essa área.") return doTeleportThing(cid, fromPosition) end end end Em movements.xml, insira a tag: <movevent type="StepIn" actionid="ACTION_ID_DO_PISO" event="script" value="checkStor.lua"/> 3. Apagar storages Em actions/scripts: cleanStor.lua Spoiler local storages = {12345, 21345, 32145, 41235, 54321} -- storages que serão apagados function onUse(cid, item, fromPosition, itemEx, toPosition) for _, v in ipairs(storages) do setPlayerStorageValue(cid, v, -1) end end Em actions.xml, insira a tag: <action itemid="ID_DO_ITEM" script="cleanStor.lua" /> Não testei, qualquer erro, diz aí. Contato: Email: [email protected] Discord: Dwarfer#2715
Postado Agosto 4, 2017 7 anos Autor @Dwarfer O 3 script, ele não da erro, mas não funciona, quando clico no item não acontece nada e também não some.
Postado Agosto 4, 2017 7 anos 18 minutos atrás, JcA disse: @Dwarfer O 3 script, ele não da erro, mas não funciona, quando clico no item não acontece nada e também não some. O 3 script fez exatamente o que você pediu, amigo: remover os storages. 23 horas atrás, JcA disse: Uma action que eu possa colocar em um item, que remove 5 storage do player. Você tem que explicar melhor o que quer que aconteça. Isso facilita para todos. Tinha que falar que queria que o item fosse removido também. Enfim: local storages = {12345, 21345, 32145, 41235, 54321} -- storages que serão apagados function onUse(cid, item, fromPosition, itemEx, toPosition) for _, v in ipairs(storages) do setPlayerStorageValue(cid, v, -1) end doRemoveItem(item.uid, 1) end Contato: Email: [email protected] Discord: Dwarfer#2715
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.