查看: 5950|回复: 3

[原创发布] [简单设置教程]暗雷战斗的胜、败、逃处理(更新插件版)

[复制链接]

遠航の猫咪

梦石
3
星屑
26947
在线时间
2423 小时
注册时间
2005-10-15
回帖
987

开拓者

发表于 2016-1-26 23:58:54 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 SailCat 于 2016-1-28 20:58 编辑

Ver 1.1 2016-1-28 更新插件化的此功能,避免修改系统脚本(或其他插件脚本),冲突可能较低


系统默认的暗雷战斗:可以逃,不能败,打了白打(不会触发任何剧情事件)

但只要修改3行脚本,就可以自行控制其处理方式

具体如下:
在Scene_Map,默认脚本的115-117行,可以找到这几句(如果是其他脚本,自己搜索,一般地图增强类脚本并不会动这个地方)
[pre lang="ruby" line="115"]          $game_temp.battle_can_escape = true
          $game_temp.battle_can_lose = false
          $game_temp.battle_proc = nil[/pre]
你把它改成下面这样子
[pre lang="ruby" line="115"]          $game_temp.battle_can_escape = (not $game_switches[1])
          $game_temp.battle_can_lose = $game_switches[2]
          $game_temp.battle_proc = Proc.new{|n| $game_switches[3 + n] = true}[/pre]

开关编号的1、2、3可以自己改。1的名字叫“禁止逃跑”,2的名字叫“可以失败”,而3-5的名字叫“胜利”“逃跑”和“失败”(这三个开关要连在一起,顺序不能错乱)
这样当游戏初始化时,开关1和2都为OFF,符合默认的暗雷战斗设定。
当剧情需要允许失败或可以逃跑时,打开1号或2号开关即可。

然后设置公共事件:需要3个,分别处理胜、败、逃的情况
以胜利为例:
目标:自动执行,开关:[0003:胜利]
内容为你需要在胜利后执行的东西,如某剧情中积累杀敌数啦,积累战斗胜场啦,获得额外的奖励啦等等。
在事件的最后十分重要的是,一定要将3号开关关掉!!!关掉!!!关掉!!!重要的事情说三遍!!!
如果你没啥要执行的东西,就直接关掉3号开关。

自然
逃跑的设置就是  目标:自动执行,开关:[0004:逃跑] 执行一堆东西后关掉4号开关,如果逃了白跑那就直接关开关
失败的设置就是  目标:自动执行,开关:[0005:失败] 执行一堆东西后关掉5号开关,如果败了然并卵那就直接关开关

范例在下面:
RandomBattleResult.zip (203.27 KB, 下载次数: 35, 售价: 2 星屑)

更新:暗雷战斗处理的插件化版本,插入到Main之前即可运行,修改的是很少有插件会去动的call_battle且用了alias,冲突可能极低
[fold=点击查看插件代码][pre lang="ruby"]#==============================================================================
# ■ 暗雷战后自定义处理 (by SailCat)
#------------------------------------------------------------------------------
#  设定五个开关,编号见下面的恒量。
#   设定三个公共事件,自动执行,条件开关分别为下面的随机战胜、逃、败的开关
#   在公共事件中,你可以编写在暗雷战后希望执行的任何内容,但事件编写完成后
#   一定要★★★关闭★★★相应的开关,以防地图卡死,切记!
#==============================================================================

class Scene_Map
  
  #--------------------------------------------------------------------------
  # ● 恒量
  #--------------------------------------------------------------------------
  CANNOT_RUN_SWITCH  = 1   # 不允许逃跑的开关  ON: 不能逃;OFF: 可以逃(默认)
  CAN_LOSE_SWITCH    = 2   # 允许失败的开关    ON: 可以败;OFF: 不能败(默认)
  VICTORY_SWITCH     = 3   # 随机战胜利后,会自动打开此开关,以便公共事件处理
  ESCAPE_SWITCH      = 4   # 随机战逃跑后,会自动打开此开关,以便公共事件处理
  DEFEAT_SWITCH      = 5   # 随机战失败后,会自动打开此开关,以便公共事件处理
  
  alias sailcat_call_battle call_battle
  #--------------------------------------------------------------------------
  # ● 调用战斗
  #--------------------------------------------------------------------------
  def call_battle
    # 是暗雷战斗的情况下
    if $game_temp.battle_proc == nil
      # 重新定义各项参数
      $game_temp.battle_can_escape = (not $game_switches[CANNOT_RUN_SWITCH])
      $game_temp.battle_can_lose = $game_switches[CAN_LOSE_SWITCH]
      $game_temp.battle_proc = Proc.new { |n|
        $game_switches[[VICTORY_SWITCH, ESCAPE_SWITCH, DEFEAT_SWITCH][n]]=true
      }
    end
    # 呼叫战斗画面
    sailcat_call_battle
  end
end[/pre][/fold]
相应的范例工程:
RandomBattleResult (addon).zip (204.06 KB, 下载次数: 57, 售价: 2 星屑)

评分

参与人数 2星屑 +150 赞 +1 收起 理由
y967 + 1 认可答案
RyanBern + 150 收录为XP图书馆教程

查看全部评分

SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。

标题党66RPG支部书记
职务:66RPG灌水局局长<

梦石
0
星屑
79
在线时间
624 小时
注册时间
2006-2-25
回帖
2383

开拓者冬季迷宫创意大赛亚军第4届短篇游戏比赛冠军

发表于 2016-1-27 00:04:48 | 显示全部楼层
我是来为猫子挽尊的,氛围大烘托术!
回复

使用道具 举报

遠航の猫咪

梦石
3
星屑
26947
在线时间
2423 小时
注册时间
2005-10-15
回帖
987

开拓者

 楼主| 发表于 2016-1-28 20:56:25 | 显示全部楼层
已更新插件版本,欢迎大家采用
SailCat (小猫子·要开心一点) 共上站 24 次,发表过 11 篇文章 上 次 在: [2006年01月28日11:41:18 星期六] 从 [162.105.120.91] 到本站一游。
回复

使用道具 举报

梦石
0
星屑
82
在线时间
124 小时
注册时间
2011-10-6
回帖
17
发表于 2019-3-18 21:43:51 | 显示全部楼层
前来学习
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部