Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 
OTX2 / TFS 0.4 

 

Qual o motivo deste tópico? 

 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

Não

 

Você tem o código disponível? Se tiver publique-o aqui: 

 

Spoiler


   local PosicionesDeLosJugadores = {
      { x = 32249, y = 31585, z = 7, stackpos = 253 }, -- ultimo sempre sem virgula
      { x = 32249, y = 31586, z = 7, stackpos = 253 },
      { x = 32249, y = 31587, z = 7, stackpos = 253 },
      { x = 32249, y = 31588, z = 7, stackpos = 253 }
   }
   local DestinoDeLosJugadores = {
      { x = 32250, y = 31600, z = 8 }, -- ultimo sempre sem virgula 
      { x = 32250, y = 31600, z = 8 },
      { x = 32250, y = 31600, z = 8 },
      { x = 32250, y = 31600, z = 8 }

   }


local monsters = {
{nome = "Rat", pos = {x= 32244, y= 31594, z=8}}, -- MONSTRO QUE VAI NASCER SE SÓ 1 PLAYER FOR TELEPORTADO
{nome = "Spider", pos = {x= 32244, y= 31594, z=8}}, -- MONSTRO QUE VAI NASCER SE 2 PLAYERS FOR TELEPORTADO
{nome = "Dwarf", pos = {x= 32244, y= 31594, z=8}}, -- MONSTRO QUE VAI NASCER SE 3 PLAYERS FOR TELEPORTADO
{nome = "Elf", pos = {x= 32244, y= 31594, z=8}}, -- MONSTRO QUE VAI NASCER SE 4 PLAYERS FOR TELEPORTADO
{nome = "Rotworm", pos = {x= 32244, y= 103159450, z=8}}  -- MONSTRO QUE VAI NASCER SE 5 PLAYERS FOR TELEPORTADO
}
   --# Cantidad minima de jugadores que pueden entrar.
   local JugadoresMinimosParaEntrar = 1
   local NivelMinimoRequerido = 1

   --# Esta funcion solo se puede modificar si usara otro tipo de palanca.
   local function onUseLever(item)
      doTransformItem(item.uid, (item.itemid == 1945 and 1946 or 1945))
      return true
   end

   --# Funcion principal, no necesitas editarla solo configurar las variables al comienzo del script!!!
   function onUse(cid, item, fromPosition, target, toPosition)
   local count_players = 0
   local _errorLvl = 0
   local GrupoDeJugadores = {}
   local index = 1
   local _errorInfo = ''
   for _, position in pairs(PosicionesDeLosJugadores) do
      local Jugador = getThingfromPos(position)
      if isPlayer(Jugador.uid) then
         if getPlayerLevel(Jugador.uid) >= NivelMinimoRequerido then
         GrupoDeJugadores[index] = Jugador
         index = index + 1
         else
         _errorLvl = _errorLvl + 1
         end
      end
   end
   if _errorLvl > 0 then
      _errorInfo = ' (The minimum level is ' .. NivelMinimoRequerido .. ' and some players do not meet this requirement.)'
   end
   if ((index * 2) > (#PosicionesDeLosJugadores + #DestinoDeLosJugadores)) then
      if getPlayerAccess(cid) then
      doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'A symmetry error has been detected in the code, check the console for more details.')
      end
      print('ERROR: The variables do not comply with a correct symmetry.')
      --!!! Solution: reparar las tablas de posiciones...
      return false
   end
   if #GrupoDeJugadores == 0 then
      doPlayerSendCancel(cid, 'There is no player in his starting position.' .. _errorInfo)
      return onUseLever(item)
   end
   if #GrupoDeJugadores < JugadoresMinimosParaEntrar then
      doPlayerSendCancel(cid, 'To start, there must be at least ' .. JugadoresMinimosParaEntrar .. ' players.' .. _errorInfo)
      return onUseLever(item)
   end
   for _, Jugador in pairs(GrupoDeJugadores) do
      doSendMagicEffect(getCreaturePosition(Jugador.uid), CONST_ME_POFF)
      doTeleportThing(Jugador.uid, DestinoDeLosJugadores[_])
      count_players = count_players + 1
      doSendMagicEffect(DestinoDeLosJugadores[_], CONST_ME_TELEPORT)
      ---------- sistema de criar bixos por jogadores -----
       if (i == #DestinoDeLosJugadores) and (count_players == 0) then
          return true
         end   
      end
   
      if count_players == 1 then
         doSummonCreature(monsters[1].nome, monsters[1].pos)
      
      elseif count_players == 2 then
         doSummonCreature(monsters[2].nome, monsters[2].pos)
         
      elseif count_players == 3 then
         doSummonCreature(monsters[3].nome, monsters[3].pos)

      elseif count_players == 4 then
         doSummonCreature(monsters[4].nome, monsters[4].pos)

      elseif count_players == 5 then
         doSummonCreature(monsters[5].nome, monsters[5].pos)
         ---------- fim do sistema de criar monstros por jogadores ------
            


      doPlayerSendCancel(cid, 'You are welcome!')
   end
   return onUseLever(item)
   end

---------------------- kick test 2 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Salve ! Gostaria de pedir ajuda  com uma coisa ... eu não estou conseguindo dar um clear na area do boss ... "EXEMPLO"  se eu entro  e não consigo matar o boss ... ao entrar de novo terá 2 boss ... Outro problema é fazer uma checagem ... se existir algum player fazendo a boss room  o outro player que puxar a alavanca consegue descer gostaria de bloquear isso com uma mensagem que esta ocupado ... e o ultimo problema é adicionar um tempo para que o player ou os players que fizerem esta boss room só possam fazer novamente após 12 horas ...  e também adicionar um tempo X para que o player ou os players possam fazer o boss se não conseguirem serão kickados para fora da sala   estou  a dias procurando uma solução e enchendo o saco de muita gente pra fazer isso dar certo ...

 

 

 

 

OTCv8_-_Admin_2021-02-27_18-54-00.gif

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

Postado

?Coloque isso nas funçoes da lib do servidor (Data/lib/compat/compat.lua)?

Spoiler

 


function removeMonsterInArea() -- by Daaniel Gay
local positionsCheck = {}
for i = config.fromPos.x, config.toPos.x do
positionsCheck[#positionsCheck+1] = {x=i, y = config.fromPos.y, z = config.fromPos.z, stackpos = 0}
for j = config.fromPos.y+1, config.toPos.y do
positionsCheck[#positionsCheck+1] = {x=i, y = j, z = config.fromPos.z, stackpos = 0}
end
end
for j=1, #positionsCheck do
for i = 0, 255 do
positionsCheck[j].stackpos = i
local tile = getTileThingByPos(positionsCheck[j])
if isMonster(tile.uid) then
if getCreatureName(tile.uid) == config.boss then
doRemoveCreature(tile.uid)
end
end
end
end
end

 

 

 

 

? Script do item vai ficar assim?

Spoiler

local Room_ini = {0, 0, 0} -- canto superior esquerdo da sala
local Room_fim = {0, 0, 0} -- canto inferior direito da sala
local Teleport_Player = {0, 0, 0} -- aonde o player ira ser teleportado

local Monster_name = "Flame Arcixt Gostoso" -- nome do monstro
local Monster_poss = {x,x,videos} -- posição que o monstro vai nascer

function onUse(cid,item,fromPosition,itemEx,toPosition)
	if #getPlayersInRange(Room_ini, Room_fim) >= 1 then
		doPlayerSendCancel(cid,"Tem alguém nessa sala.")
		return TRUE
	else
		removeMonsterInArea(Room_ini, Room_fim)
		doTeleportThing(cid,Teleport_Player)
		doCreateMonster(NOME,Monster_poss)
		return TRUE
	end
end

 

 

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

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo