Project1

标题: 防SL大法 [打印本页]

作者: y967    时间: 2018-7-22 08:44
标题: 防SL大法
本帖最后由 y967 于 2018-7-22 11:57 编辑

强化5%-20%攻击上升,目前只能先扣除强化道具再计算随机数,再询问存档,不存档则不给强化后的装备,返还强化道具。

作者: 凝望·流年    时间: 2018-7-22 10:24
我觉得成就感是次要的
战斗画面好比提高成就感重要
玩过一个游戏战斗画面很粗糙,结算再怎么华丽也没用
对于数据平衡,是每个游戏的必要
这个就要靠自己玩玩或者算算什么的了
数据调的好真会提高成就感!
作者: 灯笼菜刀王    时间: 2018-7-22 13:44
本帖最后由 灯笼菜刀王 于 2018-7-22 13:50 编辑

只要你的存档是保存在本地,那就不可能防止

几乎每年都会有这种话题讨论~  其实答案很简单

方法有两种

一, 做出没SL价值的游戏

二, 让玩家懒得玩你的游戏还SL.



上面的话虽然是玩笑 ,但是非常有道理的~

玩家有心SL, 那就是承认你的游戏有这么做的价值. 而这个价值是靠游戏品质来实现的.

如果你的平衡极差, 拿5%割草和拿20%割草又有什么区别?   

如果你的难度设置极差, 必须20%才能打得过, 那我估计, 玩家会选择卸载而不是SL.

做这种系统的时候, 请先考虑考虑如何调整那5%和20%之间的平衡性才是重点.
作者: 百里_飞柳    时间: 2018-7-22 20:25
大概是……一个存档就定下一组随机种子?对于有随机的部分,各自用独立的一组种子。
这样不论怎么读档,和随机有关的部分由于种子相同且独立,得出的随机结果是一样的……

当然,我真的觉得人家愿意来SL是有一种对你的坑的爱在里面的

不然一般直接扔了,哪里还会费心去玩
作者: 芯☆淡茹水    时间: 2018-7-24 08:40
专门一个RM加密文档,记录这些随机值。
1,游戏刚开始,生成一个空白RM加密文档。
2,在关键随机的时候,首先读取这个加密文档里有没对应此处的随机值。
     有,直接读取这个值,就不用随机; 没有,随机后再把这个值对应的储存进加密文档。
3,游戏中随时侦测这个加密文档情况,若加密文档被删,显示“游戏数据崩溃”,然后接着自动删除全部存档,游戏重新开始。
作者: fux2    时间: 2018-7-24 09:25
根据存档指纹,物品唯一编号,强化次数来生成随机种子,确保同样的强化结果相同。
作者: 芯☆淡茹水    时间: 2018-7-24 09:42
fux2 发表于 2018-7-24 09:25
根据存档指纹,物品唯一编号,强化次数来生成随机种子,确保同样的强化结果相同。 ...

存档和加密档一起复制,这个问题确实没想到。
只有尽量做得隐秘一些,没有太完美的。

至于事先生成随机值,以前也看到有人提过这方法,这个方法对一些可以无限次随机的功能比较无力。
比如:无限次的随机抽奖什么的。
作者: fux2    时间: 2018-7-24 18:42
芯☆淡茹水 发表于 2018-7-24 09:42
存档和加密档一起复制,这个问题确实没想到。
只有尽量做得隐秘一些,没有太完美的。

无限次的抽奖结果也是确定的呀,
种子=存档指纹+地图ID+事件ID+事件页ID+行数+已经抽过的次数
只要存档指纹不变,算出来的结果是确定的。
作者: cyclqq    时间: 2018-7-27 11:11
严格来说,S&L是难以避免的。不过有的游戏可以玩弄玩家的S&L能力。
比如传说之下的Sans知晓玩家的读档回档,并在战斗最后什么也不做(也许是晾着选项节目不动)来困住玩家。
总之,元游戏的一些机制可能对防S&L或玩弄S&L有帮助。也许我没有跑题吧,但愿。
作者: q3226257    时间: 2019-11-14 16:10
fux2 发表于 2018-7-24 18:42
无限次的抽奖结果也是确定的呀,
种子=存档指纹+地图ID+事件ID+事件页ID+行数+已经抽过的次数
只要存档指 ...

这个估计是我看的最好的办法了
作者: 灯笼菜刀王    时间: 2019-11-14 16:46
本帖最后由 灯笼菜刀王 于 2019-11-14 16:48 编辑
fux2 发表于 2018-7-24 18:42
无限次的抽奖结果也是确定的呀,
种子=存档指纹+地图ID+事件ID+事件页ID+行数+已经抽过的次数
只要存档指 ...


然而像 "玩家可以通过不同的操作影响抽奖结果" 这种就无法用了

比如强化设置为 玩家可以选择不同的材料进行强化, 不同的材料会有不同的强化结果,

如果结果固定, 那完全可以用最垃圾的材料去凹点.....

还有赌博游戏, 猜大小....
作者: 寒凌天    时间: 2019-11-14 20:15
灯笼菜刀王 发表于 2019-11-14 16:46
然而像 "玩家可以通过不同的操作影响抽奖结果" 这种就无法用了

比如强化设置为 玩家可以选择 ...

我遇到类似问题时,个人更喜欢使用“等待一段时间后获得结果”的方式来避免玩家SL。
我简单介绍下具体实现方法吧,当然像你这样懂脚本的大神用不上这么粗糙的方法,就写给看到此贴的新人吧!

要求:强化道具后,无法让玩家通过SL来决定强化的成功还是失败。
具体实现思路:利用延迟显示结果的方法实现。
具体步骤:
1、先建立一个事件,进行强化后打开XXX开关,这个XXX具体哪个可以自己设置‘
2、设置一个没有标题的公共事件,越冷门的位置越好,避免别人修改你的代码实现作弊。然后把事件设置成“并行处理”,条件开关为XXX(就是第一条的开关)。
3、在这个公共事件内写上随机生成数据的代码,用以决定强化是否成功,并将结果保存在变量里(注意!这时候强化成功与否的答案已经出来了,但是玩家不会知道。另外,需要设置判断代码,使生成代码只有第一次执行时会生成,第二次以后只做时间判断)
4、因为“并行处理”会不断循环执行,设置好等待帧数,每隔一段时间对比下“游戏事件”,当超过一定时间……比如半小时以后,才告诉玩家强化结果。如果玩家选择读档,那么这半个小时内的所有游戏数据都会丢失,他可能因此不会再想着读档。

如果玩家等到快半个小时时SL也没用,因为结果早在半个小时前就已经出来了,想靠临近时间SL是不可能的。
至于跟玩家解释为什么要等半个小时,就让NPC跟玩家解释“强化所需要的时间”就OK了,当然……实际作用是反作弊。
而且类似这种设置开关,启动隐藏的并行事件这种手段,对付那种RPG Maker XP技术不精湛的人来说,能起到非常好“防修改”作用。(当然……真正的大神写个检测脚本能很容易地查出有哪些公共事件在循环,不过这种毕竟是少数。)
作者: soulsaga    时间: 2019-11-14 20:22
防SL大法..
可以用完全随机..强化后存入系统变量
然后判断一旦读档且系统变量为XX时就锁死在最低级的结果..
作者: 灯笼菜刀王    时间: 2019-11-14 23:50
本帖最后由 灯笼菜刀王 于 2019-11-15 00:32 编辑
寒凌天 发表于 2019-11-14 20:15
我遇到类似问题时,个人更喜欢使用“等待一段时间后获得结果”的方式来避免玩家SL。
我简单介绍下具体实 ...


这是个好招, 然而也一样有缺陷, "不能玩大批量的抽奖", 半小时抽一次的奖可没办法玩"激情" , 所以不能使用在赌博系统, 只能搞双色球那种,任意抽N组,然后过后统一开奖....=.=

另外还有一点, 单机游戏里用拖延玩家时间的设计, 我个人是很排斥的(己所不欲勿施于人, 笑), 主要是这半小时要怎么安排游戏内容

毕竟总不能这半个小时让玩家只能去刷怪不能发展剧情吧, RM游戏有10个小时剧情四舍五入下就算是长篇了, 然后10个小时剧情里, 要花N个半小时去抽奖, 想想都欠佳呗, 而能发展剧情的话, 又不好控制时间点让玩家去收货, 除非你包邮

还是不要以时间,而是以"代价"来限制比较合适,  就像点赞君说的, "剧情BOSS后开奖",  这样容易控制节点~

不过这种设计, 要有固定流程的游戏比较适合用吧, 像战棋, 西林系列这种, 抽奖, 去战斗一次或者逛一次迷宫,回来后开奖~ 当然, 要限制不能通过放弃战斗和迷宫回程的方法来实现
作者: 灯笼菜刀王    时间: 2019-11-15 16:21
本帖最后由 灯笼菜刀王 于 2019-11-15 16:39 编辑

其实我现在的坑, 有使用了大量的随机设计, 因为是类火纹的战棋游戏, 所以在战斗设计上不能像通常RPG一样通过遇敌来培养角色, 而在重复的地图战斗又很容易腻味, 我的可养成角色多(350个XD), 要做足够养成的不重复地图显然做不到, 所以我尝试了各种随机机制, 来制造不确定因素增加战斗趣味避免机械重复

然而随机设计带来的问题就是SL, 虽然我一直以佛系看法对待SL, 认为SL也是游戏的一环节, 无需刻意去防, 不过大量的SL绝对会影响游戏体验, 所以要考虑增加SL成本, 让玩家不以SL为主要游戏方式

要降低玩家SL的想法, 首先,想到的是降低SL的收益, 也就是随机带来的结果都差不多, 不搞最好和最坏这种结果, 然而这个说起来容易做起来并不简单, 为此我前后改了三次战斗公式和能力数值, 不过平衡上还是不太理想, 目前采用的是"降低能力随机范围, 避免出现打不动,轻松无伤解决的情况, 同时改变敌人经验收益, 打比自己高级的敌人获取的经验要远远高于打比自己低级的敌人" , 用打难的受益大, 打简单的轻松过关(因为有其他游戏目的,不是全战斗)的平衡来降低玩家的SL想法

题外话: 原本是打算全部用敌人等级根据我方等级随动的方式, 后来被提出了"这样做无法体验到成长的优势, 有人喜欢用练级来碾压敌人过关", 于是就换成了主线剧情固定等级, 支线和随机遭遇战用随动的方式~ , 同时也让我意识到全部不确定因素也不算有趣的做法~

回原题, 对于帖子里,我提到的"玩家能通过操作影响随机结果的抽奖", 我是有这个机制

通过投入的资源不同影响抽卡的结果


这里我使用和芯大差不多的方法, 记忆随机结果, 如果SL, 则强制调用记忆的结果, 这个机制会有什么影响, 不清楚, 第一次尝试,以前也没碰到过玩这套的XD

不过我是一样对抽奖做了"不搞最坏的结果", 抽取到新卡的概率远高于重复卡,所以大部分时候都能开心的一发入魂, 而重复卡可以用来战场突破人员限制进行增援(召唤), 地图模式下进行人员替换, 战后临时改编制等, 所以重复卡的使用率也不会低, 抽到重复卡也不会是没用处

而黄鸡提到的固定种子, 我是用来做地图随机遇敌, 出战后就已经决定好了随机结果, 所以出战后不能用SL来选择敌人阵容, 而读取出战前的记录已经经过的战斗就白打了(和寒君的方法差不多), 要SL也是SL第一场, 第一场惯例送分的嘛, 也挑不到哪去XD

升级用火纹惯例的随点, 这里是用即时随机(也可以换成黄鸡的"命运已定式"=.=), 因为战斗中无法记录,所以这里要SL也是要放弃之前的战斗,除非你控制经验在要升级的时候结束战斗并记录,然后下一场开始去SL, 嘛 ,如果有玩家肯为咱的游戏做到这份上, 那咱也算满足了XD, 不愿意SL的也没影响, 咱提供了不少方法弥补属性点, 要补到属性上限并不难~(毕竟咱也是有小绿人强迫症的XD)

最后有一种随机没解决, 赌博系统~  要避免SL作弊, 除了用全局结果(就是一旦赌博,所消耗的资源会反馈到所有存档)外, 我想不出怎么做比较合适~ 所以现在也没有加入赌博系统的打算~, 不过因为角色里有热衷赌博的, 所以...感觉不弄个赌博系统有点欠缺呢




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1