Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Need help installing scripts

ok, i know just about nothing about installing mods, scripts and stuff in to rpg maker xp.
I have a few Qs

When you download a mod or something like that, for instance "Advanced 8 Directional Movement",(i found that on this site) how do you put that your game?

it has a folder called "Advanced 8 Directional Movement" and in that folder it has
A folder called data and one called Graphics. and three other things called game.
its like it is a game without sound.
so how do i make my game have 8 directional movement?
I cannot just copy all the data files onto my game because then i will lose all my data.':| I do not know what to do, i just lost a game i was working on for a week because i wanted a different type of battle, i mixed up the data, now i have to restart my game. Please Help!
 

Mea

Member

Open two instances of RMXP. Open both projects, yours and the demo for Advanced 8 Directional movement, one in each instance.

Go into the script listing on the demo. Scroll down until you start getting to the custom scripts. Right-click on the first of the custom scripts and select "Copy".

Go to your project, open the script listing, scroll down until you see a script labeled "main" Right Click on it and select "Insert" (this is just for extra space above the "Main" script.) Right click on the blank entry and select "Paste".

Repeat for the rest of the custom scripts from one to the other.

Hope that helps.
 
OK, copy this script below main; you don't need an eight directional charset to use it and it has a run script. I don't remember where I got it, but it has a website in the script.
Code:
# ?S?????h?b?g??? Ver ??
# ?z?z???E?T?|?[?gURL
# http://members.jcom.home.ne.jp/cogwheel/

#==============================================================================
# ?? Game_Player
#------------------------------------------------------------------------------
# ?@?v???C???[???????N???X????B?C?x???g??N?????????A?}?b?v??X?N???[??????
# ?@?\?????????????B????N???X??C???X?^???X?? $game_player ??Q?????????B
#==============================================================================

class Game_Player < Game_Character
 #--------------------------------------------------------------------------
 # ?? ??
 #--------------------------------------------------------------------------
UP    = 48               
DOWN  = 0              
SIDE  = 24               # ???E??????]?T(0 < SIDE <63)
 SLANT = false               # ??????[?g?????????A???x?C??
 #--------------------------------------------------------------------------
 # ?? ???J?C???X?^???X???
 #--------------------------------------------------------------------------
 attr_reader   :event                    # ?C?x???g????????x
 attr_accessor :move_speed               # ??????x
 #--------------------------------------------------------------------------
 # ?? ?t???[???X?V
 #--------------------------------------------------------------------------
 alias :update_original :update
 def update
   # @walk:???s???x @dash:?_?b?V??????????x
   # @event:?C?x???g????????x?i0?????A?C?x???g??????x??X????????j
   @walk = 3
   @dash = 4
   @event = 3
   @dot_m = true
   #?_?b?V???@?\?B?G???^?[?L?[???????????????A??????x????X?????B
   unless moving? or $game_system.map_interpreter.running? or
           @move_route_forcing or $game_temp.message_window_showing
     if @walk != @dash
       if Input.press?(Input::C)
         if @move_speed != @dash
           @move_speed = @dash
         end
       else
         if @move_speed != @walk
           @move_speed = @walk
         end
       end
     end
   end
   if @revise_x == nil and @revise_y == nil
     @revise_x = 0
     @revise_y = 0
   end
   unless @dot_m
     update_original
     return
   end
   if @move_route_forcing
     # ???[?J?????????????????????L??
     last_moving = moving?
     # ???[?J?????????W???L??
     last_real_x = @real_x
     last_real_y = @real_y
     # ???W?????????????
     if (@revise_x != 0 or @revise_y != 0) and not jumping? and @move == true
       if @revise_x != @real_x - @x * 128 or @revise_y != @real_y - @y * 128
         @revise_x = @real_x - @x * 128
         @revise_y = @real_y - @y * 128
       end
       # ???????distance1???W????distance2?????
       distance1 = 2 ** @move_speed
       distance2 = Math.sqrt(@revise_x ** 2 + @revise_y ** 2)
       # ???????????W???????z??????
       if distance1 > distance2
         # ?*???I??????W?????????
         @real_x = @real_x - @revise_x
         @real_y = @real_y - @revise_y
         @revise_x = 0
         @revise_y = 0
         anime_update
       # ???????????W??????B???????
       else
         # ???????????W???????Â*
         @real_x -= (distance1 * @revise_x / distance2).round
         @real_y -= (distance1 * @revise_y / distance2).round
         @revise_x = @real_x - @x * 128
         @revise_y = @real_y - @y * 128
         anime_update
       end
     else
       super
     end
   else
     @move = false
     # ??????A?C?x???g???s???A??????[?g?*?????A
     # ???b?Z?[?W?E?B???h?E?\???????????????????
     unless moving? or $game_system.map_interpreter.running? or
            @move_route_forcing or $game_temp.message_window_showing
       @event_run = false
       # ?????{?^?????????????????A?????????v???C???[?????
       case Input.dir8
       when 1
         move_lower_left_p
       when 2
         move_down_p
       when 3
         move_lower_right_p
       when 4
         move_left_p
       when 6
         move_right_p
       when 7
         move_upper_left_p
       when 8
         move_up_p
       when 9
         move_upper_right_p
       end
     end
     # ???[?J?????????W???L??
     last_real_x = @real_x
     last_real_y = @real_y
     # ???????
     @real_x = @x * 128 + @revise_x
     @real_y = @y * 128 + @revise_y
     # ???[?J?????????????????????L??
     last_moving = moving?
     # ???W?X?V
     move_on
     # ???????W???O????W????????
     if (last_real_x != @real_x or last_real_y != @real_y)
       @move_distance = 0 if @move_distance == nil
       @move_distance += Math.sqrt((last_real_x - @real_x) ** 2 +
                                     (last_real_y - @real_y) ** 2)
       if @move_distance >= 128
         @move_distance %= 128
         increase_steps
       end
       # ?A?j???[?V???????X?V
       anime_update
     else
       @pattern = 0
     end
   end
   # ?L?????N?^?[???????????A???????????u?????????????
   if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
     # ?}?b?v??????X?N???[??
     $game_map.scroll_down(@real_y - last_real_y)
   end
   # ?L?????N?^?[???????????A???????????u?????????????
   if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
     # ?}?b?v??????X?N???[??
     $game_map.scroll_left(last_real_x - @real_x)
   end
   # ?L?????N?^?[???E???????A???????????u???????????E???
   if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
     # ?}?b?v???E??X?N???[??
     $game_map.scroll_right(@real_x - last_real_x)
   end
   # ?L?????N?^?[???????????A???????????u???????????????
   if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
     # ?}?b?v??????X?N???[??
     $game_map.scroll_up(last_real_y - @real_y)
   end
   # ?O???v???C???[???????????????
   if last_moving
     # ????u??C?x???g????G??????C?x???g?N??????
     result = check_event_trigger_here([1,2])
     # ?N???????C?x???g???????
     if result == false
       # ?f?o?b?O???[?h?? ON ???? CTRL ?L?[?????????????????????
       unless $DEBUG and Input.press?(Input::CTRL)
         # ?G???J?E???g ?J?E???g?_?E??
         if @encounter_count > 0
           @encounter_count -= 1
         end
       end
     end
   end
   # C ?{?^????????????
   if Input.trigger?(Input::C)
     # ????u??????????C?x???g?N??????
     check_event_trigger_here([0])
     check_event_trigger_there([0,1,2])
   end
 end
 #--------------------------------------------------------------------------
 # ?? ?I?u?W?F?N?g??????
 #--------------------------------------------------------------------------
 def initialize
   @revise_x = 0
   @revise_y = 0
   @move == false
   super
 end
 #--------------------------------------------------------------------------
 # ?? ???????
 #--------------------------------------------------------------------------
 def moving?
   unless @dot_m
     result = super
     return result
   end
   # ?*?????????I???W?i???????????????
   if @move_route_forcing
     if @move == false
       return false
     end
     super
   # ?????????W???????W???????????????????
   else
     return (@x != (@real_x / 128.0).round or @y != (@real_y / 128.0).round)
   end
 end
 #--------------------------------------------------------------------------
 # ?? ???????
 #--------------------------------------------------------------------------
 def moving_a?
   if @move == false
     if (@move_route.list[@move_route_index].code <= 14 or
         @move_route.list[@move_route_index].code == 25)
       @move = true
     end
     return false
   end
   moving?
 end
 #--------------------------------------------------------------------------
 # ?? ?t???[???X?V (?W?????v)
 #--------------------------------------------------------------------------
 def update_jump
   # ?W?????v?J?E???g?? 1 ????
   @jump_count -= 1
   # ?V???????W???v?Z
   @real_x = (@real_x * @jump_count + @x * 128) / (@jump_count + 1)
   @real_y = (@real_y * @jump_count + @y * 128) / (@jump_count + 1)
   if @jump_count == 0
     @revise_x = 0
     @revise_y = 0
   end
 end
 #--------------------------------------------------------------------------
 # ?? ????^?C?v : ?J?X?^??
 #--------------------------------------------------------------------------
 def move_type_custom
   unless @dot_m
     super
     return
   end
   # ???~????????????f
   if jumping? or moving_a?
     return
   end
   # ????R?}???h????X?g????????B?????????[?v
   while @move_route_index < @move_route.list.size
     # ????R?}???h????
     command = @move_route.list[@move_route_index]
     # ?R?}???h?R?[?h 0 ?? (???X?g????) ???
     if command.code == 0
       # ?I?v?V???? [???????J?????] ?? ON ???
       if @move_route.repeat
         # ??????[?g??C???f?b?N?X?????????
         @move_route_index = 0
       end
       # ?I?v?V???? [???????J?????] ?? OFF ???
       unless @move_route.repeat
         # ??????[?g?*???????
         if @move_route_forcing and not @move_route.repeat
           # ??????[?g??*????????
           @move_route_forcing = false
           # ?I???W?i?????????[?g?????A
           @move_route = @original_move_route
           @move_route_index = @original_move_route_index
           @original_move_route = nil
         end
         # ???~?J?E???g???N???A
         @stop_count = 0
       end
       return
     end
     # ????n?R?}???h (???????`?W?????v) ???
     if command.code <= 14
       # ?R?}???h?R?[?h?????
       case command.code
       when 1  # ??????
         move_down
       when 2  # ??????
         move_left
       when 3  # ?E????
         move_right
       when 4  # ??????
         move_up
       when 5  # ????????
         move_lower_left
       when 6  # ?E??????
         move_lower_right
       when 7  # ????????
         move_upper_left
       when 8  # ?E??????
         move_upper_right
       when 9  # ?????_??????
         move_random
       when 10  # ?v???C???[???Â*
         move_toward_player
       when 11  # ?v???C???[??????????
         move_away_from_player
       when 12  # ?????O?i
         move_forward
       when 13  # ????????
         move_backward
       when 14  # ?W?????v
         jump(command.parameters[0], command.parameters[1])
       end
       # ?I?v?V???? [????????????????] ?? OFF ??A??????s???
       if not @move_route.skippable and not moving? and not jumping?
         return
       end
       @move_route_index += 1
       return
     end
     # ?E?F?C?g???
     if command.code == 15
       # ?E?F?C?g?J?E???g?????
       @wait_count = command.parameters[0] * 2 - 1
       @move_route_index += 1
       return
     end
     # ??????X?n??R?}???h???
     if command.code >= 16 and command.code <= 26
       # ?R?}???h?R?[?h?????
       case command.code
       when 16  # ???????*
         turn_down
       when 17  # ???????*
         turn_left
       when 18  # ?E?????*
         turn_right
       when 19  # ???????*
         turn_up
       when 20  # ?E?? 90 ?x???]
         turn_right_90
       when 21  # ???? 90 ?x???]
         turn_left_90
       when 22  # 180 ?x???]
         turn_180
       when 23  # ?E?????? 90 ?x???]
         turn_right_or_left_90
       when 24  # ?????_????????]??
         turn_random
       when 25  # ?v???C???[????????*
         turn_toward_player
       when 26  # ?v???C???[??t?????*
         turn_away_from_player
       end
       @move_route_index += 1
       return
     end
     # ???????R?}???h???
     if command.code >= 27
       # ?R?}???h?R?[?h?????
       case command.code
       when 27  # ?X?C?b?` ON
         $game_switches[command.parameters[0]] = true
         $game_map.need_refresh = true
       when 28  # ?X?C?b?` OFF
         $game_switches[command.parameters[0]] = false
         $game_map.need_refresh = true
       when 29  # ??????x???X
         @move_speed = command.parameters[0]
       when 30  # ????p?x???X
         @move_frequency = command.parameters[0]
       when 31  # ??????A?j?? ON
         @walk_anime = true
       when 32  # ??????A?j?? OFF
         @walk_anime = false
       when 33  # ???~???A?j?? ON
         @step_anime = true
       when 34  # ???~???A?j?? OFF
         @step_anime = false
       when 35  # ?????Å’? ON
         @direction_fix = true
       when 36  # ?????Å’? OFF
         @direction_fix = false
       when 37  # ?????? ON
         @through = true
       when 38  # ?????? OFF
         @through = false
       when 39  # ??O???\?? ON
         @always_on_top = true
       when 40  # ??O???\?? OFF
         @always_on_top = false
       when 41  # ?O???t?B?b?N??X
         @tile_id = 0
         @character_name = command.parameters[0]
         @character_hue = command.parameters[1]
         if @original_direction != command.parameters[2]
           @direction = command.parameters[2]
           @original_direction = @direction
           @prelock_direction = 0
         end
         if @original_pattern != command.parameters[3]
           @pattern = command.parameters[3]
           @original_pattern = @pattern
         end
       when 42  # ?s?????x???X
         @opacity = command.parameters[0]
       when 43  # ???????@???X
         @blend_type = command.parameters[0]
       when 44  # SE ????t
         $game_system.se_play(command.parameters[0])
       when 45  # ?X?N???v?g
         result = eval(command.parameters[0])
       end
       @move_route_index += 1
       return
     end
   end
 end
 #--------------------------------------------------------------------------
 # ?? ??????
 #--------------------------------------------------------------------------
 def move_down_p
   # ???????*
   turn_down
   # ??????????Z?o
   distance = 2 ** @move_speed
   down1(((@x * 128 + @revise_x) / 128.0).round,
         ((@y * 128 + @revise_y) / 128.0).round, distance, true)
 end
 #--------------------------------------------------------------------------
 # ?? ????????\?????????????P
 #--------------------------------------------------------------------------
 def down1(x, y, distance, down = false)
   result = down2(x, y, distance)
   if result == false
     @event_run = check_event_trigger_touch(x, y+1)
     return result
   end
   if @revise_x < -SIDE
     result = down2(x, y + 1, distance, 4)
     result &= down2(x - 1, y, distance)
     if result == false
       if down
         move_lower_right_p
         if @revise_x > SIDE
           @revise_x = SIDE
         end
       end
       return result
     end
   elsif @revise_x > SIDE
     result = down2(x, y + 1, distance, 6)
     result &= down2(x + 1, y, distance)
     if result == false
       if down
         move_lower_left_p
         if @revise_x < -SIDE
           @revise_x = -SIDE
         end
       end
       return result
     end
   end
   # ????????\?????????????
   @revise_y += distance
   return result
 end
 #--------------------------------------------------------------------------
 # ?? ????????\?????????????Q
 #--------------------------------------------------------------------------
 def down2(x, y, distance, d = 2)
   if @revise_y + distance > DOWN
     unless passable?(x, y, d)
       if @revise_y < DOWN
         @revise_y = DOWN
       end
       return false
     end
   end
   return true
 end
 #--------------------------------------------------------------------------
 # ?? ??????
 #--------------------------------------------------------------------------
 def move_left_p
   # ???????*
   turn_left
   distance = 2 ** @move_speed
   left1(((@x * 128 + @revise_x) / 128.0).round,
         ((@y * 128 + @revise_y) / 128.0).round, distance, true)
 end
 #--------------------------------------------------------------------------
 # ?? ????????\?????????????P
 #--------------------------------------------------------------------------
 def left1(x, y, distance, left = false)
   result = left2(x, y, distance)
   if result == false
     @event_run = check_event_trigger_touch(x-1, y)
     return result
   end
   if @revise_y < -UP
     result = left2(x - 1, y, distance, 8)
     result &= left2(x, y - 1, distance)
     if result == false
       if left
         move_lower_left_p
         if @revise_y > DOWN
           @revise_y = DOWN
         end
       end
       return result
     end
   elsif @revise_y > DOWN
     result = left2(x - 1, y, distance, 2)
     result &= left2(x, y + 1, distance)
     if result == false
       if left
         move_upper_left_p
         if @revise_y < -UP
           @revise_y = -UP
         end
       end
       return result
     end
   end
   @revise_x -= distance
   return result
 end
 #--------------------------------------------------------------------------
 # ?? ????????\?????????????Q
 #--------------------------------------------------------------------------
 def left2(x, y, distance, d = 4)
   if @revise_x - distance < -SIDE
     unless passable?(x, y, d)
       if @revise_x > -SIDE
         @revise_x = -SIDE
       end
       return false
     end
   end
   return true
 end
 #--------------------------------------------------------------------------
 # ?? ?E????
 #--------------------------------------------------------------------------
 def move_right_p
     # ?E?????*
     turn_right
   distance = 2 ** @move_speed
   right1(((@x * 128 + @revise_x) / 128.0).round,
           ((@y * 128 + @revise_y) / 128.0).round, distance, true)
 end
 #--------------------------------------------------------------------------
 # ?? ?E??????\?????????????P
 #--------------------------------------------------------------------------
 def right1(x, y, distance, right = false)
   result = right2(x, y, distance)
   if result == false
     @event_run = check_event_trigger_touch(x+1, y)
     return result
   end
   if @revise_y < -UP
     result = right2(x + 1, y, distance, 8)
     result &= right2(x, y - 1, distance)
     if result == false
       if right
         move_lower_right_p
         if @revise_y > DOWN
           @revise_y = DOWN
         end
       end
       return result
     end
   elsif @revise_y > DOWN
     result = right2(x + 1, y, distance, 2)
     result &= right2(x, y + 1, distance)
     if result == false
       if right
         move_upper_right_p
         if @revise_y < -UP
           @revise_y = -UP
         end
       end
       return result
     end
   end
   @revise_x += distance
   return result
 end
 #--------------------------------------------------------------------------
 # ?? ?E??????\?????????????Q
 #--------------------------------------------------------------------------
 def right2(x, y, distance, d = 6)
   if @revise_x + distance > SIDE
     unless passable?(x, y, d)
       if @revise_x < SIDE
         @revise_x = SIDE
       end
       return false
     end
   end
   return true
 end
 #--------------------------------------------------------------------------
 # ?? ??????
 #--------------------------------------------------------------------------
 def move_up_p
   # ???????*
   turn_up
   # ??????
   distance = 2 ** @move_speed
   up1(((@x * 128 + @revise_x) / 128.0).round,
       ((@y * 128 + @revise_y) / 128.0).round, distance, true)
 end
 #--------------------------------------------------------------------------
 # ?? ????????\?????????????P
 #--------------------------------------------------------------------------
 def up1(x, y, distance, up = false)
   result = up2(x, y, distance)
   if result == false
     @event_run = check_event_trigger_touch(x, y-1)
     return result
   end
   if @revise_x < -SIDE
     result = up2(x, y - 1, distance, 4)
     result &= up2(x - 1, y, distance)
     if result == false
       if up
         move_upper_right_p
         if @revise_x > SIDE
           @revise_x = SIDE
         end
       end
       return result
     end
   elsif @revise_x > SIDE
     result = up2(x, y - 1, distance, 6)
     result &= up2(x + 1, y, distance)
     if result == false
       if up
         move_upper_left_p
         if @revise_x < -SIDE
           @revise_x = -SIDE
         end
       end
       return result
     end
   end
   @revise_y -= distance
   return result
 end
 #--------------------------------------------------------------------------
 # ?? ????????\?????????????Q
 #--------------------------------------------------------------------------
 def up2(x, y, distance, d = 8)
   if @revise_y - distance < -UP
     unless passable?(x, y, d)
       if @revise_y > -UP
         @revise_y = -UP
       end
       return false
     end
   end
   return true
 end
 #--------------------------------------------------------------------------
 # ?? ????????
 #--------------------------------------------------------------------------
 def move_lower_left_p
   # ?????Å’???????
   unless @direction_fix
     # ?E??????????????????A??????????????????????*
     @direction = (@direction == 6 ? 4 : @direction == 8 ? 2 : @direction)
   end
   # ????????
   distance = (2 ** @move_speed) / Math.sqrt(2)
   turn_left unless down1(((@x * 128 + @revise_x) / 128.0).round,
                           ((@y * 128 + @revise_y) / 128.0).round, distance)
   turn_down if @event_run
   unless @event_run
     if last_move?(@real_x, @real_y, 2, distance)
       result = check_event_trigger_here([1,2], false)
       if result == true
         return
       end
     end
     move_on
     if @revise_y > DOWN and -UP > @revise_y - distance
       @revise_y = DOWN
     end
     turn_down unless left1(((@x * 128 + @revise_x) / 128.0).round,
                           ((@y * 128 + @revise_y) / 128.0).round, distance)
     turn_left if @event_run
   end
 end
 #--------------------------------------------------------------------------
 # ?? ?E??????
 #--------------------------------------------------------------------------
 def move_lower_right_p
   # ?????Å’???????
   unless @direction_fix
     # ????????????????E???A??????????????????????*
     @direction = (@direction == 4 ? 6 : @direction == 8 ? 2 : @direction)
   end
   # ?E??????
   distance = (2 ** @move_speed) / Math.sqrt(2)
   turn_right unless down1(((@x * 128 + @revise_x) / 128.0).round,
                           ((@y * 128 + @revise_y) / 128.0).round, distance)
   turn_down if @event_run
   unless @event_run
     if last_move?(@real_x, @real_y, 2, distance)
       result = check_event_trigger_here([1,2], false)
       if result == true
         return
       end
     end
     move_on
     if @revise_y > DOWN and -UP > @revise_y - distance
       @revise_y = DOWN
     end
     turn_down unless right1(((@x * 128 + @revise_x) / 128.0).round,
                           ((@y * 128 + @revise_y) / 128.0).round, distance)
     turn_right if @event_run
   end
 end
 #--------------------------------------------------------------------------
 # ?? ????????
 #--------------------------------------------------------------------------
 def move_upper_left_p
   # ?????Å’???????
   unless @direction_fix
     # ?E??????????????????A??????????????????????*
     @direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @direction)
   end
   # ????????
   distance = (2 ** @move_speed) / Math.sqrt(2)
   turn_left unless up1(((@x * 128 + @revise_x) / 128.0).round,
                         ((@y * 128 + @revise_y) / 128.0).round, distance)
   turn_up if @event_run
   unless @event_run
     if last_move?(@real_x, @real_y, 8, distance)
       result = check_event_trigger_here([1,2], false)
       if result == true
         return
       end
     end
     move_on
     if @revise_y + distance > DOWN and -UP > @revise_y
       @revise_y = -UP
     end
     turn_up unless left1(((@x * 128 + @revise_x) / 128.0).round,
                           ((@y * 128 + @revise_y) / 128.0).round, distance)
     turn_left if @event_run
   end
 end
 #--------------------------------------------------------------------------
 # ?? ?E??????
 #--------------------------------------------------------------------------
 def move_upper_right_p
   # ?????Å’???????
   unless @direction_fix
     # ????????????????E???A??????????????????????*
     @direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction)
   end
   # ?E??????
   distance = (2 ** @move_speed) / Math.sqrt(2)
   turn_right unless up1(((@x * 128 + @revise_x) / 128.0).round,
                         ((@y * 128 + @revise_y) / 128.0).round, distance)
   turn_up if @event_run
   unless @event_run
     if last_move?(@real_x, @real_y, 8, distance)
       result = check_event_trigger_here([1,2], false)
       if result == true
         return
       end
     end
     move_on
     if @revise_y + distance > DOWN and -UP > @revise_y
       @revise_y = -UP
     end
     turn_up unless right1(((@x * 128 + @revise_x) / 128.0).round,
                           ((@y * 128 + @revise_y) / 128.0).round, distance)
     turn_right if @event_run
   end
 end
 #--------------------------------------------------------------------------
 # ?? ????u??C?x???g?N??????
 #--------------------------------------------------------------------------
 def check_event_trigger_here(triggers, run = true)
   result = false
   # ?C?x???g???s?????
   if $game_system.map_interpreter.running?
     return result
   end
   # ?S?C?x???g????[?v
   for event in $game_map.events.values
     # ?C?x???g????W??g???K?[?????v??????
     if event.x == ((@x * 128 + @revise_x) / 128.0).round and
         event.y == ((@y * 128 + @revise_y) / 128.0).round and
         triggers.include?(event.trigger)
       # ?W?????v????O??A?N??????????u??C?x???g???
       if not event.jumping? and event.over_trigger?
         if event.list.size > 1
           if run == true
             event.start
           end
           result = true
         end
       end
     end
   end
   return result
 end
 #--------------------------------------------------------------------------
 # ?? ???W?C??
 #--------------------------------------------------------------------------
 def move_on
   if @y < (@y + @revise_y / 128.0).round
     @y += 1
     @revise_y -= 128
   end
   if @x > (@x + @revise_x / 128.0).round
     @x -= 1
     @revise_x += 128
   end
   if @x < (@x + @revise_x / 128.0).round
     @x += 1
     @revise_x -= 128
   end
   if @y > (@y + @revise_y / 128.0).round
     @y -= 1
     @revise_y += 128
   end
 end
 #--------------------------------------------------------------------------
 # ?? ?A?j???[?V?????A?b?v?f?[?g
 #--------------------------------------------------------------------------
 def anime_update
   # ??????A?j???? ON ???
   if @walk_anime
     # ?A?j???J?E???g?? 1.5 ????
     @anime_count += 1.5
   # ??????A?j???? OFF ??A???~???A?j???? ON ???
   elsif @step_anime
     # ?A?j???J?E???g?? 1 ????
     @anime_count += 1
   end
   # ?A?j???J?E???g??????l??????????
   # ??????l??A???{?l 18 ??????????x * 1 ?????????l
   if @anime_count > 18 - @move_speed * 2
     # ???~???A?j???? OFF ???? ???~?????
     if not @step_anime and @stop_count > 0
       # ?p?^?[?????I???W?i??????
       @pattern = @original_pattern
     # ???~???A?j???? ON ????? ????????
     else
       # ?p?^?[?????X?V
       @pattern = (@pattern + 1) % 4
     end
     # ?A?j???J?E???g???N???A
     @anime_count = 0
   end
 end
 #--------------------------------------------------------------------------
 # ?? ?w????u????
 #--------------------------------------------------------------------------
 # ?I???W?i????C?x???g??????
 alias :moveto_original :moveto
 def moveto(x, y)
   # ?????W????????
   @revise_x = 0
   @revise_y = 0
   # ?I???W?i????C?x???g?????o??
   moveto_original(x, y)
 end
 #--------------------------------------------------------------------------
 # ?? ???????????????????
 #--------------------------------------------------------------------------
 def last_move?(x, y, direction, distance)
   if direction == 2 or direction == 6
     distance *= -1
   end
   if (direction == 2 or direction == 8) and
       (y / 128.0).round != ((y - distance) / 128.0).round
     return true
   end
   if (direction == 4 or direction == 6) and
       (x / 128.0).round != ((x - distance) / 128.0).round
     return true
   end
   return false
 end
end

#==============================================================================
# ?? Game_Character (???????` 1)
#------------------------------------------------------------------------------
# ?@?L?????N?^?[???????N???X????B????N???X?? Game_Player ?N???X?? Game_Event
# ?N???X??X?[?p?[?N???X?????g?p????????B
#==============================================================================

class Game_Character
 #--------------------------------------------------------------------------
 # ?? ?t???[???X?V (???)
 #--------------------------------------------------------------------------
 def update_move
   # ??????x?????}?b?v???W?n?????????????
   distance = 2 ** @move_speed
   if @x * 128 != @real_x and @y * 128 != @real_y and Game_Player::SLANT
     distance /= Math.sqrt(2)
   end
   # ?_?????W???????W???????
   if @y * 128 > @real_y
     # ??????
     @real_y = [@real_y + distance, @y * 128].min
   end
   # ?_?????W???????W???????
   if @x * 128 < @real_x
     # ??????
     @real_x = [@real_x - distance, @x * 128].max
   end
   # ?_?????W???????W?????E???
   if @x * 128 > @real_x
     # ?E????
     @real_x = [@real_x + distance, @x * 128].min
   end
   # ?_?????W???????W?????????
   if @y * 128 < @real_y
     # ??????
     @real_y = [@real_y - distance, @y * 128].max
   end
   # ??????A?j???? ON ???
   if @walk_anime
     # ?A?j???J?E???g?? 1.5 ????
     @anime_count += 1.5
   # ??????A?j???? OFF ??A???~???A?j???? ON ???
   elsif @step_anime
     # ?A?j???J?E???g?? 1 ????
     @anime_count += 1
   end
 end
end

#==============================================================================
# ?? Game_Event
#------------------------------------------------------------------------------
# ?@?C?x???g???????N???X????B??????????????C?x???g?y?[?W?????????A????????
# ?C?x???g???s????@?\????????????AGame_Map ?N???X???????g?p????????B
#==============================================================================

class Game_Event < Game_Character
 #--------------------------------------------------------------------------
 # ?? ?C?x???g?N??
 #--------------------------------------------------------------------------
 def start
   # ???s???e??????????
   if @list.size > 1
     # $game_player.event ??0??????
     if $game_player.event != 0
       # ??????x?? $game_player.event ?????
       $game_player.move_speed = $game_player.event
     end
     @starting = true
   end
 end
end
 
deathlife;241710":29ubqoxb said:
Thanks for the help, i have the scripts on my game now, but they are not working properly.
ok so for the 8 directional movement, http://www.rmxp.org/forums/downloads.php?do=file&id=342
I downloaded it, opened it with rmxp, opened the script editor, copied the scripts on to my game.
I then play tested it, but my actor could not move and i could only see the bottom half of him. Any advice???

That is an old version of my script. I suggest using the newer updated version. Here is a link to the topic Advanced 8-Directional Movement.
If you still have problems, please post in that thread and I will help.

I will also update the download manager version. Thank you for showing me it was outdated. I will have to update the download manager version Monday morning.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top