Fog Of War Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Fog Of War

+3
Nietore
Valentine
LeonM²
7 participantes

Página 1 de 2 1, 2  Seguinte

Ir para baixo

Fog Of War Empty Fog Of War

Mensagem por LeonM² Ter Out 25, 2011 10:05 am

Informações/Intruções
Script feito por Jet, faz o efeito de "mapas inexplorados" como famosos jogos de estratégia. Esse efeito pode ser ativado e desativado através de uma switch que poderá ser configurada na linha : 51

FOG_OFF_SWITCH = 99
onde estiver 99 você coloca o número da switch que vai fazer o efeito ser ligado/desligado

O limite de visão pode ser facilmente alterado também na linha 47
PLAYER_DEFAULT_RANGE = 4
Imagens
Spoiler:
Spoiler:
Script
Código:
 #===============================================================================
# Fog Of War
# By Jet10985 (Jet)
#===============================================================================
# This script will created a Fog Of War effect, which marks parts of the map
# as "visible", "explored", and "unexplored". Details further down.
# This script has: 4 customization options.
#===============================================================================
# Overwritten Methods:
# None
#-------------------------------------------------------------------------------
# Aliased methods:
# Spriteset_Map: update, initialize, dispose
# Game_Temp: initialize
# Game_System: initialize
# Game_Character: transparent
#===============================================================================
=begin
Fog Of War Explanation:

With the Fog Of War, there are 3 parts of a map, "visible", "explored" and
"unexplored".
Visible parts you can see everything as one normally would.
Explored you see the generall area, like tiles and maybe events.
Unexplored is pure lack space, which nothing can be seen.

Areas are marked as "explored" as soon as it becomes "visible" by the player.
--------------------------------------------------------------------------------
Depending on the value of EVENT_TRANSPARENCY in the configuration below, this
comment will have a specific event do the opposite:

IGNORE FOW

So, if EVENT_TRANSPARENCY is true, then the event WILL NOT become invisible,
but if EVENT_TRANSPARENCY is false, then it WILL become invisible.
--------------------------------------------------------------------------------
To change the player's range of site, use this in an event "Script..." command:

change_fow_range(new_fow_range)

replace new_fow_range with a number, like 4.
=end

module JetFOW
 
  # This is how far the player's Fog Of War visible range is by default.
  PLAYER_DEFAULT_RANGE = 4
 
  # This is the switch id of the switch which when turned off, will turn off
  # the Fog Of War effect.
  FOG_OFF_SWITCH = 99
 
  # Should events outside the player's "visible" range become invisible?
  EVENT_TRANSPARENCY = true
 
  # Do you want to pre-cache map's fogs while the player is playing?
  PRE_CACHE_MAPS = true
 
end

#===============================================================================
# DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO.
#===============================================================================
class Game_Temp
 
  attr_accessor :map_fog_sprites
 
  alias jet6754_initialize initialize unless $@
  def initialize(*args, &block)
    @map_fog_sprites = {}
    jet6754_initialize(*args, &block)
  end
end

class Game_System
 
  attr_accessor :exposed_tiles, :player_fow_range
 
  alias jet2834_initialize initialize unless $@
  def initialize(*args, &block)
    @exposed_tiles = {}
    @player_fow_range = JetFOW::PLAYER_DEFAULT_RANGE
    jet2834_initialize(*args, &block)
  end
end

class Game_Interpreter
 
  def change_fow_range(t)
    $game_system.player_fow_range = t
  end
end

class Spriteset_Map
 
  alias jet1245_initialize initialize unless $@
  def initialize(*args, &block)
    create_fog_of_war
    Thread.new {
      @pre_cached ||= false
      precache_fogs_of_war if JetFOW::PRE_CACHE_MAPS && !@pre_cached
    }
    jet1245_initialize(*args, &block)
  end
 
  alias jet8677_update update unless $@
  def update(*args, &block)
    update_fog_of_war
    jet8677_update(*args, &block)
  end
 
  alias jet8677_dispose dispose unless $@
  def dispose(*args, &block)
    dispose_fog_of_war
    jet8677_dispose(*args, &block)
  end
 
  def precache_fogs_of_war
    @pre_cached = true
    f = load_data("Data/MapInfos.rvdata")
    (f.keys - $game_temp.map_fog_sprites.keys).each {|a|
      $game_temp.map_fog_sprites[a] = {}
      map = load_data(sprintf("Data/Map%03d.rvdata", a))
      width, height = map.width, map.height
      viewport = Viewport.new(0, 0, width * 32, height * 32)
      width.times {|i|
        height.times {|i2|
          bit = Bitmap.new(32, 32)
          bit.fill_rect(bit.rect, Color.new(0, 0, 0))
          sprite = Sprite.new(viewport)
          sprite.bitmap = bit
          viewport.z = 9999
          sprite.visible = false
          $game_temp.map_fog_sprites[a][[i, i2]] = sprite
        }
      }
    }
    GC.start
  end
 
  def create_fog_of_war(*args, &block)
    if $game_temp.map_fog_sprites[$game_map.map_id].nil?
      @making_fow = true
      $game_temp.map_fog_sprites[$game_map.map_id] = {}
      width, height = $game_map.width, $game_map.height
      viewport = Viewport.new(0, 0, width * 32, height * 32)
      width.times {|i|
        height.times {|i2|
          bit = Bitmap.new(32, 32)
          bit.fill_rect(bit.rect, Color.new(0, 0, 0))
          sprite = Sprite.new(viewport)
          sprite.bitmap = bit
          viewport.z = 9999
          $game_temp.map_fog_sprites[$game_map.map_id][[i, i2]] = sprite
        }
      }
      @making_fow = false
    end
    if $game_system.exposed_tiles[$game_map.map_id].nil?
      $game_system.exposed_tiles[$game_map.map_id] = []
    end
    $game_system.exposed_tiles[$game_map.map_id].each {|a|
      $game_temp.map_fog_sprites[$game_map.map_id][a].opacity = 128
    }
  end
 
  def update_fog_of_war(*args, &block)
    @did_first_move ||= false
    @did_fow_first ||= false
    @fow_invis ||= false
    if $game_switches[JetFOW::FOG_OFF_SWITCH] && !@fow_invis
      $game_temp.map_fog_sprites[$game_map.map_id].each {|a, b|
        b.visible = false unless !b.visible
        @fow_invis = true
      }
      return
    else
      @fow_invis = false
    end
    if (!$game_player.stopping? && !@did_first_move) || !@did_fow_first
      @did_first_move = true
      @did_fow_first = true unless @did_fow_first || @making_fow
      $game_temp.map_fog_sprites[$game_map.map_id].each {|a, b|
        b.visible = true unless b.visible
        b.x = a[0] * 32 - ($game_map.display_x + 255) / 256 * 32
        b.y = a[1] * 32 - ($game_map.display_y + 255) / 256 * 32
        x = ($game_player.x - a[0]).abs
        y = ($game_player.y - a[1]).abs
        dist = x + y
        if dist <= $game_system.player_fow_range
          b.opacity = 0 unless b.opacity == 0
          if !$game_system.exposed_tiles[$game_map.map_id].include?(a)
            $game_system.exposed_tiles[$game_map.map_id].push(a)
          end
        elsif $game_system.exposed_tiles[$game_map.map_id].include?(a)
          b.opacity = 128 unless b.opacity == 128
        else
          b.opacity = 255 unless b.opacity == 255
        end
      }
    end
    if $game_player.stopping? && @did_first_move
      @did_first_move = false
    end
  end
 
  def dispose_fog_of_war(*args, &block)
    $game_temp.map_fog_sprites[$game_map.map_id].each {|a, b|
      b.visible = false unless !b.visible
    }
  end
end

class Game_Character
 
  alias jet4567_transparent transparent unless $@
  def transparent(*args, &block)
    if !$game_switches[JetFOW::FOG_OFF_SWITCH] && !within_range_fow?
      if JetFOW::EVENT_TRANSPARENCY
        return true unless self.is_a?(Game_Event) && ignore_fow_comment?
      end
    end
    return jet4567_transparent(*args, &block)
  end
 
  def within_range_fow?(*args, &block)
    a, b = $game_player, self
    return true if b == a
    if ((b.x - a.x).abs + (b.y - a.y).abs) <= $game_system.player_fow_range
      return true
    end
    return false
  end
end

class Game_Event
 
  def ignore_fow_comment?(*args, &block)
    return false if @list.nil? or @list.size <= 0
    for item in @list
      if item.code == 108 or item.code == 408
        if item.parameters[0].match(/IGNORE[ ]*FOW/i)
          return true
        end
      end
    end
    return false
  end
end
Créditos
Warjet - Criador do script
Patho - Disponibilizar na MRM
Leon Mega Maker - Por Postar Aki
LeonM²
LeonM²
Lenda
Lenda

Mensagens : 1802
Créditos : 153

Ir para o topo Ir para baixo

Fog Of War Empty Re: Fog Of War

Mensagem por Valentine Ter Out 25, 2011 11:11 am

Parece o sistema do tibia quando ele tinha um gráfico ruim em relação ao fog ;x
Valentine
Valentine
Administrador
Administrador

Medalhas : Fog Of War ZgLkiRU
Mensagens : 5345
Créditos : 1164

https://www.aldeiarpg.com/

Ir para o topo Ir para baixo

Fog Of War Empty Re: Fog Of War

Mensagem por LeonM² Ter Out 25, 2011 11:20 am

Marlos Gama escreveu:Parece o sistema do tibia quando ele tinha um gráfico ruim em relação ao fog ;x
parece mais com AoE mas bem ruim msm
LeonM²
LeonM²
Lenda
Lenda

Mensagens : 1802
Créditos : 153

Ir para o topo Ir para baixo

Fog Of War Empty Re: Fog Of War

Mensagem por Nietore Ter Out 25, 2011 3:46 pm

Tem tudo aver com o Tibia, tipo abrindo o Mine map...

_________________
Fog Of War AIymW

Eu poderia ser a pessoa mais agradavel do mundo! mas optei por ser eu mesmo.
Nietore
Nietore
Lenda
Lenda

Medalhas : Fog Of War ZgLkiRU
Mensagens : 851
Créditos : 163

Ir para o topo Ir para baixo

Fog Of War Empty Re: Fog Of War

Mensagem por Juton Ter Out 25, 2011 4:40 pm

Eu tava pensando nesse sistema, enquanto jogava runescape! e quando venho aqui ..."
Juton
Juton
Experiente
Experiente

Mensagens : 486
Créditos : 129

Ir para o topo Ir para baixo

Fog Of War Empty Re: Fog Of War

Mensagem por LeonM² Ter Out 25, 2011 8:14 pm

ninguem gostou ñ?
LeonM²
LeonM²
Lenda
Lenda

Mensagens : 1802
Créditos : 153

Ir para o topo Ir para baixo

Fog Of War Empty Re: Fog Of War

Mensagem por TecoKun Qua Out 26, 2011 11:45 am

Me lembrou do AGE OF EMPIRES II kk,+1 de credito(Pramim)Pra vc xD

_________________
Fog Of War 9vqffD0
Meu fórum de RPG Maker! ainda esta em construção, mas ja tem materias exclusivos! Visite-nos, você vai gostar!
Status do fórum: PARADO (por enquanto)


Alguns dos meus textos sobre Rpg, podem te ajudar Wink
* Contos dos Heróis


Deem uma olhada Successful 
TecoKun
TecoKun
Membro de Honra
Membro de Honra

Mensagens : 1310
Créditos : 69

Ir para o topo Ir para baixo

Fog Of War Empty Re: Fog Of War

Mensagem por FilipeJF Qua Out 26, 2011 1:15 pm

Vo usar no meu jogo de estrátegia, acho que combina.
Muito bom!

Té +!

Edit:
Como eu faço para usar ele apenas no mapa que eu quero?
Não em todos, sabe?

_________________

Fog Of War Atpqp
O Equívoco do Sábio - conto na Amazon
FilipeJF
FilipeJF
Aldeia Friend
Aldeia Friend

Medalhas : Fog Of War Trophy11Fog Of War 94Jxv
Mensagens : 1859
Créditos : 134

Ir para o topo Ir para baixo

Fog Of War Empty Re: Fog Of War

Mensagem por LeonM² Qua Out 26, 2011 7:39 pm

FilipeJF escreveu:Vo usar no meu jogo de estrátegia, acho que combina.
Muito bom!

Té +!

Edit:
Como eu faço para usar ele apenas no mapa que eu quero?
Não em todos, sabe?
é só desativer a switche no mapa que ñ for usar
LeonM²
LeonM²
Lenda
Lenda

Mensagens : 1802
Créditos : 153

Ir para o topo Ir para baixo

Fog Of War Empty Re: Fog Of War

Mensagem por FilipeJF Qua Out 26, 2011 8:09 pm

Leon Mega Maker escreveu:
FilipeJF escreveu:Vo usar no meu jogo de estrátegia, acho que combina.
Muito bom!

Té +!

Edit:
Como eu faço para usar ele apenas no mapa que eu quero?
Não em todos, sabe?
é só desativer a switche no mapa que ñ for usar

Ah, obrigado!
Sou meio novo com eventos e scripts, então não entendo muita coisa.

Obrigado!

_________________

Fog Of War Atpqp
O Equívoco do Sábio - conto na Amazon
FilipeJF
FilipeJF
Aldeia Friend
Aldeia Friend

Medalhas : Fog Of War Trophy11Fog Of War 94Jxv
Mensagens : 1859
Créditos : 134

Ir para o topo Ir para baixo

Fog Of War Empty Re: Fog Of War

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Página 1 de 2 1, 2  Seguinte

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos