>我有一个网站,在那里我做了一个"任务生成器"来鼓励参与。我已经硬编码了 3 组任务(简单、中、难(。
简单的任务有 6-8 个可能随机发生的案例
- 更新 N 倍你的英雄(N 是随机数(
- 更新特定技能
- 让你的英雄休息一天
- 等。。
Med 和 Hard 需要 1 个更难完成的任务,并从简单任务中增加 2 个。
我的生成器工作得很好,但我想知道如何设计奖励系统,以便用户难以游戏。
我遇到的问题是:
- 用户可能决定快速完成任务,然后在获得"已实现徽章"后立即将其删除
例如
-
更新3倍你的英雄
-
添加新技能
-
向其他英雄发送消息
我认为一个问题是,该人可能会决定更新 3 次,选择一项新技能并发送一条消息,然后删除 3 次更新(有这样的功能(删除技能并删除他发送的消息。
到目前为止,我已经提出了以下想法,但我正在寻找做过类似事情的人的意见。
- 第一种方法:对数据库中的表进行硬编码,其中包含每个可能组合的列,例如row1 - 更新 |row2 - 新技能等缺点:我担心这一行最终可能会很长,并且很难管理和添加新类型的挑战。整个概念变得非常僵化。
- 第二种方法:对于每个任务,分配一个唯一的 ID,一旦添加了技能或更新或任何内容,就会将其附加到任务编号中。缺点:如果生成器平均每个任务需要 3 次更新,则每个成员都会获得 3 个每日任务(可以及时延长(,这使得每个用户每天大约需要 10 次更新,再加上更新的实际记录,它的数据加起来很快为几千个用户。我会说这些数据中有90%是无用的,只会产生账单。
- 第三种方法:在表格中添加一列,其中包含更新、技能(以及任务中使用的所有其他表格(。然后,当用户添加新技能(例如(时,挑战ID将添加到技能表的列中,然后如果技能被删除,任务将回退到"未完成"(更新和其他技能也是如此(缺点:当挑战是"让英雄休息 1 天"时,这可能会变得非常混乱,因为如果生成器在两天之间两次要求,用户将失去此类的第一个成就,因为挑战 ID 将被覆盖。
一个大问题是 - 当用户决定偷工减料并删除他们的一些技能时会发生什么。我想他们的任务会开始堆积起来吧?(有点像惩罚(
尝试使某些内容更具动态性。
例如:您可以将技能放在侧面的静态复选框列表中,然后选择或取消选择它们。然后添加一个按钮以删除所选技能,通过在复选框列表之外的页面本身选择技能,技能将添加到静态复选框列表中。然后将技能作为元素添加到复选框列表中。
当你需要让你的角色休息一天时,几乎不可能在一天内做两次。使一天的其余事件一天只能发生一次。这样就无需担心覆盖,玩家也不会对为什么他的英雄需要休息两次感到困惑。也许使休息与耐力条绑定,耐力条会随着某些事件而减少。当您添加技能时,也许训练会消耗耐力。当体力耗尽时,他的英雄需要休息。
关于删除更新和技能:添加后立即将其删除并不是一个好主意。使技能和更新只能在一定时间后删除。足够长的时间以确认成就并存储成就。然后他们能够删除他们的技能和更新,并且已经保存的成就不会消失。
向其他英雄发送消息:我有一个问题。为什么您可以删除该消息。消息会发送给其他玩家吗?如果是这样,能够删除它是没有意义的。此外,发送消息显然发生在服务器端,因为它会转到另一个播放器,因此您可以将其设置为完成服务器端。