Postado Maio 2, 2016 9 anos Boa noite pessoal do TK, meu pedido é algo que aparentemente é simples, (para um praticamente leigo em lua) porém não impossível. Consiste em uma scroll, que utilizada com o "USE WITH" no chão, vai salvar a posição que o player selecionoi (pode salvar em uma txt sei lá.). Quando o player estiver lá na pqp, ele usa a scroll e abre-se um portal de uns 15 segundos somente, para a posição que ele salvou. Após isto o portal some, porém ele pode usar isso quantas vezes quiser. O que não pode: -Portal para casas -Portal para PZ -Portal para cima de casas ou pedras. (nada que dê uma vantagem para o player) -Portal para lugares onde ele não tenha acesso. (tipo um outro lado de parede) O Que pode: -Portal para diferentes floor's, desde que ele marque a runa neste floor. -Amigos entrarem no portal -Amigos pegarem o scroll e utilizarem para a posição que ele salvou. (amigos abrirem o portal) Fico no aguardo, obrigado!
Postado Maio 4, 2016 9 anos Bom dia. Comecei a fazer o script e a primeira parte deu certo, porém a segunda parte eu consigo fazer o portal aparecer, exceto sumir. Para fazer ele sumir, tem como fazer por database, ou por globalStorage, mas ultimamente estou com a cabeça fraca para isso, então estou postando o que eu fiz: em actions, cria o arquivo scroll teleport.lua local function v_msg1(cid) if isPlayer(cid) == true then if getPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna1) >= 1 then return '['.. getItemNameById(SCROLLTELEPORT_.idDaRuna_1) ..'] - Ok' else return '[Slot vazio]' end end end local function v_msg2(cid) if isPlayer(cid) == true then if getPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna2) >= 1 then return '['.. getItemNameById(SCROLLTELEPORT_.idDaRuna_2) ..'] - Ok' else return '[Slot vazio]' end end end local function v_msg3(cid) if isPlayer(cid) == true then if getPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna3) >= 1 then return '['.. getItemNameById(SCROLLTELEPORT_.idDaRuna_3) ..'] - Ok' else return '[Slot vazio]' end end end function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == SCROLLTELEPORT_.idDaRuna_1 then setPlayerStorageValue(cid, SCROLLTELEPORT_memoria1.valorX, SCROLLTELEPORT_obter.x) setPlayerStorageValue(cid, SCROLLTELEPORT_memoria1.valorY, SCROLLTELEPORT_obter.y) setPlayerStorageValue(cid, SCROLLTELEPORT_memoria1.valorZ, SCROLLTELEPORT_obter.z) setPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna1, 1) doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Marcou as coordenadas: ".. SCROLLTELEPORT_obter.x ..", ".. SCROLLTELEPORT_obter.y ..", ".. SCROLLTELEPORT_obter.z .." na runa: ".. getItemNameById(SCROLLTELEPORT_.idDaRuna_1) ..".") end if item.itemid == SCROLLTELEPORT_.idDaRuna_2 then setPlayerStorageValue(cid, SCROLLTELEPORT_memoria2.valorX, SCROLLTELEPORT_obter.x) setPlayerStorageValue(cid, SCROLLTELEPORT_memoria2.valorY, SCROLLTELEPORT_obter.y) setPlayerStorageValue(cid, SCROLLTELEPORT_memoria2.valorZ, SCROLLTELEPORT_obter.z) setPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna2, 1) doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Marcou as coordenadas: ".. SCROLLTELEPORT_obter.x ..", ".. SCROLLTELEPORT_obter.y ..", ".. SCROLLTELEPORT_obter.z .." na runa: ".. getItemNameById(SCROLLTELEPORT_.idDaRuna_2) ..".") end if item.itemid == SCROLLTELEPORT_.idDaRuna_3 then setPlayerStorageValue(cid, SCROLLTELEPORT_memoria3.valorX, SCROLLTELEPORT_obter.x) setPlayerStorageValue(cid, SCROLLTELEPORT_memoria3.valorY, SCROLLTELEPORT_obter.y) setPlayerStorageValue(cid, SCROLLTELEPORT_memoria3.valorZ, SCROLLTELEPORT_obter.z) setPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna3, 1) doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Marcou as coordenadas: ".. SCROLLTELEPORT_obter.x ..", ".. SCROLLTELEPORT_obter.y ..", ".. SCROLLTELEPORT_obter.z .." na runa: ".. getItemNameById(SCROLLTELEPORT_.idDaRuna_3) ..".") end if item.itemid == SCROLLTELEPORT_.idDoLivro then if ((getPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna1) <= 0) and (getPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna2) <= 0) and (getPlayerStorageValue(cid, SCROLLTELEPORT_.storageRuna3) <= 0)) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Sem coordenadas marcadas.") else doShowTextDialog(cid, SCROLLTELEPORT_.idDoLivro, 'Para criar um portal no destino que voce salvou usando a runa.\nBasta usar o comando: !nomeDaRuna\nExemplo: !runaVermelha\n\n'.. v_msg1(cid) ..'.\n'.. v_msg2(cid) ..'.\n'.. v_msg3(cid) ..'') end end if ((getCreatureCondition(cid, CONDITION_INFIGHT) == true) or (isPlayerPzLocked(cid) == true)) then doPlayerSendCancel(cid, "Nao pode usar em batalha.") return false end if getTilePzInfo(getThingPos(cid)) == true then doPlayerSendCancel(cid, "Nao pode usar em area protegida.") return false end return true end Em actions.xml <action itemid="2276" event="script" value="scroll teleport.lua"/><!-- runaAzul --> <action itemid="2306" event="script" value="scroll teleport.lua"/><!-- runaVermelha --> <action itemid="2299" event="script" value="scroll teleport.lua"/><!-- runaAmarela --> <action itemid="6124" event="script" value="scroll teleport.lua"/><!-- livro --> Em items.xml <item id="2276" article="uma" name="runaAzul"> <attribute key="weight" value="50" /> </item> <item id="2306" article="uma" name="runaVermelha"> <attribute key="weight" value="50" /> </item> <item id="2299" article="uma" name="runaAmarela"> <attribute key="weight" value="50" /> </item> Em uma lib qualquer SCROLLTELEPORT_ = { idDaRuna_1 = 2276, storageRuna1 = 971701, idDaRuna_2 = 2306, storageRuna2 = 971702, idDaRuna_3 = 2299, storageRuna3 = 971703, idDoLivro = 6124, } SCROLLTELEPORT_memoria1 = {valorX = 97170101, valorY = 97170102, valorZ = 97170103} SCROLLTELEPORT_memoria2 = {valorX = 97170201, valorY = 97170202, valorZ = 97170203} SCROLLTELEPORT_memoria3 = {valorX = 97170301, valorY = 97170302, valorZ = 97170303} SCROLLTELEPORT_obter = {x = getCreaturePosition(cid).x, y = getCreaturePosition(cid).y, z = getCreaturePosition(cid).z} Para criar um teleport, por exemplo, por talkactions, deve-se usar: -- Runa 1 doCreateTeleport(1387, {x=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria1.valorX), y=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria1.valorY)}, z=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria1.valorZ)}, getCreaturePosition(cid)) -- Runa 2 doCreateTeleport(1387, {x=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria2.valorX), y=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria2.valorY)}, z=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria2.valorZ)}, getCreaturePosition(cid)) -- Runa 3 doCreateTeleport(1387, {x=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria3.valorX), y=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria3.valorY)}, z=getPlayerStorageValue(cid, SCROLLTELEPORT_memoria3.valorZ)}, getCreaturePosition(cid)) Eternera Tibia Server - RPG
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.