Project1

标题: 暗雷可不可以制作一个遇敌提示? [打印本页]

作者: 冰风时瞬    时间: 2015-1-29 12:43
标题: 暗雷可不可以制作一个遇敌提示?
就像有个遇敌条 一旦快要遇敌了,就会满or变色警告
遇敌后重新变成一开始的样子
作者: 三途亚梦    时间: 2015-1-29 13:54
本帖最后由 三途亚梦 于 2015-1-29 13:55 编辑

遇敌是这样计算的,每次遇敌之后,会根据
rand(平均遇敌步数) + rand(平均遇敌步数) + 1
的公式生产下一次遇敌的具体步数。

当玩家移动到这个步数的时候就会遇敌。

将这个步数赋值给特定的变量,就可以做到你想要的效果了,
这个数值是Game_Player中的@encounter_count。
作者: 喵呜喵5    时间: 2015-1-29 14:26
本帖最后由 喵呜喵5 于 2015-1-29 15:00 编辑

RUBY 代码复制
  1. =begin
  2. ===============================================================================
  3.   遇敌条 By喵呜喵5
  4. ===============================================================================
  5.  
  6. 【说明】  
  7.  
  8.   在地图上显示一个遇敌条
  9.  
  10. =end
  11. $m5script ||= {};$m5script[:M5EW20150129] = 20150129
  12. module M5EW20150129
  13. #==============================================================================
  14. # 设定部分
  15. #==============================================================================
  16.  
  17.   X = 0
  18.  
  19.   Y = 0
  20.  
  21.   WIDTH = 120
  22.  
  23.   HEIGHT = 50
  24.  
  25.   # 设置遇敌条的X坐标、Y坐标、宽、高
  26.  
  27.   BACK = false
  28.  
  29.   # 设置为true时,遇敌条不显示窗口
  30.  
  31.   REVERSE = false
  32.  
  33.   # 设置为true时,遇敌条的显示方式变为随步数下降
  34.  
  35.   HIDE = false
  36.  
  37.   # 设置为true时,当开启禁用遇敌时隐藏遇敌条
  38.  
  39.   SWI = 0
  40.  
  41.   # 对应ID的开关打开时,隐藏遇敌条
  42.  
  43. #==============================================================================
  44. # 设定结束
  45. #==============================================================================
  46. end
  47. class Game_Player; attr_accessor :encounter_count; end
  48. class Scene_Map
  49.   alias m5_20150129_create_all_windows create_all_windows
  50.   def create_all_windows
  51.     m5_20150129_create_all_windows
  52.     @m5_20150129_ew = Window_Base.new(M5EW20150129::X,M5EW20150129::Y,
  53.       M5EW20150129::WIDTH,M5EW20150129::HEIGHT)
  54.     @m5_20150129_ew.opacity = 0 if M5EW20150129::BACK
  55.     class << @m5_20150129_ew
  56.       include M5EW20150129
  57.       def can_encounter?
  58.         return false if $game_system.encounter_disabled
  59.         $game_map.encounter_list.each do |encounter|
  60.           next unless $game_player.encounter_ok?(encounter)
  61.           return true
  62.         end
  63.         false
  64.       end
  65.       def update
  66.         super
  67.         self.visible = !$game_switches[SWI]
  68.         self.visible = self.visible && can_encounter? if HIDE
  69.         return unless self.visible
  70.         rate = $game_player.encounter_count
  71.         rate /= ($game_map.encounter_step * 2 + 1).to_f
  72.         rate = 1.0 unless can_encounter?
  73.         return if @rate && @rate == rate
  74.         @rate = rate
  75.         refresh
  76.       end
  77.       def refresh
  78.         contents.clear
  79.         draw_gauge(0, -5, contents.width,
  80.           REVERSE ? @rate : 1.0 - @rate, hp_gauge_color1, hp_gauge_color2)
  81.       end      
  82.     end   
  83.   end
  84. end





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