Wie benutzt man das AMS ? Adventes Message Script oder so.
PHP-Code:
#=================================================== # AMS - Advanced Message Script - R4 [Update #2] #=================================================== # For more infos and update, visit: # [url]www.dubealex.com[/url] (Creation Asylum) # # Edited, Fixed and Enhanced by: Dubealex # Original Script Core by: XRXS Scripter (Jap Dudes) # HTML Hexadecimal color feature from: Phylomorphis # # Special Thanks: # Rabu: For enabling the Show Face feature in an encrypted project # # To found all my new features, search the following: #NEW # To configure the button to skip the dialog, search: #SKIP_TEXT_CODE # # May 18, 2005 #=================================================== LETTER_BY_LETTER_MODE = true #Set the letter by letter mode ON/OFF #=================================================== # ¼ CLASS AMS Begins #=================================================== class AMS attr_accessor : name_box_x_offset attr_accessor : name_box_y_offset attr_accessor : font_type attr_accessor : name_font_type attr_accessor : font_size attr_accessor : name_font_size attr_accessor : message_box_opacity attr_accessor : name_box_skin attr_accessor : name_box_text_color attr_accessor : message_box_text_color attr_accessor : message_box_skin attr_accessor : name_box_width attr_accessor : name_box_height attr_accessor : message_width attr_accessor : message_height attr_accessor : message_x attr_accessor : message_y_bottom attr_accessor : message_y_middle attr_accessor : message_y_top attr_accessor : event_message_x_ofset attr_accessor : event_message_y_ofset def initialize @ name_box_x_offset = 10 #Choose the X axis offset of the name bos. default= 0 @ name_box_y_offset = - 10 #Choose the Y axis offset of the name bos. default= -10 @ name_box_width = 8 #Choose the width of the Name Box. default= 8 @ name_box_height = 26 #Choose the height of the Name Box. default= 26 @ font_type = "Trebuchet MS" #Choose the Font Name (Case Sensitive) for message box @ name_font_type = "Trebuchet MS" #Choose the Font Name (Case Sensitive) for Name Box @ font_size = 22 #Choose the default Font Size for message box text @ name_font_size = 20 #Choose the deafault Font Size for Name Box text @ name_box_text_color = 0 #Choose the Text Color of the Name Box @ message_box_text_color = 0 #Choose the Text Color of the Message Box @ message_box_opacity = 160 #Choose the opacity of the message window. Default=160 @ message_box_skin = "untitled1" #Choose the WindowSkin for the Message Box @ name_box_skin = "001-Blue01" #Choose the WindowSkin for the Name Box @ message_width = 480 #Choose the width size of the message box. Default=480 @ message_height = 160 #Choose the height size of the message box. Default=160 @ message_x = 80 #Choose the X position of the message box. Default=80 @ message_y_bottom = 304 #Choose the Y bottom position of the message box. Default=304 @ message_y_middle = 160 #Choose the Y middle position of the message box. Default=160 @ message_y_top = 16 #Choose the Y top position of the message box. Default=16 @ event_message_x_ofset = 32 #Choose the X position offset of the event message. Default=0 @ event_message_y_ofset = 77 #Choose the Y position offset of the event message. Default=48 end end #=================================================== # ² CLASS AMS Ends #=================================================== #=================================================== # ¼ Class Window_Message Begins #=================================================== class Window_Message < Window_Selectable alias xrxs9_initialize initialize def initialize @ alex_skip = false xrxs9_initialize if $soundname_on_speak == nil then $soundname_on_speak = "" end $gaiji_file = "./Graphics/Gaiji/sample.png" if FileTest . exist ?( $gaiji_file ) @ gaiji_cache = Bitmap .new( $gaiji_file ) else @ gaigi_cache = nil end @ opacity_text_buf = Bitmap .new( 32 , 32 ) end #-------------------------------------------------------------------------- alias xrxs9_terminate_message terminate_message def terminate_message if @ name_window_frame != nil @ name_window_frame . dispose @ name_window_frame = nil end if @ name_window_text != nil @ name_window_text . dispose @ name_window_text = nil end xrxs9_terminate_message end #-------------------------------------------------------------------------- def refresh self . contents . clear self . contents . font . color = text_color ( $ams . message_box_text_color ) self . contents . font . name = $ams . font_type self . contents . font . size = $ams . font_size self . windowskin = RPG :: Cache . windowskin ( $ams . message_box_skin ) @ x = @ y = @ max_x = @ max_y = @ indent = @ lines = 0 @ face_indent = 0 @ opacity = 255 @ cursor_width = 0 @ write_speed = 0 @ write_wait = 0 @ mid_stop = false @ face_file = nil @ popchar = - 2 if $game_temp . choice_start == 0 @ x = 8 end if $game_temp . message_text != nil @ now_text = $game_temp . message_text if (/\ A \\[ Ff ]\[(.+?)\]/. match (@ now_text ))!= nil then @ face_file = $ 1 + ".png" @ x = @ face_indent = 128 if FileTest . exist ?( "Graphics/Pictures/" + $ 1 + ".png" ) self . contents . blt ( 16 , 16 , RPG :: Cache . picture (@ face_file ), Rect .new( 0 , 0 , 96 , 96 )) end @ now_text . gsub !(/\\[ Ff ]\[(.*?)\]/) { "" } end begin last_text = @ now_text .clone @ now_text . gsub !(/\\[ Vv ]\[([ IiWwAaSs ]?)([ 0 - 9 ]+)\]/) { convart_value ($ 1 , $ 2.to_i ) } end until @ now_text == last_text @ now_text . gsub !(/\\[ Nn ]\[([ 0 - 9 ]+)\]/) do $game_actors [$ 1.to_i ] != nil ? $game_actors [$ 1.to_i ]. name : "" end #NEW #Dubealex's Stop Skip Text ON-OFF @ now_text . gsub !(/\\[%]/) { "\100" } #End new command #NEW #Dubealex's Show Monster Name Feature @ now_text . gsub !(/\\[ Mm ]\[([ 0 - 9 ]+)\]/) do $data_enemies [$ 1.to_i ] != nil ? $data_enemies [$ 1.to_i ]. name : "" end #End new command #NEW #Dubealex's Show Item Price Feature @ now_text . gsub !(/\\[ Pp ] rice \[([ 0 - 9 ]+)\]/) do $data_items [$ 1.to_i ] != nil ? $data_items [$ 1.to_i ]. price : "" end #End new command #NEW #Dubealex's Show Hero Class Name Feature @ now_text . gsub !(/\\[ Cc ] lass \[([ 0 - 9 ]+)\]/) do $data_classes [ $data_actors [$ 1.to_i ]. class_id ] != nil ? $data_classes [ $data_actors [$ 1.to_i ]. class_id ]. name : "" end #End new command #NEW #Dubealex's Show Current Map Name Feature @ now_text . gsub !(/\\[ Mm ] ap /) do $game_map . name != nil ? $game_map . name : "" end #End new command #NEW #Dubealex's Choose Name Box Text Color @ now_text . gsub !(/\\[ Zz ]\[([ 0 - 9 ]+)\]/) do $ams . name_box_text_color =$ 1.to_i @ now_text . sub !(/\\[ Zz ]\[([ 0 - 9 ]+)\]/) { "" } end #End new command name_window_set = false if (/\\[ Nn ] ame \[(.+?)\]/. match (@ now_text )) != nil name_window_set = true name_text = $ 1 @ now_text . sub !(/\\[ Nn ] ame \[(.*?)\]/) { "" } end if (/\\[ Pp ]\[([- 1 , 0 - 9 ]+)\]/. match (@ now_text ))!= nil then @ popchar = $ 1.to_i if @ popchar == - 1 @ x = @ indent = 48 @ y = 4 end @ now_text . gsub !(/\\[ Pp ]\[([- 1 , 0 - 9 ]+)\]/) { "" } end @ max_choice_x = 0 if @ popchar >= 0 @ text_save = @ now_text .clone @ max_x = 0 @ max_y = 4 for i in 0..3 line = @ now_text . split (/\ n /)[ 3 - i ] @ max_y -= 1 if line == nil and @ max_y <= 4 - i next if line == nil line . gsub !(/\\\ w \[(\ w +)\]/) { "" } cx = contents . text_size ( line ). width @ max_x = cx if cx > @ max_x if i >= $game_temp . choice_start @ max_choice_x = cx if cx > @ max_choice_x end end self . width = @ max_x + 32 + @ face_indent self . height = (@ max_y - 1 ) * 32 + 64 @ max_choice_x -= 68 @ max_choice_x -= @ face_indent * 216 / 128 else @ max_x = self . width - 32 - @ face_indent for i in 0..3 line = @ now_text . split (/\ n /)[ i ] next if line == nil line . gsub !(/\\\ w \[(\ w +)\]/) { "" } cx = contents . text_size ( line ). width if i >= $game_temp . choice_start @ max_choice_x = cx if cx > @ max_choice_x end end @ max_choice_x += 8 end @ cursor_width = 0 @ now_text . gsub !(/\\\\/) { "\000" } @ now_text . gsub !(/\\[ Cc ]\[([ 0123456789ABCDEF #]+)\]/) { "\001[#{$1}]" } @ now_text . gsub !(/\\[ Gg ]/) { "\002" } @ now_text . gsub !(/\\[ Ss ]\[([ 0 - 9 ]+)\]/) { "\003[# {$ 1 } ]" } @ now_text . gsub !(/\\[ Aa ]\[(.*?)\]/) { "\004[# {$ 1 } ]" } #NEW #Dubealex's Permanent Color Change @ now_text . gsub !(/\\[ Cc ] olor \[([ 0 - 9 ]+)\]/) do $ams . message_box_text_color = $ 1.to_i @ now_text . sub !(/\\[ Cc ]\[([ 0 - 9 ]+)\]/) { "" } end #End of new command #NEW #Dubealex's Font Change Feature @ now_text . gsub (/\\[ Tt ]\[(.*?)\]/) do buftxt = $ 1.to_s $ams . font_type = buftxt @ now_text . sub !(/\\[ Tt ]\[(.*?)\]/) { "" } end #End of new command @ now_text . gsub !(/\\[.]/) { "\005" } @ now_text . gsub !(/\\[|]/) { "\006" } @ now_text . gsub !(/\\[>]/) { "\016" } @ now_text . gsub !(/\\[<]/) { "\017" } @ now_text . gsub !(/\\[!]/) { "\020" } @ now_text . gsub !(/\\[~]/) { "\021" } @ now_text . gsub !(/\\[ Ee ]\[([ 0 - 9 ]+)\]/) { "\022[# {$ 1 } ]" } @ now_text . gsub !(/\\[ Ii ]/) { "\023" } @ now_text . gsub !(/\\[ Oo ]\[([ 0 - 9 ]+)\]/) { "\024[# {$ 1 } ]" } @ now_text . gsub !(/\\[ Hh ]\[([ 0 - 9 ]+)\]/) { "\025[# {$ 1 } ]" } @ now_text . gsub !(/\\[ Bb ]\[([ 0 - 9 ]+)\]/) { "\026[# {$ 1 } ]" } @ now_text . gsub !(/\\[ Rr ]\[(.*?)\]/) { "\027[# {$ 1 } ]" } reset_window if name_window_set color = $ams . name_box_text_color off_x = $ams . name_box_x_offset off_y = $ams . name_box_y_offset space = 3 x = self . x + off_x - space / 3 y = self . y + off_y - space / 3 w = self . contents . text_size ( name_text ). width + $ams . name_box_width + space h = $ams . name_box_height + space @ name_window_frame = Window_Frame .new( x , y , w , h ) @ name_window_frame . z = self . z + 1 x = self . x + off_x + 4 y = self . y + off_y @ name_window_text = Air_Text .new( x , y , name_text , color ) @ name_window_text . z = self . z + 2 end end reset_window if $game_temp . choice_max > 0 @ item_max = $game_temp . choice_max self . active = true self . index = 0 end if $game_temp . num_input_variable_id > 0 digits_max = $game_temp . num_input_digits_max number = $game_variables [ $game_temp . num_input_variable_id ] @ input_number_window = Window_InputNumber .new( digits_max ) @ input_number_window . number = number @ input_number_window . x = self . x + 8 @ input_number_window . y = self . y + $game_temp . num_input_start * 32 end end #-------------------------------------------------------------------------- def update super if @ fade_in self . contents_opacity += 24 if @ input_number_window != nil @ input_number_window . contents_opacity += 24 end if self . contents_opacity == 255 @ fade_in = false end return end @ now_text = nil if @ now_text == "" if @ now_text != nil and @ mid_stop == false if @ write_wait > 0 @ write_wait -= 1 return end text_not_skip = LETTER_BY_LETTER_MODE while true @ max_x = @ x if @ max_x < @ x @ max_y = @ y if @ max_y < @ y if ( c = @ now_text . slice !(/./ m )) != nil if c == "\000" c = "\\" end if c == "\001" @ now_text . sub !(/\[([ 0123456789ABCDEF #]+)\]/, "") temp_color = $ 1 color = temp_color . to_i leading_x = temp_color . to_s . slice !(/./ m ) if leading_x == "#" self . contents . font . color = hex_color ( temp_color ) next end if color >= 0 and color <= 7 self . contents . font . color = text_color ( color ) end next end if c == "\002" if @ gold_window == nil and @ popchar <= 0 @ gold_window = Window_Gold .new @ gold_window . x = 560 - @ gold_window . width if $game_temp . in_battle @ gold_window . y = 192 else @ gold_window . y = self . y >= 128 ? 32 : 384 end @ gold_window . opacity = self . opacity @ gold_window . back_opacity = self . back_opacity end c = "" end if c == "\003" @ now_text . sub !(/\[([ 0 - 9 ]+)\]/, "" ) speed = $ 1.to_i if speed >= 0 and speed <= 19 @ write_speed = speed end c = "" end if c == "\004" @ now_text . sub !(/\[(.*?)\]/, "" ) buftxt = $ 1.dup . to_s if buftxt . match (/\ //) == nil and buftxt != "" then $soundname_on_speak = "Audio/SE/" + buftxt else $soundname_on_speak = buftxt . dup end c = "" elsif c == "\004" c = "" end if c == "\005" @ write_wait += 5 c = "" end if c == "\006" @ write_wait += 20 c = "" end if c == "\016" text_not_skip = false c = "" end if c == "\017" text_not_skip = true c = "" end if c == "\020" @ mid_stop = true c = "" end if c == "\021" terminate_message return end if c == "\023" @ indent = @ x c = "" end if c == "\024" @ now_text . sub !(/\[([ 0 - 9 ]+)\]/, "" ) @ opacity = $ 1.to_i color = self . contents . font . color self . contents . font . name = $ams . font_type self . contents . font . size = $ams . font_size self . contents . font . color = Color .new( color . red , color . green , color . blue , color . alpha * @ opacity / 255 ) c = "" end if c == "\025" @ now_text . sub !(/\[([ 0 - 9 ]+)\]/, "" ) self . contents . font . size = [[$ 1.to_i , 6 ]. max , 32 ]. min c = "" end if c == "\026" @ now_text . sub !(/\[([ 0 - 9 ]+)\]/, "" ) @ x += $ 1.to_i c = "" end if c == "\027" @ now_text . sub !(/\[(.*?)\]/, "" ) @ x += ruby_draw_text ( self . contents , @ x , @ y * line_height + ( line_height - self . contents . font . size ), $ 1 , @ opacity ) if $soundname_on_speak != "" Audio . se_play ( $soundname_on_speak ) end c = "" end if c == "\030" @ now_text . sub !(/\[(.*?)\]/, "" ) self . contents . blt (@ x , @ y * line_height + 8 , RPG :: Cache . icon ($ 1 ), Rect .new( 0 , 0 , 24 , 24 )) if $soundname_on_speak != "" Audio . se_play ( $soundname_on_speak ) end @ x += 24 c = "" end if c == "\n" @ lines += 1 @ y += 1 @ x = 0 + @ indent + @ face_indent if @ lines >= $game_temp . choice_start @ x = 8 + @ indent + @ face_indent @ cursor_width = @ max_choice_x end c = "" end if c == "\022" @ now_text . sub !(/\[([ 0 - 9 ]+)\]/, "" ) @ x += gaiji_draw ( 4 + @ x , @ y * line_height + ( line_height - self . contents . font . size ), $ 1.to_i ) c = "" end #NEW #Dubealex's Text Skip On/OFF Command if c == "\100" if @ alex_skip == false @ alex_skip = true else @ alex_skip = false end c = "" end #end of new command if c != "" self . contents . draw_text ( 0 +@ x , 25 * @ y , 40 , 32 , c ) @ x += self . contents . text_size ( c ). width if $soundname_on_speak != "" then Audio . se_play ( $soundname_on_speak ) end end #SKIP_TEXT_CODE # B = Escape, 0 (On The NumPad), X # C = Enter, Space Bar and C # A = Shift, Z if Input . press ?( Input :: C ) # <-- Change the value on that line if @ alex_skip == false text_not_skip = false end end else text_not_skip = true break end if text_not_skip break end end @ write_wait += @ write_speed return end if @ input_number_window != nil @ input_number_window . update if Input . trigger ?( Input :: C ) $game_system . se_play ( $data_system . decision_se ) $game_variables [ $game_temp . num_input_variable_id ] = @ input_number_window . number $game_map . need_refresh = true @ input_number_window . dispose @ input_number_window = nil terminate_message end return end if @ contents_showing if $game_temp . choice_max == 0 self . pause = true end if Input . trigger ?( Input :: B ) if $game_temp . choice_max > 0 and $game_temp . choice_cancel_type > 0 $game_system . se_play ( $data_system . cancel_se ) $game_temp . choice_proc . call ( $game_temp . choice_cancel_type - 1 ) terminate_message end end if Input . trigger ?( Input :: C ) if $game_temp . choice_max > 0 $game_system . se_play ( $data_system . decision_se ) $game_temp . choice_proc . call ( self . index ) end if @ mid_stop @ mid_stop = false return else terminate_message end end return end if @ fade_out == false and $game_temp . message_text != nil @ contents_showing = true $game_temp . message_window_showing = true refresh Graphics . frame_reset self . visible = true self . contents_opacity = 0 if @ input_number_window != nil @ input_number_window . contents_opacity = 0 end @ fade_in = true return end if self . visible @ fade_out = true self . opacity -= 48 if self . opacity == 0 self . visible = false @ fade_out = false $game_temp . message_window_showing = false end return end end #-------------------------------------------------------------------------- def get_character ( parameter ) case parameter when 0 return $game_player else events = $game_map . events return events == nil ? nil : events [ parameter ] end end #-------------------------------------------------------------------------- def reset_window #MESSAGE_SIZE #MESSAGE_POSITION if @ popchar >= 0 events = $game_map . events if events != nil character = get_character (@ popchar ) x = [[ character . screen_x - $ams . event_message_x_ofset - self . width / 2 , 4 ]. max , 636 - self . width ]. min y = [[ character . screen_y - $ams . event_message_y_ofset - self . height , 4 ]. max , 476 - self . height ]. min self . x = x self . y = y end elsif @ popchar == - 1 self . x = - 4 self . y = - 4 self . width = 648 self . height = 488 else if $game_temp . in_battle self . y = 16 else case $game_system . message_position when 0 self . y = $ams . message_y_top when 1 self . y = $ams . message_y_middle when 2 self . y = $ams . message_y_bottom end self . x = $ams . message_x if @ face_file == nil self . width = $ams . message_width self . x = $ams . message_x else if self . width <= 600 self . width = 600 self . x -= 60 end end self . height = $ams . message_height end end self . contents = Bitmap .new( self . width - 32 , self . height - 32 ) self . contents . font . color = text_color ( $ams . message_box_text_color ) self . contents . font . name = $ams . font_type self . contents . font . size = $ams . font_size if @ face_file != nil self . contents . blt ( 16 , 16 , RPG :: Cache . picture (@ face_file ), Rect .new( 0 , 0 , 96 , 96 )) end if @ popchar == - 1 self . opacity = 255 self . back_opacity = 0 elsif $game_system . message_frame == 0 self . opacity = 255 self . back_opacity = $ams . message_box_opacity else self . opacity = 0 self . back_opacity = $ams . message_box_opacity end end #-------------------------------------------------------------------------- def gaiji_draw ( x , y , num ) if @ gaiji_cache == nil return 0 else if @ gaiji_cache . width < num * 24 return 0 end if self . contents . font . size >= 20 and self . contents . font . size <= 24 size = 24 else size = self . contents . font . size * 100 * 24 / 2200 end self . contents . stretch_blt ( Rect .new( x , y , size , size ), @ gaiji_cache , Rect .new( num * 24 , 0 , 24 , 24 )) if $soundname_on_speak != "" then Audio . se_play ( $soundname_on_speak ) end return size end end #-------------------------------------------------------------------------- def line_height return 32 if self . contents . font . size >= 20 and self . contents . font . size <= 24 return 32 else return self . contents . font . size * 15 / 10 end end #-------------------------------------------------------------------------- def ruby_draw_text ( target , x , y , str , opacity ) sizeback = target . font . size target . font . size * 3 / 2 > 32 ? rubysize = 32 - target . font . size : rubysize = target . font . size / 2 rubysize = [ rubysize , 6 ]. max opacity = [[ opacity , 0 ]. max , 255 ]. min split_s = str . split (/,/) split_s [ 0 ] == nil ? split_s [ 0 ] = "" : nil split_s [ 1 ] == nil ? split_s [ 1 ] = "" : nil height = sizeback + rubysize width = target . text_size ( split_s [ 0 ]). width target . font . size = rubysize ruby_width = target . text_size ( split_s [ 1 ]). width target . font . size = sizeback buf_width = [ target . text_size ( split_s [ 0 ]). width , ruby_width ]. max width - ruby_width != 0 ? sub_x = ( width - ruby_width ) / 2 : sub_x = 0 if opacity == 255 target . font . size = rubysize target . draw_text ( x + sub_x , y - target . font . size , target . text_size ( split_s [ 1 ]). width , target . font . size , split_s [ 1 ]) target . font . size = sizeback target . draw_text ( x , y , width , target . font . size , split_s [ 0 ]) return width else if @ opacity_text_buf . width < buf_width or @ opacity_text_buf . height < height @ opacity_text_buf . dispose @ opacity_text_buf = Bitmap .new( buf_width , height ) else @ opacity_text_buf . clear end @ opacity_text_buf . font . size = rubysize @ opacity_text_buf . draw_text ( 0 , 0 , buf_width , rubysize , split_s [ 1 ], 1 ) @ opacity_text_buf . font . size = sizeback @ opacity_text_buf . draw_text ( 0 , rubysize , buf_width , sizeback , split_s [ 0 ], 1 ) if sub_x >= 0 target . blt ( x , y - rubysize , @ opacity_text_buf , Rect .new( 0 , 0 , buf_width , height ), opacity ) else target . blt ( x + sub_x , y - rubysize , @ opacity_text_buf , Rect .new( 0 , 0 , buf_width , height ), opacity ) end return width end end #-------------------------------------------------------------------------- def convart_value ( option , index ) option == nil ? option = "" : nil option . downcase ! case option when "i" unless $data_items [ index ]. name == nil r = sprintf ( "\030[%s]%s" , $data_items [ index ]. icon_name , $data_items [ index ]. name ) end when "w" unless $data_weapons [ index ]. name == nil r = sprintf ( "\030[%s]%s" , $data_weapons [ index ]. icon_name , $data_weapons [ index ]. name ) end when "a" unless $data_armors [ index ]. name == nil r = sprintf ( "\030[%s]%s" , $data_armors [ index ]. icon_name , $data_armors [ index ]. name ) end when "s" unless $data_skills [ index ]. name == nil r = sprintf ( "\030[%s]%s" , $data_skills [ index ]. icon_name , $data_skills [ index ]. name ) end else r = $game_variables [ index ] end r == nil ? r = "" : nil return r end #-------------------------------------------------------------------------- def dispose terminate_message if @ gaiji_cache != nil unless @ gaiji_cache . disposed ? @ gaiji_cache . dispose end end unless @ opacity_text_buf . disposed ? @ opacity_text_buf . dispose end $game_temp . message_window_showing = false if @ input_number_window != nil @ input_number_window . dispose end super end #-------------------------------------------------------------------------- def update_cursor_rect if @ index >= 0 n = $game_temp . choice_start + @ index self . cursor_rect . set ( 4 + @ indent + @ face_indent , n * 25 , @ cursor_width , 32 ) else self . cursor_rect .empty end end end #========================================= # ² CLASS Window_Message Ends #========================================= #========================================= # ¼ Class Window_Frame Begins #========================================= class Window_Frame < Window_Base def initialize ( x , y , width , height ) super ( x , y , width , height ) self . windowskin = RPG :: Cache . windowskin ( $ams . name_box_skin ) self . contents = nil end #-------------------------------------------------------------------------- def dispose super end end #========================================= # ² CLASS Window_Frame Ends #========================================= #========================================= # ¼ CLASS Game_Map Additional Code Begins #========================================= class Game_Map #Dubealex's Addition (from XRXS) to show Map Name on screen def name $map_infos [@ map_id ] end end #========================================= # ² CLASS Game_Map Additional Code Ends #========================================= #========================================= # ¼ CLASS Scene_Title Additional Code Begins #========================================= class Scene_Title #Dubealex's Addition (from XRXS) to show Map Name on screen $map_infos = load_data ( "Data/MapInfos.rxdata" ) for key in $map_infos . keys $map_infos [ key ] = $map_infos [ key ]. name end #Dubealex's addition to save data from the AMS in the save files $ams = AMS .new end #========================================= # ² CLASS Scene_Title Additional Code Ends #========================================= #========================================= # ¼ CLASS Window_Base Additional Code Begins #========================================= class Window_Base < Window #Dubealex Addition (from Phylomorphis) to use HTML Hex Code Colors def hex_color (string) red = 0 green = 0 blue = 0 if string . size != 6 print( "Hex strings must be six characters long." ) print( "White text will be used." ) return Color .new( 255 , 255 , 255 , 255 ) end for i in 1..6 s = string . slice !(/./ m ) if s == "#" print( "Hex color string may not contain the \"#\" character." ) print( "White text will be used." ) return Color .new( 255 , 255 , 255 , 255 ) end value = hex_convert ( s ) if value == - 1 print( "Error converting hex value." ) print( "White text will be used." ) return Color .new( 255 , 255 , 255 , 255 ) end case i when 1 red += value * 16 when 2 red += value when 3 green += value * 16 when 4 green += value when 5 blue += value * 16 when 6 blue += value end end return Color .new( red , green , blue , 255 ) end #-------------------------------------------------------------------------- def hex_convert ( character ) case character when "0" return 0 when "1" return 1 when "2" return 2 when "3" return 3 when "4" return 4 when "5" return 5 when "6" return 6 when "7" return 7 when "8" return 8 when "9" return 9 when "A" return 10 when "B" return 11 when "C" return 12 when "D" return 13 when "E" return 14 when "F" return 15 end return - 1 end end #========================================= # ² CLASS Window_Base Additional Code Ends #========================================= #========================================= # ¼ Class Air_Text Begins #========================================= class Air_Text < Window_Base def initialize ( x , y , designate_text , color = 0 ) super ( x - 16 , y - 16 , 32 + designate_text . size * 12 , 56 ) self . opacity = 0 self . back_opacity = 0 self . contents = Bitmap .new( self . width - 32 , self . height - 32 ) w = self . contents . width h = self . contents . height self . contents . font . name = $ams . name_font_type self . contents . font . size = $ams . name_font_size self . contents . font . color = text_color ( color ) self . contents . draw_text ( 0 , 0 , w , h , designate_text ) end #-------------------------------------------------------------------------- def dispose self . contents . clear super end end #========================================== # ² CLASS Air_Text Ends #========================================== #=================================================== # ¼ CLASS Scene_Save Additional Code Begins #=================================================== class Scene_Save < Scene_File alias ams_original_write_save_data write_save_data def write_save_data ( file ) ams_original_write_save_data ( file ) Marshal . dump ( $ams , file ) end end #=================================================== # ² CLASS Scene_Save Additional Code Ends #=================================================== #=================================================== # ¼ CLASS Scene_Load Additional Code Begins #=================================================== class Scene_Load < Scene_File alias ams_original_read_save_data read_save_data def read_save_data ( file ) ams_original_read_save_data ( file ) $ams = Marshal . load ( file ) end end #=================================================== # ² CLASS Scene_Load Additional Code Ends #===================================================
PHP-Code:
#============================================================================== # Party & Class Changing System #-------------------------------------------------------------------------- # Created By SephirothSpawn (11.27.05) # Last Updated: 11.28.05 #============================================================================== #============================================================================== # Class Scene Title #============================================================================== class Scene_Title #-------------------------------------------------------------------------- # * Alias' New Game Method #-------------------------------------------------------------------------- alias new_game command_new_game #-------------------------------------------------------------------------- # * Adds Base Stats For Enemies #-------------------------------------------------------------------------- def command_new_game # Sets Class Requirements for i in 1. .. $data_classes . size $data_classes [ i ]. set_reqirements end # Sets Characters Sex for i in 1. .. $data_actors . size $data_actors [ i ]. set_sex end new_game end end #============================================================================== # ** Module RPG #============================================================================== module RPG #=========================================================================== # ** Class Actor #=========================================================================== class Actor #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor : sex #-------------------------------------------------------------------------- # * Set Sex #-------------------------------------------------------------------------- def set_sex if @ name .include?( '(' ) @ sex = @ name . slice !(@ name . index ( '(' )..@ name . index ( ')' )) == '(M)' ? 1 : 2 else @ sex = 1 end end end #=========================================================================== # ** Class Class #=========================================================================== class Class #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor : level_requirements attr_accessor : sex_requirements #-------------------------------------------------------------------------- # * Set Requirements #-------------------------------------------------------------------------- def set_reqirements # Sets Level Requirements @ level_requirements = @ name .include?( '{' ) ? eval (@ name . slice !(@ name . index ( '{' )..@ name . index ( '}' ))) : {} # Sets Sex Requirements if @ name .include?( '(' ) sex = @ name . slice !(@ name . index ( '(' )..@ name . index ( ')' )) @ sex_requirements = sex == '(M)' ? 1 : 2 else @ sex_requirements = 0 end end end end #============================================================================== # ** Class Window_Base #============================================================================== class Window_Base #-------------------------------------------------------------------------- # * Draw Item Name # item : item # x : draw spot x-coordinate # y : draw spot y-coordinate # width : draw text width # align : text align #-------------------------------------------------------------------------- def draw_item_name ( item , x , y , width = 212 , align = 0 , type = 0 ) if item == nil case type when 0 # Weapon bitmap = RPG :: Cache . icon ( "001-Weapon01" ) when 1 # Shield bitmap = RPG :: Cache . icon ( "009-Shield01" ) when 2 # Helmet bitmap = RPG :: Cache . icon ( "010-Head01" ) when 3 # Armor bitmap = RPG :: Cache . icon ( "014-Body02" ) when 4 # Accessory bitmap = RPG :: Cache . icon ( "016-Accessory01" ) end self . contents . blt ( x , y + 4 , bitmap , Rect .new( 0 , 0 , 24 , 24 ), disabled_color . alpha ) self . contents . font . color = disabled_color self . contents . draw_text ( x + 28 , y , width - 28 , 32 , "Nothing Equipped" , align ) return end bitmap = RPG :: Cache . icon ( item . icon_name ) self . contents . blt ( x , y + 4 , bitmap , Rect .new( 0 , 0 , 24 , 24 )) self . contents . font . color = normal_color self . contents . draw_text ( x + 28 , y , width - 28 , 32 , item . name , align ) end #-------------------------------------------------------------------------- # * Draw Sprite #-------------------------------------------------------------------------- def draw_sprite ( x , y , name , hue , pose , frame , actor_contents = true ) bitmap = RPG :: Cache . character ( name , hue ) cw = bitmap . width / 4 ch = bitmap . height / 4 # Facing Direction case pose when 0 ; a = 0 # Down when 1 ; a = ch # Left when 2 ; a = ch * 3 # Up when 3 ; a = ch * 2 # Right end # Current Animation Slide case frame when 0 ; b = 0 when 1 ; b = cw when 2 ; b = cw * 2 when 3 ; b = cw * 3 end # Bitmap Rectange src_rect = Rect .new( b , a , cw , ch ) # Draws Bitmap if actor_contents @ sprite_contents . bitmap . blt ( x - cw / 2 , y - ch , bitmap , src_rect ) else self . contents . blt ( x - cw / 2 , y - ch , bitmap , src_rect ) end end #-------------------------------------------------------------------------- # Draw Bar # Credit Near Fantastica for Orginal Script #-------------------------------------------------------------------------- def draw_bar ( x , y , min , max , width = 152 , height = 20 ) self . contents . fill_rect ( x , y , width , height , Color .new( 255 , 255 , 255 , 100 )) bar_color = Color .new( 0 , 0 , 200 , 255 ) for i in 0. .( width * min / max ) r = bar_color . red * ( width - i ) / width + 0 * i / width g = bar_color . green * ( width - i ) / width + 0 * i / width b = bar_color . blue * ( width - i ) / width + 0 * i / width a = bar_color . alpha * ( width - i ) / width + 255 * i / width self . contents . fill_rect ( x + i , y , 1 , height , Color .new( r , g , b , a )) end end #-------------------------------------------------------------------------- # * Alias Update #-------------------------------------------------------------------------- alias sprite_update update #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update sprite_update unless @ sprite_contents == nil @ sprite_contents . x = self . x + self . ox + 16 @ sprite_contents . y = self . y + self . oy + 16 end end #-------------------------------------------------------------------------- # * Alias Dispose #-------------------------------------------------------------------------- alias sprite_dispose dispose #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose sprite_dispose unless @ sprite_contents == nil @ sprite_contents . dispose @ sprite_contents . dispose end end end #============================================================================== # ** Window_Selectable #============================================================================== class Window_Selectable < Window_Base #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor : cursor_height #-------------------------------------------------------------------------- # * Alias Initialization #-------------------------------------------------------------------------- alias custom_int initialize #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize ( x , y , width , height ) custom_int ( x , y , width , height ) @ cursor_height = 32 end #-------------------------------------------------------------------------- # * Get Top Row #-------------------------------------------------------------------------- def top_row # Divide y-coordinate of window contents transfer origin by 1 row # height of @cursor_height return self . oy / @ cursor_height end #-------------------------------------------------------------------------- # * Set Top Row # row : row shown on top #-------------------------------------------------------------------------- def top_row =( row ) # If row is less than 0, change it to 0 if row < 0 row = 0 end # If row exceeds row_max - 1, change it to row_max - 1 if row > row_max - 1 row = row_max - 1 end # Multiply 1 row height by 32 for y-coordinate of window contents # transfer origin self . oy = row * @ cursor_height end #-------------------------------------------------------------------------- # * Get Number of Rows Displayable on 1 Page #-------------------------------------------------------------------------- def page_row_max # Subtract a frame height of 32 from the window height, and divide it by # 1 row height of @cursor_height return ( self . height - 32 ) / @ cursor_height end #-------------------------------------------------------------------------- # * Update Cursor Rectangle #-------------------------------------------------------------------------- def update_cursor_rect # If cursor position is less than 0 if @ index < 0 self . cursor_rect .empty return end # Get current row row = @ index / @ column_max # If current row is before top row if row < self . top_row # Scroll so that current row becomes top row self . top_row = row end # If current row is more to back than back row if row > self . top_row + ( self . page_row_max - 1 ) # Scroll so that current row becomes back row self . top_row = row - ( self . page_row_max - 1 ) end # Calculate cursor width cursor_width = self . width / @ column_max - 32 # Calculate cursor coordinates x = @ index % @ column_max * ( cursor_width + 32 ) y = @ index / @ column_max * @ cursor_height - self . oy if self . active == true # Update cursor rectangle self . cursor_rect . set ( x , y , cursor_width , @ cursor_height ) end end end #============================================================================== # ** Window_Command #============================================================================== class Window_Command < Window_Selectable #-------------------------------------------------------------------------- # * Unisable Item # index : item number #-------------------------------------------------------------------------- def undisable_item ( index ) draw_item ( index , normal_color ) end end #============================================================================== # ** Game_Actor #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor : class_levels attr_accessor : class_exp attr_accessor : class_skills attr_accessor : sex #-------------------------------------------------------------------------- # * Alias Setup #-------------------------------------------------------------------------- alias class_setup setup #-------------------------------------------------------------------------- # * Setup #-------------------------------------------------------------------------- def setup ( actor_id ) class_setup ( actor_id ) @ class_levels , @ class_exp , @ class_skills = [ nil ], [ nil ], [ nil ] for i in 0. .. $data_classes . size @ class_levels . push ( 1 ) @ class_exp . push ( 0 ) @ class_skills . push ([]) end @ sex = $data_actors [ actor_id ]. sex end #-------------------------------------------------------------------------- # * Switch Class #-------------------------------------------------------------------------- def switch_class ( class_id ) # Updates Class Arrays @ class_levels [@ class_id ] = @ level @ class_exp [@ class_id ] = @ exp @ class_skills [@ class_id ] = @ skills # Loads New Class ID @ class_id = class_id # Loads Class Level & Exp Count @ level = @ class_levels [ class_id ] @ exp = @ class_exp [ class_id ] @ skills = @ class_skills [ class_id ] end #-------------------------------------------------------------------------- # * Update Levels & Exp #-------------------------------------------------------------------------- def update_classes # Updates Class Arrays @ class_levels [@ class_id ] = @ level @ class_exp [@ class_id ] = @ exp @ class_skills [@ class_id ] = @ skills end end #============================================================================== # ** Class Game_Party #============================================================================== class Game_Party #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor : reserve_actors #-------------------------------------------------------------------------- # * Alias Initialization #-------------------------------------------------------------------------- alias reserve_initialize initialize #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize reserve_initialize @ reserve_actors = [] end #-------------------------------------------------------------------------- # * Add an Actor # actor_id : actor ID #-------------------------------------------------------------------------- def add_actor ( actor_id ) # Get actor actor = $game_actors [ actor_id ] # If the party has less than 4 members and this actor is not in the party if @ actors . size < 4 and not @ actors .include?( actor ) # Add actor @ actors . push ( actor ) # Refresh player $game_player . refresh elsif @ actors . size >= 4 and not @ actors .include?( actor ) and not @ reserve_actors .include?( actor ) # Add actor @ reserve_actors . push ( actor ) # Refresh player $game_player . refresh end end #-------------------------------------------------------------------------- # * Move To Reserve # actor_id : actor ID #-------------------------------------------------------------------------- def move_to_reserve ( actor_id ) # Get actor actor = $game_actors [ actor_id ] if @ actors .include?( actor ) @ actors . delete ( actor ) @ reserve_actors . push ( actor ) end # Refresh player $game_player . refresh end #-------------------------------------------------------------------------- # * Move To Party # actor_id : actor ID #-------------------------------------------------------------------------- def move_to_party ( actor_id ) # Get actor actor = $game_actors [ actor_id ] if @ reserve_actors .include?( actor ) @ reserve_actors . delete ( actor ) @ actors . push ( actor ) end # Refresh player $game_player . refresh end end #============================================================================== # ** Window_Member_Sprites #============================================================================== class Window_Member_Sprites < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize ( x = 0 , y = 384 , width = 160 ) super ( x , y , width , 96 ) self . z = 500 # Creates Contents self . contents = Bitmap .new( width - 32 , height - 32 ) @ sprite_contents = Sprite .new @ sprite_contents . bitmap = Bitmap .new( width - 32 , height - 32 ) @ sprite_contents . z = 505 self . contents . font . size = 10 # Animation Varaibles @ pose , @ frame = 0 , 0 # Updates Window update end #-------------------------------------------------------------------------- # * Refresh # actors : $game_party.actors or $game_party.reserve_actors #-------------------------------------------------------------------------- def refresh ( actors ) # Clears Contents contents . clear @ sprite_contents . bitmap . clear # Stores Actors @ actors = actors . dup # Adds Blank Actors max = @ actors == $game_party . actors ? 3 : 14 @ actors . push ( nil ) until @ actors . size > max # Draw Sprites draw_sprites # Draws Info draw_info end #-------------------------------------------------------------------------- # Draw Sprites #-------------------------------------------------------------------------- def draw_sprites @ sprite_contents . bitmap . clear for i in 0. ..@ actors . size actor = @ actors [ i ] if actor == nil draw_sprite ( i * 32 + 16 , 64 , "Empty" , 0 , @ pose , @ frame ) else draw_sprite ( i * 32 + 16 , 64 , actor . character_name , actor . character_hue , @ pose , @ frame ) end end end #-------------------------------------------------------------------------- # Draw Information #-------------------------------------------------------------------------- def draw_info contents . clear for i in 0. ..@ actors . size actor = @ actors [ i ] if actor == nil contents . font . color = disabled_color contents . draw_text ( i * 32 , 0 , 32 , 12 , "Empty" , 1 ) else contents . font . color = normal_color contents . draw_text ( i * 32 , 0 , 32 , 12 , actor . name , 1 ) end end end #-------------------------------------------------------------------------- # Frame Update #-------------------------------------------------------------------------- def frame_update @ frame == 3 ? @ frame = 0 : @ frame += 1 draw_sprites end #-------------------------------------------------------------------------- # * Update Cursor Rectangle #-------------------------------------------------------------------------- def update_cursor_rect ( index ) self . cursor_rect . set ( index * 32 , 0 , 32 , 64 ) end #-------------------------------------------------------------------------- # Update Pose # direction : 0 - Left 1 - Right #-------------------------------------------------------------------------- def update_pose ( direction ) if direction == 0 @ pose == 0 ? @ pose = 3 : @ pose -= 1 else @ pose == 3 ? @ pose = 0 : @ pose += 1 end draw_sprites end end #============================================================================== # ** Window_Party_Changing #============================================================================== class Window_Party_Changing < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super ( 0 , 0 , 640 , 288 ) # Sets Cursor Height self . cursor_height = 64 # Sets Index self . index = 0 # Animated Sprite Counters @ pose , @ frame = 0 , 0 # Sets Up Window Contents self . contents = Bitmap .new( width - 32 , height - 32 ) # Sprite Contents @ sprite_contents = Sprite .new @ sprite_contents . bitmap = Bitmap .new( width - 32 , height - 32 ) @ sprite_contents . z = 500 # Updates Window update end #-------------------------------------------------------------------------- # * Refresh # actors : $game_party.actors or $game_party.reserve_actors #-------------------------------------------------------------------------- def refresh ( actors ) # Clears Contents contents . clear @ sprite_contents . bitmap . clear # Duplicates Actors @ actors = actors . dup # Checks Actors List max = @ actors == $game_party . actors ? 3 : 0 @ actors . push ( nil ) until @ actors . size > max # Sets Up Item Max @ item_max = @ actors . size # Draw Sprites draw_sprites # Draws Info draw_info end #-------------------------------------------------------------------------- # Draws Sprites #-------------------------------------------------------------------------- def draw_sprites @ sprite_contents . bitmap . clear # Draws actors for i in 0. ..@ actors . size actor = @ actors [ i ] y = i * 64 + 8 if actor == nil draw_sprite ( 20 , y + 48 , "Empty" , 0 , @ pose , @ frame ) else draw_sprite ( 20 , y + 48 , actor . character_name , actor . character_hue , @ pose , @ frame ) end end end #-------------------------------------------------------------------------- # Draws Information #-------------------------------------------------------------------------- def draw_info contents . clear # Draws actors for i in 0. ..@ actors . size actor = @ actors [ i ] y = i * 64 + 8 if actor == nil contents . font . size = 40 contents . font . color = disabled_color contents . draw_text ( 60 , y - 8 , contents . width , 64 , "Empty Position" ) else contents . font . size = 22 # Draws Name contents . font . color = normal_color contents . draw_text ( 60 , y , 90 , 24 , actor . name ) # Draws Class contents . draw_text ( 60 , y + 24 , 90 , 24 , $data_classes [ actor . class_id ]. name ) # Draws Level contents . font . color = system_color contents . draw_text ( 160 , y , 100 , 24 , "Level" ) contents . font . color = normal_color contents . draw_text ( 160 , y , 100 , 24 , actor . level . to_s , 2 ) # Draws State state = make_battler_state_text ( actor , 112 , true ) contents . font . color = actor . hp == 0 ? knockout_color : normal_color contents . draw_text ( 160 , y + 24 , 100 , 24 , state ) # Draws Experience contents . font . color = system_color contents . draw_text ( 274 , y , 160 , 24 , "Exp" ) contents . font . color = normal_color contents . draw_text ( 274 , y , 160 , 24 , actor . exp . to_s , 2 ) # Draws Next Level Bar draw_bar ( 270 , y + 26 , actor . exp , actor . next_exp_s . to_i , 168 ) # Draws Next Level contents . font . color = system_color contents . draw_text ( 274 , y + 24 , 160 , 24 , "Next Level" ) contents . font . color = normal_color contents . draw_text ( 274 , y + 24 , 160 , 24 , actor . next_rest_exp_s . to_s , 2 ) # Draw HP Bar draw_bar ( 446 , y + 2 , actor . hp , actor . maxhp ) # Draw MP Bar draw_bar ( 446 , y + 26 , actor . sp , actor . maxsp ) # Draws HP contents . font . size = 22 contents . font . color = system_color contents . draw_text ( 452 , y , 160 , 24 , $data_system . words . hp ) contents . font . size = 16 contents . font . color = actor . hp == 0 ? knockout_color : normal_color contents . draw_text ( 452 , y , 140 , 24 , "#{actor.hp} / #{actor.maxhp}" , 2 ) # Draws SP contents . font . size = 22 contents . font . color = system_color contents . draw_text ( 452 , y + 24 , 160 , 24 , $data_system . words . sp ) contents . font . size = 16 contents . font . color = actor . sp == 0 ? knockout_color : normal_color contents . draw_text ( 452 , y + 24 , 140 , 24 , "#{actor.sp} / #{actor.maxsp}" , 2 ) end end end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def frame_update @ frame == 3 ? @ frame = 0 : @ frame += 1 draw_sprites end #-------------------------------------------------------------------------- # * Update Pose # direction : 0 - Left 1 - Right #-------------------------------------------------------------------------- def update_pose ( direction ) if direction == 0 @ pose == 0 ? @ pose = 3 : @ pose -= 1 else @ pose == 3 ? @ pose = 0 : @ pose += 1 end draw_sprites end end #============================================================================== # ** Window Class Changing #============================================================================== class Window_Class_Changing < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super ( 0 , 64 , 160 , 320 ) # Sets Cursor Height self . cursor_height = 72 # Sets Index self . index = 0 # Animated Sprite Counters @ pose , @ frame = 0 , 0 # Window Contents self . contents = Bitmap .new( width - 32 , height - 32 ) # Refreshes Window Contents refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh # Clears Contents contents . clear # Duplicates Actors @ actors = $game_party . actors . dup # Checks Actors List @ actors . push ( nil ) until @ actors . size > 3 # Sets Up Item Max @ item_max = @ actors . size # Draw Actors Info contents . clear for i in 0. ..@ item_max actor = @ actors [ i ] y = i * 72 # Draws Animated Sprite if actor == nil draw_sprite ( 20 , y + 66 , "Empty" , 0 , @ pose , @ frame , false ) contents . font . color = disabled_color contents . draw_text ( 32 , y + 2 , contents . width - 40 , 24 , "" , 2 ) contents . draw_text ( 32 , y + 24 , contents . width - 40 , 24 , "Empty" , 2 ) contents . draw_text ( 32 , y + 46 , contents . width - 40 , 24 , "" , 2 ) else draw_sprite ( 20 , y + 66 , actor . character_name , actor . character_hue , @ pose , @ frame , false ) contents . font . color = normal_color # Draws Name contents . draw_text ( 32 , y + 2 , contents . width - 40 , 24 , actor . name , 2 ) # Draws Class contents . draw_text ( 32 , y + 24 , contents . width - 40 , 24 , $data_classes [ actor . class_id ]. name , 2 ) # Draws Level contents . draw_text ( 32 , y + 46 , contents . width - 40 , 24 , "Level: #{actor.level}" , 2 ) end end end # Frame Update #-------------------------------------------------------------------------- def frame_update @ frame == 3 ? @ frame = 0 : @ frame += 1 refresh end #-------------------------------------------------------------------------- # Update Pose # direction : 0 - Left 1 - Right #-------------------------------------------------------------------------- def update_pose ( direction ) if direction == 0 @ pose == 0 ? @ pose = 3 : @ pose -= 1 else @ pose == 3 ? @ pose = 0 : @ pose += 1 end refresh end end #============================================================================== # ** Window Character Status #============================================================================== class Window_Character_Status < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # actor : actor #-------------------------------------------------------------------------- def initialize super ( 160 , 64 , 480 , 416 ) # Animation Varaibles @ pose , @ frame = 0 , 0 # Window Contents self . contents = Bitmap .new( width - 32 , height - 32 ) # Refreshes Contents refresh ( $game_party . actors [ 0 ]) end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh ( actor ) # Clears Contents contents . clear # Stores Actor @ actor = actor if actor == nil draw_sprite ( contents . width / 2 , contents . height / 2 , "Empty" , 0 , @ pose , @ frame , false ) # Draws Empty Text contents . font . size = 48 contents . font . color = system_color contents . font . color . alpha = disabled_color . alpha contents . draw_text ( 0 , contents . height / 2 , contents . width , 48 , "Empty Position" , 1 ) else draw_sprite ( 40 , 80 , actor . character_name , actor . character_hue , @ pose , @ frame , false ) contents . font . size = 22 contents . font . color = normal_color # Draws Name contents . draw_text (- 8 , 4 , 96 , 24 , actor . name , 1 ) # Draws State state = make_battler_state_text ( actor , 112 , true ) contents . font . color = actor . hp == 0 ? knockout_color : normal_color contents . draw_text ( 96 , 8 , 96 , 24 , state , 1 ) # Draws Class contents . font . color = system_color contents . draw_text ( 96 , 32 , 96 , 24 , actor . class_name , 1 ) # Draws Level contents . font . color = system_color contents . draw_text ( 96 , 56 , 96 , 24 , "Level :" ) contents . font . color = normal_color contents . draw_text ( 96 , 56 , 96 , 24 , actor . level . to_s , 2 ) # Draws Experience contents . font . color = system_color contents . draw_text ( 224 , 8 , 224 , 24 , "Experience :" ) contents . font . color = normal_color contents . draw_text ( 216 , 8 , 224 , 24 , actor . exp_s , 2 ) # Next Level Experience contents . font . color = system_color contents . draw_text ( 224 , 32 , 224 , 24 , "Next Level :" ) contents . font . color = normal_color contents . draw_text ( 216 , 32 , 224 , 24 , actor . next_rest_exp_s , 2 ) # Draws Next Level Bar draw_bar ( 224 , 58 , actor . exp , actor . next_exp_s . to_i , 216 ) # Draws HP Bar draw_bar ( 32 , 126 , actor . hp , actor . maxhp , 228 , 24 ) # Draws HP contents . font . color = system_color contents . draw_text ( 40 , 126 , 224 , 24 , "HP" ) contents . font . color = normal_color contents . draw_text ( 32 , 126 , 224 , 24 , "#{actor.hp} / #{actor.maxhp}" , 2 ) # Draws SP Bar draw_bar ( 32 , 158 , actor . sp , actor . maxsp , 228 , 24 ) # Draws SP contents . font . color = system_color contents . draw_text ( 40 , 158 , 224 , 24 , "SP" ) contents . font . color = normal_color contents . draw_text ( 32 , 158 , 224 , 24 , "#{actor.sp} / #{actor.maxsp}" , 2 ) # Draws Equiped Items draw_item_name ( $data_weapons [ actor . weapon_id ], 36 , 190 , 224 , 2 , 0 ) draw_item_name ( $data_armors [ actor . armor1_id ], 36 , 222 , 224 , 2 , 1 ) draw_item_name ( $data_armors [ actor . armor2_id ], 36 , 254 , 224 , 2 , 2 ) draw_item_name ( $data_armors [ actor . armor3_id ], 36 , 286 , 224 , 2 , 3 ) draw_item_name ( $data_armors [ actor . armor4_id ], 36 , 318 , 224 , 2 , 4 ) # Draws Stats stat_names = [ $data_system . words . str , $data_system . words . dex , $data_system . words . agi , $data_system . words . int , $data_system . words . atk , $data_system . words . pdef , $data_system . words . mdef , "Evasion" ] stats = [ actor . str , actor . dex , actor . agi , actor . int , actor . atk , actor . pdef , actor . mdef , actor . eva ] for i in 0. .. stats . size contents . font . color = system_color contents . draw_text ( 278 , 108 + i * 32 , 170 , 24 , stat_names [ i ]) contents . font . color = normal_color contents . draw_text ( 270 , 108 + i * 32 , 170 , 24 , stats [ i ]. to_s , 2 ) end end end #-------------------------------------------------------------------------- # Frame Update #-------------------------------------------------------------------------- def frame_update @ frame == 3 ? @ frame = 0 : @ frame += 1 refresh (@ actor ) end #-------------------------------------------------------------------------- # Update Pose # direction : 0 - Left 1 - Right #-------------------------------------------------------------------------- def update_pose ( direction ) if direction == 0 @ pose == 0 ? @ pose = 3 : @ pose -= 1 else @ pose == 3 ? @ pose = 0 : @ pose += 1 end refresh (@ actor ) end end #============================================================================== # ** Window_Class_Status #============================================================================== class Window_Class_Status < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super ( 160 , 64 , 480 , 416 ) # Creates Contents self . contents = Bitmap .new( width - 32 , height - 32 ) # Animation Varaibles @ pose , @ frame = 0 , 0 # Refreshes Contents refresh ( $game_party . actors [ 0 ], $data_classes [ 1 ]) end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh ( actor , current_class ) # Clears Contents contents . clear # Requirements Met (For Return) @ requirements_met = true # Stores Variables for Refreshing @ actor = actor @ current_class = current_class # Draws Actors Info contents . font . size = 22 contents . font . color = normal_color # Draws Name of Actor contents . draw_text ( 0 , 4 , contents . width / 3 , 24 , actor . name , 1 ) # Draws Actor Sprite draw_sprite ( contents . width / 6 , 82 , actor . character_name , actor . character_hue , @ pose , @ frame , false ) # Current Class contents . font . color = system_color contents . draw_text ( contents . width / 3 + 4 , 4 , contents . width / 3 , 24 , actor . class_name , 1 ) # Current Level contents . draw_text ( contents . width / 3 + 4 , 30 , contents . width / 3 , 24 , "Level :" ) contents . font . color = normal_color contents . draw_text ( contents . width / 3 - 4 , 30 , contents . width / 3 , 24 , actor . level . to_s , 2 ) # Current Experience contents . font . color = system_color contents . draw_text ( contents . width / 3 + 4 , 56 , contents . width / 3 , 24 , "Experience :" ) contents . font . color = normal_color contents . draw_text ( contents . width / 3 - 4 , 56 , contents . width / 3 , 24 , actor . exp_s , 2 ) # Checks to Make Sure Current Class isn't Nil if current_class == nil contents . font . size = 32 contents . font . color = system_color contents . draw_text ( 0 , contents . width / 2 - 18 , contents . width , 36 , "Return to Actors" , 1 ) else contents . font . size = 22 contents . font . color = normal_color # Next Class contents . font . color = system_color contents . draw_text ( contents . width / 3 * 2 + 4 , 4 , contents . width / 3 , 26 , current_class . name , 1 ) # Next Level contents . draw_text ( contents . width / 3 * 2 + 4 , 30 , contents . width / 3 , 26 , "Level :" ) contents . font . color = normal_color contents . draw_text ( contents . width / 3 * 2 - 4 , 30 , contents . width / 3 , 26 , actor . class_levels [ current_class . id ]. to_s , 2 ) # Next Experience contents . font . color = system_color contents . draw_text ( contents . width / 3 * 2 + 4 , 56 , contents . width / 3 , 26 , "Experience :" ) contents . font . color = normal_color contents . draw_text ( contents . width / 3 * 2 - 4 , 56 , contents . width / 3 , 26 , actor . class_exp [ current_class . id ]. to_s , 2 ) pos = current_class . position == 0 ? "Front Row" : current_class . position == 1 ? "Middle Row" : "Back Row" contents . draw_text ( 0 , 96 , contents . width , 24 , "#{current_class.name}: #{pos}" , 1 ) contents . font . color = system_color # Draws Class Requirements contents . draw_text ( 0 , 120 , contents . width , 24 , "Requirements" , 1 ) contents . draw_text ( 4 , 144 , contents . width , 24 , "Sex Requirement:" ) # Sex Requirements contents . font . color = normal_color sex_req = current_class . sex_requirements if sex_req == 0 or sex_req == actor . sex contents . font . color = normal_color else contents . font . color = disabled_color end contents . draw_text ( 32 , 168 , contents . width , 24 , sex_req == 0 ? "None" : sex_req == 1 ? "Male" : "Female" ) contents . draw_text (- 8 , 168 , contents . width , 24 , actor . sex == 1 ? "Male" : "Female" , 2 ) # Checks if Requirements met @ requirements_met = false unless sex_req == 0 or sex_req == actor . sex # Class Level Requirements contents . font . color = system_color contents . draw_text ( 4 , 192 , contents . width , 24 , "Class Requirement:" ) contents . draw_text ( 32 , 216 , contents . width , 24 , "Class" ) contents . draw_text ( 160 , 216 , contents . width , 24 , "Req. Level" ) contents . draw_text (- 8 , 216 , contents . width , 24 , "Current Level" , 2 ) contents . font . color = normal_color # Class Requirement Arrays classes , level_reqs , levels = [], [], [] current_class . level_requirements . each_key { | key | classes . push ( $data_classes [ key ]. name ) level_reqs . push ( current_class . level_requirements [ key ]) levels . push ( actor . class_levels [ $data_classes [ key ]. id ]) } for i in 0. .. classes . size if levels [ i ] >= level_reqs [ i ] contents . font . color = normal_color else contents . font . color = disabled_color @ requirements_met = false end contents . draw_text ( 32 , 240 + i * 24 , contents . width , 24 , classes [ i ]) contents . draw_text ( 160 , 240 + i * 24 , contents . width , 24 , level_reqs [ i ]. to_s ) contents . draw_text (- 8 , 240 + i * 24 , contents . width , 24 , levels [ i ]. to_s , 2 ) end end end #-------------------------------------------------------------------------- # Frame Update #-------------------------------------------------------------------------- def frame_update @ frame == 3 ? @ frame = 0 : @ frame += 1 refresh (@ actor , @ current_class ) end #-------------------------------------------------------------------------- # Check Requirements #-------------------------------------------------------------------------- def check return @ requirements_met end end #============================================================================== # ** Scene Party Changer #============================================================================== class Scene_Party_Changer #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Current Phase @ phase = 0 # Frame Update (For Sprite Animations) @ update_frame = 0 # Help Window @ help_window = Window_Help .new @ help_window . set_text ( "Select Member To Transfer to Reserves" , 1 ) @ help_window . z = 9999 # Active Party Window @ active_actors_window = Window_Party_Changing .new @ active_actors_window . refresh ( $game_party . actors ) @ active_actors_window . y = 64 # Reserve Party Window @ reserver_actors_window = Window_Party_Changing .new @ reserver_actors_window . refresh ( $game_party . reserve_actors ) @ reserver_actors_window . y = 352 @ reserver_actors_window . active = false # Active Party Sprites @ active_actors_sprites = Window_Member_Sprites .new @ active_actors_sprites . refresh ( $game_party . actors ) @ active_actors_sprites . update_cursor_rect ( 0 ) # Reserve Party Sprites @ reserve_actors_sprites = Window_Member_Sprites .new( 160 , 384 , 480 ) @ reserve_actors_sprites . refresh ( $game_party . reserve_actors ) @ reserve_actors_sprites . update_cursor_rect ( 0 ) # Scene Objects @ objects = [@ help_window , @ active_actors_window , @ reserver_actors_window , @ active_actors_sprites , @ reserve_actors_sprites ] Graphics . transition # Main loop while $scene == self # Update game screen Graphics . update # Update input information Input . update # Objects Update @ objects . each {| x | x . update } # Animated Sprites Update @ update_frame += 1 if @ update_frame == 10 @ update_frame = 0 @ objects . each {| x | x . frame_update unless x == @ help_window } end # Updates Poses if Input . trigger ?( Input :: RIGHT ) $game_system . se_play ( $data_system . cursor_se ) @ objects . each {| x | x . update_pose ( 0 ) unless x == @ help_window } elsif Input . trigger ?( Input :: LEFT ) $game_system . se_play ( $data_system . cursor_se ) @ objects . each {| x | x . update_pose ( 1 ) unless x == @ help_window } end # Frame update @ phase == 0 ? active_update : reserve_update end # Prepare for transition Graphics . freeze # Disposes Objects @ objects . each {| x | x . dispose } end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def active_update # Slides Windows @ active_actors_window . y += 8 if @ active_actors_window . y < 64 @ reserver_actors_window . y += 8 if @ reserver_actors_window . y < 352 # Updates Cursor Rectangles if Input . trigger ?( Input :: UP ) or Input . trigger ?( Input :: DOWN ) @ active_actors_sprites . update_cursor_rect (@ active_actors_window . index ) # Exits Scene elsif Input . trigger ?( Input :: B ) $game_system . se_play ( $data_system . cancel_se ) $scene = Scene_Map .new # Selects Party Spot to Switch Spot With elsif Input . trigger ?( Input :: C ) actor = $game_party . actors [@ active_actors_window . index ] if $game_party . reserve_actors . size == 0 $game_system . se_play ( $data_system . buzzer_se ) @ help_window . set_text ( "No Reserve Actors to Switch With" , 1 ) else $game_system . se_play ( $data_system . decision_se ) @ active_actors_window . active = false @ reserver_actors_window . active = true text = actor == nil ? "Select Member to Add to Party" : "Select Member to Switch Spots with #{actor.name}" @ help_window . set_text ( text , 1 ) @ phase = 1 end end end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def reserve_update # Slides Windows @ active_actors_window . y -= 8 if @ active_actors_window . y > - 192 @ reserver_actors_window . y -= 8 if @ reserver_actors_window . y > 96 # Updates Cursor Rectangles if Input . trigger ?( Input :: UP ) or Input . trigger ?( Input :: DOWN ) @ reserve_actors_sprites . update_cursor_rect (@ reserver_actors_window . index ) # Returns to Main Phase elsif Input . trigger ?( Input :: B ) $game_system . se_play ( $data_system . cancel_se ) @ help_window . set_text ( "Select Member To Transfer to Reserves" , 1 ) @ active_actors_window . active = true @ reserver_actors_window . active = false @ phase = 0 end if Input . trigger ?( Input :: C ) $game_system . se_play ( $data_system . decision_se ) active_member = $game_party . actors [@ active_actors_window . index ] reserve_member = $game_party . reserve_actors [@ reserver_actors_window . index ] $game_party . move_to_reserve ( active_member . id ) unless active_member == nil $game_party . move_to_party ( reserve_member . id ) [@ active_actors_window , @ active_actors_sprites ]. each {| x | x . refresh ( $game_party . actors )} [@ reserver_actors_window , @ reserve_actors_sprites ]. each {| x | x . refresh ( $game_party . reserve_actors )} @ active_actors_window . active = true @ reserver_actors_window . active = false @ phase = 0 end end end #============================================================================== # ** Scene Class Changer #============================================================================== class Scene_Class_Changer #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Updates Actors Class Arrays for actor in $game_party . actors actor . update_classes end # Frame Update (For Sprite Animations) @ update_frame = 0 # Help Window @ help_window = Window_Help .new @ help_window . set_text ( "Select Actor to Change Class" , 1 ) # Actors Window @ actors_window = Window_Class_Changing .new # Class Window commands = [ "Back" ] for job in $data_classes commands . push ( job . name ) unless job == nil end @ class_window = Window_Command .new( 160 , commands ) @ class_window . y = 64 @ class_window . height = 320 @ class_window . active = @ class_window . visible = false # Sprites Window @ sprites_window = Window_Member_Sprites .new @ sprites_window . refresh ( $game_party . actors ) @ sprites_window . frame_update @ sprites_window . update_cursor_rect ( 0 ) # Character Window @ character_status_window = Window_Character_Status .new # Class Window @ class_status_window = Window_Class_Status .new @ class_status_window . visible = false # Scene Objects @ objects = [@ help_window , @ actors_window , @ class_window , @ sprites_window , @ character_status_window , @ class_status_window ] Graphics . transition # Main loop while $scene == self # Update game screen Graphics . update # Update input information Input . update # Objects Update @ objects . each {| x | x . update } # Animated Sprites Update @ update_frame += 1 if @ update_frame == 5 @ update_frame = 0 [@ actors_window , @ sprites_window , @ character_status_window , @ class_status_window ]. each {| x | x . frame_update unless x . visible == false } end # Frame update update end # Prepare for transition Graphics . freeze # Disposes Objects @ objects . each {| x | x . dispose } end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update # Sets Disabled and Undisabled Items if @ class_window . active for i in 1. .. $data_classes . size if check_class ( $game_party . actors [@ actors_window . index ], $data_classes [ i ]) @ class_window . undisable_item ( i ) else @ class_window . disable_item ( i ) end end end # Updates Actor Cursor Rectangle @ sprites_window . update_cursor_rect (@ actors_window . index ) # ~ Input Processing ~ if Input . trigger ?( Input :: RIGHT ) for actor in $game_party . actors actor . exp += 100 end end if Input . trigger ?( Input :: UP ) or Input . trigger ?( Input :: DOWN ) if @ character_status_window . visible @ character_status_window . refresh ( $game_party . actors [@ actors_window . index ]) else @ class_status_window . refresh ( $game_party . actors [@ actors_window . index ], $data_classes [@ class_window . index ]) end elsif Input . trigger ?( Input :: B ) $game_system . se_play ( $data_system . cancel_se ) if @ actors_window . active $scene = Scene_Map .new else @ class_window . index = 0 @ actors_window . visible = @ actors_window . active = true @ class_window . visible = @ class_window . active = false @ character_status_window . visible = true @ class_status_window . visible = false @ character_status_window . refresh ( $game_party . actors [@ actors_window . index ]) end elsif Input . trigger ?( Input :: C ) if @ actors_window . active if $game_party . actors [@ actors_window . index ] == nil $game_system . se_play ( $data_system . buzzer_se ) else $game_system . se_play ( $data_system . decision_se ) @ actors_window . visible = @ actors_window . active = false @ class_window . visible = @ class_window . active = true @ index = @ actors_window . index @ class_status_window . refresh ( $game_party . actors [@ index ], $data_classes [@ class_window . index ]) @ character_status_window . visible = false @ class_status_window . visible = true @ help_window . set_text ( "Select Class to Change # { $game_party . actors [@ index ]. name } To" , 1 ) end else if @ class_window . index == 0 $game_system . se_play ( $data_system . decision_se ) @ actors_window . visible = @ actors_window . active = true @ class_window . visible = @ class_window . active = false @ character_status_window . refresh ( $game_party . actors [@ actors_window . index ]) @ character_status_window . visible = true @ class_status_window . visible = false @ help_window . set_text ( "Select Actor to Change Class" , 1 ) else if @ class_status_window . check $game_system . se_play ( $data_system . decision_se ) class_ = $data_classes [@ class_window . index ] $game_party . actors [@ index ]. switch_class ( class_ . id ) @ help_window . set_text ( "# { $game_party . actors [@ index ]. name } Changed to a #{class_.name}" , 1 ) else $game_system . se_play ( $data_system . buzzer_se ) @ help_window . set_text ( "Class Requirements Not Met" , 1 ) end end end end end #-------------------------------------------------------------------------- # * Check Class #-------------------------------------------------------------------------- def check_class ( actor , job ) requirements_met = true sex_req = job . sex_requirements requirements_met = false unless sex_req == 0 or sex_req == actor . sex classes , level_reqs , levels = [], [], [] job . level_requirements . each_key { | key | classes . push ( $data_classes [ key ]. name ) level_reqs . push ( job . level_requirements [ key ]) levels . push ( actor . class_levels [ $data_classes [ key ]. id ]) } for i in 0. .. classes . size unless levels [ i ] >= level_reqs [ i ] requirements_met = false end end return requirements_met end end [/ SPOILER ] So und jetzt mein schlimmstes Problem , der Questlog .. habs eh richtig nur bei Zusätzliche Option öffnet es sich nicht sondern es kommt das : Hier deR Script [ SPOILER ] #/////////////////////////////Scene_Menu erweitert//////////////////////////// #~~~~~~~~~~~~~~~~~~by Caesar~~~~~~~~~~~~~~~~~ #\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ # Standardmenü mit einer zusätzlichen Option, die ein Common # Event aufruft #==================Parameter================= # Name des neuen Menüpunktes OPTION_NAME = "Aufgaben" # ID des Common Events, das bei Auswahl der Option aufgerufen wird MENU_COMMON_EVENT_ID = 5 #========================================= class Scene_Menu def initialize ( menu_index = 0 ) @ menu_index = menu_index end #----------------------- def main s1 = $data_system . words . item s2 = $data_system . words . skill s3 = $data_system . words . equip s4 = "Status" s5 = "Speichern" s6 = "Beenden" #~~~~~~~~~~ s7 = OPTION_NAME #~~~~~~~~~~ @ command_window = Window_Command .new( 160 , [ s1 , s2 , s3 , s4 , s5 , s6 , s7 ]) @ command_window . index = @ menu_index if $game_party . actors . size == 0 @ command_window . disable_item ( 0 ) @ command_window . disable_item ( 1 ) @ command_window . disable_item ( 2 ) @ command_window . disable_item ( 3 ) end if $game_system . save_disabled @ command_window . disable_item ( 4 ) end @ playtime_window = Window_PlayTime .new @ playtime_window . x = 0 @ playtime_window . y = 256 @ steps_window = Window_Steps .new @ steps_window . x = 0 @ steps_window . y = 320 @ gold_window = Window_Gold .new @ gold_window . x = 0 @ gold_window . y = 416 @ status_window = Window_MenuStatus .new @ status_window . x = 160 @ status_window . y = 0 Graphics . transition loop do Graphics . update Input . update update if $scene != self break end end Graphics . freeze @ command_window . dispose @ playtime_window . dispose @ steps_window . dispose @ gold_window . dispose @ status_window . dispose end #----------------------- def update @ command_window . update @ playtime_window . update @ steps_window . update @ gold_window . update @ status_window . update if @ command_window . active update_command return end if @ status_window . active update_status return end end #----------------------- def update_command if Input . trigger ?( Input :: B ) $game_system . se_play ( $data_system . cancel_se ) $scene = Scene_Map .new return end if Input . trigger ?( Input :: C ) if $game_party . actors . size == 0 and @ command_window . index < 4 $game_system . se_play ( $data_system . buzzer_se ) return end case @ command_window . index when 0 $game_system . se_play ( $data_system . decision_se ) $scene = Scene_Item .new when 1 $game_system . se_play ( $data_system . decision_se ) @ command_window . active = false @ status_window . active = true @ status_window . index = 0 when 2 $game_system . se_play ( $data_system . decision_se ) @ command_window . active = false @ status_window . active = true @ status_window . index = 0 when 3 $game_system . se_play ( $data_system . decision_se ) @ command_window . active = false @ status_window . active = true @ status_window . index = 0 when 4 if $game_system . save_disabled $game_system . se_play ( $data_system . buzzer_se ) return end $game_system . se_play ( $data_system . decision_se ) $scene = Scene_Save .new when 5 $game_system . se_play ( $data_system . decision_se ) $scene = Scene_End .new #~~~~~~~~~~~~~ when 6 $game_system . se_play ( $data_system . decision_se ) $game_temp . common_event_id = MENU_COMMON_EVENT_ID $scene = Scene_Map .new #~~~~~~~~~~~~~ end return end end #----------------------- def update_status if Input . trigger ?( Input :: B ) $game_system . se_play ( $data_system . cancel_se ) @ command_window . active = true @ status_window . active = false @ status_window . index = - 1 return end if Input . trigger ?( Input :: C ) case @ command_window . index when 1 if $game_party . actors [@ status_window . index ]. restriction >= 2 $game_system . se_play ( $data_system . buzzer_se ) return end $game_system . se_play ( $data_system . decision_se ) $scene = Scene_Skill .new(@ status_window . index ) when 2 $game_system . se_play ( $data_system . decision_se ) $scene = Scene_Equip .new(@ status_window . index ) when 3 $game_system . se_play ( $data_system . decision_se ) $scene = Scene_Status .new(@ status_window . index ) end return end end end #=================== #~~~~~~~~~~~~ class Window_PlayTime < Window_Base def initialize super ( 0 , 0 , 160 , 64 ) self . contents = Bitmap .new( width - 32 , height - 32 ) refresh end #------------ def refresh self . contents . clear @ total_sec = Graphics . frame_count / Graphics . frame_rate hour = @ total_sec / 60 / 60 min = @ total_sec / 60 % 60 sec = @ total_sec % 60 text = sprintf ( "%02d:%02d:%02d" , hour , min , sec ) self . contents . draw_text ( 4 , 0 , 120 , 32 , text , 1 ) end end #~~~~~~~~~~~ [/ SPOILER ]
Hier der Screen ..