Postado Junho 17, 2017 7 anos 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 thendoSummonCreature('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)elsedoSummonCreature('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)endend 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 thendoCreateItem(9772,1,portal_quest01_pos)doCreateItem(9772,1,portal_quest02_pos)addEvent(Potwory1, 0)elsedoPlayerSendTextMessage(cid,22,"Sorry, not possible.")endreturn TRUEend 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 TRUEend 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 TRUEend 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=0totalmonsters=0monster = {}repeatcreature= 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 endchecking.x=checking.x+1 if checking.x>ending.x then checking.x=starting.x checking.y=checking.y+1 enduntil checking.y>ending.yif players==0 thentrash= {x=33193, y=31689, z=15}current=0repeatcurrent=current+1doTeleportThing(monster[current],trash)until current>=totalmonstersend-- Here is the end of it doTeleportThing(cid, player_pos_entrada)doSendMagicEffect(player_pos_entrada, 10) elsedoPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, 'Você já terminou a quest!')endend 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 returnend end São esses os scripts que encontrei que são vinculados ao teleport. Podem me ajudar galera? Editado Junho 17, 2017 7 anos por Billihard (veja o histórico de edições)
Postado Agosto 15, 2019 5 anos 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 [8.60] The Forgotten Server 1.3 (COMPILADO WIN x64) => Scripts/Códigos/Tutoriais Pokemon pescado aparece em volta do seu pokemon [Gesior]Dobrar pontos PagSeguro a partir de x valor doado Gostou de alguma contribuição? Rep +?
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.