[Hướng Dẫn] [Tip] Tăng thêm tốc độ di chuyển

sanggameboysanggameboy Posts: 1,943Registered
[align=center][size=x-large]Tăng thêm tốc độ di chuyển[/size]
PK8


Bình thường trong RPG Maker VX ACE, tốc độ Event hay Palyer chỉ được đến mức 6.
Nếu như bạn đang có ý định di chuyển một Event với tốc độ nhanh hơn như vậy thì thủ thuật nhỏ này sẽ giúp ích cho bạn.

  1. Tạo một Event cần được di chuyển
  2. Điều khiển Event đó bằng Moveroute, và trong cái Moveroute đó, bạn gọi Script:
    instance_eval("@move_speed += 1") #thay số bất kì
  3. Enjoy :D

Còn nếu muốn nhân vật chính tăng tốc độ di chuyển thì gọi script này:
$game_player.instance_eval("@move_speed += 1") #thay số bất kì[/align]

Comments

  • FuyukiFuyuki Posts: 450Registered
    Dùng trong XP được không ạ :D
  • sanggameboysanggameboy Posts: 1,943Registered
    Fuyuki wrote:
    Dùng trong XP được không ạ :D

    Sang cũng không biết vì chưa thử :D
  • WuakaWuaka Posts: 293Registered
    Ồ, cám ơn a Sang nhé ( nút thanks đâu rồi nhỉ )
    Dự án e đang làm cần tốc độ di chuyển lắm
  • ngọa hổngọa hổ Posts: 65Registered
    xp + vx thay instance_eval thành eval
    eval("@move_speed = 100")
    eval("@move_speed = 10")
    đơn vị, pixel/frame
    p/s: chưa test :))
  • leequangsonleequangson Posts: 730Registered
    Đây là cách mình tăng tốc độ di chuyển cho nhân vật dùng AGI (và mình đang dùng nó với XAS). Với cách này chỉ tốc độ ko còn chỉ ở các mức độ từ 1 đến 6 mà nó được chia ra thành từng mức độ rất nhỏ, và có thể chậm hơn 1 hoặc nhanh hơn 6.
    # Yêu cầu: XAS 0.6 trở lên, dùng cho VX ACE
    
    class Game_System
      alias agi_move_var_switch initialize
      def initialize
        agi_move_var_switch
        @agi_move_var   = true # cái này để bật/tắt add-on
      end
      attr_accessor :agi_move_var
    end
    
    class Game_Character < Game_CharacterBase
      attr_accessor :base_move_speed
      attr_accessor :dash_move_speed
      attr_accessor :move_speed
    
      @base_speed = 0
      @dash_speed = 0
      
      alias agi_move_var update_battler_move_speed
      def update_battler_move_speed
        if $game_system.agi_move_var
          @dash_move_speed = @dash_active ? DASH_MOVE_SPEED : 0
          if battler.is_a?(Game_Actor)
            sp1 = @base_speed = 1.5 + ($game_party.members[0].agi * 0.05).to_f
            sp2 = @dash_speed = 0.1 + ($game_party.members[0].agi * 0.025).to_f
          else
            sp1 = @base_move_speed
            sp2 = @dash_move_speed
          end
          sp3 = self.battler.state_move_speed
          if @dash_active
            @move_speed = (sp1 + sp2 + sp3)
          else
            @move_speed = (sp1 + sp3)
          end
        else
          agi_move_var
        end
      end
    end
    
    Lưu ý: chỉ dùng với XAS Hero ACE 0.6 trở lên.
  • sanggameboysanggameboy Posts: 1,943Registered
    Đây là cách mình tăng tốc độ di chuyển cho nhân vật dùng AGI (và mình đang dùng nó với XAS). Với cách này chỉ tốc độ ko còn chỉ ở các mức độ từ 1 đến 6 mà nó được chia ra thành từng mức độ rất nhỏ, và có thể chậm hơn 1 hoặc nhanh hơn 6.
    class Game_Character < Game_CharacterBase
      attr_accessor :base_move_speed
      attr_accessor :dash_move_speed
      attr_accessor :move_speed
    
      @base_speed = 0
      @dash_speed = 0
      
      alias agi_move_var update_battler_move_speed
      def update_battler_move_speed
        if $game_system.agi_move_var
          @dash_move_speed = @dash_active ? DASH_MOVE_SPEED : 0
          if battler.is_a?(Game_Actor)
            sp1 = @base_speed = 1.5 + ($game_party.members[0].agi * 0.05).to_f
            sp2 = @dash_speed = 0.1 + ($game_party.members[0].agi * 0.025).to_f
          else
            sp1 = @base_move_speed
            sp2 = @dash_move_speed
          end
          sp3 = self.battler.state_move_speed
          if @dash_active
            @move_speed = (sp1 + sp2 + sp3)
          else
            @move_speed = (sp1 + sp3)
          end
        else
          agi_move_var
        end
      end
    end
    
    Lưu ý: chỉ dùng với XAS Hero ACE 0.6 trở lên.

    1. Dù mình đang mù script nhưng nhìn qua thì trông có vẻ chả liên quan gì đến tăng tốc độ nhân vật. (Dash khác, Walk khác =)) )
    2. Dùng cách mình đưa thì nó đơn giản và tiện dụng hơn :D
  • leequangsonleequangson Posts: 730Registered
    1. Dù mình đang mù script nhưng nhìn qua thì trông có vẻ chả liên quan gì đến tăng tốc độ nhân vật. (Dash khác, Walk khác =)) )
    2. Dùng cách mình đưa thì nó đơn giản và tiện dụng hơn :D

    1. Nhầm rồi, có đấy.
    Để mình giải thích thêm: base_speed là tốc độ lúc walk, dash_speed thì biết rồi đấy
    2. Đúng rồi, đơn giản. Nhưng tăng tốc độ cho player bằng AGI thì sẽ khiến cho game sinh động hơn. AGI càng cao thì đi càng nhanh.
    p/s: đã sửa lại script
  • sanggameboysanggameboy Posts: 1,943Registered
    1. Dù mình đang mù script nhưng nhìn qua thì trông có vẻ chả liên quan gì đến tăng tốc độ nhân vật. (Dash khác, Walk khác =)) )
    2. Dùng cách mình đưa thì nó đơn giản và tiện dụng hơn :D

    1. Nhầm rồi, có đấy.
    Để mình giải thích thêm: base_speed là tốc độ lúc walk, dash_speed thì biết rồi đấy
    2. Đúng rồi, đơn giản. Nhưng tăng tốc độ cho player bằng AGI thì sẽ khiến cho game sinh động hơn. AGI càng cao thì đi càng nhanh.
    p/s: đã sửa lại script

    2 cái đều có thể tăng tốc độ như nhau. Có gì mà sinh động hơn -.-
  • leequangsonleequangson Posts: 730Registered
    2 cái đều có thể tăng tốc độ như nhau. Có gì mà sinh động hơn -.-

    Khác nhau. Vậy ngoài việc tham gia battle thì cái AGI để làm gì? Tất nhiên là phải kiếm việc làm cho nó.
    Đối với 1 game ko có battle thì cái AGI hoàn toàn vô dụng.
    Plug and play luôn thuận tiện hơn Script Call.
Sign In or Register to comment.