Ir para conteúdo
  • Cadastre-se

(Resolvido)item que teleportar para uma area por determinado tempo


Ir para solução Resolvido por Gustavo Ntos,

Posts Recomendados

Então queria um item que eu possar usar que fosse teleportado para uma cordenada x,y,z que pode-se ficar por um certo tempo la tipo 1 ou 2 dias. e depois fosse teleportado de volta para o templo mesmo of-line.

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

Desde cedo a mãe da gente fala assim: “Filho, por você jogar Tibia, você tem que ser duas vezes melhor.” Aí passado alguns anos eu pensei: Como fazer 2 vezes melhor, se você tá pelo menos 100 vezes atrasado pelos Nubs, pela história, pelos Items, pelas Guilds, pelos Reds… Por tudo que aconteceu? Duas vezes melhor como ? Ou melhora ou ser o melhor ou o pior de uma vez. E sempre foi assim. Você vai escolher o que tiver mais perto de você, o que tiver dentro da sua realidade. Você vai ser duas vezes melhor como? Quem inventou isso aí? Quem foi o pilantra que inventou isso aí ? Acorda pra vida rapaz.

 

YanLoco

 

Projetos: https://www.facebook.com/Dbo-Here-524519644549602/ 70%

Link para o post
Compartilhar em outros sites

Esta é uma mensagem automática! Este tópico foi movido para a área correta.
Pedimos que você leia as regras do fórum.

Spoiler

This is an automated message! This topic has been moved to the correct area.
Please read the forum rules.

 

Link para o post
Compartilhar em outros sites
40 minutos atrás, yanloco70 disse:

Então queria um item que eu possar usar que fosse teleportado para uma cordenada x,y,z que pode-se ficar por um certo tempo la tipo 1 ou 2 dias. e depois fosse teleportado de volta para o templo mesmo of-line.

Action:

 

local ilha = {x = 1, y = 1, z = 7} -- POSIÇÃO DA ILHA
local dp = {x = 1, y = 1, z = 7} -- POSIÇÃO DO TEMPLO OU DP
local time = 2 -- Tempo em hrs

function onUse(cid, item, frompos, item2, topos)
doTeleportThing(cid, ilha)
doSendMagicEffect(topos, 24)
function add()
doTeleportThing(cid, dp)
doSendMagicEffect(topos, 24)
end
addEvent(add, time* 60 * 60)
return TRUE
end

Code 2(caso o 1 tenha dado errado):

 

 

Action:

 


local ilha = {x = 1, y = 1, z = 7} -- POSIÇÃO DA ILHA
local config = {
storage = 65789
horas = 2
}
function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid, config.storage) > os.time() then
 doPlayerSendTextMessage(cid, 25, "Voce ja esta na ilha.")
end
return false
if getPlayerStorageValue(cid, config.storage) < os.time() then
doTeleportThing(cid, ilha)
doSendMagicEffect(topos, 24)
setPlayerStorageValue(cid, config.storage, os.time() + config.horas * 60 * 60)
end
return TRUE
end

 

CREATURESCRIPTS:

 


local storage = 65789
local dp = {x = 1, y = 1, z = 7} -- POSIÇÃO DO TEMPLO OU DP
function onThink(cid, interval)
        addEvent(function()
            if isPlayer(cid) and getPlayerStorageValue(cid, storage) == 0 then
                doTeleportThing(cid, dp)
            end
        end, 1000 * 1)
end

 


<event type="think" name="Ilha" event="script" value="Nomedoarquivo.lua"/>

 

Login.lua:


registerCreatureEvent(cid, "Ilha")

Editado por Gustavo Ntos (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
2 horas atrás, Gustavo Ntos disse:

Action:

 


local ilha = {x = 1, y = 1, z = 7} -- POSIÇÃO DA ILHA
local dp = {x = 1, y = 1, z = 7} -- POSIÇÃO DO TEMPLO OU DP
local time = 2 -- Tempo em hrs

function onUse(cid, item, frompos, item2, topos)
doTeleportThing(cid, ilha)
doSendMagicEffect(topos, 24)
function add()
doTeleportThing(cid, dp)
doSendMagicEffect(topos, 24)
end
addEvent(add, time* 60 * 60)
return TRUE
end

Code 2(caso o 1 tenha dado errado):

 

 

Action:

 


local ilha = {x = 1, y = 1, z = 7} -- POSIÇÃO DA ILHA
local config = {
storage = 65789
horas = 2
}
function onUse(cid, item, frompos, item2, topos)
if getPlayerStorageValue(cid, config.storage) > os.time() then
 doPlayerSendTextMessage(cid, 25, "Voce ja esta na ilha.")
end
return false
if getPlayerStorageValue(cid, config.storage) < os.time() then
doTeleportThing(cid, ilha)
doSendMagicEffect(topos, 24)
setPlayerStorageValue(cid, config.storage, os.time() + config.horas * 60 * 60)
end
return TRUE
end

 

CREATURESCRIPTS:

 


local storage = 65789
local dp = {x = 1, y = 1, z = 7} -- POSIÇÃO DO TEMPLO OU DP
function onThink(cid, interval)
        addEvent(function()
            if isPlayer(cid) and getPlayerStorageValue(cid, storage) == 0 then
                doTeleportThing(cid, dp)
            end
        end, 1000 * 1)
end

 


<event type="think" name="Ilha" event="script" value="Nomedoarquivo.lua"/>

 

Login.lua:


registerCreatureEvent(cid, "Ilha")

Funcionou o 1 normal mente vlw  mais queria que item sumisse quando o player desse use , e que aparecesse uma mensagem no meio da tela voce foi terleportado para ilha magica tem 2 horas aproveite explo

 

Desde cedo a mãe da gente fala assim: “Filho, por você jogar Tibia, você tem que ser duas vezes melhor.” Aí passado alguns anos eu pensei: Como fazer 2 vezes melhor, se você tá pelo menos 100 vezes atrasado pelos Nubs, pela história, pelos Items, pelas Guilds, pelos Reds… Por tudo que aconteceu? Duas vezes melhor como ? Ou melhora ou ser o melhor ou o pior de uma vez. E sempre foi assim. Você vai escolher o que tiver mais perto de você, o que tiver dentro da sua realidade. Você vai ser duas vezes melhor como? Quem inventou isso aí? Quem foi o pilantra que inventou isso aí ? Acorda pra vida rapaz.

 

YanLoco

 

Projetos: https://www.facebook.com/Dbo-Here-524519644549602/ 70%

Link para o post
Compartilhar em outros sites
  • Solução
19 horas atrás, yanloco70 disse:

Funcionou o 1 normal mente vlw  mais queria que item sumisse quando o player desse use , e que aparecesse uma mensagem no meio da tela voce foi terleportado para ilha magica tem 2 horas aproveite explo

 


local ilha = {x = 1, y = 1, z = 7} -- POSIÇÃO DA ILHA
local dp = {x = 1, y = 1, z = 7} -- POSIÇÃO DO TEMPLO OU DP
local time = 2 -- Tempo para mandar as mensagens e adiciona item

function onUse(cid, item, frompos, item2, topos)
doPlayerSendTextMessage(cid, 25, "Voce foi teleportado para ilha, Capture muitos Pokemons!!") 
doTeleportThing(cid, ilha)
doSendMagicEffect(topos, 24)
doRemoveItem(item.uid, 1)
function add()
doTeleportThing(cid, dp)
doSendMagicEffect(topos, 24)
end
addEvent(add, time* 60 * 60)
return TRUE
end

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por Ribeiro Foda
      Olá pessoal! Estou precisando de 1 script de quest para 8.4. 
       
      Esse script de quest serve para eu montar 1 ancient helmet se eu tiver as peças e colocar elas no lugar certo, e quando puxar uma alavanca e tiver todas as peças o ancient helmet aparece.
       
      Aqui está 1 video de como é:

       
      Vejam só do 0:13 a 00:44.
       
      P.S: Eu ja fiz esse lugar no mapa eu só preciso da script da quest!
       
      ATT: R1B31R0!
    • Por juvelino
      Galera to com um mega problema e nao consigo resolver...

      Quando eu vou abrir meu ot da o seguinte erro:
       
      >>Loading items
      Data/items/items.xml:17517: parser error : expected '>'

      [Warning - Items: :loadFromXml] Cannot load items file.
      Line: 17517, Info: Premature end of data in tag items line 2

      Unable to load items (XML)! Continue? (y/n)
       
      Minha ultima linha dos items é assim: </items>
      Me diz oque fazer ai       

       
    • Por xBlackWolf
      Olá a todos, estou mexendo em um servidor aqui 10.35 e percebi que os paladins não conseguem atacar de longe com os arrows! Acho que é algum bug nos Bows, vi um usuário aqui falando que resolveu pelas lib's mas não tenho idéia de como arrumar, alguem já passou por isso ? ele só ataca de perto, a 1sqm. Se não estiver colado no bixo ele não ataca, como se o item fosse um club ou uma sword...
       
      E também tenho outra dúvida, é possível fazer 1 arrow ser usada apenas com certo arco ?? Como poderia ser feito?
       
       
      Aguardo respostas!
    • Por Tricoder
      SCREENSHOT
      http://3.1m.yt/Zwo99Sdx.png
      http://4.1m.yt/oG_cwli8u.png
      ______________________________________________ COMANDOS
      !autoloot add, itemId ou name -- Adicionando um item na lista !autoloot remove, itemId or name -- Remover um item da lista !autoloot show -- Mostrar a lista do autoLoot !autoloot clear -- Limpar a lista do autoLoot ______________________________________________ SCRIPT data/global.lua
      -- AutoLoot config AUTO_LOOT_MAX_ITEMS = 5 -- Reserved storage AUTOLOOT_STORAGE_START = 10000 AUTOLOOT_STORAGE_END = AUTOLOOT_STORAGE_START + AUTO_LOOT_MAX_ITEMS -- AutoLoot config end talkactions/talkactions.xml
      <talkaction words="!autoloot" separator=" " script="autoloot.lua"/> talkactions/scripts/autoloot.lua
      function onSay(player, words, param) local split = param:split(",") local action = split[1] if action == "add" then local item = split[2]:gsub("%s+", "", 1) local itemType = ItemType(item) if itemType:getId() == 0 then itemType = ItemType(tonumber(item)) if itemType:getId() == 0 then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "There is no item with that id or name.") return false end end local itemName = tonumber(split[2]) and itemType:getName() or item local size = 0 for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do local storage = player:getStorageValue(i) if size == AUTO_LOOT_MAX_ITEMS then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The list is full, please remove from the list to make some room.") break end if storage == itemType:getId() then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." is already in the list.") break end if storage <= 0 then player:setStorageValue(i, itemType:getId()) player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." has been added to the list.") break end size = size + 1 end elseif action == "remove" then local item = split[2]:gsub("%s+", "", 1) local itemType = ItemType(item) if itemType:getId() == 0 then itemType = ItemType(tonumber(item)) if itemType:getId() == 0 then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "There is no item with that id or name.") return false end end local itemName = tonumber(split[2]) and itemType:getName() or item for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do if player:getStorageValue(i) == itemType:getId() then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." has been removed from the list.") player:setStorageValue(i, 0) return false end end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, itemName .." was not founded in the list.") elseif action == "show" then local text = "-- Auto Loot List --\n" local count = 1 for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do local storage = player:getStorageValue(i) if storage > 0 then text = string.format("%s%d. %s\n", text, count, ItemType(storage):getName()) count = count + 1 end end if text == "" then text = "Empty" end player:showTextDialog(1950, text, false) elseif action == "clear" then for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do player:setStorageValue(i, 0) end player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The autoloot list has been cleared.") else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Use the commands: !autoloot {add, remove, show, clear}") end return false end creaturescripts/creaturescripts.xml
      <event type="kill" name="AutoLoot" script="autoloot.lua" /> creaturescripts/scripts/autoloot.lua
      local function scanContainer(cid, position) local player = Player(cid) if not player then return end local corpse = Tile(position):getTopDownItem() if not corpse then return end if corpse:getType():isCorpse() and corpse:getAttribute(ITEM_ATTRIBUTE_CORPSEOWNER) == cid then for i = corpse:getSize() - 1, 0, -1 do local containerItem = corpse:getItem(i) if containerItem then for i = AUTOLOOT_STORAGE_START, AUTOLOOT_STORAGE_END do if player:getStorageValue(i) == containerItem:getId() then containerItem:moveTo(player) end end end end end end function onKill(player, target) if not target:isMonster() then return true end addEvent(scanContainer, 100, player:getId(), target:getPosition()) return true end creaturescripts/scripts/login.lua
      player:registerEvent("AutoLoot") ______________________________________________ CRÉDITOS
      Printer
    • Por josiassc alves
      Meu primeiro tutorial....vamos la! vamos criar vip 4 como exemplo
       
      Primeiro precisamos achar um action não usado!     Em Data/actions/actions.xml digite CTRL+F  e procure um action não usado no meu caso vai ser 15670 e 15671!
      um deles vamos usar no piso e outro no baú de recompensa!
       
      Começando!
       
      Data/actions/scripts
      Crie um arquivo .lua / pode copiar uma e colar substituindo o nome e limpando dentro! o meu irá se chamar premiumtile.lua

      15671 - ACTION QUE USAREMOS NO BAÚ...
       
      15670 - ACTION QUE USAREMOS NO PISO...
       
      "Você jah pegou sua recompensa.") MENSAGEM QUANDO TENTAR MAIS QUE UMA VEZ...
       
      "Voce agora é um Vip4. System Vip By ~{GOD}Josias~.")  -MENSAGEM QUANDO GANHAR A RECOMPENSA...
       
      (cid,2157,5) - iD DO ITEM DE RECOMPENSA (5) QUANTIDADE -- O MEU É GOLD NUGGET
       
      (cid,6567,1) - iD ITEM E QUANTIDADE (1) CUSTOMIZADO QUE GANHARÁ EX: (santa doll)
       
      (cid,15670,1) - ACTION DO PISO NOVAMENTE...
       
       
       
       
      EM
      DATA/ACTIONS/ACTIONS.XML    
      Cole isto
      "15671" - ACTION QUE UTILIZAMOS PARA O BAÚ
      "premiumtile.lua" - NOME do arquivo feito anteriormente
       
       
       
       
      Agora vamos em   DATA/MOVEMTS/SCRIPTS
      Crie um arquivo.lua (o meu será - premium tile.lua-) COLE ISTO -MODIFIQUE SE DESEJAR
       
      {x=160, y=54, z=7} -POSIÇÃO QUE O PLAYER SERÁ LANÇADO AO TENTAR PASSAR SEM SER VIP 4
      15670 - ACTIONS USADAS COMO PISO ATÉ AGORA...
      doPlayerSendCancel(cid,"mensagem caso tente entrar sem ser vip4")
       
       
      Agora em DATA/MOVEMENTS/MOVEMENTS.XML
      Cole isto:
      15670 - ACTIONS USADAS NO PISO...
      premium tile.lua - NOME DO ARQUIVO CRIADO ANTERIORMENTE...
       
       
       
      BEM NO SEU MAP EDITOR CRIE UM PISO COM ACTIONS 15670 ASSIM: EXEMPLO PISO (ItemID: [9565], ActionID: [15670], UniqueID: [15670].

       
      BEM NO SEU MAP EDITOR CRIE UM BAÚ COM ACTION 15671 ASSIM : ItemID: [1746], ActionID: [15671], UniqueID: [15671].

       
       
       
      BOM GALERA ESPERO TER AJUDADO ESSE FOI MEU PRIMEIRO TUTORIAL DESCULPA SE NÃO ORGANIZEI MUITO BEM!  REP + SE GOSTOU E AQUI VAI UM EXTRA!
       
      criando montdoll como o da quest vip que transforma em monstro!
       
      DATA/ACTIONS/SCRIPTS
      Crie um arquivo.lua ( o meu é esse) mountvipee.lua e cole isto modificando do seu gosto
       
      AGORA EM DATA/ACTIONS/ACTIONS.XML
      Cole isto a baixo da linha     <!-- Mount System -->
       
      6567 -ID ITEM DOLL QUE VOCÊ QUER USAR PARA ISTO! xD
      mountvipee.lua - NOME DO ARQUIVO.LUA QUE VOCÊ ACABOU DE CRIAR...
       
      e está ai.. Testado e comprovado..   Me perdoem por falhas nas organizações.. só quero ajudar ja que não encontrei nenhum ensinando vlw! ?
       
      REP+ PRA AJUDAR!  no insentivo
       
       
       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo