热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Skybreach:由RMRK打造的元宇宙[详解/攻略]

撰文:Eunice审阅:MIDDLE.X,Owen


撰文:Eunice
审阅:MIDDLE.X,Owen
编辑:Eunice



前言 



RMRK 是 Web3 基金会前技术教育家 Bruno Škvorc 在 2020 年创立的一个 NFT 标准 。通过在 Polkadot/Kusama 中继链的交易扩展字段中以「涂鸦」的形式存储 NFT 状态转换数据,RMRK 标准构建了一个不依赖于智能合约、且扩展性更强、具有高度灵活性和跨链兼容性的 NFT Layer 0。用 RMRK 标准创建的 NFT(后文简称 rNFT)具有多资源、可嵌套、可响应、灵活配置等强大特性,能够支持更加复杂和智能的NFT项目的开发。此前,PAKA 已经撰文对 RMRK NFT 标准进行了介绍。

 

读懂最强 NFT 协议RMRK:像 HTML一 样灵巧的NFT协议

 

一直以来,RMRK 团队始终保持着高度的活跃和密集的输出,Github 代码提交和博客更新都非常频繁。继该团队创造了 RMRK NFT 标准之后,紧接着为 rNFT 开发了交易平台 Singular。Singular 目前是 Kusama 生态中最受欢迎的 NFT 交易平台。




https://singular.app



RMRK 另一个广受社区追捧产品是 Kanaria,它是团队开发的第一个 rNFT 应用实例。Kanaria 鸟类既是一套 NFT 收藏品,同时也是一个装扮游戏,Kanaria 可以穿戴 rNFT 部件来改变自己的外观。




https://kanaria.rmrk.app/



而现在 RMRK 团队正在迈向一个新的目标:用 rNFT 创造元宇宙。


从“模拟稀缺”到“数字稀缺”


目前大多元宇宙项目,是用中心化数据库来维护一个 NFT 和素材路径的映射表。当你使用钱包地址登录以后,程序会读取你钱包中的 NFT,并从映射表中查找到素材路径,进一步获取素材文件来为你呈现对应的视觉效果,素材文件可能存储在服务端,也可能存储在客户端。这就意味着,如果维护 NFT 和素材映射关系的数据表丢失,你的游戏资料、元宇宙体验就会丢失。这并不符合区块链去中心化和安全的直觉。

 

如果用 rNFT 构建一个元宇宙,则会完全不同。玩家的游戏角色本身一个 NFT,角色的装备也是 NFT,这些装备会被嵌套在角色之上,这就是靠 rNFT 可嵌套特性实现的,不存在角色和装备之间的映射表,更无需中心化数据库来存储映射关系。

 

此外,可嵌套性同时解决了现有 NFT 的模拟稀缺问题。避免了用户通过使用同一个钱包,登录几十个不同元宇宙实例,重复利用该钱包内的某一个 NFT 的情况。也就说 rNFT 装备必须装备在 rNFT 角色上,才能在元宇宙空间中呈现其效果,这种嵌套关系是排他的,你的某个装备 X,装备给角色 A 上时,就不能再装备给角色 B,这使得 NFT 装备具有了真正的稀缺性。

 

而在当前的大多数元宇宙项目中,用户的 NFT 装备在钱包中,不在游戏中,也就说,用户可以通过登录不同的元宇宙实例来复用该钱包内的某一个 NFT ,比如说,你的一个墨镜 NFT,可以同时出现在元宇宙甲和元宇宙乙的角色人物之上,并呈现出不同的视觉效果。这导致用户体验到的 NFT 稀缺性大打折扣,不利于发现一个 NFT 的真正经济价值。

 

而如果你的装备是一个 rNFT,你依旧可以复用该装备,但你必须将该装备转移到另一个游戏当中的角色身上,转移后,装备自动从原来的游戏角色身上卸下。任何时候,你都只能看到该装备出现在一个游戏角色,而非多个游戏角色身上。

 


Skybreach
 

Skybreach 是以 rNFT 构建的第一个元宇宙用例,它将成为一个真正去中心化的具有数字稀缺性的元宇宙空间,并成为 Kanaria 和其它新生 rNFT 生物群落的栖息地。Skybreach 是一个 rNFT 集合, 其中的城市、城市中的每一个地块都是 rNFT,地块上活动的游戏角色、修建的建筑物、各种用于修饰这些角色和建筑的装饰物也都是 rNFT。



https://skybreach.app/



  • Skybreach 土地

 

目前 Skybreach 里有 9 个悬浮的天空之城(Skyland),每个天空之城托管 25000 片土地,总共 225000 片土地。这些土地当中的绝大部分会陆续通过售卖发放到市场上,任何土地的所有者都可以自由地对其进行建造和管理,以保持土地的经济价值和良好的用户体验。游戏被加入了一点「哈伯格」机制,如果你长时间不打理你的土地,土地就会「衰退」(decay),被没收并以相对便宜的价格回到市场流通。

 

每片土地都是一个多资源的 rNFT,玩家可以用可嵌套的 rNFT 来建造它们,比如上传图像 rNFT、音乐 rNFT 等对这片土地空间做一些基本的渲染;也可通过系统性的 rNFT 嵌入,使这片土地成为一个 Play to Earn 游戏场所,更具可玩性,玩家可以在上面完成集体任务以获得相应的经验值。当然,玩家也可以在 Skybreach 启动后将土地售卖或出租,抑或是简单的授权给某人,让他来进行开垦,只做一个纯粹的土地所有者。



 


当前仅有一个天空之城土地在出售,但仅出售的是其中的 22000 片,包括 16000 片普通土地(Common Land)、5000 片稀有土地(Rare Land)和 1000 片史诗土地(Epic Land)。


剩下 3000 片特殊土地暂不出售 —— 包括 500 片为 RMRK 团队所有和分配的、属于公有资产的 Premium Land,以及 2500 片通常位处靠近城市中心、穿梭门户、飞艇码头等具有公共使用价值的 Harbtaxes Land。

 

和我们现实生活中的土地买卖一样 —— 一个地址可以拥有的土地数量是没有限制的,用户可以自由购买几个或分散或集中的常规土地并进行建造。


 

  • Skybreach 地块

 

每片土地是一个 32*32 的正方形,每一个小正方形就是一个地块,这样,一个土地将有 1024 个地块,而每个地块都可以嵌套至少两个 rNFT 来为这片土地添砖加瓦。

 

土地可以被视为一个整体来进行交易,也可以被灵活拆分成不同的单个地块或地块组进行交易,例如出售 3*5、25*25 的地块组合,这些地块组合也可以是是边界形状不规则的组合。(尽管如此,购买整块土地仍然是最划算的,原因详见后文关于土地层级的玩法描述。)


 

 

9 个天空之城,每个天空之城有 25000 片土地,每片土地有 1024 个地块,这意味着仅在一个高度/深度(将在后文的“土地层级”部分解释),Skybreach 就释放了 9*25000*1024=2.304 亿个 NFT 槽,这等同于开放了一个巨大的 NFT 创造工场。

 

  • 地块层级(Tier)

 

接下来我们要介绍 Skybreach 地块的一个核心机制:层级。

 

每一个地块都有自己的层级,层级可分类为分深度和高度,分别是指建筑可以构建的地下楼层数和地面楼层数。高度越高深度越深,便可以修建更丰富的建筑,开展更加密集、活跃的商业活动。不同级别的土地都有自己的初始层级和「衰退」时间。

 


土地

深度

高度

衰退时间(天)

常规

0

1

90

稀有

1

2

180

史诗

2

3

360

Premium

3

4

\

Harberger Taxed

3

4

\

 表 1


除了初始层级,你的某个地块在你整块土地当中的相对位置也会给层级带来影响,称为「周围加成」(Adjacency Bonus)。例如你有一块 3*3 的土地,那么中心的地块的高度/深度将会 +1,如果你有一块 5*5 的土地,中心地块的高度/深度则会 +2,靠近中心周围 8 个地块的高度/深度则 +1。简单来说,在同一个所有者的土地当中,一个地块的「周围加成」取决于在它周围有几圈地块。需要注意的是:「圈」必须是完整的,缺角的圈无法为中心地块带来加成。




h: Height 高度     d: Depth 深度


只有完整的「圈」才能给中心地块带来加成

 


这样做的目的是鼓励开发者从中心点开始均匀的向周边扩展,而非东一榔头西一棒槌,分散在多个点进行建造。这样有利于土地内的社区活动形成聚集效应。

 

另外,一个人拥有整块的土地会比多个人分别拥有一部分更有优势,因为整块 32*32 的土地可以使得「周围加成」最大化,中心的四个地块的周围加成可以达到 15。这将鼓励个人之间合作,使用多签地址购买土地,以公会形式运营土地。

 

一个地块的高度/深度 = 初始的高度/深度 + 周围加成。举个例子,如果现在要在天空之城中修建一座城堡,其要求是,地块的高度必须大于等于 5。我们可以通过两种方式完成:


(1)把城堡建立在一个 9*9 的正方形中心;


(2)把城堡建立在一个 3*3 的正方形中心,且该中心地块是一个史诗地块。也就是(史诗地块默认的高度 3 + 周围加成 2 = 5)。



 


Skybreach 的层级机制还有一个效用,那就是鼓励土地开发者长期经营,整体规划,而非将土地拆分转卖,因为转卖部分地块,将导致中心地块周围的圈出现缺角,致使中心地块的高度/深度减少。


比如说,一个高度为 5 的中心地块上建设了一个高度要求为 5 的城堡,但此时它周围的其中一个地块被出售,导致其高度降为 4,此时城堡不会被摧毁;但如果此时城堡由于其它原因被拆除,则城堡无法被恢复,因为地块已不满足高度要求。只有回购周围被出售的地块,让中心地块高度恢复到 5 以上时,才能恢复城堡。

 

 

购买 Skybreach 土地
 

一旦 Skybreach 开始运转,你将能够修建建筑物,创建一些小部件到你的土地,满足你的设计爱好和欲望。或是你也可以义务的贡献这些土地给其他人,让他们发挥自己的才能来建造、管理这片土地,帮助你所在的这片 土地成为一个 “热门城市”。

 

如果你设计精巧、管理细致,吸引到更多人来购买周边土地,抑或是吸引到了更多用户到这里来开展各项商业活动、完成任务,使这片土地更具可玩性 —— 在共识为王的区块链世界,这将提升你的土地的价值。如果你无暇打理它们,也可以当一个“地产大亨”等待地价上涨时卖出,或是做一个“包租婆“,把土地租赁给那些希望搞创作的人。

 

通常,拓荒者能以更少的精力、竞争、金钱成本获得相对更高的回报率。相对而言,在早期获得土地是很便宜的,也可以得到 RMRK 团队后续更多的空投机会:一些特定建筑物 —— 后期用户必须通过购买获得,早期参与者则将通过空投获得。当然,早期虽然土地便宜,但土地经济生态相对贫乏,这是一个自然的过程。

 

Skybreach 的土地销售会分为五个阶段,预计将持续半年左右至今年年底,6 月 18 号 Shybreach 已开启第一阶段的预售,我们一起来了解下 Skybreach 土地销售的的具体规划和参与方式。


 


参与资格

持续时间如何购买


第一

阶段


Kokopelli 宝石

持有者

7 天

6.17-6.24

燃烧宝石获得的 Credit

可用于购买土地


第二

阶段


Kanaria 

持有者 

(空投)

3 天

6.25-6.28

燃烧优惠券获得 Credit


第三

阶段


白名单

3 天

6.28-7.1

享有正常的固定市场价,但具有购买的时间优势


第四

阶段


公开销售

7 天

7.1-7.8

价格固定


荷兰

拍卖


公开销售

2022 年底

价格波动

市场定价

 表 2

 

 


第一阶段:kokopelli 宝石持有者预购期

该阶段仅对拥有 kokopelli 宝石的用户开放,他们需要在预售开始前(6月15日之前)将 Kokopelli 兑换为 Credit(类似于现金积分,可用于购买土地),才能获得第一阶段(6月17日-6月24日)的优先土地购买权。

 

第二阶段:Kanaria 持有者预购期

所有 Kanaria 持有者至少获得了一个土地优惠券,这些优惠券同样需要在预售开始前将土地优惠券兑换为 Credit,才能在该阶段(6月24日 - 6月27 日)参与土地购买。

 


 

 


▸ 温馨提示:
  


* 如果你的 Credit 没来得及在第一/第二阶段使用,也没有关系,后续的阶段依旧可以继续使用。最低等级的优惠券也可以兑换价值 50 xcRMRK($RMRK 的 Moonriver 跨链版)的 Credit,刚好在第三、四阶段可以买到一块常规土地。如果不处理就相当于白白失去了 免费领取一块土地的机会。


* 如何获得 xcRMRK Token 请见文后链接 [2]。                                                               


* 燃烧不同优惠券获得的 Credit 不能合并购买更高价值的土地。                                   



* 如果您持有 Kokopelli 宝石或是 Kanaria 鸟,但是在 6月15日之前没有来得及兑换为 Credit ,那么现在已无可挽回,不能再兑换。PAKA 将建立一个「RMRK 中文交流群」,以帮助提醒大家类似的活动优惠和起止时间,敬请关注。  



第三阶段:白名单预购期

6月27日至6月30日为第三阶段,持有以下 NFT 的用户即可在第三阶段开始抢购地块:

 

  • Lobsters

  • Club721

  • Sandbox and Decentraland land

  • BAYC and MAYC

  • Moonsama

 

这些用户的购买土地价格和第四阶段的销售价是一样的,他们仅仅是获得时间上的优势,有可能以“郊区价”抢购到相对“中心地段”的土地。

 

第四阶段:固定价格公售期

为期7天(6月30日 - 7月7日 )的公开土地销售,售价是固定的。


 


常规土地


xcRMRK

普通

50

稀有

150

史诗

250

 


第五阶段:荷兰式拍卖销售期

此后便是荷兰拍卖直至 2022 年底。荷兰拍卖最开始是用于拍卖荷兰郁金香的行为,是为了提高售卖效率而设计的。引入荷兰拍卖,有助于探索到天空之城土地最合理的市场区间价 —— 无人购买的时候,价格会在一个时间段后开始下降,之后的任意时间若有人购买则成交;当价格落到人们心理的合理区间,会有更多人出价,此时如若出价的人足够多,则触发增价竞拍,直到价格再次回到一个无人出价的高值。

 

这种拍卖方式既可以避免土地价位虚高也可避免土地贱卖,有效地发现土地的合理市场价值。

 

推荐奖励

你的土地无论是全价购买的抑或通过 Credit 换购的,都将获得 Point(点数),常规土地为 1 Point,稀有土地为 3 Point,史诗土地为 5 Point,一旦积累到 10 个 Point,就可获得一个推荐链接,每一笔通过此链接进行的交易,都将有 5% 交易额提成以 Credit 形式打到你的账户。

 

 

土地维护:人聚则兴

“屋”有其主,生气盎然。土地的价值需要所有者的维护才能得以保持。空置的土地既是对资源的浪费,也不利于其它角色持有者的游玩体验。为了防止类似空城和被遗弃的不可改变的地块的形成,Skybreach 引入了土地衰败(World Decay) 的概念。


如若在一个规定的时间内,土地所有者从未将 Kanaria rNFT(在未来可以是其它角色,如 Bored Ape) 放置到土地 rNFT 上至少一次,土地的所有权将会归还给天空之城,进入市场流通自由买卖(将是一个折扣优惠价),同时土地上的建筑 rNFT 资源也会丢失。所以如果你很幸运,以优惠的价格在预售阶段买到了土地,请一定要定期维护,这个维护并不困难,给予的时间相对宽裕,只需满足是在表 1 所示的衰败时间内进行维护即可,否则损失的不仅仅使用真金白银优先抢的土地,还有土地上的 嵌套的其它 rNFT 资源。

 

不过,好消息是,如果某段时间,你真的太忙碌而无暇打理某块土地,你可以将它们“托管”给 Skybreach,即锁定 10 xcRMRK 到该土地以避免其被回收流入市场被”贱卖“,这 10 xcRMRK 会一直锁定在 Skybreach 中,不计入流通,直到你回到这片土地开始维护它。

 

 

RMRK团队将如何处理收集到的 xcRMRK ?


出售土地的收入将用于扩大 RMRK 团队,并为 Skybreach 的发展提供资金,使其最终成为一个自我调节、自我可持续、自我进化的元宇宙。

 

 

结语
 
RMRK 团队不仅开创了新的 NFT 标准,更是身体力行的为我们不断打造基于此标准的爆款应用,从 Singular 到 Kanaria,都取得了非凡的成功,而现在我们将看到的是 RMRK 的第一个元宇宙产品:Skybreach。

未来,Skybreach 将基于 Web3 跨链交互来实现 NFT 大融合,所有的游戏角色都可以到这天空来旅行、定居、开展商业活动等等。更难能可贵的是,RMRK 把 NFT 与生俱来稀缺性还给 NFT,无论是地址稀缺还是视觉效果稀缺。借助 rNFT,Skybreach 被打造为了一个更加去中心化、更具可组合性,更具可玩性的元宇宙空间。在实现了跨链交互的未来,任何 rNFT 都将具有真实的唯一性。

复杂的事物往往从简单的规则中涌现出来,就像人脑数千亿神经元仅靠着简单的突触连接聚合而产生了意识(谈及意识起源问题,这个问题目前科学还无法解释)。Skybreach 的基础规则非常简洁,无非是可嵌套的 rNFT 结构+可计算的土地层级,但在这基础上,土地、建筑、人物、魔法生物、饰品装备等元素被承载其中,他们相互连接、互动,聚合为群落、城市、乃至虚拟国家。

现在的 Skybreach 就像 16 世纪刚刚被发现的美利坚处女地,她人迹罕至,但是平坦肥沃,她正等待着人们的开发、创造、淘金。

 


参考资料:

[1] Kanaria: Skybreach 

https://rmrk.gitbook.io/kanaria-skybreach/

[2] 获得 xcRMRK Token 

https://rmrk.gitbook.io/kanaria-skybreach/fundamentals/usdrmrk-xcrmrk-token




About PAKA

PAKA 是一个由众多波卡平行链发起人联合创建的 DAO Venture,旨在发掘和帮助波卡以及web3生态的创新团队。我们希望能够将每一代创业者的创业经验和技术沉淀,通过 DAO 的方式帮助到下一代创业者,推动 Web3.0 的愿景实现。


推荐阅读
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • PTArchiver工作原理详解与应用分析
    PTArchiver工作原理及其应用分析本文详细解析了PTArchiver的工作机制,探讨了其在数据归档和管理中的应用。PTArchiver通过高效的压缩算法和灵活的存储策略,实现了对大规模数据的高效管理和长期保存。文章还介绍了其在企业级数据备份、历史数据迁移等场景中的实际应用案例,为用户提供了实用的操作建议和技术支持。 ... [详细]
  • 本文详细解析了Java类加载系统的父子委托机制。在Java程序中,.java源代码文件编译后会生成对应的.class字节码文件,这些字节码文件需要通过类加载器(ClassLoader)进行加载。ClassLoader采用双亲委派模型,确保类的加载过程既高效又安全,避免了类的重复加载和潜在的安全风险。该机制在Java虚拟机中扮演着至关重要的角色,确保了类加载的一致性和可靠性。 ... [详细]
  • NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮?
    NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮? ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 本文详细解析了使用C++实现的键盘输入记录程序的源代码,该程序在Windows应用程序开发中具有很高的实用价值。键盘记录功能不仅在远程控制软件中广泛应用,还为开发者提供了强大的调试和监控工具。通过具体实例,本文深入探讨了C++键盘记录程序的设计与实现,适合需要相关技术的开发者参考。 ... [详细]
  • 卓盟科技:动态资源加载技术的兼容性优化与升级 | Android 开发者案例分享
    随着游戏内容日益复杂,资源加载过程已不仅仅是简单的进度显示,而是连接玩家与开发者的桥梁。玩家对快速加载的需求越来越高,这意味着开发者需要不断优化和提升动态资源加载技术的兼容性和性能。卓盟科技通过一系列的技术创新,不仅提高了加载速度,还确保了不同设备和系统的兼容性,为用户提供更加流畅的游戏体验。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
  • 尽管我们尽最大努力,任何软件开发过程中都难免会出现缺陷。为了更有效地提升对支持部门的协助与支撑,本文探讨了多种策略和最佳实践,旨在通过改进沟通、增强培训和支持流程来减少这些缺陷的影响,并提高整体服务质量和客户满意度。 ... [详细]
  • iOS 设备唯一标识获取的高效解决方案与实践
    在iOS 7中,苹果公司再次禁止了对MAC地址的访问,使得开发者无法直接获取设备的物理地址。为了在开发过程中实现设备的唯一标识,苹果推荐使用Keychain服务来存储和管理唯一的标识符。此外,还可以结合其他技术手段,如UUID和广告标识符(IDFA),以确保设备的唯一性和安全性。这些方法不仅能够满足应用的需求,还能保护用户的隐私。 ... [详细]
author-avatar
llllllw_wlllllll
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有