Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 18079|回复: 419
打印 上一主题 下一主题

[数据包] [1.17+] 全球商店V2 专注玩家间的物品交易 让你买下全世界!

[复制链接]
Mini_Ye 当前离线
积分
689
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-1-17
查看详细资料
跳转到指定楼层
楼主
发表于 2021-7-7 22:32:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数据包
中文名称: 全球商店
英文名称: GLBShop
来源: 原创
是否有配套资源包:
语言支持: 简体中文 
数据包版本: V2.1
适用版本: 1.17.X 
原帖地址:
下载地址: https://pan.baidu.com/
与多人游戏兼容性: 完全兼容
最后更新: 2022-03-03
数据包类型: 生存、实用、辅助

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 Mini_Ye 于 2022-3-6 14:00 编辑



>> 全球商店V2 现已发布!

>> 更多的功能 √
>> 更好的界面 √
>> 便捷的操作 √
>> 更多的bug √(不是)
>> ……

>> 三大功能

>> 全球商品 - 10 个子功能
>> 出售商店 - 无限购买,实时编辑
>> 回收商店 - 回收物品,兑换金钱

>> 附加功能

>> 金钱 <=> 物品



>> 为什么选择全球商店?

>> 多种功能将满足原版生存服务器玩家间的一切交易需求
>> V2 的更新加入了出售商店和回收商店,让你足不出户买遍全世界
>> 支持自定义,简单的操作即可让全球商店使用你自己的金钱记分板

>> 它安全吗?

>> 支持nbt:所有经过全球商店的交易物品在交付和取得后都保持一致
>> 操作保护:关键操作会检测周围玩家,当且仅当周围有 1 名玩家时,操作通过
>> 防止刷取:商店界面的物品都携带特殊标记,玩家不能把它们正常地转移到任何容器
                       商店(矿车)无敌,非创造玩家不能杀死,不会被用于刷矿车和箱子
>> 防止漏斗:当周围有漏斗和漏斗矿车时,商店不能存在
>> 占用优化:多种机制抵抗玩家不正常操作,不对服务器运行造成威胁


>> 食用方法

>> 所有玩家都能使用这个命令来打开商店:
  1. /trigger GLBS set 1
复制代码

>> 各个界面以及功能:





















>> 在使用全球商店前,我还需要知道些什么?

>> 全球商店不喜欢可以偷东西的漏斗,它的检测范围是 ~-1 ~-1 ~-1 到 ~1 ~ ~1,即一个 3x3x2H 的空间。
>> 相比起以前的版本,全球商店V2 没有再分为“使用金钱记分板作为货币”和“使用原版物品作为货币”的版本,我为了把它做到尽可能地方便,将两种货币方式合二为一。交易上采用金钱记分板,而采用 金钱 <=> 物品 的方式,方便你进行兑换。
      请注意!金钱记分板默认是 money,兑换的物品和比率默认是 1金钱 <=> 1绿宝石。
      金钱能否和物品兑换是可开关的,但默认是关闭的,因为我不认为 1金钱 <=> 1绿宝石 是合理的,因此我将它默认关闭,直到你修改了兑换物品和比率,并手动开启它。
>> 目前这个商店对物品的处理都是完整的一格。例如一位玩家上架了 64 个红石(整组),标价 64 金钱,
      那么你只能向Ta支付 64 金钱来购买这 64 个红石,而不能支付 1 金钱来购买 1 个红石。
>> 所有经过这个商店的物品回到玩家手中时,都将保持原有的nbt;不仅如此,商店也将严格地判断nbt。
      例如,管理员规定兑换的物品和比率默认是 100金钱 <=> 1张纸,但纸的名称底下还有文字(即 Lore 列表里的字符串),那么你用金钱兑换纸时不可能得到普通的纸,商店也不接受普通的纸兑换金钱。
>> 在你向回收商店提交物品时,或者使用物品兑换金钱时,商店会获取你的背包里该种物品的数量来判断是否足够进行一次交易,但你的副手和 4 个装备栏位的物品将不会被商店更改。换句话说,回收钻石裤时你不必脱下裤子(不是
>> 上架商品的操作对每个玩家都有 6 秒的冷却时间,这是为了防止玩家恶意填充商店。
>> 当一个商品上架后,系统将记录它在售货架上的时间。默认情况下,商品经过 72 个游戏日( 1 游戏日 ≈ 20 分钟)
      会被退回到原玩家处,在“退回的物品”中可以取回这些物品。管理员可以更改这个保持时长。
      出售商店和回收商店中的商品的时长是无限的,只有管理员能移除它们。

>> 管理员自定义选项:
  1. /scoreboard players set #GLBStimer GLBSinfo <物品上架时间上限>
  2. 修改物品上架时间上限(单位:游戏日 = 20分钟 默认是 72 游戏日 ≈ 1 现实日)

  3. /function glbshop:instant_timer
  4. /* 立刻度过 1 个游戏日的商品上架时间统计周期
  5. * 系统以 1 游戏日为 1 个周期处理商品的上架时间上限
  6. * 执行该函数将立刻进行一次处理,不会影响游戏内的实际时间
  7. */

  8. /function glbshop:delete
  9. /* 抹去本数据包的全部存储信息
  10. * 回到首次载入这个数据包时它的状态,非必要慎用
  11. */

  12. /function glbshop:function/order
  13. /* 快速设置 - 禁止时间流逝、禁止天气变化、
  14. * 禁止命令方块发送消息、死亡不掉落、
  15. * 时间调整为正午,天气调整为晴天(测试专用)
  16. */
复制代码

>> 自定义金钱记分板:




>> 自定义禁用物品:

在原版中,生存玩家能获得的对商店构成威胁的仅有漏斗,它能从中吸走物品而无法被检测。
但我考虑到你可能会和其他模组一起使用,也许会有类似漏斗一样的方块需要防范。
鉴于这点,我在写防漏斗机制时并不是单一地使用漏斗,而是引用了一个方块标签,
它位于:<数据包文件夹>/GLBShopV2/data/glbshop/tags/blocks/ban_block.json 文件中
将你的希望和漏斗作同样处理的方块 ID 添加进这个方块标签,让全球商店更加安全!
正确的添加格式是在 values 数组中继续添加字符串,也可以添加具有下列形式的对象:
{
      "id": "<namespace>:<id>",
      "required": false
}



>> 技术性信息与防止冲突:

>> 命名空间:glbshop
>> 记分板前缀:GLBS
>> 实体标签前缀:GLBS
>> 默认金钱记分板:money
>> 单次连锁的命令上限(原版默认是 65536 ,我把它扩大到 8 倍):524280



>> 下载之前先看看小业的话吧~

>> V2 版本的开发时长大概是 50 个小时,写了差不多 5 天,虽然是个适合多人的数据包,但始终只有我一个玩家在测试。
      它一定是不完美的,但我相信它能经得起考验,因为它的功能有如今这般强大也令我自己感到意外。
>> 这个数据包是我第一个在 mcbbs 发布的作品,我得到了很多熟悉的人的关照、大家的关注鼓励,还有宝贵的建议。
      如果你发现了 bug 或者有宝贵的建议,请务必告诉我,我在这里等着大家。

>> 下载地址:

>> V2.0 存在漏斗矿车能吸走商店物品的 bug,在 V2.1 中修复

>> V2.1 百度网盘:https://pan.baidu.com/s/1aQ9CR850l6MCPFprr7y5yA?pwd=moe1 提取码 moe1
>> 在 1.17.1 下开发,其在 1.18 中的表现需要验证



>> 杂谈(在写了在写了~)


>> 开发过程中的困难和解决:

物品被商店读入时,会在 Lore 列表中写入注释。有一种特殊的情况是,物品本来就没有注释。在把物品交付给玩家时,商店把注释去除后可能留下空列表,如果物品原来没有名字,那么还可能留下 tag:{ void } 这样的空复合标签。这导致了物品无法和同类型的物品堆叠。原本我以为这个问题是无解的,因为 Lore 列表是否为空可以通过:
/execute if data storage ....tag.display.Lore[0] run function ...
来判断,也就是检查 Lore 列表是否存在首个子元素来判断,而复合标签不能直接用 if data 判空
后来我自己想到一个办法:写一个空标签,然后将现有标签和空标签执行 merge from 操作(set from 应该也可以)
然后用 execute store success score #... ... run ... 接收返回值,如果合并失败说明 tag 为空
这当然是个解决问题的办法,但是当我去查了一下 wiki 发现只要用 data get 获取复合标签就会返回下一级子标签的数量时
我想说我就是个呆瓜,其实是不是空就 data get 一下然后用记分板存一下返回值,分数为 0 就是空复合标签了
然后把空的 tag 去掉,物品就是原来的样子,不留痕迹,可以正常堆叠
我还发现如果用 data modify storage ... ... append from ... 向列表插入元素时,如果列表不存在,那么游戏会根据给出的路径先创建这个列表,然后再往里面插入元素。有一次也是无缘无故多了东西,检查来检查去发现是这个问题,气死我了www

>> 一些思考和心得:

在当初计划写下这个数据包的时候,其实并没有这么多功能,只是想简单地实现玩家间的交易,没有考虑有些人要用记分板作为金钱系统也没有考虑一些人更喜欢用原版物品作为货币,也没有类似查询的功能。
在开发过程中我想到了这些机制,就把它们添加了进去,这离不开我的朋友们的帮助,谢谢你们。

因为这个数据包没有玩法,就是物品之间的交易,数据包的绝大多数指令都是关于 storage、entity 的修改,例如在大多数的情况下需要从列表中找到某个元素。这就不得不谈一谈目前的 data 指令对列表的查询不能引用变量的缺点。
例如我想在列表 shop 中查找一个复合标签,这个复合标签里面的标签 uid 的值由记分板 A 指定。
那么我是这样找到这个复合标签的:
================
入口↓
①shop 复制到 copy
②删除 shop
③copy[0].uid 存储到记分板 B
④if A == B: #此时 copy[0] 就是要找的复合标签
   执行另一个函数修改 copy[0],并把 if_found 标志置 1
⑤if A != B: #没找到
执行另一个函数把 copy[0] 尾插到 shop
⑥if if_found == 1:
copy[] 尾插到 shop
⑦if if_found != 1 && if copy[0]:
   函数调用自身
出口↓
移除 if_found
================
如果能够类似地直接通过 shop[{uid:*{"type":"score","name":"?","objective":""}}] 找到符合条件的子元素,
那这个商店能减少 1/3 的体量和 1/2 的运算,mojang 你听见了吗?!!

还有一些原版指令不能做到的,或者说不能很方便地做到的:
1. 凭空为玩家打开某个交互界面
2. 修改玩家的血量
......
有很多看似不可能的机制、难以完成的机制,都在很多大佬的双手下完成了(大佬用的可能是单手)
明明数据包的功能还有很多空缺,但我们确实做到了,
在这种前提下,我们完成了许多。
但我有时候会思考,是否真的有必要在这一点上无限地突破,
mojang 没有提供的功能,就用玩家们的聪明才智去弥补,
这种弥补是多代的、集很多玩家的智慧的。例如修改原版血量,
我见证了从需要间隔 6t,到只需要间隔 3t,到现在有 cber 做到了仅需 1t 就能完成修改。
以前我总会说,数据包拥有无限的可能,就像这个商店数据包,
在制作它之前,我也没有想到它的功能也会让我如此满意。
但真的是数据包拥有无限可能吗?
其实我更想说的是,是玩家的创造性拥有无限的可能,
mc的乐趣来自于我们的热爱和创造。
——小业










来自群组: VoidCreatureWorkShop

评分

参与人数 22人气 +31 金粒 +366 宝石 +25 贡献 +1 展开 理由
001020as + 1 + 5 MCBBS有你更精彩~
MC胡某 + 1 MCBBS有你更精彩~
黄金动画师 + 1 + 15 MCBBS有你更精彩~
yang_guang_MC + 1 高呼666!
CR_019 + 2 + 40 原来是你!
夜米奇 + 1 + 8 MCBBS有你更精彩~
玄素 + 4 + 50 + 1 MCBBS有你更精彩~
波西666 + 2 + 10 MCBBS有你更精彩~
乙烯_中国 + 25 MCBBS有你更精彩~
2114039705 + 1 还能改进一下
一水合氨 + 15 MCBBS有你更精彩~
TD_Monsteric + 2 + 30 MCBBS有你更精彩~
block_hole + 1 好!
ruhuasiyu + 3 + 38 不错不错
△@← + 1 + 20 卧槽,好!
VCS-Official + 2 + 30 做得好精细的样子
古镇天Gu_ZT + 2 + 40 MCBBS有你更精彩~
hxyzg + 15 MCBBS有你更精彩~
Lakejason0 + 2 + 30 做得还行
e_z_alex + 1 神乎其技!6的飞起!

查看全部评分

帖子永久链接: 

Minecraft中文论坛 - 论坛版权1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站所有主题由该帖子作者发表,该帖子作者享有帖子相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者的同意
4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖若有内容转载自其它媒体,不代表本站赞同其观点和对其真实性负责
6、若本帖涉及任何版权问题,请立即告知本站,本站将及时予以删除并致以最深的歉意
7、Minecraft(我的世界)中文论坛管理员和版主有权不事先通知发贴者而删除本文

Mini_Ye 当前离线
积分
689
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-1-17
查看详细资料
沙发
 楼主| 发表于 2021-7-8 20:45:43 | 只看该作者
鱼宝放心飞 发表于 2021-7-8 11:53
货币符号 ¥ 应该在数字价格之前吧(

如果要说的话,我个人更喜欢 tellraw 菜单界面,不用涉及到实体。 ...

好 符号我改一下。但是你没有看明白,玩家并不是买下管理员规定的东西,而是玩家可以卖任何他手里的东西上去,所以只能通过这种方式,你说的用tellraw的话,聊天栏无法显示物品的。而且tellraw排版也会因玩家的游戏分辨率大小而变,所以你说的用tellraw不是最佳的选择。
回复

使用道具 举报

Mini_Ye 当前离线
积分
689
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-1-17
查看详细资料
板凳
 楼主| 发表于 2021-7-8 22:12:44 | 只看该作者
鱼宝放心飞 发表于 2021-7-8 20:53
【1.13】地图制作技巧——字体艺术
https://www.mcbbs.net/thread-835539-1-1.html
字体黑科技 —— 潜影 ...

哦哦你是说这个!之前我看过
不过这样又要损失一个肝了哈哈哈。
感谢提供的点子,我后面再看看能不能改善,谢谢啦
回复

使用道具 举报

ruhuasiyu 当前离线
积分
22451
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2014-10-16
查看详细资料
地板
发表于 2021-7-8 22:44:40 | 只看该作者
3386905 发表于 2021-7-8 22:12
哦哦你是说这个!之前我看过
不过这样又要损失一个肝了哈哈哈。
感谢提供的点子,我后面再看看能不能改善 ...

那样需要提供额外资源包,而且只能支持原版物品原版材质,还是用你这个更普适些
回复

使用道具 举报

Mini_Ye 当前离线
积分
689
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-1-17
查看详细资料
5#
 楼主| 发表于 2021-7-8 22:48:59 | 只看该作者
ruhuasiyu 发表于 2021-7-8 22:44
那样需要提供额外资源包,而且只能支持原版物品原版材质,还是用你这个更普适些 ...

对这样还要资源包,tellraw里面的点击效果也很麻烦。
(如花~~~我抓住了!!!
(之前整天抱着你的原版数据包教学看
回复

使用道具 举报

hxyzg 当前离线
积分
1380
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-3-13
查看详细资料
6#
发表于 2021-7-9 05:42:51 | 只看该作者

请看清楚介绍的版本,是1.17!不是1.7!
回复

使用道具 举报

Mini_Ye 当前离线
积分
689
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-1-17
查看详细资料
7#
 楼主| 发表于 2021-7-9 19:30:57 | 只看该作者
zcf21444 发表于 2021-7-9 16:53
不错不错!有点意思

新人不太会哈哈,感谢支持~
回复

使用道具 举报

2114039705 当前离线
积分
214
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-3-4
查看详细资料
8#
发表于 2021-7-10 10:19:08 | 只看该作者
问一下:
能不能实现那种模拟市场经济的机制
物品价格根据供需大小来自动调整市场价格
玩家可以自己给自己要出售的物品一个价格
同时显示市场价格,像(eve)一样有较为完备的市场经济
同时如果市场价格根据玩家买卖的价格大小,数量,种类来有所波动,能否产生人为操纵市场
It's very interesting.
回复

使用道具 举报

2114039705 当前离线
积分
214
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-3-4
查看详细资料
9#
发表于 2021-7-10 11:02:20 | 只看该作者
2114039705 发表于 2021-7-10 10:19
问一下:
能不能实现那种模拟市场经济的机制
物品价格根据供需大小来自动调整市场价格

建议加一个求购(收购)的功能
有时候玩家可能找不到自己想要买的东西或者市场上没有卖,太稀有太少了
引导玩家的需求,让玩家买到自己想要买的东西
让玩家发布高价求购(收购)
回复

使用道具 举报

Mini_Ye 当前离线
积分
689
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-1-17
查看详细资料
10#
 楼主| 发表于 2021-7-10 11:54:32 | 只看该作者
这个太难了...而且做出来效果可能很不好。对比功能我视频评论区也有人发,这个也很难实现,因为首先要找出同item的物品,再选出最高价,再让其它的显示价格偏高,而且有nbt的情况下更难处理。比如同样是一把钻石剑,可能有的是带着很好的附魔
回复

使用道具 举报

wjzspeed 当前离线
积分
81
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2020-1-13
查看详细资料
11#
发表于 2021-7-11 02:37:34 | 只看该作者
如果要说的话,我个人更喜欢 tellraw 菜单界面,不用涉及到实体
回复

使用道具 举报

异空间 当前离线
积分
487
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-6-10
查看详细资料
12#
发表于 2021-7-13 09:54:29 | 只看该作者
或许可以把loot_table里面固定的Q键和左键改成keybind显示,而且有些地方左键会直接让两块玻璃板重合,虽然是个小问题,但是有时候会影响体验。小业厉害,支持!
回复

使用道具 举报

乙烯_中国 当前离线
积分
27603
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2014-12-16
查看详细资料
头像被屏蔽
13#
发表于 2021-7-20 17:32:42 | 只看该作者
很久没看到这么纯粹的帖子了,很喜欢
回复

使用道具 举报

luckyxing 当前离线
积分
1523
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2021-3-20
查看详细资料
14#
发表于 2021-7-23 19:54:47 来自手机 | 只看该作者
没有上架和下架的指令吧
回复

使用道具 举报

Mini_Ye 当前离线
积分
689
帖子
主题
精华
贡献
爱心
钻石
人气
下界之星
最后登录
1970-1-1
注册时间
2017-1-17
查看详细资料
15#
 楼主| 发表于 2021-8-1 13:31:00 | 只看该作者
乙烯_中国 发表于 2021-7-20 17:32
很久没看到这么纯粹的帖子了,很喜欢

啊哈谢谢,新人一枚[doge]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2022-5-21 08:04 , Processed in 0.057481 second(s), Total 30, Slave 29 queries, Release: Build.2022.05.20 1436, Gzip On, Redis On.

"Minecraft"以及"我的世界"为美国微软公司的商标 本站与微软公司没有从属关系

© 2010-2022 我的世界中文论坛 版权所有 本站内原创内容版权属于其原创作者,除作者或版规特别声明外未经许可不得转载

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