Version: 1.1Author: The Staff of RGSS2Dai PageTranslation: SuperMegaIntroductionThis is a translation of a fantastic script from
Dai Page. I AM NOT the creator of this script, so I don't deserve full credit. I only translated the script, in order to share it with the English community. The primary functions of the script are translated, but not everything is. If anyone would like everything to be translated, please let me know. Let me also mention I can only help with basic problems, and not ones that involve the script.
Features-Dragon Quest Style party display on the map
-Plug 'N Play, with customization!
-Good for knowing the party's status on the fly!
ScriptCODE
=begin
#-------------------------------------------------------------------------------
Display Status On The Map
Script By: RGSS2 DAIpage
Version: 1.1
Translation By: SuperMega
--------------------------------------------------------------------------------
Using The Script:
€€Remain standing on the map for X seconds, and a menu showing the party's status
will appear. Pressing the "Y" key (S on the keyboard) will close this window.
Customization is possible, and can be done below.
This Script Has Redefined...
Scene_Map
€€Changing this script may result in compatability errors, so do so at your own
risk...
Change Log:
€€09/3/22: Fixed the hidden features that are not enforced.
€€09/3/13
-Improved the script in general.
-Fixed the size of the content.
-Add a type to view full DQ.
-Modified to not display in a window display.
-The behavior to open the window has been altered.
-Eliminated Pointless Customization.
=end
#==============================================================================
# Begin Customization
#==============================================================================
module DAI_Map_Status
#----------------------------------------------------------------------------
# Basic Settings
#----------------------------------------------------------------------------
# Switch Used To Disable The Pop-up window.
OPTION = 2
# The type you wish to use.(0: Push Button To Open/Close (NOT RECOMMENDED),
# 1: Display Stays Hidden, But displays after standing a certain amount of time.)
TYPE = 1
# Window Transparency
OPACITY = 255
# Window Position (0: Down, 1: Up)
Y = 0
# Hide States?( true / false )
ST = false
#----------------------------------------------------------------------------
# — Button Configuration
#----------------------------------------------------------------------------
# Button To Open or Close The Display After It Displays
B = Input::Y
#----------------------------------------------------------------------------
# — Time Settings
#----------------------------------------------------------------------------
# Wait Time Before Display (60 = 1 Sec.)
TIME = 90
end
#==============================================================================
# End Customization
#==============================================================================
#==============================================================================
# – Scene_Map
#==============================================================================
class Scene_Map
#----------------------------------------------------------------------------
# —–‹‹‡†ˆ‚‚ƒ‚‚‰
#----------------------------------------------------------------------------
alias start_map_status start
def start
@window_map_status = Window_MapStatus.new
start_map_status
end
#----------------------------------------------------------------------------
# — ƒ•ƒƒƒ›–ˆ‚‚ƒ‚‚‰
#----------------------------------------------------------------------------
alias update_map_status update
def update
update_map_status
map_status_window_update
end
#--------------------------------------------------------------------------
# — ‚†‡†
#--------------------------------------------------------------------------
alias terminate_map_status terminate
def terminate
terminate_map_status
@window_map_status.dispose
end
#----------------------------------------------------------------------------
# — ‚‚ƒƒ‰‚の›–
#----------------------------------------------------------------------------
def map_status_window_update
@window_map_status.close if $game_map.interpreter.running?
@window_map_status.update
if Input.trigger?(DAI_Map_Status::B) && DAI_Map_Status::TYPE != 1
return if $game_map.interpreter.running?
return if $game_switches[DAI_Map_Status::OPTION]
@window_map_status.v ^= true
@window_map_status.refresh
Sound.play_decision
return
elsif DAI_Map_Status::TYPE == 1
if $game_map.interpreter.running?
@window_map_status.count = 0
@window_map_status.v = false
return
end
unless input?
@window_map_status.count += 1
if @window_map_status.count == DAI_Map_Status::TIME
@window_map_status.v = true
@window_map_status.refresh
return
end
else
@window_map_status.count = 0
@window_map_status.v = false
return
end
end
if $game_party.members.size > 0 && @window_map_status.v
map_status_data unless $game_map.interpreter.running?
end
end
#--------------------------------------------------------------------------
# — ”面ˆ‡‚Š›ˆのŸŒ
#--------------------------------------------------------------------------
alias map_status_update_scene_change update_scene_change
def update_scene_change
$game_temp.map_s_last_v = @window_map_status.v
@window_map_status.visible = false unless $game_temp.next_scene.nil?
map_status_update_scene_change
end
#----------------------------------------------------------------------------
# — ‚ƒ†ƒ‚‚の›–
#----------------------------------------------------------------------------
def map_status_data
if @window_map_status.map_status.size != $game_party.members.size
@window_map_status.data
@window_map_status.refresh
return
end
return if $game_party.members.size == 0
i = 0
for a in $game_party.members
a_s = [a.name, a.hp, a.maxhp, a.mp, a.maxmp, a.states]
s = @window_map_status.map_status[i]
if [s[0], s[1], s[2], s[3], s[4], s[5]] != a_s
@window_map_status.data
@window_map_status.refresh
return
end
i += 0
end
end
#--------------------------------------------------------------------------
# — •‚‰‹の‚ƒ…Š›Œ‚っŸ‹ˆš
#--------------------------------------------------------------------------
def input?
return (Input.dir4 != 0 or
Input.trigger?(Input::A) or Input.trigger?(Input::B) or
Input.trigger?(Input::C) or Input.trigger?(Input::X) or
Input.trigger?(Input::Y) or Input.trigger?(Input::Z) or
Input.trigger?(Input::L) or Input.trigger?(Input::R))
end
end
#==============================================================================
# – Game_Temp
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# — …–‹‚ƒ‚‚ƒ‚‰•
#--------------------------------------------------------------------------
attr_accessor:map_s_last_v # ”面ˆ‡›‰の可–Š…‹
#--------------------------------------------------------------------------
# — ‚ƒ–‚‚‚ƒˆˆœŸŒ–
#--------------------------------------------------------------------------
alias map_status_initialize initialize
def initialize
map_status_initialize
@map_s_last_v = true
end
end
#==============================================================================
# – Window_MapStatus
#==============================================================================
class Window_MapStatus < Window_Base
#--------------------------------------------------------------------------
# — …–‹‚ƒ‚‚ƒ‚‰•
#--------------------------------------------------------------------------
attr_accessor:map_status # ‚ƒ†ƒ‚‚保Œ”‰•
attr_accessor:count # ‚‚ƒƒˆ
attr_accessor:v # 可–Š…‹
#--------------------------------------------------------------------------
# — ‚ƒ–‚‚‚ƒˆˆœŸŒ–
#--------------------------------------------------------------------------
def initialize
@count = 0
w = $game_party.members.size * 136
w = 136 if $game_party.members.size == 0
if DAI_Map_Status::Y == 0
y = DAI_Map_Status::ST ? 312 : 288
else
y = 0
end
h = DAI_Map_Status::ST ? 104 : 128
super(0, y, w, h)
self.openness = 0
self.opacity = DAI_Map_Status::OPACITY
@v = $game_temp.map_s_last_v
if $game_switches[DAI_Map_Status::OPTION] or DAI_Map_Status::TYPE == 1
@v = false
end
data
refresh
end
#--------------------------------------------------------------------------
# — ƒ•ƒƒƒ›–
#--------------------------------------------------------------------------
def update
if @v
open
elsif
close
end
close if $game_switches[DAI_Map_Status::OPTION]
super
end
#--------------------------------------------------------------------------
# — ‚‚ƒƒ‰‚†…容のœˆ
#--------------------------------------------------------------------------
def create_contents
self.contents.dispose
self.contents = Bitmap.new((512 / 4 * $game_party.members.size), height - 32)
end
#--------------------------------------------------------------------------
# — ƒ‘ƒƒƒ‚ƒの˜†
#--------------------------------------------------------------------------
def data
@map_status = []
for a in $game_party.members
@map_status.push([a.name, a.hp, a.maxhp, a.mp, a.maxmp, a.states])
end
end
#--------------------------------------------------------------------------
# — ƒƒ•ƒƒƒ‚ƒ
#--------------------------------------------------------------------------
def refresh
create_contents
width_refresh
draw_contents
end
#--------------------------------------------------------------------------
# — ‚‚ƒƒ‰‚†…容の描”
#--------------------------------------------------------------------------
def draw_contents
self.contents.clear
return if $game_party.members.size == 0
for i in 0...$game_party.members.size
actor = $game_party.members[i]
actor_x = i * 512 / 4
draw_actor_name(actor, actor_x, 0)
draw_actor_hp(actor, actor_x, 25)
draw_actor_mp(actor, actor_x, 50)
draw_actor_state(actor, actor_x, 75) unless DAI_Map_Status::ST
end
end
#--------------------------------------------------------------------------
# — ‚‚ƒƒ‰‚…の調•
#--------------------------------------------------------------------------
def width_refresh
self.width = self.contents.width + 32
end
end
CompatibilityMay not work with HUD's or anything that always shows on the map (Wora's Mini Map for example, which this does not work with) however, it should work out with mostly everything else.
Screenshot
DEMOI highly recommend playing the demo to get a good idea of how it can work. That's my word!
http://www.mediafire.com/?wyy3k2nzkmtInstallationPractically Plug 'n Play, with the exception of customization that you might want to look at.
Let me also add, if you would like to set the feature as button input, it will create a great amount of lag. So do so at your own risk...FAQQ.Help!!! This script is giving me an error!
A.Sadly, I can't help with that. I merely translated this script, and have a weak scripting ability. You may want to contact the script makers, to see what you can do to get it to work properly. If there's something you don't understand about the script, then those kind of questions are ones I can answer.
CreditsRGSS2DaiPage Staff-The script
SuperMega-Translation
(Please credit both! Don't leave RGSS2Daipage Staff out of your credits! You know they did a great job!)