Ir para conteúdo
  • 0

{PEDIDO} QUEST ANIHI COM TEMPO


Magraozinho

Pergunta

Eae galera blz?, estou fazendo um projeto de uma quest anihi só que com tempo para ficar la e tempo para entrar. após o tempo esgotar, outras pessoas podem entrar e as que estão dentro são teleportadas para fora..  só q n sei se minha script esta com erro, ou eu não soube arrumar a action para entrar la.. de todo modo essa é minha script \/ , por favor, me orientem!!   versão 8.6  TFS 0.4

 

 

anihi.lua

anihi.lua

Editado por Magraozinho
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0
Em 21/05/2016 at 15:48, Poccnn disse:

Não é questão do mapa e sim do proprio distro ou script que esteja interferindo nele.

 

Na alavanca, você botou uniqueid ou actionid nela?

Se tenha colocado ambos, verifica no arquivo actions.xml se a uid ou aid está sendo usada SOMENTE por esse script ou seja, não pode ter outra tag usando outro script.

Cara, testei umas coisas aki, e consegui fazer funcionar , mto obrigado por tudo, por ter paciencia e tudo mais.. se eu pudesse te dava 10 mil +REP...

Link para o comentário
Compartilhar em outros sites

  • 0
11 horas atrás, Magraozinho disse:

Cara, testei umas coisas aki, e consegui fazer funcionar , mto obrigado por tudo, por ter paciencia e tudo mais.. se eu pudesse te dava 10 mil +REP...

 

Você poderia descrever qual era o empecilho para que outros possam também saber a causa do problema?

Link para o comentário
Compartilhar em outros sites

  • 0

Salve galera, eu consegui com esse script fazer funcionar tudo certo. Unico porém é que a alavanca não volta a alavanca pra 1946 (não permitindo a entrada de novo).

 

--[[> Annihilator script by Marcryzius D'evil <]]-- 

local pos_demons,pos_players,tele_players,exit_players = { 
-- posições onde serão sumonados os monstros na annihilator 
   {x=76, y=49, z=7,stackpos=253}, 
   {x=77, y=49, z=7,stackpos=253}, 
   {x=76, y=52, z=7,stackpos=253}, 
   {x=77, y=52, z=7,stackpos=253}, 
   {x=80, y=50, z=7,stackpos=253}, 
   {x=80, y=51, z=7,stackpos=253} 
},{ 
 --posições onde estão os players antes de irem a sala da annihi 
   {x=84,y=55,z=7,stackpos=253}, 
   {x=83,y=55,z=7,stackpos=253}, 
   {x=82,y=55,z=7,stackpos=253}, 
   {x=81,y=55,z=7,stackpos=253}, 
   {x=80,y=55,z=7,stackpos=253}, 
},{ 
--posições onde serão teleportados os players para a sala da annihi 
   {x=76,y=50,z=7,stackpos=253}, 
   {x=76,y=51,z=7,stackpos=253}, 
   {x=77,y=50,z=7,stackpos=253}, 
   {x=77,y=51,z=7,stackpos=253}, 
   {x=78,y=51,z=7,stackpos=253}, 
},{x=82,y=57,z=7} -- posição de saida

local level,time_annihi = 10,20 

QUANT = time_annihi -- não mecha 

RELOAD_ANNIHI = 0 -- não mecha 

 

--== FUNÇÕES NECESSARIAS ==-- 

 

local function getCreaturesInRange(position, radiusx, radiusy, showMonsters, showPlayers) --Marcryzius 

    local creaturesList = {} 

    for x = -radiusx, radiusx do 

        for y = -radiusy, radiusy do 

        local creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z, stackpos = STACKPOS_TOP_CREATURE}) 

            if (creature.type == 1 and showPlayers == true) or (creature.type == 2 and showMonsters == true) then 

                table.insert(creaturesList, creature.uid) 

            end 

        end 

    end 

    return creaturesList 

end 

 

local function repeatTxtInPos(alavanca_pos,cor) 

local pos = tele_players[3] 

   if(QUANT > 0)then 

      QUANT = QUANT-1 

      doSendAnimatedText(alavanca_pos,QUANT,cor) 

      doSendAnimatedText({x=pos.x-4,y=pos.y-3,z=pos.z},QUANT,cor) 

      doSendAnimatedText({x=pos.x-4,y=pos.y+3,z=pos.z},QUANT,cor) 

      doSendAnimatedText({x=pos.x+4,y=pos.y+3,z=pos.z},QUANT,cor) 

      doSendAnimatedText({x=pos.x+4,y=pos.y-3,z=pos.z},QUANT,cor) 

      addEvent(repeatTxtInPos,1000,alavanca_pos,cor) 

   else 

      QUANT = time_annihi 

      stopEvent(RELOAD_ANNIHI) 

      RELOAD_ANNIHI = 0 

   end 

end 

 

local function reloadAnnihi() 

local players = getCreaturesInRange(tele_players[3], 6, 6, true, true) 

   for _,cid in pairs(players) do 

      if(isPlayer(cid) == true)then 

         doTeleportThing(cid,exit_players, false) 

         doPlayerSendCancel(cid,"Voce não conseguiu completar a annihi e por isso foi retirado dela... NOOB!") 

      elseif(isMonster(cid))then 

         doRemoveCreature(cid) 

      end 

   end 

end 

 

--== FUNÇÕES NECESSARIAS ==-- 

 

function onUse(cid, item, fPos, itemEx, toPosition) 

   if(item.itemid == 1946)then 

      for _,pos in pairs(pos_players) do 

         local player = getThingFromPos(pos) 

         if not(isPlayer(player.uid))then 

            return true,doPlayerSendCancel(cid,"voce precisa de "..#pos_players.." pessoas para poder entrar na sala.") 

         elseif(getPlayerLevel(player.uid) < level)then 

            return true,doPlayerSendCancel(cid,"Todos necessitam ter level "..level.." ou mais.") 

         end 

      end 

      local getMonsterInAnnihi = getCreaturesInRange(tele_players[3], 5, 5, true) 

      for k,pos  in pairs(pos_demons) do 

         if(k <= #pos_players)then 

         local player = getThingFromPos(pos_players[k]) 

            if(player.uid ~= nil)then 

               doTeleportThing(player.uid,tele_players[k], false) 

            end 

         end 

         if(#getMonsterInAnnihi > 0)then 

               reloadAnnihi()

         end

            doSummonCreature("Rat", pos) -- Nome do monstro 

      end 

      if(QUANT == time_annihi)then 

         repeatTxtInPos(fPos,time_annihi,0) 

         RELOAD_ANNIHI = addEvent(reloadAnnihi,time_annihi*1000) 

      end 

   elseif(item.itemid == 1945)then 

      if(#getCreaturesInRange(tele_players[3], 6, 6, false, true) > 0)then 

         return true,doPlayerSendCancel(cid,"Espere o time acabar de fazer a annihilator quest.") 

      end 

   end 

end 

--[[> Annihilator script by Marcryzius D'evil <]]-- 

local pos_demons,pos_players,tele_players,exit_players = { 
-- posições onde serão sumonados os monstros na annihilator 
   {x=76, y=49, z=7,stackpos=253}, 
   {x=77, y=49, z=7,stackpos=253}, 
   {x=76, y=52, z=7,stackpos=253}, 
   {x=77, y=52, z=7,stackpos=253}, 
   {x=80, y=50, z=7,stackpos=253}, 
   {x=80, y=51, z=7,stackpos=253} 
},{ 
 --posições onde estão os players antes de irem a sala da annihi 
   {x=84,y=55,z=7,stackpos=253}, 
   {x=83,y=55,z=7,stackpos=253}, 
   {x=82,y=55,z=7,stackpos=253}, 
   {x=81,y=55,z=7,stackpos=253}, 
   {x=80,y=55,z=7,stackpos=253}, 
},{ 
--posições onde serão teleportados os players para a sala da annihi 
   {x=76,y=50,z=7,stackpos=253}, 
   {x=76,y=51,z=7,stackpos=253}, 
   {x=77,y=50,z=7,stackpos=253}, 
   {x=77,y=51,z=7,stackpos=253}, 
   {x=78,y=51,z=7,stackpos=253}, 
},{x=82,y=57,z=7} -- posição de saida

local level,time_annihi = 10,20 

QUANT = time_annihi -- não mecha 

RELOAD_ANNIHI = 0 -- não mecha 

 

--== FUNÇÕES NECESSARIAS ==-- 

 

local function getCreaturesInRange(position, radiusx, radiusy, showMonsters, showPlayers) --Marcryzius 

    local creaturesList = {} 

    for x = -radiusx, radiusx do 

        for y = -radiusy, radiusy do 

        local creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z, stackpos = STACKPOS_TOP_CREATURE}) 

            if (creature.type == 1 and showPlayers == true) or (creature.type == 2 and showMonsters == true) then 

                table.insert(creaturesList, creature.uid) 

            end 

        end 

    end 

    return creaturesList 

end 

 

local function repeatTxtInPos(alavanca_pos,cor) 

local pos = tele_players[3] 

   if(QUANT > 0)then 

      QUANT = QUANT-1 

      doSendAnimatedText(alavanca_pos,QUANT,cor) 

      doSendAnimatedText({x=pos.x-4,y=pos.y-3,z=pos.z},QUANT,cor) 

      doSendAnimatedText({x=pos.x-4,y=pos.y+3,z=pos.z},QUANT,cor) 

      doSendAnimatedText({x=pos.x+4,y=pos.y+3,z=pos.z},QUANT,cor) 

      doSendAnimatedText({x=pos.x+4,y=pos.y-3,z=pos.z},QUANT,cor) 

      addEvent(repeatTxtInPos,1000,alavanca_pos,cor) 

   else 

      QUANT = time_annihi 

      stopEvent(RELOAD_ANNIHI) 

      RELOAD_ANNIHI = 0 

   end 

end 

 

local function reloadAnnihi() 

local players = getCreaturesInRange(tele_players[3], 6, 6, true, true) 

   for _,cid in pairs(players) do 

      if(isPlayer(cid) == true)then 

         doTeleportThing(cid,exit_players, false) 

         doPlayerSendCancel(cid,"Voce não conseguiu completar a annihi e por isso foi retirado dela... NOOB!") 

      elseif(isMonster(cid))then 

         doRemoveCreature(cid) 

      end 

   end 

end 

 

--== FUNÇÕES NECESSARIAS ==-- 

 

function onUse(cid, item, fPos, itemEx, toPosition) 

   if(item.itemid == 1946)then 

      for _,pos in pairs(pos_players) do 

         local player = getThingFromPos(pos) 

         if not(isPlayer(player.uid))then 

            return true,doPlayerSendCancel(cid,"voce precisa de "..#pos_players.." pessoas para poder entrar na sala.") 

         elseif(getPlayerLevel(player.uid) < level)then 

            return true,doPlayerSendCancel(cid,"Todos necessitam ter level "..level.." ou mais.") 

         end 

      end 

      local getMonsterInAnnihi = getCreaturesInRange(tele_players[3], 5, 5, true) 

      for k,pos  in pairs(pos_demons) do 

         if(k <= #pos_players)then 

         local player = getThingFromPos(pos_players[k]) 

            if(player.uid ~= nil)then 

               doTeleportThing(player.uid,tele_players[k], false) 

            end 

         end 

         if(#getMonsterInAnnihi > 0)then 

               reloadAnnihi()

         end

            doSummonCreature("Rat", pos) -- Nome do monstro 

      end 

      if(QUANT == time_annihi)then 

         repeatTxtInPos(fPos,time_annihi,0) 

         RELOAD_ANNIHI = addEvent(reloadAnnihi,time_annihi*1000) 

      end 

   elseif(item.itemid == 1945)then 

      if(#getCreaturesInRange(tele_players[3], 6, 6, false, true) > 0)then 

         return true,doPlayerSendCancel(cid,"Espere o time acabar de fazer a annihilator quest.") 

      end 

   end 

end 

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...