查看: 58|回复: 0

[转载发布] 关于强制行动带有公共事件的技能的bug及其修正方案

[复制链接]
  • TA的每日心情
    开心
    昨天 15:12
  • 签到天数: 36 天

    连续签到: 2 天

    [LV.5]常住居民I

    2027

    主题

    32

    回帖

    7235

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5160
    OK点
    16
    积分
    7235
    发表于 同元一千年八月三日(秋) | 显示全部楼层 |阅读模式
    战斗事件执行过程中,如果有强制行动的指令,并且这个指令是立即执行带有公共事件的技能或物品的话,会造成技能施放完毕后剩余的战斗事件不被执行的bug

    例如在默认工程队伍【幽灵*2】里面设置如下战斗事件:
    【条件:回合1  距离:战斗】
    强制行动:[1:幽灵],[十字斩],随机,立即执行
    显示文章:幽灵十字斩あああああああああ!!!
    在特技【57:十字斩】里面设置特技公共事件为001(公共事件是否有内容没有关系)

    设置完毕进行战斗测试,第一回合幽灵强制使用十字斩攻击,攻击完毕后不会显示“幽灵十字斩あああああああああ!!!”。也就是说,强制行动下面所有的事件指令都被忽略了

    BUG原因为Scene_Battle 4中执行行动附带的公共事件时,会抹除原来的事件指令列表。见Scene_Battle 4第440行:
    1.   #--------------------------------------------------------------------------  # ● 刷新画面 (主回合步骤 6 : 刷新)  #--------------------------------------------------------------------------  def update_phase4_step6    # 清除强制行动对像的战斗者    $game_temp.forcing_battler = nil    # 公共事件 ID 有效的情况下    if @common_event_id > 0      # 设置事件      common_event = $data_common_events[@common_event_id]      $game_system.battle_interpreter.setup(common_event.list, 0)    end    # 移至步骤 1    @phase4_step = 1  end复制代码
    复制代码
    其中 battle_interpreter.setup 会将原来正在执行的战斗事件指令列表清空。



    修正方案
    将 Scene_Battle 4 def update_phase4_step6 (447行)中
    1. $game_system.battle_interpreter.setup(common_event.list, 0)复制代码
    复制代码
    替换成
    1.       if $game_system.battle_interpreter.running?        $game_system.battle_interpreter.instance_variable_get(:@parameters)[0] = @common_event_id # 设置公共事件ID        $game_system.battle_interpreter.command_117 # 通过子解释器调用公共事件      else        $game_system.battle_interpreter.setup(common_event.list, 0)      end复制代码
    复制代码
    备注:
    · 这个BUG适用于RMXP,至于其他版本的RM,手头上没程序,不清楚,望热心的同学帮忙补充一下
    · 修正方案没有提供傻瓜式补丁的原因是各种战斗脚本太多,补丁的话只对应默认RM脚本。只要找到设置行动附带公共事件的地方,这个修正应该适合大部分战斗脚本

                 本帖来自P1论坛作者叶子,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=216217  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-10 08:07 , Processed in 0.063912 second(s), 43 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表