Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Oi!

 

Eu estou utilizando um servidor baixado que aos poucos eu estou modificando e utilizando em um grupo fechado de amigos de forma privada, for-fun. E é bem incômodo não ter um minimapa completo e ter que aos poucos ficar explorando tudo. Eu, como quem tem o servidor baixado, cheguei a abrir o mapa no RME e exportei todas as imagens do mapa de todos os 15 pisos com a intenção de utilizar como minimapa (indo em export, selecionando todos os andares do minimap e salvando as imagens numa pasta), mas... Não faço a mínima idéia de como faço isso ;-;  

 

A base é um Narutibia de versão 8.60. Tem como eu completar inteiramente o minimapa de alguma forma ? Pelo que vi, esses programas mostrados na internet (automap, etc) só completam os mapas do Tibia original, ou algo assim... ;-;

 

Obrigado!

 

Editado por allmarshall (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Peguei em um outro forum, é para TFS 1.2+

veja se alguem consegue fazer para 0.4 pra você.

creditos Gesior

 

Spoiler

data/talkactions/talkactions.xml

XML:

    <talkaction words="/minimap" separator=" " script="minimap_scan.lua" />

data/talkactions/scripts/minimap_scan.lua

 

Lua:

local distanceBetweenPositionsX = 8
local distanceBetweenPositionsY = 8
local addEventDelay = 100
local teleportsPerEvent = 3
local maxEventExecutionTime = 1000

local function teleportToClosestPosition(player, x, y, z)
   -- direct to position
   local tile = Tile(x, y, z)

   if not tile or not tile:getGround() or tile:hasFlag(TILESTATE_TELEPORT) or not player:teleportTo(tile:getPosition()) then
      for distance = 1, 3 do
         -- try to find some close tile
         for changeX = -distance, distance, distance do
            for changeY = -distance, distance, distance do
               tile = Tile(x + changeX, y + changeY, z)
               if tile and tile:getGround() and not tile:hasFlag(TILESTATE_TELEPORT) and player:teleportTo(tile:getPosition()) then
                  return true
               end
            end
         end
      end

      return false
   end

   return true
end

local function sendScanProgress(player, minX, maxX, minY, maxY, x, y, z, lastProgress)
   local progress = math.floor(((y - minY + (((x - minX) / (maxX - minX)) * distanceBetweenPositionsY)) / (maxY - minY)) * 100)
   if progress ~= lastProgress then
      player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Scan progress: ~' .. progress .. '%')
   end

   return progress
end

local function minimapScan(cid, minX, maxX, minY, maxY, x, y, z, lastProgress)
   local player = Player(cid)

   if not player then
      --print('Minimap scan stopped - player logged out', cid, minX, maxX, minY, maxY, x, y, z)
      return
   end

   local scanStartTime = os.mtime()
   local teleportsDone = 0
   while true do
      if scanStartTime + maxEventExecutionTime < os.mtime() then
         lastProgress = sendScanProgress(player, minX, maxX, minY, maxY, x, y, z, lastProgress)
         addEvent(minimapScan, addEventDelay, cid, minX, maxX, minY, maxY, x, y, z, lastProgress)
         break
      end

      x = x + distanceBetweenPositionsX
      if x > maxX then
         x = minX
         y = y + distanceBetweenPositionsY
         if y > maxY then
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Scan finished: ' .. os.time())
            --print('Minimap scan complete', player:getName(), minX, maxX, minY, maxY, x, y, z)
            break
         end
      end

      if teleportToClosestPosition(player, x, y, z) then
         teleportsDone = teleportsDone + 1
         lastProgress = sendScanProgress(player, minX, maxX, minY, maxY, x, y, z, lastProgress)

         --print('Minimap scan teleport', player:getName(), minX, maxX, minY, maxY, x, y, z, progress, teleportsDone)
         if teleportsDone == teleportsPerEvent then
            addEvent(minimapScan, addEventDelay, cid, minX, maxX, minY, maxY, x, y, z, progress)
            break
         end
      end
   end
end

local function minimapStart(player, minX, maxX, minY, maxY, x, y, z)
   player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Scan started: ' .. os.time())
   --print('Minimap scan start', player:getName(), minX, maxX, minY, maxY, x, y, z)
   minimapScan(player:getId(), minX, maxX, minY, maxY, minX - 5, minY, z)
end

function onSay(player, words, param)
   if player:getGroup():getId() <= 4 then
      player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Only GOD can scan map. Too low Player group.')
      return false
   end

   if player:getAccountType() < ACCOUNT_TYPE_GAMEMASTER then
      player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Only GOD can scan map.Too low Account type.')
      return false
   end

   local positions = param:split(',')
   if #positions ~= 5 then
      player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Command requires 5 parameters: /minimap minX, maxX, minY, maxY, z')
      return false
   end

   for key, position in pairs(positions) do
      local value = tonumber(position)

      if not value then
         player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, 'Invalid parameter ' .. key .. ': ' .. position)
         return false
      end

      positions[key] = value
   end

   minimapStart(player, positions[1], positions[2], positions[3], positions[4], positions[1] - distanceBetweenPositionsX, positions[3], positions[5])
   return false
end
Example use:

 

/minimap minX, maxX, minY, maxY, z
/minimap 0, 40000, 0, 40000, 7

 

       112674.gif

 

 

 

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 RAJADAO
      .Qual servidor ou website você utiliza como base? 
      Sabrehaven 8.0
      Qual o motivo deste tópico? 
      Erro ao abrir RME
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 

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

    • Por doda4ever
      https://github.com/opentibiabr/otservbr-global/releases/download/v1.5.0/otservbr.otbm
       
      Este projeto do github é frequentemente atualizado com as áreas mais atualizados do tibia global.
      Porém não consigo acessá-las em meu mapa editor, ele simplesmente não é compatível.
       
      1ª Foto abaixo do meu mapa acessando com meu mapa editor.
      2ª Foto como fica o mapa global aberto
       
      Ja tentei usar o este conversor de server id para client id: https://www.dropbox.com/s/25gxttf3c78n6mn/convert-map-to-client-id.zip?dl=1
      Porém não funciona, continua bugando...
       
      Alguém sabe me dizer o que está acontecendo e como resolver?
      Obrigado.


    • Por Magato
      Salve galera,  blz?
       
      Baixei o baiak 12x na sessão de downloads 12x.
       
      O distro carrega e, quando chega na parte de carregar o mapa, ele fecha automaticamente sozinho. Pensando nisso, baixei o map editor e tentei abrir o mapa. O problema é que a tela do mapa é toda distorcida e totalmente animada (meus drivers de vídeo são atualizados, então não pode ser isso)
       
      Segue a print abaixo.
      Por favor, peço que me ajude.
       

      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • Por kaleh
      .Qual servidor ou website você utiliza como base? 
      1.2
      Qual o motivo deste tópico? 
      criação de caves vip e 2 cidades
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
      SE TIVE ME CHAMA NO PV +551698117887
      +5516982117887 <-----
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo