Ir para conteúdo
  • Cadastre-se

Normal Yalahar quest (Teleport Last Room Bugado)


Posts Recomendados

Galera, preciso muito da ajuda de vocês... O que está ocorrendo é o seguinte:

 

A Yalahar Quest do meu server só está dando para fazer 1 vez ao dia ou até o server é reiniciado. Ocorre que está acontecendo isso pelo fato de que após o retorno do teleport para a entrada da sala, o mesmo perde o efeito de teleport, não levando os players para dentro da sala novamente.

 

RESUMINDO: Após clickar no globo para ativar a quest, os tps somem e renascem após um certo tempo. Os novos tps que renasceram não teleportam mais o player para dentro da sala.

 

Já tentei de várias formas arrumar isso, tentei pegar as scripts de outros servers mas nada resolveu... Necessito de uma solução para isto, seja esta qualquer uma, pensei em até inverter a script que ao invés de remover os tps após clickar no globo, criar um item que não dê para subir em cima do teleport, e este item sumiria após 15 minutos, dando acesso ao teleport novamente.

 

data/actions/scripts/quests/azerus_quest.lua

local BlindField = {x=32781, y=31157, z=10, stackpos=1} 
 
function mapArea(fromPos, toPos, stack) 
        local pos = {x=fromPos.x, y=fromPos.y-1, z=fromPos.z} 
        return function() 
                if (pos.y < toPos.y) then 
                        pos.y = pos.y+1 
                elseif (pos.x <= toPos.x) then 
                        pos.y = fromPos.y 
                        pos.x = pos.x+1 
                else 
                        pos.x = fromPos.x 
                        pos.y = fromPos.y 
                        pos.z = pos.z+1 
                end 
                if (pos.x <= toPos.x and pos.y <= toPos.y or pos.z < toPos.z) then 
                        if (stack == nil) then 
                                return pos 
                        else 
                                pos.stackpos = stack  
                                return pos, getThingfromPos(pos) 
                        end 
                end 
        end 
end 


function getMonstersfromArea(fromPos, toPos) 
        local monsters = {}     
        for _, thing in mapArea(fromPos, toPos, 253) do 
                if isMonster(thing.uid) == TRUE then 
                        table.insert(monsters, thing.uid) 
            end 

        end 
          local bfm = getThingfromPos(BlindField) 
            if isMonster(bfm.uid) == TRUE then 
            table.insert(monsters, bfm.uid) 
            end 
        return monsters 
end 


function onUse(cid, item, fromPosition, itemEx, toPosition) 
    local topLeft = {x=32776, y=31159, z=10} 
    local buttomRight = {x=32790, y=31176, z=10} 
    local monsters = getMonstersfromArea(topLeft, buttomRight) 
    local monsters1 = getMonstersfromArea(topLeft, buttomRight) 
    local tp = {x=32783, y=31175, z=10} 
    local glo = {x=32783, y=31166, z=10} 

    local function FirstWave() 
        doSummonCreature("Rift Worm", {x= glo.x - 4,y=glo.y,z=glo.z}) 
        doSummonCreature("Rift Worm", {x= glo.x + 4,y=glo.y,z=glo.z}) 
        doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 4,z=glo.z}) 
        doSummonCreature("Rift Worm", {x=glo.x,y=glo.y - 4,z=glo.z}) 
        doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 5,z=glo.z}) 
        doSummonCreature("Azerus", {x=glo.x,y=glo.y - 5,z=glo.z}) 
    end 
    local function FifthWave() 
        doSummonCreature("Rift Worm", {x= glo.x - 4,y=glo.y,z=glo.z}) 
        doSummonCreature("Rift Worm", {x= glo.x + 4,y=glo.y,z=glo.z}) 
        doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 4,z=glo.z}) 
        doSummonCreature("Rift Worm", {x=glo.x,y=glo.y - 4,z=glo.z}) 
        doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 5,z=glo.z}) 
    end 

    local function SecondWave() 
        local monsters1 = getMonstersfromArea(topLeft, buttomRight) 
        for _, monster in pairs(monsters1) do 
            if getCreatureName(monster) == "Azerus" then 
                doRemoveCreature(monster) 
            end 
        end 
        
        doSummonCreature("Azerus1", {x=glo.x,y=glo.y - 5,z=glo.z}) 
        doSummonCreature("Rift Brood", {x= glo.x - 4,y=glo.y,z=glo.z}) 
        doSummonCreature("Rift Brood", {x= glo.x + 4,y=glo.y,z=glo.z}) 
        doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 4,z=glo.z}) 
        doSummonCreature("Rift Brood", {x=glo.x,y=glo.y - 4,z=glo.z}) 
        doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 5,z=glo.z}) 
    end 
    local function SixthWave() 
        doSummonCreature("Rift Brood", {x= glo.x - 4,y=glo.y,z=glo.z}) 
        doSummonCreature("Rift Brood", {x= glo.x + 4,y=glo.y,z=glo.z}) 
        doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 4,z=glo.z}) 
        doSummonCreature("Rift Brood", {x=glo.x,y=glo.y - 4,z=glo.z}) 
        doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 5,z=glo.z}) 
    end
    
    local function ThirdWave() 
        local monsters1 = getMonstersfromArea(topLeft, buttomRight) 

        for _, monster in pairs(monsters1) do 
            if getCreatureName(monster) == "Azerus" then 
                doRemoveCreature(monster) 
            end 
        end 
        doSummonCreature("Azerus2", {x= glo.x - 5,y=glo.y,z=glo.z}) 
        doSummonCreature("Rift Scythe", {x= glo.x - 4,y=glo.y,z=glo.z}) 
        doSummonCreature("Rift Scythe", {x= glo.x + 4,y=glo.y,z=glo.z}) 
        doSummonCreature("Rift Scythe", {x= glo.x + 4,y=glo.y,z=glo.z}) 
        doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 4,z=glo.z}) 
    end 

    local function ThirdWave1() --  with 2s delay 
        doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 4,z=glo.z}) 
        doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y - 4,z=glo.z}) 
        doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 5,z=glo.z}) 
    end 

    local function FourthWave() 
        doSummonCreature("War Golem", {x= glo.x - 4,y=glo.y,z=glo.z}) 
        doSummonCreature("War Golem", {x= glo.x + 4,y=glo.y,z=glo.z}) 
        doSummonCreature("War Golem", {x=glo.x,y=glo.y - 4,z=glo.z}) 
        doSummonCreature("War Golem", {x=glo.x,y=glo.y + 4,z=glo.z}) 
    end 

    local function SevenWave() 
        local monsters1 = getMonstersfromArea(topLeft, buttomRight) 
        for _, monster in pairs(monsters1) do 
            if getCreatureName(monster) == "Azerus" then 
                doRemoveCreature(monster) 
            end 
        end 
        
        doSummonCreature("Azerus3", {x= glo.x - 5,y=glo.y,z=glo.z}) 
        doSummonCreature("War Golem", {x= glo.x - 4,y=glo.y,z=glo.z}) 
        doSummonCreature("War Golem", {x= glo.x + 4,y=glo.y,z=glo.z}) 
        doSummonCreature("War Golem", {x=glo.x,y=glo.y - 4,z=glo.z}) 
        doSummonCreature("War Golem", {x=glo.x,y=glo.y + 4,z=glo.z}) 
    end 

    local function Glllobe()
        local monst = getMonstersfromArea(topLeft, buttomRight) 
        for i = 1, #monst do
            doRemoveCreature(monst)

        end

        local item1 = getTileItemById(glo, 9767)
        doItemSetAttribute(item1.uid, "aid", 58261)
    end

    local function createWall(p)
        local janek = doCreateItem(1387,1,{x=32784, y=31177, z=9})
        doItemSetAttribute(janek, "aid", 9105)
    end

    local function createWalll(i)
        local ela = doCreateItem(1387,1,{x=32783, y=31175, z=10})
        doItemSetAttribute(ela, "aid", 9106)
    end
    
    local wall0 = {x=32784, y=31177, z=9, stackpos=1}
    local getwall0 = getThingfromPos(wall0)
    local wall1 = {x=32783, y=31175, z=10, stackpos=1}
    local getwall1 = getThingfromPos(wall1)
    local monsters = getMonstersfromArea(topLeft, buttomRight) 
    local monsters1 = getMonstersfromArea(topLeft, buttomRight) 
    local tele_chk = getTileItemById(tp, 1387)
    if item.actionid == 58261 then
        doItemSetAttribute(item.uid, "aid", 58263)
    end

    if tele_chk.uid > 0 then 
        doRemoveItem(getTileItemById(tp,1387).uid) 
        doRemoveItem(getwall0.uid,1)
        addEvent(FirstWave, 0) 
        addEvent(FifthWave, 30000)
        addEvent(SecondWave, 60000) 
        addEvent(SixthWave, 90000) 
        addEvent(ThirdWave, 120000) 
        addEvent(ThirdWave1, 150000) 
        addEvent(FourthWave, 180000) 
        addEvent(SevenWave, 210000) 
        addEvent(Glllobe, 400000)  
        p = {wallid = getwall0.itemid}
        addEvent(createWall, 300*1000, p)
        i = {wallid = getwall1.itemid}
        addEvent(createWalll, 300*1000, i)
    end
    
    if item.actionid == 58263 then 
        doCreatureSay(cid, "You have to wait some time before this globe will charge.", TALKTYPE_ORANGE_1)
    end
    return TRUE 
end

 

data/actions/scripts/quests/azerus_quest.lua

function onUse(cid, item, frompos, item2, topos)

--Config-->
local statue_pos = {x = 32783, y = 31166, z = 10}
local portal_quest01_pos = {x = 32783, y = 31175, z = 10, stackpos = 2}
local portal_quest02_pos = {x = 32784, y = 31177, z = 9, stackpos = 2}
local new_portal_pos = {x = 32783, y = 31168, z = 10, stackpos = 1}
local new_pos = {x = 32778, y = 31171, z = 14}
--End Config-->

function Potwory1()
if math.random (1,8) == 4 then
doSummonCreature('Rift Brood', {x = statue_pos.x+1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Brood', {x = statue_pos.x-1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Brood', {x = statue_pos.x, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})
addEvent(Potwory2, 30 * 1000)
else
doSummonCreature('Azerus', {x = statue_pos.x, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Brood', {x = statue_pos.x+1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Brood', {x = statue_pos.x-1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Brood', {x = statue_pos.x, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})
addEvent(Potwory2, 30 * 1000)
end
end

function Potwory2()
doSummonCreature('Rift Brood', {x = statue_pos.x-1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Brood', {x = statue_pos.x, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Worm', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Worm', {x = statue_pos.x+1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})
addEvent(Potwory3, 35 * 1000)
end

function Potwory3()
doSummonCreature('Rift Scythe', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Scythe', {x = statue_pos.x+1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Scythe', {x = statue_pos.x+1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})
doSummonCreature('Rift Scythe', {x = statue_pos.x-1, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})
addEvent(Potwory4, 40 * 1000)
end

function Potwory4()
doSummonCreature('Azerus', {x = statue_pos.x, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})
doSummonCreature('War Golem', {x = statue_pos.x+1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})
doSummonCreature('War Golem', {x = statue_pos.x-1, y = statue_pos.y+1, z = statue_pos.z, stackpos = 253})
doSummonCreature('War Golem', {x = statue_pos.x, y = statue_pos.y-1, z = statue_pos.z, stackpos = 253})
doSummonCreature('War Golem', {x = statue_pos.x-1, y = statue_pos.y, z = statue_pos.z, stackpos = 253})
addEvent(NewPortal, 90 * 1000)
end

function NewPortal()
doCreateTeleport(1387, new_pos, new_portal_pos)
addEvent(RemoveAll, 60 * 1000)
end

function RemoveAll()
doRemoveItem(getThingfromPos(portal_quest01_pos).uid,1)
doRemoveItem(getThingfromPos(portal_quest02_pos).uid,1)
doRemoveItem(getThingfromPos(new_portal_pos).uid,1)
doCreateItem(getThingfromPos(portal_quest01_pos).uid,1)
doCreateItem(getThingfromPos(portal_quest01_pos).uid,1)
end

if item.uid == 11223 and getThingfromPos(portal_quest01_pos).itemid ~= 9772 then
doCreateItem(9772,1,portal_quest01_pos)
doCreateItem(9772,1,portal_quest02_pos)
addEvent(Potwory1, 0)
else
doPlayerSendTextMessage(cid,22,"Sorry, not possible.")
end
return TRUE
end

 

data/creaturescripts/scripts/azerus.lua

local config = {
    message = "Azerus ran into teleporter! It will disappear in 2 minutes. Enter It!",
    teleportId = 1387,
    bosses = { -- Monster Name, Teleport To Position, Teleport Position
        ["Azerus"] = {{x=32783, y=31170, z=10}, {x=32780, y=31161, z=14}},

            }
}

function onDeath(cid, corpse, killer)
    local position = getCreaturePosition(cid)
    for name, pos in pairs(config.bosses) do
        if name == getCreatureName(cid) then

        doCreateTeleport(config.teleportId, pos[1], pos[2])
        doCreatureSay(cid, config.message, TALKTYPE_ORANGE_1)
        end
    end
    return TRUE
end

 

data/movements/scripts/azerus.lua

function onStepIn(cid, item, position, fromPosition)

--Config-->
local queststatus = getPlayerStorageValue(cid, 50006)
--EndConfig-->
    if item.actionid == 1974 and queststatus == -1 then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "It seems by defeating Azerus you have stoped this army from entering your world! Better leave this ghastly place forever.")
        setPlayerStorageValue(cid, 4765, 1)
    return TRUE
end

if item.actionid == 1973 and queststatus == -1 then
-- Here is the code start:
starting={x = 32784, y = 31174, z = 10, stackpos = 253}
checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos}
ending={x = 32784, y = 31174, z = 10, stackpos = 253}
players=0
totalmonsters=0
monster = {}
repeat
creature= getThingfromPos(checking)
 if creature.itemid > 0 then
 if getPlayerAccess(creature.uid) == 0 then
 players=players+1
 end
  if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then
 totalmonsters=totalmonsters+1
  monster[totalmonsters]=creature.uid
   end
 end
checking.x=checking.x+1
  if checking.x>ending.x then
  checking.x=starting.x
  checking.y=checking.y+1
 end
until checking.y>ending.y
if players==0 then
trash= {x=33193, y=31689, z=15}
current=0
repeat
current=current+1
doTeleportThing(monster[current],trash)
until current>=totalmonsters
end
-- Here is the end of it

doTeleportThing(cid, player_pos_entrada)
doSendMagicEffect(player_pos_entrada, 10)

else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você já terminou a quest!')
end
end

data/movements/scripts/azerusdeath.lua

function onStepIn(cid, item, position, fromPosition) 


local yalahar = {x=32780, y=31168, z=14, stackpos=253} 

        if item.itemid == 9738 then 
        doTeleportThing(cid, yalahar, TRUE) 
        doSendMagicEffect(yalahar,12) 
        end 
     
    return TRUE 
end

 

data/movements/scripts/azerusarmy.lua

function onStepIn(cid, item, position, fromPosition) 

        if item.actionid == 58262 then 
            if getPlayerStorageValue(cid,    10510) == -1  then         
            doCreatureSay(cid, "It seems by defating Azerus you have stopped this army from entering your world! Better leave this gastly place forever.", TALKTYPE_ORANGE_1) 
            setPlayerStorageValue(cid, 10510, 1) 
        end 
    return TRUE 
end  
end

 

data/movements/scripts/yalaharr.lua

function onStepIn(cid, item, pos)

local thais = {x=32784, y=31178, z=9}
local kurwa = {x=32783, y=31173, z=10}
local kuzwa = {x=32778, y=31171, z=14}

    if item.actionid == 9105 then
        doTeleportThing(cid,kurwa)
        doSendMagicEffect(getCreaturePosition(cid),17)
        else
    if item.actionid == 9106 then
        doTeleportThing(cid,thais)
        doSendMagicEffect(getCreaturePosition(cid),17)
        else
    if item.actionid == 24061 then
        doTeleportThing(cid,kuzwa)
        doSendMagicEffect(getCreaturePosition(cid),48)
        end
    return
end 
end
 

 

 

São esses os scripts que encontrei que são vinculados ao teleport. Podem me ajudar galera?

Editado por Billihard (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 2 years later...
Citar

A Yalahar Quest do meu server só está dando para fazer 1 vez ao dia ou até o server é reiniciado

Amigo,deu uma olhada no seu globalevent.lua? Certamente o script deve está sendo carregado la ou algum script do globalevent.lua pode está influenciando...

Cola ai o globalevent.lua

Contribuições:
 

=> Distribuições/Servidores

  1. [8.60] The Forgotten Server 1.3 (COMPILADO WIN x64)

 

=> Scripts/Códigos/Tutoriais

  1. Pokemon pescado aparece em volta do seu pokemon
  2. [Gesior]Dobrar pontos PagSeguro a partir de x valor doado

 

 Gostou de alguma contribuição? Rep +?

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 Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo