铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 3596|回复: 13

[通用] 今天起,停止你们那些蛋痛无比的SL控制设置!看这里!

  [复制链接]
发表于 2012-7-29 21:48 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
本帖最后由 winson7891 于 2012-7-29 21:56 编辑

MOD区,游戏区各位坛友您们好。标题显示的,就是我要说的

然后,如何实现可行的,无法SL并且不影响游戏公平性,可玩性的随机事件设置呢?

说出来一文不值

知道随机吧?

无论是Lua版还是Pascal版,都有随机功能,但我们都知道,所谓的随机功能,都是“伪随机”

也就是说,要每次随机出来的结果不一样,都要改变随机种子,也就是所谓的seed

一般在随机的程序,我们会这么写:

Randomize;
random(100);

第一行意思就是改变随机种子,一般会以日期时间来做种子,所以随着时间流逝,种子都是不一样的,以后出现的随机结果就会相对的“真随机”
第二行就是改变种子后,随机的得到一个100以内的数字(0~99)

每种编程语言的随机命令,语法都不一样,但做出来的事,都没有区别!

看出什么了吗?

你妹的其实只要固定了随机种子,那SL不就没效了吗???

哦是啊,就是这么简单,只要固定了随机种子,无论您SL几次,那结果都一样

好,然后问题又来了……

每次随机结果都一样的话,战斗中,或者剧情里面多试几次不就未卜先知了么?

你妹的战斗之前您不会用时间重设一次随机种子啊?

剧情之前试试?

我们固定的是随机种子,不是随机结果,要预知所有随机剧情走向,只可能就这么重新走一次剧情,您试完了,都通关了,您要是读回刚刚开局的档重玩一般,我当然没有意见……


那固定随机种子,会不会造成每次开局都一样,或者每个玩家都一样?又或者每个事件结果都一样?

绝对不会!


很简单,在创建人物,也就是重新开始游戏的时候,为当前的游戏,设置一个种子,并且记录在存档里面

假设这个种子是一个10位数字:2940207342

这个数字生成,请也用时间做种的随机数,所以几乎没有重复的

这个数字,我们暂且叫做命运种子

然后到随机事件判断的时候,就用事件编号加上命运种子,作为这一次判断的随机种子
例如执行的事件编号为10号,所以随机种子就是294020734210(12位)

然后执行随机:random(100)

例如这个事件是:跳崖得到秘籍,几率是10

可以设置:random(100)<10的话,成功,否则,失败

SL是对这个结果无效的,但作者和玩家却都不能预先知道这个结果

然而,就这么设置,就够了吗?没有漏洞?

当然有!

但是,也有解决的办法,这就是这个贴子的重点了……

漏洞是:如果同一个事件需要调用多次,结果全部一样,那这设定不就傻逼了?

其实解决办法非常简单,我们需要另一个种子

每次这些随机事件执行之后,记录另一个种子,可以称为进度种子

这个种子开始为0,然后每次用命运种子的随机数执行后,种子的数字上升一个固定的数字

然后,随机种子设置,就用命运种子+进度种子+事件编号作为随机种子

这个事件就得到解决了。

例如我们在游戏中要设置一个钓鱼的随机事件

在上面的设置里面,我们钓鱼5次,
如果random(100)<5,神鱼
<20,红鲤
<50,鲤鱼
<80,草鱼
<100,垃圾
钓到的分别是:鲤鱼,垃圾,垃圾,红鲤,草鱼

我们不满意这个结果,读档再钓一次,那结果还是一样的

那么我们去打猎吧,打猎也是随机事件,里面是什么内容就不多说了。
如果玩家打猎三次,跳过前面的鲤鱼,垃圾,垃圾,直接钓到红鲤?

这个如何解决?

很简单,执行钓鱼和执行打猎所带来的进度种子递增的数目不一样,不就好了?这个世界上,有一种数字,叫做质数!

当然了,即使用质数,在进度种子的数字上,还是有得到相同数字的可能性,但是这又有多少呢?只要不是用2,3,5这些较小的数字,要计算就比较困难了,更不要说这是来玩游戏的玩家们

这样的设置,事件随机是固定的,分布平均,并且连作者都不能完全决定所有事件的执行结果

同时不失可操作性

这个设定还有提升的空间,不过重点都在这里了

————————————————————————————————————————


你们设计这些所谓的“防SL”设定之前,请了解一下程序的工作方式。

本来那么一点小技巧就可以解决的事情,为何搞得无比复杂?

制作者蛋痛,玩家更加不喜……


最后,我用大字体其实是为了占篇幅,我会到处乱说么~

点评

+1 不能评分了,装装样子  发表于 2012-7-29 22:13

评分

参与人数 1声望 +15 收起 理由
btxdex + 15 神作

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-29 22:13 | 显示全部楼层
随机事件了
我的想法是,这些事件的随机值,在游戏一开始就随机出来,然后保存
以上

点评

可预测,甚至可以找出来哦亲  发表于 2012-7-29 22:18
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-29 22:14 | 显示全部楼层
关掉游戏重进怎么破?

点评

没认真看贴,罚你重看  发表于 2012-7-29 22:15
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-29 22:19 | 显示全部楼层
无所谓,如果能被找出来,那么你的存档其他内容基本也就一样是一览无遗了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-30 09:22 | 显示全部楼层
一个来自未来的人回到过去去打架。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-30 11:13 | 显示全部楼层
我还是喜欢现在的随机方式,
SL代表着可能行,
直接弄成随机种子,
这可能性就没了。
没有了惊喜,就没有了动力。
另外,问一下,这样的随机方式,在战斗里貌似也不好用,
如,主角第一次攻击注定不暴击不连击,
那好,我就SL一下,直接跑开防御了事。
下一轮攻击,哪个敌人攻击伤害高,
那我下轮SL,直接躲开他,或者上轮就集火搞定他,
这样的战斗,反而更枯燥乏味

点评

大字您没看到?这个随机只针对事件设置,不过多谢评论  发表于 2012-7-30 11:59
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-30 12:38 | 显示全部楼层
只有把存档留在玩家读不到的伺服器,才能彻底杜绝作弊。
不过单机倒可以实行久玩奖励,i.e.:
1. a counter that resets when game is loaded
2. increment when rand() is called
3. when reach certain count, some cool item awarded to player
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-30 15:27 | 显示全部楼层
感觉这样设置好像还有问题,举个例子。
1.跳崖前save,跑去跳崖,没得到秘籍。
2.load,然后去钓鱼1次,激发1次随机数,save, 跳崖,又没得到秘籍。
循环第2步,直到或者秘籍为止。

还是赞同jy02785317的做法,开局就随机好这些事件的值,效率也高。
记录随机种子的,人家找出随机种子,rand算法常用的就2种,当然自己蛋疼写随机算法的例外,随便猜都能猜中,猜中了就可预测。

点评

跳崖只跳一次,因此不需要进度种子,所以没法改  发表于 2012-7-30 16:41
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-7-30 16:59 | 显示全部楼层
其实我觉得这样的修改巨简单啊~,底层改一改,多写两个随机功能出来,然后SL就杜绝了~

但看来看明白的人不多

似乎是我表达有问题~

恩恩~

点评

绝对是表达问题 ^v^  发表于 2012-7-30 18:09
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-31 03:46 | 显示全部楼层
回复 winson7891 的帖子

哦,看漏了,原来是事件编号加上命运种子,每运行一次事件都设置随机种子,时间换空间。在现在的代码上,这种改法改起来也方便。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-7-31 11:08 | 显示全部楼层
咱们理科技术宅表达能力拙计,难道要举办一次达摩堂的诗词大赛么?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-2 11:33 | 显示全部楼层
看不懂你们在说什么,但好像挺好玩的

是说自动存档的时候不能随机了么,比如金前做药,得到个药就是得到了,就减去相应的材料了,没得到就再LOAD都没用是吧?

点评

正确哦亲  发表于 2012-8-2 17:18
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-8-19 20:20 | 显示全部楼层
伪随机的经典代表就是……三国志11
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-10-25 19:14 | 显示全部楼层
sh虽然不懂 但是觉得很厉害
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-5-3 15:34

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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