标题: 光荣三国志2 - 军师说话的准确度
性别:未知-离线 juqiang
(方枪枪)

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 18
编号 546898
注册 2024-7-23


发表于 2025-11-29 17:36 资料 短消息 只看该作者
光荣三国志2 - 军师说话的准确度

当我们奖赏、招人、耕地、治水、供给等,军师都会给出建议。有的很靠谱,每次都对,比如诸葛亮;有的不靠谱,出错概率随机。游戏内的机制,我在ida中逆向后,python代码可以简化为:

tmp = ((228-Data.DSBUF[advisor_offset+0x04])<<1)&0xFF
tmp = Data.compare_value_with_random100(tmp)

偏移04是智力,为什么用228减掉它呢?因为后面有一个乘以2的操作,所以第一行会变成456-智力*2。
我们知道诸葛亮智力最高,是100,所以这个值会变成256。而游戏中按照8位来计算的,所以这个值就会变成0。庞统智力99,那么这个值会变成258,按照8位取,则是2。以此类推,智力50的人,这个值会变成100;智力49的人,这个值会变成102。

这是第一行的推演。第二行就有意思了,系统自动生成一个100以内的随机值。如果这个值小于第一行算出来的,那么就返回1,否则返回0。
从上面我们知道,智力50及更低的时候,tmp会变成大于等于100,那么下边100内随机数与它比较时,则永远小于它。

第二行只返回1或者0,而不是一个梯度值。所以,智力99的庞统,和智力50的某人,在军师这个角色上,不靠谱程度上,是一致的。


顶部

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




当前时区 GMT+8, 现在时间是 2025-12-1 20:39
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

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

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