Jump to content
New account registrations are disabed. This website is now an archive. Read more here.
miguel1

[XP] The best minimap ever!!

Recommended Posts

Hi guys,

 

I'm giving you guys, the best minimap i've seen so far!

Credits go to Squall, for the script, and me for posting it XD

 

Here take a look:

http://img528.imageshack.us/img528/6282/minimaptown.png (pic1)

http://img21.imageshack.us/img21/3542/minimapcastle.png (pic2)

http://img159.imageshack.us/img159/2655/minimaphouse.png (pic3)

http://img124.imageshack.us/img124/9538/minimappressingalt.png (pic4)

 

This minimap shows the position of your hero, NPCs, enemies, teleports and etc.. just by making comments on your events.

This minimap also has a cool feature, if you press the "Alt" buttom, it will show the entire map, just like in pic4.

 

Instrucions:

Paste the script above "main"

Then you have to download these pictures;

 

http://www.mediafire.com/download.php?ztzwmy0nnw3

 

After you have downloaded the pics, paste them to ( "Graphics / Pictures" ). Don't forget to import them to your game!!

And it's done, the next thing you have to do is put comments on the events, here take a look at how it's done;

Step 1: http://img504.imageshack.us/img504/54/step1p.png

Step 2: http://img257.imageshack.us/img257/3904/step2o.png

Step 3: http://img257.imageshack.us/img257/4801/step3c.png

Step 4: http://img73.imageshack.us/img73/5804/finalstep.png

 

Did you get it? This is all you have to do, this was an example of showing a NPC position on the map, you can also show other things such as enemies and teleports, the only diference is that insted of writting npc on the comment box your type:

Type event for events

Type enemy for enemies

Type teleport for teleports

Type savepoint for savepoints

Type chest for chests

 

Demo: 2Shared: http://www.2shared.com/file/8306143/475fa2bb/Project34.html

Mediafire: http://www.mediafire.com/download.php?gi2ywcajmnr

 

Here's the Script, enjoy:

 

 

#################################################################

##################### Autor Squall ##############################

#################################################################

# For the position of your NPCs, enemies or teleports to appear in

# the map, you have to add comments on the events,

# Enter the command of events and select the command "comment".

# Type event for events

# Type enemy for enemies

# Type teleport for teleports

# Type savepoint for savepoints

# Type chest for chests

#################################################################

 

class Game_Event < Game_Character

#--------------------------------------------------------------------------

# ? name

#--------------------------------------------------------------------------

def name

return @event.name

end

end

 

#==============================================================================

# ¦ Map_Base

#------------------------------------------------------------------------------

# Base class for mini maps

#

# made by squall // squall@loeher.zzn.com

#==============================================================================

 

class Map_Base

MP_VERSION = 5

#--------------------------------------------------------------------------

# ? Initialize

#--------------------------------------------------------------------------

def initialize(corner, use_windowskin)

@tileset_name = $game_map.tileset_name

@bg = Window_Base.new(0, 0, 144, 112)

@bg.z = 9000

if no_display?

@bg.windowskin = nil

else

unless use_windowskin

@bg.dispose

@bg = Window_Base.new(0, 0, 160, 128)

@bg.contents = Bitmap.new(128, 96)

@bg.windowskin = nil

bmp = RPG::Cache.picture("mapback")

@bg.contents.blt(0, 0, bmp, Rect.new(0, 0, 128, 96))

@bg.z = 9015

end

end

@map = Sprite.new

@map.bitmap = Bitmap.new(map_width, map_height)

@map.z = 9005

@event = Sprite.new

@event.bitmap = Bitmap.new(map_width, map_height)

@event.z = 9010

self.back_opacity = 56

self.opacity = 200

case corner

when 1

self.x = 16

self.y = 16

when 2

self.x = 640 - width - 16

self.y = 16

when 3

self.x = 16

self.y = 480 - height - 16

when 4

self.x = 640 - width - 16

self.y = 480 - height - 16

else

self.x = 640 - width - 16

self.y = 480 - height - 16

end

end

#--------------------------------------------------------------------------

# ? display_map?

#--------------------------------------------------------------------------

def no_map_display?

for event in $game_map.events.values

if event.name.include?("[no map]")

return true

end

end

return false

end

#--------------------------------------------------------------------------

# ? display_map?

#--------------------------------------------------------------------------

def no_event_display?

for event in $game_map.events.values

if event.name.include?("[no event]")

return true

end

end

return false

end

#--------------------------------------------------------------------------

# ? display_map?

#--------------------------------------------------------------------------

def no_display?

for event in $game_map.events.values

if event.name.include?("[no map]") and event.name.include?("[no event]")

return true

end

end

return false

end

#--------------------------------------------------------------------------

# ? dispose

#--------------------------------------------------------------------------

def dispose

@bg.dispose

@map.bitmap.dispose

@map.dispose

@event.bitmap.dispose

@event.dispose

end

#--------------------------------------------------------------------------

# ? map

#--------------------------------------------------------------------------

def map

return @map

end

#--------------------------------------------------------------------------

# ? event

#--------------------------------------------------------------------------

def event

return @event

end

#--------------------------------------------------------------------------

# ? width

#--------------------------------------------------------------------------

def width

return 128

end

#--------------------------------------------------------------------------

# ? opacity=

#--------------------------------------------------------------------------

def height

return 96

end

#--------------------------------------------------------------------------

# ? opacity=

#--------------------------------------------------------------------------

def visible=(bool)

@bg.visible = bool

@event.visible = bool

@map.visible = bool

end

#--------------------------------------------------------------------------

# ? opacity

#--------------------------------------------------------------------------

def visible

return @bg.visible

end

#--------------------------------------------------------------------------

# ? opacity=

#--------------------------------------------------------------------------

def opacity=(opacity)

@event.opacity = opacity

@map.opacity = opacity

end

#--------------------------------------------------------------------------

# ? opacity

#--------------------------------------------------------------------------

def opacity

return @event.opacity

end

#--------------------------------------------------------------------------

# ? back_opacity=

#--------------------------------------------------------------------------

def back_opacity=(opacity)

@bg.opacity = opacity

@bg.contents_opacity = opacity if @bg.contents != nil

end

#--------------------------------------------------------------------------

# ? back_opacity

#--------------------------------------------------------------------------

def back_opacity

return @bg.opacity

end

#--------------------------------------------------------------------------

# ? x=

#--------------------------------------------------------------------------

def x=(x)

@bg.x = x - (@bg.width - 128) / 2

@event.x = x + 8

@map.x = x + 8

end

#--------------------------------------------------------------------------

# ? x

#--------------------------------------------------------------------------

def x

return @bg.x

end

#--------------------------------------------------------------------------

# ? y=

#--------------------------------------------------------------------------

def y=(y)

@bg.y = y - (@bg.height - 96) / 2

@event.y = y + 8

@map.y = y + 8

end

#--------------------------------------------------------------------------

# ? y

#--------------------------------------------------------------------------

def y

return @bg.y

end

#--------------------------------------------------------------------------

# ? map_width

#--------------------------------------------------------------------------

def map_width

return $game_map.width * 112/20

end

#--------------------------------------------------------------------------

# ? map_height

#--------------------------------------------------------------------------

def map_height

return $game_map.height * 80/15

end

#--------------------------------------------------------------------------

# ? display_x

#--------------------------------------------------------------------------

def display_x

return $game_map.display_x / 128 * 112/20

end

#--------------------------------------------------------------------------

# ? map_height

#--------------------------------------------------------------------------

def display_y

return $game_map.display_y / 128 * 80/15

end

end

#==============================================================================

# ¦ Map_Mini

#------------------------------------------------------------------------------

# Base class for mini maps

#

# made by squall // squall@loeher.zzn.com

#==============================================================================

 

class Map_Mini < Map_Base

#--------------------------------------------------------------------------

# ? initialize

#--------------------------------------------------------------------------

def initialize(corner, use_windowskin)

super(corner, use_windowskin)

unless no_map_display?

draw_map

end

end

#--------------------------------------------------------------------------

# ? update

#--------------------------------------------------------------------------

def update

map.src_rect.set(display_x, display_y, width - 16, height - 16)

if @tileset_name != $game_map.tileset_name

@tileset_name = $game_map.tileset_name

unless no_map_display?

map.bitmap.clear

draw_map

end

end

end

#--------------------------------------------------------------------------

# ? draw_map

#--------------------------------------------------------------------------

def draw_map

bitmap = Bitmap.new($game_map.width * 32, $game_map.height * 32)

for i in 0...($game_map.width * $game_map.height)

x = i % $game_map.width

y = i / $game_map.width

for level in 0...3

tile_id = $game_map.data[x, y, level]

if tile_id >= 384

tileset_bitmap = RPG::Cache.tile($game_map.tileset_name, tile_id, 0)

src_rect = Rect.new(0, 0, 32, 32)

bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)

end

if tile_id >= 48 and tile_id < 384

id = tile_id / 48 - 1

tileset_bitmap = RPG::Cache.autotile($game_map.autotile_names[id])

src_rect = Rect.new(32, 64, 32, 32)

bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)

end

end

end

d_rect = Rect.new(0, 0, map_width, map_height)

s_rect = Rect.new(0, 0, bitmap.width, bitmap.height)

map.bitmap.stretch_blt(d_rect, bitmap, s_rect)

bitmap.clear

bitmap.dispose

end

end

#==============================================================================

# ¦ Map_Event

#------------------------------------------------------------------------------

# draw the events and hero position

#==============================================================================

 

class Map_Event < Map_Mini

#--------------------------------------------------------------------------

# ? initialize

#--------------------------------------------------------------------------

def initialize(corner = 4, windowskin = true)

super(corner, windowskin)

@dots = []

end

#--------------------------------------------------------------------------

# ? refresh_dots

#--------------------------------------------------------------------------

def refresh_event_dots

for event in $game_map.events.values

bitmap = nil

x = event.x * map_width / $game_map.width

y = event.y * map_height / $game_map.height

next if event.list == nil

for i in 0...event.list.size

if event.list.parameters[0].is_a?(String)

if event.list.parameters[0] == "event"

bitmap = RPG::Cache.picture(event.list.parameters[0])

break

elsif event.list.parameters[0] == "enemy"

bitmap = RPG::Cache.picture(event.list.parameters[0])

break

elsif event.list.parameters[0].include?("teleport")

bitmap = RPG::Cache.picture("teleport")

break

elsif event.list.parameters[0] == "chest"

bitmap = RPG::Cache.picture(event.list.parameters[0])

break

elsif event.list.parameters[0] == "npc"

bitmap = RPG::Cache.picture(event.list.parameters[0])

break

elsif event.list.parameters[0] == "savepoint"

bitmap = RPG::Cache.picture(event.list.parameters[0])

break

elsif event.list.parameters[0] == "yuhul"

bitmap = RPG::Cache.picture(event.list.parameters[0])

break

else

bitmap = nil

end

end

end

@dots.push([x, y, bitmap])

end

end

#--------------------------------------------------------------------------

# ? refresh_dots

#--------------------------------------------------------------------------

def refresh_player_dot

x = $game_player.x * map_width / $game_map.width

y = $game_player.y * map_height / $game_map.height

bitmap = RPG::Cache.picture("hero")

@dots.push([x, y, bitmap])

end

#--------------------------------------------------------------------------

# ? update

#--------------------------------------------------------------------------

def update

super

@dots.clear

event.bitmap.clear

refresh_event_dots unless no_event_display?

refresh_player_dot unless no_display?

for dot in @dots

unless dot[2] == nil

event.bitmap.blt(dot[0], dot[1], dot[2], Rect.new(0, 0, 4, 4))

end

end

event.src_rect.set(display_x, display_y, width - 16, height - 16)

end

end

#==============================================================================

# ¦ Map_Full

#------------------------------------------------------------------------------

# made by squall // squall@loeher.zzn.com

#==============================================================================

 

class Map_Full

#--------------------------------------------------------------------------

# ? Initialize

#--------------------------------------------------------------------------

def initialize

@dots = []

@teleport_sprites = []

if $game_map.width > $game_map.height

@map_width = 640

@map_height = $game_map.height * @map_width / $game_map.width

if @map_height > 480

@map_height = 480

end

else

@map_height = 480

@map_width = $game_map.width * @map_height / $game_map.height

if @map_width > 640

@map_width = 640

end

end

@map = Sprite.new

@event = Sprite.new

@map.bitmap = Bitmap.new(width, height)

@event.bitmap = Bitmap.new(width, height)

@map.x = @event.x = 320 - width / 2

@map.y = @event.y = 240 - height / 2

draw_map unless no_map_display?

draw_event_dots unless no_event_display?

draw_player_dot unless no_display?

if no_display?

@message = Window_Base.new(0, 208, 640, 64)

message = "the map is not available"

@message.contents = Bitmap.new(608, 32)

@message.contents.font.name = $fontface

@message.contents.font.size = 32

@message.contents.font.color.set(255, 255, 255, 100)

@message.contents.draw_text(-1, -1, 608, 32, message, 1)

@message.contents.draw_text(-1, 1, 608, 32, message, 1)

@message.contents.draw_text(1, -1, 608, 32, message, 1)

@message.contents.draw_text(1, 1, 608, 32, message, 1)

@message.contents.font.color.set(255, 255, 255, 50)

@message.contents.draw_text(-2, -2, 608, 32, message, 1)

@message.contents.draw_text(-2, 2, 608, 32, message, 1)

@message.contents.draw_text(2, -2, 608, 32, message, 1)

@message.contents.draw_text(2, 2, 608, 32, message, 1)

@message.contents.font.color.set(255, 255, 255)

@message.contents.draw_text(0, 0, 608, 32, message, 1)

@message.windowskin = nil

end

end

#--------------------------------------------------------------------------

# ? display_map?

#--------------------------------------------------------------------------

def no_map_display?

for event in $game_map.events.values

if event.name.include?("[full]")

return false

end

if event.name.include?("[no map]")

return true

end

end

return false

end

#--------------------------------------------------------------------------

# ? display_map?

#--------------------------------------------------------------------------

def no_event_display?

for event in $game_map.events.values

if event.name.include?("[full]")

return false

end

if event.name.include?("[no event]")

return true

end

end

return false

end

#--------------------------------------------------------------------------

# ? display_map?

#--------------------------------------------------------------------------

def no_display?

for event in $game_map.events.values

if event.name.include?("[full]")

return false

end

if event.name.include?("[no map]") and event.name.include?("[no event]")

return true

end

end

return false

end

#--------------------------------------------------------------------------

# ? dispose

#--------------------------------------------------------------------------

def dispose

for sprite in @teleport_sprites

sprite.dispose

end

@message.dispose if no_display?

@map.bitmap.dispose

@map.dispose

@event.bitmap.dispose

@event.dispose

end

#--------------------------------------------------------------------------

# ? width

#--------------------------------------------------------------------------

def width

return @map_width

end

#--------------------------------------------------------------------------

# ? opacity=

#--------------------------------------------------------------------------

def height

return @map_height

end

#--------------------------------------------------------------------------

# ? draw_map

#--------------------------------------------------------------------------

def draw_map

bitmap = Bitmap.new($game_map.width * 32, $game_map.height * 32)

for i in 0...($game_map.width * $game_map.height)

x = i % $game_map.width

y = i / $game_map.width

for level in 0...3

tile_id = $game_map.data[x, y, level]

if tile_id >= 384

tileset_bitmap = RPG::Cache.tile($game_map.tileset_name, tile_id, 0)

src_rect = Rect.new(0, 0, 32, 32)

bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)

end

if tile_id >= 48 and tile_id < 384

id = tile_id / 48 - 1

tileset_bitmap = RPG::Cache.autotile($game_map.autotile_names[id])

src_rect = Rect.new(32, 64, 32, 32)

bitmap.blt(x * 32, y * 32, tileset_bitmap, src_rect)

end

end

end

d_rect = Rect.new(0, 0, width, height)

s_rect = Rect.new(0, 0, bitmap.width, bitmap.height)

@map.bitmap.stretch_blt(d_rect, bitmap, s_rect)

bitmap.clear

bitmap.dispose

end

#--------------------------------------------------------------------------

# ? refresh_dots

#--------------------------------------------------------------------------

def draw_event_dots

for event in $game_map.events.values

bitmap = nil

x = event.x * width / $game_map.width

y = event.y * height / $game_map.height

next if event.list == nil

for i in 0...event.list.size

if event.list.parameters[0].is_a?(String)

if event.list.parameters[0] == "event"

bitmap = RPG::Cache.picture(event.list.parameters[0])

break

elsif event.list.parameters[0] == "enemy"

bitmap = RPG::Cache.picture(event.list.parameters[0])

break

elsif event.list.parameters[0].include?("teleport")

bitmap = RPG::Cache.picture("teleport")

name = event.list.parameters[0].dup

name.slice!("teleport, ")

@teleport_sprites.push(new_name_sprite(name, x, y))

break

elsif event.list.parameters[0] == "chest"

bitmap = RPG::Cache.picture(event.list.parameters[0])

break

elsif event.list.parameters[0] == "npc"

bitmap = RPG::Cache.picture(event.list.parameters[0])

break

elsif event.list.parameters[0] == "savepoint"

bitmap = RPG::Cache.picture(event.list.parameters[0])

break

elsif event.list.parameters[0] == "yuhul"

bitmap = RPG::Cache.picture(event.list.parameters[0])

break

else

bitmap = nil

end

end

end

@dots.push([x, y, bitmap])

end

for dot in @dots

unless dot[2] == nil

@event.bitmap.blt(dot[0], dot[1], dot[2], Rect.new(0, 0, 4, 4))

end

end

end

#--------------------------------------------------------------------------

# ? new_name_sprite

#--------------------------------------------------------------------------

def new_name_sprite(name, x, y)

sprite = Sprite.new

sprite.y = y + 240 - height / 2

x + 128 > 640 ? sprite.x = 512 : sprite.x = x + 320 - width / 2

bitmap = Bitmap.new(128, 32)

bitmap.font.name, bitmap.font.size = $fontface, 20

bitmap.font.color.set(255, 255, 255)

bitmap.draw_text(0, 0, 128, 32, name)

sprite.bitmap = bitmap

return sprite

end

#--------------------------------------------------------------------------

# ? refresh_dots

#--------------------------------------------------------------------------

def draw_player_dot

x = $game_player.x * width / $game_map.width

y = $game_player.y * height / $game_map.height

bitmap = RPG::Cache.picture("hero")

@event.bitmap.blt(x, y, bitmap, Rect.new(0, 0, 4, 4))

end

end

 

#==============================================================================

# ¦ Scene_MiniMap

#------------------------------------------------------------------------------

# draw the map full screen

#==============================================================================

 

class Scene_MiniMap

#--------------------------------------------------------------------------

# ? main

#--------------------------------------------------------------------------

def main

@map = Map_Full.new

Graphics.transition

loop do

Graphics.update

Input.update

update

if $scene != self

break

end

end

Graphics.freeze

@map.dispose

end

#--------------------------------------------------------------------------

# ? Update the contents of all five windows on the main menu

#--------------------------------------------------------------------------

def update

if Input.trigger?(Input::B) | Input.trigger?(Input::ALT)

$game_system.se_play($data_system.cancel_se)

$scene = Scene_Map.new

return

end

end

end

 

#==============================================================================

# ¦ Scene_Map

#------------------------------------------------------------------------------

# draw the mini map

# @corner is the corner you want the mini map to be displayed in.

# 1 is upper left, 2 is upper right, 3 is bottom left and 4 is bottom right

#

# @use_windowskin is whether true or false. true if you want to use the

# the current windowskin for the minimap background.

# or false if you want to use the picture named mapback in your picture folder.

#==============================================================================

 

class Scene_Map

alias main_minimap main

alias update_minimap update

alias transfer_minimap transfer_player

#--------------------------------------------------------------------------

# ? initialize

#--------------------------------------------------------------------------

def initialize

@corner = 4# 1 or 2 or 3 or 4

@use_windowskin = false # true or false

end

#--------------------------------------------------------------------------

# ? main

#--------------------------------------------------------------------------

def main

@event_map = Map_Event.new(@corner, @use_windowskin)

main_minimap

@event_map.dispose

end

#--------------------------------------------------------------------------

# ? update

#--------------------------------------------------------------------------

def update

@event_map.update

if $game_system.map_interpreter.running?

@event_map.visible = false

else

@event_map.visible = true

end

if Input.trigger?(Input::ALT)

$game_system.se_play($data_system.decision_se)

$scene = Scene_MiniMap.new

return

end

update_minimap

end

#--------------------------------------------------------------------------

# ? transfer_player

#--------------------------------------------------------------------------

def transfer_player

transfer_minimap

@event_map.dispose

@event_map = Map_Event.new(@corner, @use_windowskin)

end

end

 

 

 

Any questions?

 

miguel1

Share this post


Link to post
Share on other sites

I have a feeling this will be a very useful script. Thank you :) Rep +

 

thanks, if you any questions just say ;)

Share this post


Link to post
Share on other sites

Why is this in script requests? If you don't need any help with it, then could someone please move this to RGSS and RGSS2 scripts. And please put the script in a spoiler Miguel. Also, when posting images from image shack, copy the direct link. We don't want a bunch of pop ups all over the place. (I suggest putting that direct link in image tags as well)

 

 

 

Thanks for posting the script!

Share this post


Link to post
Share on other sites

Why is this in script requests? If you don't need any help with it, then could someone please move this to RGSS and RGSS2 scripts. And please put the script in a spoiler Miguel. Also, when posting images from image shack, copy the direct link. We don't want a bunch of pop ups all over the place. (I suggest putting that direct link in image tags as well)

 

 

 

Thanks for posting the script!

 

Ok I'll do that.

 

Edit: it's done, now the pic have direct links and the script is in spoiler

Share this post


Link to post
Share on other sites

Ok I'll do that.

 

Edit: it's done, now the pic have direct links and the script is in spoiler

How do I make it that the Alt feature is off? so that the full map isn't there, because i have maps the size of the screen, so if you press alt, the events dissapear and tiny dots come, so i just dont want full map...

Share this post


Link to post
Share on other sites

Ummm... I know that this is Necro-Posting but.... How can I hide the Mini-Map? I want to make an Item that only shows the Minimap if the Player has that Item.. :D Please Answer This Time!

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...