佳丽云

英雄无敌3-WoG中文站

 找回密码
 英雄注册|Register
查看: 2842|回复: 20

官方erm的一个bug分析

[复制链接]
  • TA的每日心情
    无聊
    2016-8-14 22:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]投石矮人

    353

    回帖

    7029

    金币

    1

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    2052

    退役版主社区QQ达人

    发表于 2017-11-24 18:46:33 | 显示全部楼层 |阅读模式
    本帖最后由 hell____fire 于 2017-11-24 18:50 编辑

    这个bug之前有玩家发现过,但都没有研究出明确的问题所在。就是wog技能加强中,开启了鹰眼术加强二也就是可以按几率阻止敌方英雄施放有益魔法的选项后,拥有鹰眼术的英雄在阻止敌方释放“瞬间移动”魔法时会导致游戏跳出。经个人反复测试,阻止其他有益魔法(包括镜像魔法)都不会导致游戏跳出,只有该魔法会导致跳出。bug的原理我个人的理解为瞬移魔法在释放时有两次动作(选一次移一次),鹰眼术阻止魔法的脚本,未考虑到有多个魔法动作的魔法,导致了这样问题出现。由于该选项可以说平衡性和趣味性都不错,在此我附上该功能的官方erm(取自论坛发布的平台版),希望有大神能解决这个bug。

    enhanced secondary skills.zip (11.61 KB, 下载次数: 3)

  • TA的每日心情
    开心
    2015-12-9 01:09
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]火元素使者

    1839

    回帖

    8223

    金币

    8

    精华

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    10806

    社区QQ达人

    发表于 2017-11-24 21:47:19 | 显示全部楼层
    禁止有益魔法时,应该是按照魔法编号判定的。即便不是按编号,你自己加一个判定就是了,如果是瞬移魔法,直接退出鹰眼术流程就行了。

    点评

    这个代码我看了不是很明白,官方好像有按照魔法编号判定的,也有按照d敌方英雄施法对象是否自身部队判定的,我把代码摘录如下 ** start of pre-action trigger !?BG0&v7187=1;  详情 回复 发表于 2017-11-24 22:38
  • TA的每日心情
    无聊
    2016-8-14 22:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]投石矮人

    353

    回帖

    7029

    金币

    1

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    2052

    退役版主社区QQ达人

     楼主| 发表于 2017-11-24 22:38:12 | 显示全部楼层
    XEricSin 发表于 2017-11-24 21:47
    禁止有益魔法时,应该是按照魔法编号判定的。即便不是按编号,你自己加一个判定就是了,如果是瞬移魔法,直 ...

    这个代码我看了不是很明白,官方好像有按照魔法编号判定的,也有按照d敌方英雄施法对象是否自身部队判定的,我把代码摘录如下
    ** start of pre-action trigger
    !?BG0&v7187=1;                                      [Continue trigger if eagle eye is enabled]

    !!FU&v7018=0/v7019=0:E;                             [exit if no one has eagle eye]

    !!VRy-1:S-1;                                        [initailize variables]
    !!VRy-3:S-1;
    !!VRy-5:S-1;
    !!VRy-7:S0;
    !!VRy-9:S0;

    !!VRy-6:S0 T99;                                     [random roll]

    !!BG:E?y-1 A?y-2 Q?y-3 S?y-4 N?y-11;                [get destination stack, action type, side, spell, acting stack]
    !!BMy-1&y-1>-1/y-2=1:I?y-5 P?y-8;                   [if hero casting, get side, position of target stack]
    !!BMy-1&y-1>-1/y-2=10:I?y-5 P?y-8;                  [if monster casting, get side, position of target stack]

    !!VRy-10&y-4>=27/y-4<=33:S1;
    !!VRy-10|y-4=37/y-4=41/y-4=43/y-4=44/y-4=46/y-4=48/y-4=49/y-4=51/y-4=53/y-4=58:S1;  [check for beneficial (mass) spells]

    !!VRy-9&y-1=-1/y-10=1:S1;                           [if hero cast spell with no target (mass) set to 1]
    !!VRy-9&y-1>-1/y-3=y-5:S1;                          [if caster is targeting own side set to 1]

    !!VRy-7&y-9=1/y-3=0/v7019>0/y-6<v7019:S1;           [if attacker cast, check against defender Eagle Eye rating]
    !!VRy-7&y-9=1/y-3=1/v7018>0/y-6<v7018:S1;           [if defender cast, check against attacker Eagle Eye rating]

    !!BMy-11&y-1>-1/y-7=1/y-2=10:C0/y-8/0/0/1 E?y-12;   [have current stack cast summon boat (for sound effect), get # of spells remaining]
    !!VRy-12&y-1>-1/y-7=1/y-2=10:-1;                    [reduce spell count by 1]
    !!BMy-11&y-1>-1/y-7=1/y-2=10:V32 V32 V32 Ey-12;     [show animation (caster), reset spell count]
    !!BG&y-1>-1/y-2=10/y-7=1:A2;                        [make unit move (cancel action)]

    !!BG&y-7=1/y-2=1:S0;                                [reset spell to summon boat]
    !!BMy-11&y-7=1/y-2=1:V60 V60 V60;                   [show animation (hero)]

    !!VRz2&y-7=1:Sz148004;                              [set combat message]
    !!MM&y-7=1:Sz2;                                     [display combat message]

    ** end of pre-action trigger

    中间这段判断施放魔法的check for beneficial (mass) spells这一段,并没有镜像和瞬移,但我测试了镜像和瞬移都可以档,只是镜像不会跳出瞬移一定会跳出。不知道如何修改这个判定万望大大指导
  • TA的每日心情
    郁闷
    2015-6-6 16:12
  • 签到天数: 52 天

    连续签到: 1 天

    [LV.5]女巫

    4949

    回帖

    3万

    金币

    35

    精华

    超级版主

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    34677

    论坛守望者论坛元老杰出贡献

    发表于 2017-11-25 12:20:08 | 显示全部楼层
    !!BG:E?y-1 A?y-2 Q?y-3 S?y-4 N?y-11;                [get destination stack, action type, side, spell, acting stack]
    y-4就是施法编号。如果你想在某个魔法时退出,直接在后面加一句
    !!FU|y-4=魔法编号:E;
    可以列出多个并列魔法编号让函数直接退出,比如
    !!FU|y-4=魔法编号/y-4=另一个魔法编号:E;
  • TA的每日心情
    开心
    2015-12-9 01:09
  • 签到天数: 9 天

    连续签到: 1 天

    [LV.3]火元素使者

    1839

    回帖

    8223

    金币

    8

    精华

    版主

    Rank: 10Rank: 10Rank: 10

    积分
    10806

    社区QQ达人

    发表于 2017-11-25 23:03:18 | 显示全部楼层
    按贤知说的做就行。
  • TA的每日心情
    无聊
    2016-8-14 22:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]投石矮人

    353

    回帖

    7029

    金币

    1

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    2052

    退役版主社区QQ达人

     楼主| 发表于 2017-11-26 09:55:29 | 显示全部楼层
    贤知有您 发表于 2017-11-25 12:20
    !!BG:E?y-1 A?y-2 Q?y-3 S?y-4 N?y-11;                [get destination stack, action type, side, spell ...

    非常感谢 贤知大大的回复,我照你 的做法修改了erm,但比较悲催的是,释放瞬间移动时,选中部队阶段脚本明显被跳过了,但移动部队到新位置的阶段,脚本仍然阻止了施法并导致了跳出,有什么办法可以破否。。。。。。
  • TA的每日心情
    郁闷
    2015-6-6 16:12
  • 签到天数: 52 天

    连续签到: 1 天

    [LV.5]女巫

    4949

    回帖

    3万

    金币

    35

    精华

    超级版主

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    34677

    论坛守望者论坛元老杰出贡献

    发表于 2017-11-26 12:11:07 来自手机 | 显示全部楼层
    不是说不处理这个瞬间移动魔法吗?怎么还会执行阻止呢?你的脚本怎么写的?
  • TA的每日心情
    无聊
    2016-8-14 22:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]投石矮人

    353

    回帖

    7029

    金币

    1

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    2052

    退役版主社区QQ达人

     楼主| 发表于 2017-11-26 12:19:50 | 显示全部楼层
    贤知有您 发表于 2017-11-26 12:11
    不是说不处理这个瞬间移动魔法吗?怎么还会执行阻止呢?你的脚本怎么写的?

    确实是按照大大您的思路弄的,也成功了一半。我在
    !!BG:E?y-1 A?y-2 Q?y-3 S?y-4 N?y-11;                [get destination stack, action type, side, spell, acting stack]
    这行代码后加了
    !!FU|y-4=63:E;
    在测试过程中,释放瞬间移动时,选中部队阶段脚本明显被跳过了没有阻止魔法释放,但移动部队到新位置的阶段,脚本仍然阻止了施法并导致了跳出,也就是说移动部队到新位置的阶段,系统仍然视为一个魔法去处理,但这个魔法又不是瞬间移动,这是我个人的猜想。。。。。。。。。。。。。

    点评

    话说我试了下,好像没问题啊。 另外您是不是有两个相同功能的脚本。 还有如果崩溃,能截图看看崩溃内容吗? 原版使用瞬移移动崩溃的截图中应该能看到 0x0049640C 这个内存码。  详情 回复 发表于 2017-11-26 14:22
  • TA的每日心情
    郁闷
    2015-6-6 16:12
  • 签到天数: 52 天

    连续签到: 1 天

    [LV.5]女巫

    4949

    回帖

    3万

    金币

    35

    精华

    超级版主

    Rank: 11Rank: 11Rank: 11Rank: 11

    积分
    34677

    论坛守望者论坛元老杰出贡献

    发表于 2017-11-26 14:22:05 | 显示全部楼层
    hell____fire 发表于 2017-11-26 12:19
    确实是按照大大您的思路弄的,也成功了一半。我在
    !!BG:E?y-1 A?y-2 Q?y-3 S?y-4 N?y-11;               ...

    话说我试了下,好像没问题啊。
    另外您是不是有两个相同功能的脚本。
    还有如果崩溃,能截图看看崩溃内容吗?
    原版使用瞬移移动崩溃的截图中应该能看到 0x0049640C 这个内存码。
  • TA的每日心情
    无聊
    2016-8-14 22:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]投石矮人

    353

    回帖

    7029

    金币

    1

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    2052

    退役版主社区QQ达人

     楼主| 发表于 2017-11-26 22:05:04 | 显示全部楼层
    贤知有您 发表于 2017-11-26 14:22
    话说我试了下,好像没问题啊。
    另外您是不是有两个相同功能的脚本。
    还有如果崩溃,能截图看看崩溃内容 ...

    找出 原因了,是因为我加载了另一个mod脚本和该脚本重复,结果该修改无法生效。抱歉竟然没有注意到这个,非常感谢贤知大大的答疑解惑:)

    该用户从未签到

    41

    回帖

    4712

    金币

    0

    精华

    3级 Known Hero

    Rank: 3Rank: 3

    积分
    521
    发表于 2017-12-6 01:35:18 来自手机 | 显示全部楼层
    官方无战旗一追、无指挥官以及其他追随者,只开野怪经验的高难度,一直磨到四周月家门前大战,我方偏弱,需要把两队送过去怼敌人的帐篷然后送回来受帐篷,敌方英雄无鹰眼而我方是鹰眼特,然后悲催地发现我方的鹰眼老是阻止我方的瞬移并跳出游戏(无论是否用hd)

    点评

    很明显是这个bug的问题。可以用贤知大大的修改办法来解决  详情 回复 发表于 2018-2-18 00:34
  • TA的每日心情
    开心
    2019-1-31 14:25
  • 签到天数: 130 天

    连续签到: 1 天

    [LV.7]血污怪

    2778

    回帖

    2万

    金币

    14

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    14801

    退役版主社区QQ达人魅力之星

    发表于 2017-12-15 08:02:21 | 显示全部楼层
    来学习学习
  • TA的每日心情
    无聊
    2016-8-14 22:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]投石矮人

    353

    回帖

    7029

    金币

    1

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    2052

    退役版主社区QQ达人

     楼主| 发表于 2018-2-18 00:34:41 | 显示全部楼层
    风色幻想 发表于 2017-12-6 01:35
    官方无战旗一追、无指挥官以及其他追随者,只开野怪经验的高难度,一直磨到四周月家门前大战,我方偏弱,需 ...

    很明显是这个bug的问题。可以用贤知大大的修改办法来解决
  • TA的每日心情
    无聊
    2016-8-14 22:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]投石矮人

    353

    回帖

    7029

    金币

    1

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    2052

    退役版主社区QQ达人

     楼主| 发表于 2018-2-18 00:36:32 | 显示全部楼层

    炸出大神来了新年快乐
    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 英雄注册|Register

    本版积分规则

    捐赠
    关注我们,英3Mod一网打尽!

    WoG中文站 ( 辽B2-20210485-10 )|辽公网安备 21128202000228 号

    GMT+8, 2024-11-15 10:17 , Processed in 0.527154 second(s), 21 queries , Gzip On, File On.

    Powered by Discuz! X3.4

    Copyright © 2004-2022, Beijing Second Sight Technology Co., LTD.

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