#============================================================================== # ¡á RGSS3 8 ¹æÇâ À̵¿ ½ºÅ©¸³Æ® Ver1.01 by ¼º¼® #------------------------------------------------------------------------------ # ¡¡Ç÷¹À̾î ij¸¯ÅÍÀÇ 8 ¹æÇâ À̵¿À» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù. # ±× ¿Ü, Ç÷¹À̾îÀÇ À̵¿¿¡ °üÇÑ ÀϺΠ±â´É¿¡ ´ëÇØ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. # ±âº»ÀûÀ¸·Î ±â´ÉÈ®Àå ÀÇ·Ú³ª °æÇÕ ´ëÀÀÀº ¹Þ¾ÆµéÀÌ°í ÀÖÁö ¾Ê½À´Ï´Ù.¾çÇØ ¹Ù¶ø´Ï´Ù. # # °»½Å ÀÌ·Â # Ver1.01 ºÒÇÊ¿äÇÑ ±â¼ú ÀÏÁ¡À» »èÁ¦. # ½ºÀ­Ä¡ º¯È¯¿¡ ÀÇÇÑ ´ë½Ã ±ÝÁö ±â´ÉÀ» Ãß°¡. #============================================================================== module MOVE_CONTROL #ÀÌ ¹øÈ£ÀÇ ½ºÀ­Ä¡°¡ ON¶§, 8 ¹æÇâ À̵¿À» ±ÝÁöÇØ, 4 ¹æÇâ À̵¿¿¡¸¸ ÇÕ´Ï´Ù. FOUR_MOVE_SWITCH = 51 #ÀÌ ¹øÈ£ÀÇ ½ºÀ­Ä¡°¡ ON¶§, Ç÷¹À̾î ij¸¯ÅÍÀÇ Á¶ÀÛÀ» ±ÝÁöÇÕ´Ï´Ù. MOVE_SEAL_SWITCH = 52 #ÀÌ ¹øÈ£ÀÇ ½ºÀ­Ä¡°¡ ON¶§, ´ë½Ã ÆÇÁ¤ÀÌ ¿ªÀüÇÕ´Ï´Ù. #(Æò»ó½Ã°¡ ´ë½Ã, ´ë½Ã Å°¸¦ ´©¸£°í ÀÖ´Â »óÅ·ΠÅë»ó º¸ÇàÀÌ µË´Ï´Ù) DASH_REV = 53 #ÀÌ ¹øÈ£ÀÇ ½ºÀ­Ä¡°¡ ON¶§, ´ë½Ã¸¦ »ç¿ëÇÒ ¼ö ¾ø°Ô µË´Ï´Ù. #(½ºÀ­Ä¡¸¦ ¹Ù²Ù´Â ÀÏ·Î, µ¿ÀÏ ¸ÊÀ¸·Î # ´ë½ÃÀÇ ÇÒ ¼ö ÀÖ´Â Àå¼Ò¿Í ±×·¸Áö ¾ÊÀº Àå¼Ò¸¦ ³ª´­ ¼ö ÀÖ½À´Ï´Ù) DASH_SEAL = 54 #ÀÌ ¹øÈ£ÀÇ º¯¼ö°¡ 0º¸´Ù Ŭ ¶§, ´ë½Ã ¶§ÀÇ ¼Óµµ°¡ ´õ¿í Áõ°¡ÇÕ´Ï´Ù. DASH_PLUS = 19 end class Game_CharacterBase #-------------------------------------------------------------------------- # ¡Ü À̵¿ ¼ÓµµÀÇ Ãëµæ(´ë½Ã¸¦ °í·Á) #-------------------------------------------------------------------------- alias real_move_speed_8direction real_move_speed def real_move_speed if $game_variables[MOVE_CONTROL::DASH_PLUS] > 0 dash_plus = 1 + ($game_variables[MOVE_CONTROL::DASH_PLUS] * 0.1) @move_speed + (dash? ? dash_plus : 0) else real_move_speed_8direction end end end class Game_Player < Game_Character #-------------------------------------------------------------------------- # ¡Ü ´ë½Ã »óÅ ÆÇÁ¤ #-------------------------------------------------------------------------- alias dash_rev? dash? def dash? return false if $game_switches[MOVE_CONTROL::DASH_SEAL] == true if $game_switches[MOVE_CONTROL::DASH_REV] == true return false if @move_route_forcing return false if $game_map.disable_dash? return false if vehicle return false if Input.press?(:A) return true else dash_rev? end end #-------------------------------------------------------------------------- # ¡Ü ¹æÇâ ¹öÆ° ÀԷ¿¡ ÀÇÇÑ À̵¿ ó¸® #-------------------------------------------------------------------------- alias move_by_input_8direction move_by_input def move_by_input return if $game_switches[MOVE_CONTROL::MOVE_SEAL_SWITCH] == true if $game_switches[MOVE_CONTROL::FOUR_MOVE_SWITCH] == true move_by_input_8direction return end return if !movable? || $game_map.interpreter.running? if Input.press?(:LEFT) && Input.press?(:DOWN) if passable?(@x, @y, 4) && passable?(@x, @y, 2) && passable?(@x - 1, @y, 2) && passable?(@x, @y + 1, 4) && passable?(@x - 1, @y + 1, 6) && passable?(@x - 1, @y + 1, 8) move_diagonal(4, 2) elsif @direction == 4 if passable?(@x, @y, 2) && passable?(@x, @y + 1, 8) move_straight(2) elsif passable?(@x, @y, 4) && passable?(@x - 1, @y, 6) move_straight(4) end elsif @direction == 2 if passable?(@x, @y, 4) && passable?(@x - 1, @y, 6) move_straight(4) elsif passable?(@x, @y, 2) && passable?(@x, @y + 1, 8) move_straight(2) else move_straight(Input.dir4) if Input.dir4 > 0 end else move_straight(Input.dir4) if Input.dir4 > 0 end elsif Input.press?(:RIGHT) && Input.press?(:DOWN) if passable?(@x, @y, 6) && passable?(@x, @y, 2) && passable?(@x + 1, @y, 2) && passable?(@x, @y + 1, 6) && passable?(@x + 1, @y + 1, 4) && passable?(@x + 1, @y + 1, 8) move_diagonal(6, 2) elsif @direction == 6 if passable?(@x, @y, 2) && passable?(@x, @y + 1, 8) move_straight(2) elsif passable?(@x, @y, 6) && passable?(@x + 1, @y, 4) move_straight(6) end elsif @direction == 2 if passable?(@x, @y, 6) && passable?(@x + 1, @y, 4) move_straight(6) elsif passable?(@x, @y, 2) && passable?(@x, @y + 1, 8) move_straight(2) else move_straight(Input.dir4) if Input.dir4 > 0 end else move_straight(Input.dir4) if Input.dir4 > 0 end elsif Input.press?(:LEFT) && Input.press?(:UP) if passable?(@x, @y, 4) && passable?(@x, @y, 8) && passable?(@x - 1, @y, 8) && passable?(@x, @y - 1, 4) && passable?(@x - 1, @y - 1, 2) && passable?(@x - 1, @y - 1, 6) move_diagonal(4, 8) elsif @direction == 4 if passable?(@x, @y, 8) && passable?(@x, @y - 1, 2) move_straight(8) elsif passable?(@x, @y, 4) && passable?(@x - 1, @y, 6) move_straight(4) else move_straight(Input.dir4) if Input.dir4 > 0 end elsif @direction == 8 if passable?(@x, @y, 4) && passable?(@x - 1, @y, 6) move_straight(4) elsif passable?(@x, @y, 8) && passable?(@x, @y - 1, 2) move_straight(8) else move_straight(Input.dir4) if Input.dir4 > 0 end else move_straight(Input.dir4) if Input.dir4 > 0 end elsif Input.press?(:RIGHT) && Input.press?(:UP) if passable?(@x, @y, 6) && passable?(@x, @y, 8) && passable?(@x + 1, @y, 8) && passable?(@x, @y - 1, 6) && passable?(@x + 1, @y - 1, 2) && passable?(@x + 1, @y - 1, 4) move_diagonal(6, 8) elsif @direction == 6 if passable?(@x, @y, 8) && passable?(@x, @y - 1, 2) move_straight(8) elsif passable?(@x, @y, 6) && passable?(@x + 1, @y, 4) move_straight(6) else move_straight(Input.dir4) if Input.dir4 > 0 end elsif @direction == 8 if passable?(@x, @y, 6) && passable?(@x + 1, @y, 4) move_straight(6) elsif passable?(@x, @y, 8) && passable?(@x, @y - 1, 2) move_straight(8) else move_straight(Input.dir4) if Input.dir4 > 0 end else move_straight(Input.dir4) if Input.dir4 > 0 end else move_straight(Input.dir4) if Input.dir4 > 0 end unless moving? @direction = Input.dir4 unless Input.dir4 == 0 end end end