Nord 2 #1 Postado 22 Julho, 2008 (editado) Teleport Quest Um teleport diferente. Nome: Advanced Teleport QuestVersão: A partir da 8.10 Tipo do script: Action Servidor Testado: The Forgotten Server 0.3 rev 949 Autor: Nord Requisitos: Ter a função doSendDistanceShootFazer todos os passos corretamente Você coloca uma wooden stake em cada coal basin e da use numa alavanca então alguns efeitos aparecerão e você será teleportado perto de um baú que quando aberto te da uma blessed wooden stake e você é teleportado para uma posição definida depois de 5 segundos. Crie um arquivo na pasta "data/actions/scripts" com o nome de "teleport_quest.lua" contendo o script abaixo: local coalpos1 = {x=500, y=442, z=6, stackpos=1} local coalpos2 = {x=502, y=442, z=6, stackpos=1} local otherpos = {x=501, y=501, z=7} local newpos = {x=504, y=440, z=6} function doDelayTeleport(cid, pos, delay, effect) if pos ~= nil then local function teleport(p) doTeleportThing(cid, pos, FALSE) if effect ~= nil then doSendMagicEffect(pos, effect) else doSendMagicEffect(pos, 10) end end if delay ~= nil then addEvent(teleport, delay, p) else addEvent(teleport, 0, p) end return LUA_NO_ERROR else print("Error: doDelayTeleport.") return LUA_ERROR end end function doDelayShoot(frompos, topos, effect, delay) if frompos ~= nil and topos ~= nil and effect ~= nil then local function shoot(p) doSendDistanceShoot(frompos, topos, effect) end if delay ~= nil then addEvent(shoot, delay, p) else addEvent(shoot, 0, p) end return LUA_NO_ERROR else print("Error: doDelayShoot.") return LUA_ERROR end end function onUse(cid, item, frompos, itemEx, topos) playerpos = getCreaturePosition(cid) coal1 = getThingfromPos(coalpos1) coal2 = getThingfromPos(coalpos2) if item.itemid == 1945 then if getPlayerStorageValue(cid, 6000) == -1 then if coal1.itemid == 5941 and coal2.itemid == 5941 then doRemoveItem(coal1.uid, 1) doRemoveItem(coal2.uid, 1) doSendMagicEffect(coalpos1, 10) doSendMagicEffect(coalpos2, 10) doTransformItem(item.uid, item.itemid + 1) for i = 1, 20 do doDelayShoot(coalpos1, newpos, 37, i * 100) doDelayShoot(coalpos2, newpos, 37, i * 100) end doDelayTeleport(cid, newpos, 2000, 39) doSendMagicEffect(playerpos, 2) doSendAnimatedText(playerpos, "Teleport!", TEXTCOLOR_YELLOW) else doSendMagicEffect(topos, 2) doPlayerSendCancel(cid, "Coloque um wooden stake sobre cada coal basin.") end else doPlayerSendCancel(cid, "Você já fez essa quest.") doSendMagicEffect(playerpos, 2) end elseif item.itemid == 1946 then if math.random(1, 5) >= 4 then doTransformItem(item.uid, item.itemid - 1) doSendMagicEffect(topos, 12) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A alavanca voltou ao seu estado normal.") else doSendMagicEffect(topos, 2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "A alavanca está emperrada, tente puxá-la novamente.") end elseif item.itemid == 1746 then if getPlayerStorageValue(cid, 6000) == -1 then doDelayTeleport(cid, otherpos, 5000, 12) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Teleportando em 5 segundos...") doPlayerAddItem(cid, 5942, 1) setPlayerStorageValue(cid, 6000, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você já pegou um blessed wooden stake.") doDelayTeleport(cid, otherpos, 5000, 12) end end return TRUE end Adicione esta tag no "actions.xml" que se encontra na pasta "data/actions": <action actionid="6000" script="teleport_quest.lua"/> No seu MapEditor coloque actionID 6000 na alavanca e actionID 6000 no baú de ID 1746 que virá a recompensa, mas coloque alguma uniqueID nesse mesmo baú para ninguém sair com ele As configurações necessárias são mudar as posições contidas em: local coalpos1 = {x=500, y=442, z=6, stackpos=1} -- Posição do 1º coal basin. local coalpos2 = {x=502, y=442, z=6, stackpos=1} -- Posição do 2º coal basin. local otherpos = {x=501, y=501, z=7} -- Posição para onde o jogador será teleportado ao dar use no baú. local newpos = {x=504, y=440, z=6} -- Posição para onde o jogador será teleportado ao dar use na alavanca se tiver os determinados itens. É importante que a newpos esteja perto da coalpos1 e coalpos2 para que os efeitos se tornem mais bonitos. O andar de newpos, coalpos1 e coalpos2 tem que ser o mesmo, pois não é possível enviar projétils para andares diferentes. Postem, tirem dúvidas, dêem sugestões para novos script, doem OT$, enfim, façam algo que eu possa saber que você leu meu tópico. Editado 25 Julho, 2008 por Nord Compartilhar este post Link para o post
Nord 2 #3 Postado 24 Julho, 2008 Vlw por ter se disponibilizado a mover o meu tópico Dark, ultimamente o Fadi anda muito ocupado e vc nem sabe como isso foi importante para mim. Eu usei o script pro concurso e por isso acho que vai ajudar muitas pessoas, vlw. Compartilhar este post Link para o post
Mock 32 #4 Postado 24 Julho, 2008 Seria bom se meu server tivesse aquela função la =X eu queria por o seu script no meu ot xD Compartilhar este post Link para o post
Sago 0 #5 Postado 24 Julho, 2008 Muito massa segue assim manoww... você é muito criativo adorei Aprovado Compartilhar este post Link para o post
Undead Slayer 0 #6 Postado 11 Agosto, 2008 Pareceu a Desert Quest, pelo metodo de colocar item em certo local, puxar a alavanca e ser teleportado. Eu ja fiz um script assim mas era da propia desert quest, e depois de abrir o bau você não era teleportado apos 5 segundos, so apos pegar o teleport e sair por você mesmo da sala. APROVADISSIMO Compartilhar este post Link para o post
PuMa 0 #7 Postado 20 Agosto, 2008 esse script so funfa em tfs? Compartilhar este post Link para o post