#============================================================================== # ¡á Game_Actor #------------------------------------------------------------------------------ # ¡¡¿¢Å͸¦ Ãë±ÞÇϴ Ŭ·¡½ºÀÔ´Ï´Ù. ÀÌ Å¬·¡½º´Â Game_Actors Ŭ·¡½º ($game_actors) # ÀÇ ³»ºÎ¿¡¼­ »ç¿ëµÇ¾î Game_Party Ŭ·¡½º ($game_party)·ÎºÎÅ͵µ ÂüÁ¶µË´Ï´Ù. #============================================================================== #============================================================================== # ¡á Window_Base #------------------------------------------------------------------------------ # ¡¡°ÔÀÓÁßÀÇ ¸ðµç À©µµ¿ìÀÇ ½´ÆÛ Å¬·¡½ºÀÔ´Ï´Ù. #============================================================================== class Window_Base < Window #-------------------------------------------------------------------------- # ¡Ü °ÔÀÌÁö¹ÙÀÇ ¹¦È­ # x : ¹¦È­Ã³ X ÁÂÇ¥ # y : ¹¦È­Ã³ Y ÁÂÇ¥ #-------------------------------------------------------------------------- def °ÔÀÌÁö¹Ù±×¸®±â(ÇöÀçÆ÷ÀÎÆ®, ÃÖ°íÆ÷ÀÎÆ®, x, y, width, height = 30) @Ç®°ÔÀÌÁö¹Ù»ö = Color.new(255, 0, 0, 255) @ÇöÀç°ÔÀÌÁö¹Ù»ö = Color.new(0, 100, 100, 255) self.contents.fill_rect(x, y, width, height, @Ç®°ÔÀÌÁö¹Ù»ö) self.contents.fill_rect(x, y, (width * ÇöÀçÆ÷ÀÎÆ®) / ÃÖ°íÆ÷ÀÎÆ®, height, @ÇöÀç°ÔÀÌÁö¹Ù»ö) end end class Game_Actor < Game_Battler attr_reader :exp_list end #============================================================================== # ¡á Window_Map_Name #------------------------------------------------------------------------------ # ¡¡«Þ«Ã«×Ù£ªòøúãƪ¹ªë«¦«£«ó«É«¦ªÇª¹¡£ #============================================================================== class Window_Map°ÔÀÌÁö < Window_Base attr_accessor :actor #-------------------------------------------------------------------------- # ¡Ü «ª«Ö«¸«§«¯«ÈôøÑ¢ #-------------------------------------------------------------------------- def initialize(actor) super(0, 0, 204, 224) self.contents = Bitmap.new(width - 32, height - 32) @actor = actor @showing_time = 0 end #°ÔÀÌÁö Ç¥½Ã È­¸é def °ÔÀÌÁö self.contents.clear °ÔÀÌÁö¹Ù±×¸®±â(@actor.hp, @actor.maxhp, 0, 64, 172) °ÔÀÌÁö¹Ù±×¸®±â(@actor.sp, @actor.maxsp, 0, 96, 172) #@actor.exp - @actor.exp_list[@actor.level] ÇöÀç·¾ °æÇèÄ¡ ÃʱâÄ¡¿¡¼­ ÇöÀç °æÇèÄ¡¸¦ »«°ª. #Áï, °ÔÀÌÁö¿¡¼­ Ç¥½ÃµÇ´Â °ªÀÌ´Ù. #´ÙÀ½ ·¾ÀÇ °æÇèÄ¡¸¦ ±¸ÇÑ´Ù. #@actor.next_rest_exp_s.to_i+@actor.exp #´ÙÀ½ ·¾ÀÇ °æÇèÄ¡¿¡¼­ ÇöÀç·¾ °æÇèÄ¡ ÃʱâÄ¡¸¦ »«´Ù. #@actor.next_rest_exp_s.to_i+@actor.exp- @actor.exp_list[@actor.level] °ÔÀÌÁö¹Ù±×¸®±â(@actor.exp - @actor.exp_list[@actor.level], @actor.next_rest_exp_s.to_i+@actor.exp - @actor.exp_list[@actor.level], 0, 128, 172) draw_actor_class(@actor, 32, 32) draw_actor_level(@actor, 96, 32) draw_actor_name(@actor, 4, 0) draw_actor_hp(@actor, 0, 64, 172) draw_actor_sp(@actor, 0, 96, 172) draw_actor_exp(@actor, 0, 128) end end #============================================================================== # ¡á Scene_Map #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # ¡Ü «á«¤«ó?×â #-------------------------------------------------------------------------- alias thdo_main main alias thdo_initialize initialize def initialize @actor_index = 0 thdo_initialize end def main # ò¢Ù£«¦«£«ó«É«¦ªòíÂà÷ @actor = $game_party.actors[@actor_index] @map°ÔÀÌÁöwindow = Window_Map°ÔÀÌÁö.new(@actor) @map°ÔÀÌÁöwindow.opacity = 0 # ?ª¹ thdo_main # ò¢Ù£«¦«£«ó«É«¦ªòú°Û¯ @map°ÔÀÌÁöwindow.dispose end #-------------------------------------------------------------------------- # ¡Ü ÇÁ·¹ÀÓ °»½Å #-------------------------------------------------------------------------- def update # ·çÇÁ loop do # ¸Ê, interpreter, Ç÷¹À̾îÀÇ ¼ø¼­¿¡ °»½Å # (ÀÌ °»½Å ¼ø¼­´Â, À̺¥Æ®¸¦ ½ÇÇàÇÏ´Â Á¶°ÇÀÌ Ã¤¿öÁö°í ÀÖÀ» ¶§ # Ç÷¹À̾ Àϼø°£ À̵¿ÇÒ ±âȸ¸¦ ÁÖÁö ¾Ê´ÂµîÀÇ ÀÌÀ¯·Î½á Áß¿ä) $game_map.update $game_system.map_interpreter.update $game_player.update # ½Ã½ºÅÛ (ŸÀ̸Ó), È­¸éÀ» °»½Å $game_system.update $game_screen.update # Ç÷¹À̾îÀÇ Àå¼Ò À̵¿ÁßÀÌ ¾Æ´Ï¸é ·çÇÁ¸¦ Áß´Ü unless $game_temp.player_transferring break end # Àå¼Ò À̵¿À» ½ÇÇà transfer_player # Æ®¶õÁö¼Ç ó¸®ÁßÀÇ °æ¿ì, ·çÇÁ¸¦ Áß´Ü if $game_temp.transition_processing break end end # ½ºÇÁ¶óÀÌÆ® ¼¼Æ®¸¦ °»½Å @spriteset.update # ¸Þ¼¼Áö À©µµ¿ì¸¦ °»½Å @message_window.update # °ÔÀÓ ¿À¹öÀÇ °æ¿ì if $game_temp.gameover # °ÔÀÓ ¿À¹ö È­¸éÀ¸·Î ÀüȯÇÏ°í $scene = Scene_Gameover.new return end # ŸÀÌƲ È­¸é¿¡ µÇµ¹¸®´Â °æ¿ì if $game_temp.to_title # ŸÀÌƲ È­¸éÀ¸·Î ÀüȯÇÏ°í $scene = Scene_Title.new return end # Æ®¶õÁö¼Ç ó¸®ÁßÀÇ °æ¿ì if $game_temp.transition_processing # Æ®¶õÁö¼Ç ó¸®Áß Ç÷¡±×¸¦ Ŭ¸®¾î $game_temp.transition_processing = false # Æ®¶õÁö¼Ç ½ÇÇà if $game_temp.transition_name == "" Graphics.transition(20) else Graphics.transition(40, "Graphics/Transitions/" + $game_temp.transition_name) end end # ¸Þ¼¼Áö À©µµ¿ì Ç¥½ÃÁßÀÇ °æ¿ì if $game_temp.message_window_showing return end # ¿£Ä«¿îƮī¿îÆ®°¡ 0 À¸·Î, ¿£Ä«¿îÆ®¸®½ºÆ®°¡ ÇÏ´ÃÀÌ ¾Æ´Ñ °æ¿ì if $game_player.encounter_count == 0 and $game_map.encounter_list != [] # À̺¥Æ® ½ÇÇàÁßÀ̳ª ¿£Ä«¿îÆ® ±ÝÁöÁßÀÌ ¾Æ´Ï¸é unless $game_system.map_interpreter.running? or $game_system.encounter_disabled # ¹èƲ È£Ãâ Ç÷¡±×¸¦ ¼¼Æ® $game_temp.battle_calling = true $game_temp.battle_can_escape = true $game_temp.battle_can_lose = false $game_temp.battle_proc = nil # ¹«¸®¸¦ °áÁ¤ n = rand($game_map.encounter_list.size) $game_temp.battle_troop_id = $game_map.encounter_list[n] end end #´ÙÀ½ ¿¢ÅÍ¿¡°Ô if Input.trigger? (Input::R) unless $game_system.map_interpreter.running? or $game_system.menu_disabled @actor_index += 1 @actor_index %= $game_party.actors.size @map°ÔÀÌÁöwindow.actor = $game_party.actors[@actor_index] @map°ÔÀÌÁöwindow.°ÔÀÌÁö end end #ÀüÀÇ ¿¢ÅÍ¿¡°Ô if Input.trigger? (Input::L) unless $game_system.map_interpreter.running? or $game_system.menu_disabled @actor_index += $game_party.actors.size - 1 @actor_index %= $game_party.actors.size @map°ÔÀÌÁöwindow.actor = $game_party.actors[@actor_index] @map°ÔÀÌÁöwindow.°ÔÀÌÁö end end #THDO½ºÅ©¸³Æ® Á¾·á # B ¹öÆ°ÀÌ ¹Ð·ÈÀ» °æ¿ì if Input.trigger? (Input::B) # À̺¥Æ® ½ÇÇàÁßÀ̳ª ¸Þ´º ±ÝÁöÁßÀÌ ¾Æ´Ï¸é unless $game_system.map_interpreter.running? or $game_system.menu_disabled # ¸Þ´º È£Ãâ Ç÷¡±×¿Í SE ¿¬ÁÖ Ç÷¡±×¸¦ ¼¼Æ® $game_temp.menu_calling = true $game_temp.menu_beep = true end end # µð¹ö±× ¸ðµå°¡ ON ¶ÇÇÑ F9 Å°°¡ ¹Ð¸®°í ÀÖ´Â °æ¿ì if $DEBUG and Input.press? (Input::F9) # µð¹ö±× È£Ãâ Ç÷¡±×¸¦ ¼¼Æ® $game_temp.debug_calling = true end # Ç÷¹À̾îÀÇ À̵¿ÁßÀÌ ¾Æ´Ñ °æ¿ì unless $game_player.moving? @map°ÔÀÌÁöwindow.°ÔÀÌÁö#THDO½ºÅ©¸³Æ® # °¢Á¾ È­¸éÀÇ È£ÃâÀ» ½ÇÇà if $game_temp.battle_calling call_battle elsif $game_temp.shop_calling call_shop elsif $game_temp.name_calling call_name elsif $game_temp.menu_calling call_menu elsif $game_temp.save_calling call_save elsif $game_temp.debug_calling call_debug end end end end