RMRK is retiring.
Server is paid up for the rest of 2026, but the forum may go after that. See here for more information. Please archive or save anything you would like to keep before 2027.
Main Menu
  • Welcome to The RPG Maker Resource Kit.

Overworld Sprite Question

Started by XaineC, March 04, 2012, 07:44:55 PM

0 Members and 1 Guest are viewing this topic.

XaineC

# change this to any number less than one to change the size of the world map
# sprites
ZOOM = 0.5
WORLD_IND = 'World Map'

class Game_Map
  attr_reader :name
  attr_reader :isworldmap
 
  alias ccoa_setup setup
  #--------------------------------------------------------------------------
  # * Setup
  #     map_id : map ID
  #--------------------------------------------------------------------------
  def setup(map_id)
    ccoa_setup(map_id)
    @name = load_data("Data/MapInfos.rxdata")[@map_id].name
    if @name.include?(WORLD_IND)
      @isworldmap = true
      @name.sub!(WORLD_IND, '')
    else
      @isworldmap = false
    end
  end
end

class Sprite_Character < RPG::Sprite
  alias ccoa_update update
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    ccoa_update
    if @character.is_a?(Game_Player) and $game_map.isworldmap
      self.zoom_x = ZOOM
      self.zoom_y = ZOOM
    else
      self.zoom_x = 1.0
      self.zoom_y = 1.0
    end
  end
end

With the above script, is there a minor rewrite that can be done to make it so that if game_switch [X,Y,Z] = true then the zoom is 1.0?

modern algebra

I don't know what game_switch [X, Y, Z] is, but assuming that what you mean is that you want the zoom to be normal if in-game switches X, Y, and Z are all ON, then you could do that by changing the following line:


    if @character.is_a?(Game_Player) and $game_map.isworldmap


to:


    if @character.is_a?(Game_Player) && $game_map.isworldmap &&
      $game_switches[X] && $game_switches[Y] && $game_switches[Z]


where X, Y, and Z are the IDs of the switches. If that isn't what you meant, you will need to clarify.

XaineC

That's close to it, but I want the zoom to be normal if any one of the switches are on.

LoganF

If that is close enough, then it's a case of adding or into the switches:


    if @character.is_a?(Game_Player) && $game_map.isworldmap &&
      ($game_switches[X] || $game_switches[Y] || $game_switches[Z])


That'll succeed whenever one of those switches is on.
(Why do I always feel like it's the end of the world and I'm the last man standing?)