查看: 2177|回复: 2

[已经解决] 暗雷可不可以制作一个遇敌提示?

[复制链接]
梦石
0
星屑
118
在线时间
197 小时
注册时间
2011-1-23
回帖
28
发表于 2015-1-29 12:43:36 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
就像有个遇敌条 一旦快要遇敌了,就会满or变色警告
遇敌后重新变成一开始的样子

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2015-1-29 13:54:14 | 显示全部楼层
本帖最后由 三途亚梦 于 2015-1-29 13:55 编辑

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

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

将这个步数赋值给特定的变量,就可以做到你想要的效果了,
这个数值是Game_Player中的@encounter_count。
回复

使用道具 举报

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2015-1-29 14:26:13 | 显示全部楼层
本帖最后由 喵呜喵5 于 2015-1-29 15:00 编辑

[pre lang="ruby" line="1"]=begin
===============================================================================
  遇敌条 By喵呜喵5
===============================================================================

【说明】  

  在地图上显示一个遇敌条

=end
$m5script ||= {};$m5script[:M5EW20150129] = 20150129
module M5EW20150129
#==============================================================================
# 设定部分
#==============================================================================

  X = 0

  Y = 0

  WIDTH = 120
  
  HEIGHT = 50
  
  # 设置遇敌条的X坐标、Y坐标、宽、高
  
  BACK = false
  
  # 设置为true时,遇敌条不显示窗口
  
  REVERSE = false
  
  # 设置为true时,遇敌条的显示方式变为随步数下降
  
  HIDE = false
  
  # 设置为true时,当开启禁用遇敌时隐藏遇敌条
  
  SWI = 0
  
  # 对应ID的开关打开时,隐藏遇敌条

#==============================================================================
# 设定结束
#==============================================================================
end
class Game_Player; attr_accessor :encounter_count; end
class Scene_Map
  alias m5_20150129_create_all_windows create_all_windows
  def create_all_windows
    m5_20150129_create_all_windows
    @m5_20150129_ew = Window_Base.new(M5EW20150129::X,M5EW20150129::Y,
      M5EW20150129::WIDTH,M5EW20150129::HEIGHT)
    @m5_20150129_ew.opacity = 0 if M5EW20150129::BACK
    class << @m5_20150129_ew
      include M5EW20150129
      def can_encounter?
        return false if $game_system.encounter_disabled
        $game_map.encounter_list.each do |encounter|
          next unless $game_player.encounter_ok?(encounter)
          return true
        end
        false
      end
      def update
        super
        self.visible = !$game_switches[SWI]
        self.visible = self.visible && can_encounter? if HIDE
        return unless self.visible
        rate = $game_player.encounter_count
        rate /= ($game_map.encounter_step * 2 + 1).to_f
        rate = 1.0 unless can_encounter?
        return if @rate && @rate == rate
        @rate = rate
        refresh
      end
      def refresh
        contents.clear
        draw_gauge(0, -5, contents.width,
          REVERSE ? @rate : 1.0 - @rate, hp_gauge_color1, hp_gauge_color2)
      end      
    end   
  end
end[/pre]

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 你是个好人

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部