Project1

标题: VA阻碍后延时穿过NPC事件 [打印本页]

作者: Mr.Jin    时间: 2020-9-4 23:40
标题: VA阻碍后延时穿过NPC事件
有时我们会需要做一个"持续移动后穿过NPC"的效果,避免被随意行走的NPC把路堵死。

RUBY 代码复制
  1. # By Lanza Schneider
  2. # 2020.09.04
  3. # 在你想要穿过的事件中添加一条 crushable 注释即可
  4. class Game_Event
  5.   def crushable?
  6.     @crushable
  7.   end
  8.  
  9.   alias :setup_page_2020090400 :setup_page
  10.   def setup_page(*args)
  11.     setup_page_2020090400 *args
  12.     @crushable = false
  13.     @page.list.each do |command|
  14.       if command.code == 108 && command.parameters[0] == 'crushable'
  15.         @crushable = true
  16.         break
  17.       end
  18.     end
  19.   end
  20. end
  21.  
  22. class Game_Player
  23.   alias :update_2020090400 :update
  24.   def update *args
  25.     @crushed = false
  26.     update_2020090400 *args
  27.     @crush_count = @crushed ? @crush_count + 1 : 0
  28.   end
  29.  
  30.   def collide_with_events?(x, y)
  31.     $game_map.events_xy_nt(x, y).any? do |event|
  32.       result = event.normal_priority? || self.is_a?(Game_Event)
  33.       if result && event.crushable?
  34.         @crushed = true
  35.         result = false if @crush_count > 30
  36.       end
  37.       result
  38.     end
  39.   end
  40. end





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1