找回密码
 点一下
查看: 2373|回复: 3

预测野怪掉落宝物的系统!!

[复制链接]
发表于 2008-12-20 14:33:35 | 显示全部楼层 |阅读模式
呵呵,虽然目前还只是理论。大家给点意见

野怪掉宝触发的核心函数是
native ChooseRandomItemEx takes itemtype whichType, integer level returns integer
随机选择某等级某类型的宝物

如我们所见,是一个native函数,不知道具体如何工作

但目前已经证实的有:

1. 使用随机种子的伪随机(废话)。
2. 不受GetRandomInt, GetRandomReal影响,即他自成一套系统
3. 也不受随机攻击等其他随机事件影响
4. 会受到ChooseRandomItem 函数的影响。不过这个函数基本没有使用
5. 更改其中某一行的类型或者等级参数,不会影响到下一个以及之后掉宝的结果

初步结论是,野怪掉宝物只和2个因素有关: 1是随机种子。2是顺序:他是第几个被mf的能掉宝物的野怪

一个确定的随机种子产生一个确定的伪随机数列,而后应用到不同的野怪上去。

这里有意思的一点是,尽管对不同等级不同类型返回的不同,但实际上它是近似于按顺序选择的

例如选择2级永久宝物,假如某次随机出按顺序为第3个该类宝物,我们在保持随机种子不变的前提下,

将2级永久宝物改为3级消耗宝物,则随出来的是第3个3级消耗宝物。

利用这个特性我们可以提前“预测”也就是提前察看第n次随机对应第x个宝物,而又不会造成无法回去的局面


假如地图上共有10个野怪会掉宝物,我在一开始就运行10次随机函数,

这样我就知道,比如第1次是第3个宝物,第2次是第2个宝物,第3次是第4个宝物,如此类推

但是当野怪真正掉宝时,如果不加改变,这时结果会不同,造成断线

野怪掉宝使用了blizzard.j内的unitdropitem函数,我们修改之,使得它忽略输入的物品id,而从我们储存的全局变量中选物品

例如我这时知道该野怪是第几个被杀死的,于是我知道应该掉第几个宝物;

我又通过类似查表的方法知道他应该掉什么类型什么等级的宝物,于是就强行让他与原来的结果一致。

这样游戏得以正常进行;而我则在一开始就得到了所有野怪掉宝的不完全结果

(实际上我只知道第一个死的掉第三个宝,等等。。还需要自己记住什么类型宝物第几个是什么才有意义)

当然也可以给野怪头上加个texttag宣称:如果接下来我死了,我掉x宝物。

评分

参与人数 1威望 +22 收起 理由
kook + 22 支持研究

查看全部评分

发表于 2008-12-20 17:33:15 | 显示全部楼层
第几个宝物类型。。。又是怎么算的呢。。。
回复

使用道具 举报

 楼主| 发表于 2008-12-20 20:38:19 | 显示全部楼层
补充。。。。。。。 挑选宝物似乎是随机数 mod 物品数。。。

所以需要一个最小公倍数的宝物来保证完美对应。。
回复

使用道具 举报

 楼主| 发表于 2008-12-20 22:41:12 | 显示全部楼层
郁闷!!!!!!!!!!!

这个函数明明只返回类型id,居然掉线哎我草
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-4 16:28 , Processed in 0.048264 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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