【求插件】《面包狂欢》小游戏,向伟大的面包致敬,向所有喜爱面包的用户致敬🙌

:smiley_cat: 灵感来源

(也许只看上面的就够了,下面的不用看,看完下面的你可能不想写了)

:tada:欢迎来到《面包狂欢》小游戏,这里有你想不到的面包冒险!:tada:

:bread:在这里,你可以收集、战斗、交易各种面包,体验不同的趣味玩法!:bread:

:warning:注意事项

  • 本插件不适合用于人数较多的群,因为可能会造成bot刷屏,影响正常聊天。
  • 本插件具有一定的上瘾性,请适度娱乐,不要过度沉迷。
  • 本插件的数据是按照群分开的,不同的群之间没有关联。
  • 本插件的所有操作都有一定的随机性,所以请做好心理准备。

:blush: 游戏玩法

游戏的玩法非常简单,通过吃面包数量计算玩家等级,以及优秀的排行榜系统。

关于玩家等级计算,我们根据 配置项里定义的固定升级经验(原插件设置的默认值为 10) * 吃掉的面包数量 得到。

:memo:游戏指令

以下是支持的所有指令,可以通过输入相应的文字或者表情来触发。

如果指令需要@某个用户,但是没有@任何人,系统会随机选择一个用户。

如果指令需要输入数量,但是没有输入数量,系统会随机生成一个数量。

为了简化游戏进程,我们当然可以假设用户有无限的金币,因为存在冷却时间,所以喵~。

(似乎不够狂欢~ 但它感觉真的很好玩喵~!快来一起买面包吧!!!买买买~)

指令 说明 其他形式 例子
买面包 :yum:购买随机数量的面包,增加自己的饱食度和幸福感。 buy, :bread: 输入“买面包”,即可用金币购买1~10个面包。
吃面包 :yum:吃掉随机数量的面包,增加自己的饱食度和幸福感。 eat, :bread::bread: 输入“吃面包”,即可吃掉1~10个面包。
抢面包 + @指定用户 :smiling_imp:从指定用户那里抢走随机数量的面包,增加自己的财富和威望。 rob, :bread::bread::bread: 输入“抢面包 @小明”,即可从小明那里抢走1~10个面包。
送面包 + @指定用户 :innocent:给指定用户送去随机数量的面包,增加自己的友情和声望。 give, 送 输入“送面包 @小红”,即可给小红送去1~10个面包。
查看面包 + @指定用户 :male_detective:查看指定用户拥有的面包数量和排名。 check, 偷看面包 输入“查看面包 @小刚”,即可查看小刚拥有的面包数量和排名。
面包记录 + @指定用户 :bar_chart:查看指定用户各种操作的次数。 logb, 记录 输入“面包记录 @小芳”,即可查看小芳各种操作的次数。
面包记录 + “买吃抢赠送猜拳” :bar_chart:查看某种操作次数最多的用户。 logb, 记录 输入“面包记录 抢”,即可查看抢面包次数最多的用户。
赌面包 + “石头剪刀布” :game_die:和bot进行猜拳赌博随机数量的面包。提示:如果赢了,可以获得双倍的面包;如果输了,会失去所有的赌注;如果平局,没有任何变化。注意:如果没有足够的面包或者输入错误的选项,操作会失败。 bet, 面包猜拳 输入“赌面包 石头”,即可和bot进行猜拳赌博1~10个面包。
面包帮助 :books:发送本说明书。 breadhelp, helpb 输入“面包帮助”,即可发送本说明书。
面包排行 :trophy:查看群内所有用户的面包排行榜。 breadtop, 面包排名 输入“面包排行”,即可查看群内所有用户的面包排行榜。

:hammer_and_wrench:自定义配置

例如物品名称、操作冷却时间、随机值范围、特殊事件概率等。

export const Config: Schema<Config> = Schema.intersect([
  Schema.object({
    cdBuy: Schema.number().default(4200).description('买面包的冷却时间,单位是秒'),
    cdEat: Schema.number().default(4800).description('吃面包的冷却时间,单位是秒'),
    cdRob: Schema.number().default(5000).description('抢面包的冷却时间,单位是秒'),
    cdGive: Schema.number().default(3000).description('送面包的冷却时间,单位是秒'),
    cdBet: Schema.number().default(5400).description('赌面包的冷却时间,单位是秒'),
  }).description('冷却时间(Cooldown Time)'),
  Schema.object({
    maxBuy: Schema.number().default(9).description('买面包时的最大随机数量'),
    maxEat: Schema.number().default(8).description('吃面包时的最大随机数量'),
    maxRob: Schema.number().default(7).description('抢面包时的最大随机数量'),
    maxGive: Schema.number().default(10).description('送面包时的最大随机数量'),
    maxBet: Schema.number().default(10).description('赌面包时的最大随机数量'),
  }).description('最大随机值(Maximum Random Value)'),
  Schema.object({
    minBuy: Schema.number().default(1).description('买面包时的最小随机数量'),
    minEat: Schema.number().default(2).description('吃面包时的最小随机数量'),
    minRob: Schema.number().default(2).description('抢面包时的最小随机数量'),
    minGive: Schema.number().default(1).description('送面包时的最小随机数量'),
    minBet: Schema.number().default(5).description('赌面包时的最小随机数量'),
  }).description('最小随机值(Minimum Random Value)'),
]);

拓展玩法(注意,此部分作为拓展参考,不为游戏基础实现)

  • 面包大战:这是一个群内的竞技模式,每个用户可以选择加入红队或蓝队,然后通过各种操作来增加自己队伍的面包数量,同时减少对方队伍的面包数量。每个操作都会消耗一定的面包,所以要合理安排策略。每天晚上12点,系统会统计双方的面包总数,哪个队伍的面包多,就赢得当天的胜利,并获得一定的奖励。连续赢得七天的队伍,就可以获得更大的奖励,并且可以在群内炫耀自己的成就。:trophy:

    • 加入面包大战::busts_in_silhouette:输入“加入红队”或“加入蓝队”即可加入相应的队伍。如果没有指定队伍,系统会随机分配。如果已经加入了某个队伍,再次输入该指令会提示已经加入。
    • 退出面包大战::wave:输入“退出面包大战”即可退出当前所在的队伍,并清空自己的面包数据。退出后可以重新加入另一个队伍,但是要等到第二天才能生效。
    • 查看面包大战::eyes:输入“查看面包大战”即可查看当前双方的面包数量和排名情况。
    • 面包攻击 + @指定用户::crossed_swords:消耗自己10个面包,从指定用户那里抢走5个面包,并增加到自己队伍的总数。如果指定用户不在对方队伍或者没有足够的面包,操作会失败。
    • 面包防御::shield:消耗自己5个面包,为自己增加一个防御盾,可以抵挡一次面包攻击。防御盾只能持续一天,每天只能使用一次。
    • 面包支援 + @指定用户::raised_hands:消耗自己5个面包,给指定用户送去3个面包,并增加到对方队伍的总数。如果指定用户不在自己队伍或者没有足够的面包,操作会失败。
    • 面包合作 + @指定用户 + “石头剪刀布”::handshake:消耗自己5个面包,和指定用户进行猜拳游戏,如果赢了,双方各得10个面包,并增加到自己队伍的总数;如果输了,双方各失去10个面包,并减少自己队伍的总数;如果平局,没有任何变化。如果指定用户不在自己队伍或者没有足够的面包,操作会失败。
  • 面包商店:这是一个群内的经济模式,每个用户可以通过购买和出售不同种类和品质的面包来赚取金币,并用金币来购买各种道具和装饰品。每种面包都有不同的价格和属性,例如口味、新鲜度、营养等。用户可以根据市场供需来调整自己的买卖策略,也可以通过各种事件和活动来获取额外的收益。:baguette_bread:

    • 查看面包商店::shopping_cart:输入“查看面包商店”即可查看当前的面包种类、价格、库存和需求情况。提示:不同的时间段,市场的供需会有所变化,影响面包的价格和收益。
    • 购买面包 + 面包名称 + 数量::moneybag:输入“购买面包”加上面包的名称和数量,即可用金币购买相应的面包。提示:不同种类的面包有不同的价格和属性,例如口味、新鲜度、营养等。注意:如果没有足够的金币或者库存不足,操作会失败。例子:输入“购买面包 法式长棍 3”,即可用金币购买3个法式长棍。
    • 出售面包 + 面包名称 + 数量::dollar:输入“出售面包”加上面包的名称和数量,即可用面包换取金币。提示:不同种类的面包有不同的需求和收益,例如稀有度、流行度、保质期等。注意:如果没有足够的面包或者需求不足,操作会失败。例子:输入“出售面包 玉米面包 5”,即可用5个玉米面包换取金币。
    • 查看我的面包::cookie:输入“查看我的面包”即可查看自己拥有的面包种类、数量、属性和价值情况。
    • 查看我的金币::moneybag:输入“查看我的金币”即可查看自己拥有的金币数量和排名情况。
    • 查看我的道具::gift:输入“查看我的道具”即可查看自己拥有的道具种类、数量和作用情况。
    • 查看我的装饰品::balloon:输入“查看我的装饰品”即可查看自己拥有的装饰品种类、数量和效果情况。
    • 使用道具 + 道具名称 + @指定用户::dart:输入“使用道具”加上道具的名称和指定用户,即可对指定用户使用相应的道具。如果没有足够的道具或者指定用户不存在,操作会失败。道具的作用有以下几种:
      • 增加或减少指定用户的面包数量或品质
      • 增加或减少指定用户的金币数量或收益
      • 增加或减少指定用户的道具数量或效果
      • 增加或减少指定用户的装饰品数量或效果
      • 触发指定用户的特殊事件或活动
    • 购买道具 + 道具名称 + 数量::money_with_wings:输入“购买道具”加上道具的名称和数量,即可用金币购买相应的道具。如果没有足够的金币或者库存不足,操作会失败。
    • 购买装饰品 + 装饰品名称 + 数量::money_with_wings:输入“购买装饰品”加上装饰品的名称和数量,即可用金币购买相应的装饰品。如果没有足够的金币或者库存不足,操作会失败。装饰品可以用来美化自己的面包店,增加吸引力和声望,也可以提供一些特殊的效果。

:plate_with_cutlery:饱食度系统

  • 每个用户都有一个饱食度值,初始为50,范围在0~100之间。
  • 饱食度值会随着时间自动减少,每分钟减少1点。
    (请注意,这里的数值也许并不合理)
  • 当饱食度值低于20时,用户处于饥饿状态,此时:
    • 购买或者吃掉面包的效果会增加50%。
    • 抢走或者送出面包的效果会减少50%。
    • 猜拳赌博的成功率会降低10%。
  • 当饱食度值高于80时,用户处于吃撑状态,此时:
    • 购买或者吃掉面包的效果会减少50%。
    • 抢走或者送出面包的效果会增加50%。
    • 猜拳赌博的成功率会提高10%。
  • 购买面包可以增加面包数量但不可以增加啊饱食度,而吃掉面包可以增加饱食度值,不同的面包有不同的增加量
    • 抢走或者送出面包不会影响饱食度值。

:blush:幸福感系统

  • 每个用户都有一个幸福感值,初始为50,范围在0~100之间。
  • 幸福感值不会随着时间自动变化,只会受到用户操作的影响。
  • 当幸福感值低于20时,用户处于沮丧状态,此时:
    • 购买或者吃掉面包的效果会减少50%。
    • 抢走或者送出面包的效果会增加50%。
    • 猜拳赌博的成功率会降低10%。
  • 当幸福感值高于80时,用户处于快乐状态,此时:
    • 购买或者吃掉面包的效果会增加50%。
    • 抢走或者送出面包的效果会减少50%。
    • 猜拳赌博的成功率会提高10%。
  • 购买或者吃掉面包可以增加幸福感值,不同的面包有不同的增加量,具体如下表:
面包种类 幸福感增加量
馒头 5
法棍 10
汉堡 15
蛋糕 20
披萨 25
  • 抢走或者送出面包可以减少幸福感值,不同的面包有不同的减少量,具体如下表:
面包种类 幸福感减少量
馒头 5
法棍 10
汉堡 15
蛋糕 20
披萨 25
  • 猜拳赌博可以增加或者减少幸福感值,具体如下:
    • 如果赢了,可以获得双倍的幸福感值。
    • 如果输了,会失去所有的幸福感值。
    • 如果平局,没有任何变化。

:gift:特殊事件

  • 在进行任何操作时,有一定的概率触发特殊事件,这些事件会对用户的面包数量、饱食度值和幸福感值产生额外的影响,具体如下表:
特殊事件 触发概率 影响
面包过期 5% 随机失去1~10个面包,饱食度值和幸福感值各减少10点。提示:你的面包已经发霉了,赶紧扔掉吧!
面包中奖 5% 随机获得1~10个面包,饱食度值和幸福感值各增加10点。提示:恭喜你,你的面包里藏着一张彩票,中了大奖!
面包捐赠 5% 随机送出1~10个面包给一个随机用户,饱食度值减少10点,幸福感值增加20点。提示:你的面包被一个可怜的小孩看上了,你决定慷慨地分享一些。
面包偷窃 5% 随机失去1~10个面包给一个随机用户,饱食度值和幸福感值各减少20点。提示:你的面包被一个不怀好意的家伙偷走了,你气得要发疯。
面包神迹 1% 面包数量翻倍,饱食度值和幸福感值各增加50点。提示:你的面包突然发生了奇妙的变化,变得更多更美味了!
面包灾难 1% 面包数量清零,饱食度值和幸福感值各减少50点。提示:你的面包遭遇了一场可怕的灾难,全部被毁掉了!
6 个赞

大佬nb

3 个赞

看晕了(

4 个赞

功能极为强大

4 个赞

有没有 nonebotjs 版(

3 个赞

……不错 :face_with_monocle:

2 个赞