标题: 英杰传:如果玩家要用GB4操控随机数,请注意以下几点
性别:男-离线 阿尔法孝直
(雀力日进)

闽国公
遂安军节度使
★★★★★★

Rank: 19Rank: 19Rank: 19Rank: 19
柱国(正二品) 轩辕春秋年度最佳(游戏人生区)
组别 节度使
级别 卫将军
好贴 2
功绩 1796
帖子 6047
编号 19070
注册 2004-10-16
家族 轩辕雀党


发表于 2026-1-13 16:57 资料 个人空间 短消息 看全部作者 QQ
英杰传:如果玩家要用GB4操控随机数,请注意以下几点

事先说一下:
1、我不大会起帖子标题,如果大家有更好的标题,欢迎回复提出。
2、这个帖子只针对不打补丁的英杰传(可以带DEBUG功能)

一、随机种子
1、开始游戏时,会要你输入密码,随便按一个回车之后会出现游戏的主菜单,这时候会重置随机种子;
2、每个关卡开始时,也会重置随机种子。如果有连续关卡,则每一关开始的时候都会重置随机种子;
3、重置随机种子取的是系统日期和时间。如果当前系统日期和时间是2026年01月13123456秒,则随机种子为0x56341213

二、每回合我军阶段开始前消耗的随机数个数
1、计算天气消耗1个
2、我军最多出场15个人,自动恢复兵力和士气值一共消耗30个随机数,无论是否上满15个人,也无论是否满兵满士气。这里固定会消耗30个。
3、如果有人混乱了,会试图唤醒(见下述第五条),这里要额外消耗一个随机数。因此,有多少个混乱的就要额外消耗多少个随机数。
4、恢复顺序为:第1个人兵力→第1个人士气→第1个人解混乱(如果需要)→第2个人兵力→第2个人士气→……→第15个人解混乱(如果需要)。
5、综上,我军阶段开始前会消耗(31+混乱的人数)个随机数。

三、每回合敌军阶段开始前消耗的随机数个数
同我军,只不过敌军最多30个人,因此会消耗(60+混乱的人数)个随机数(无论是否上满30个人,无论是否满兵满士气),顺序与我军类似。

四、物理攻击
1、如果开了战斗动画,并且攻击方是弓兵系(弓兵、连弩兵、发石车),显示战场地图上的攻击动画(就是移动弓箭或石头)会消耗8个随机数;
  如果关闭战斗动画,则弓兵系进行攻击会消耗16个随机数。(这就是为什么有人感觉,开关战斗动画,结果会变得不一样)
2、如果防御方是贼兵或武术家,为了计算是否反击,会额外消耗1个随机数,无论攻击方是否可以被反击。因为程序是先计算反击率,再判断攻击方是否可以被反击。
3、在防御方是贼兵或武术家的基础上,如果攻击方也是贼兵或武术家,则会再额外消耗1个随机数。因为程序会先计算反击率,再判断先前的攻击是否是反击。

五、士气值下降的混乱,或者恢复混乱
1、士气值下降且下降后低于30,会触发混乱判定,消耗1个随机数。
2、士气值上升,或者士气值=100,并且处于混乱状态,会触发恢复混乱判定,消耗1个随机数。
3、以上两点在同一个函数内,因此不可能只判断其中一条。

六、攻击性策略和牵制
除了策略自身消耗的随机数之外(注意是先计算伤害再判定策略是否成功),无论策略是否成功,都会紧接着判定防御方是否符合上述第五条的情况。
因此,如果策略失败,且防御方的士气等于100,并且处于混乱状态,会进行恢复混乱的判定,额外消耗1个随机数。
这就是为什么有些人发现,策略失败的时候,防御方有时候会解除混乱的原因。

七、单挑
最近有些人发现,单挑前后,随机数列变得完全不一样了。这个事情比较复杂:
在单挑的剧本中,有一个指令是让双方自由打几下,指令代码是0x52。如下图:

图片附件: [自由打几下] 单挑画面.png (2026-1-13 16:57, 68.32 K)


如果你足够细心多试几次,就会发现,即便是同一个单挑,每次的动作组合都会有点区别,这就是随机数的功劳。
于是我查了一下源码,发现这个指令为了实现随机的单挑动作,会按照如下方式消耗随机数:

IDA地址:seg003:095A

循环5次:
  a=(Random%3+2)*2
  b=(Random%3+2)*2
  左方做第a个单挑动作
  右方做第b个单挑动作
  循环2次:
    if (a!=8 or b!=8):
      c=Random%2
      c的作用不知道是啥,会不会是播放不同编号的单挑音效?但是可以确定的是,如果if没有进来,本次外层循环不会播放单挑的音效
    end if
  end 循环
end 循环

根据上述算法,每次执行外层循环,都有8/9的概率消耗4个随机数,1/9的概率消耗2个随机数。
因此,每次执行自由单挑组合动作都会有不同的概率额外消耗10、12、14、16、18或20个随机数
其中20个的概率最高,其次是18个,后面依次降低。

但是要注意:每场单挑执行指令0x52的数量是不同的,比如有的单挑,双方实力悬殊(例如关兴vs曹植),走个过场一下就死了,这就没有使用0x52指令,也就不消耗随机数。
也有的单挑非常精彩,比如张飞vs许褚,会使用3个0x52指令,这样就会运行上面的算法3次。

八、非战斗模式的随机数
1、一个场景(例如议事厅)显示多少个人物,就会消耗多少个随机数。
2、战斗开始之前的部队旗帜移动,有多少个,就会消耗多少个随机数。汜水关和虎牢关之间,就有华雄、吕布、刘备、张飞共4个军团,这里就会消耗4个随机数。

[ 本帖最后由 阿尔法孝直 于 2026-1-13 23:20 编辑 ]


顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2026-1-21 15:43
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.009982 second(s), 10 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP