Project1

标题: 【脚写脚本】简易跑步时长限制 [打印本页]

作者: KB.Driver    时间: 2020-5-2 12:29
标题: 【脚写脚本】简易跑步时长限制
嗯,功能如题目所说,其他的不多说了,直接放图放脚本。
希望收脚本的客官能留个评论。



RUBY 代码复制
  1. ##
  2. # 跑步时长限制 by Calendar99
  3. #
  4. module CLD99
  5.   module DASH_TIME_LIMIT
  6.     # 跑步最长持续时间(单位:帧)
  7.     MAX_DASH_TIME = 90
  8.  
  9.     # 显示体力
  10.     DISPLAY_TIME_LIMIT = true
  11.  
  12.     # 体力较多时的颜色
  13.     COLOR1 = Color.new(0, 0, 255)
  14.  
  15.     # 体力较少时的颜色
  16.     COLOR2 = Color.new(255, 0, 0)
  17.   end
  18. end
  19.  
  20. class Game_Player
  21.   attr_reader :dash_time
  22.   alias initialize_for_dash_with_time_limit initialize
  23.   def initialize
  24.     initialize_for_dash_with_time_limit
  25.     @dash_time = CLD99::DASH_TIME_LIMIT::MAX_DASH_TIME
  26.   end
  27.   alias dash_without_time_limit dash?
  28.   def dash?
  29.     dash_without_time_limit && @dash_time > 0
  30.   end
  31.   alias update_for_dash_with_time_limit update
  32.   def update
  33.     update_for_dash_with_time_limit
  34.     if moving? && dash_without_time_limit
  35.       @dash_time = [@dash_time - 1, 0].max
  36.     else
  37.       @dash_time = [@dash_time + 1, CLD99::DASH_TIME_LIMIT::MAX_DASH_TIME].min
  38.     end
  39.   end
  40. end
  41.  
  42. class Sprite_Character
  43.   alias update_for_dash_time update
  44.   def update
  45.     update_for_dash_time
  46.     return unless character.is_a?(Game_Player)
  47.     return unless CLD99::DASH_TIME_LIMIT::DISPLAY_TIME_LIMIT
  48.     if character.dash_time < CLD99::DASH_TIME_LIMIT::MAX_DASH_TIME
  49.       display_dash_time
  50.     else
  51.       hide_dash_time
  52.     end
  53.   end
  54.   def display_dash_time
  55.     if !@sprite_dash_time
  56.       @sprite_dash_time = Sprite.new
  57.       @sprite_dash_time.ox = 16
  58.       @sprite_dash_time.oy = 4
  59.     end
  60.     if !@sprite_dash_time.bitmap
  61.       @bmp_dash_time1 = Bitmap.new(32, 8)
  62.       @bmp_dash_time1.fill_rect(0, 0, 32, 8, CLD99::DASH_TIME_LIMIT::COLOR1)
  63.       @bmp_dash_time2 = Bitmap.new(32, 8)
  64.       @bmp_dash_time2.fill_rect(0, 0, 32, 8, CLD99::DASH_TIME_LIMIT::COLOR2)
  65.     end
  66.     @sprite_dash_time.x = self.x
  67.     @sprite_dash_time.y = self.y + 4
  68.     rate = character.dash_time / CLD99::DASH_TIME_LIMIT::MAX_DASH_TIME.to_f
  69.     @sprite_dash_time.bitmap = rate < 0.3 ? @bmp_dash_time2 : @bmp_dash_time1
  70.     @sprite_dash_time.src_rect.width = 32 * rate
  71.     @sprite_dash_time.visible = true
  72.   end
  73.   def hide_dash_time
  74.     return unless @sprite_dash_time
  75.     @sprite_dash_time.visible = false   
  76.   end
  77.   alias dispose_for_dash_time dispose
  78.   def dispose
  79.     dispose_for_dash_time
  80.     @sprite_dash_time.dispose if @sprite_dash_time
  81.     @bmp_dash_time1.dispose if @bmp_dash_time1
  82.     @bmp_dash_time2.dispose if @bmp_dash_time2
  83.   end
  84. end

作者: MCCF    时间: 2020-5-2 14:03
熟悉的四字前缀hhhh
顶一个!虽然貌似没看懂怎么用(逃
作者: chanszeman1018    时间: 2020-5-10 01:44
提示: 作者被禁止或删除 内容自动屏蔽




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