本帖最后由 TUCAOEVER 于 2023-3-3 14:04 编辑 
————————————————————————————————
什么是Skript:
(原站内转载贴 https://www.mcbbs.net/thread-636131-1-1.html 已获得授权进行二次搬运)
Skript是一款由 Njol 开发的一种 仅适用于 Minecraft (Java)服务器的编程语言
但是原作者 从 2.1 版本弃坑 (仅支持到1.7.10) 现维护者 bensku 更新 Skript 至 2.5 (支持1.9-1.15.2)
想必很多服务器服主都或多或少了解/使用过 脚本方块(ScriptBlock) 这个插件
脚本方法在触发其所携带的脚本的时候 首先会触发一些条件 比如 权限判断 游戏币数量判断
其次他会执行一个动作 比如 发送信息 给予物品 给予权限 对于脚本方块来说
它所能做到的也仅仅只有这些 不依赖 JS 或者 其他插件 脚本方块插件内置的条件和效果也少到可怜
远远不足以开发一套完善的游戏机制 但是 Skirpt 为你提供了这样的可能
Skript 能做到很多插件可以做到的事情 与其说它是一个插件 更不如说它是一种编程语言首先 Skript 为所有使用者提供了绝大多数 CraftBukkit(水桶服) 提供的事件触发方式
比如说 玩家死亡 玩家重生 生物死亡 生物生成 放置方块 破坏方块 击杀玩家 击杀生物 等
也为使用者提供了丰富的效果 比如 传送生物 设置物品数据 设置玩家数据 等
同时相较于 Java 对格式严格要求 Skript 容错率更高 例如
在 Java 内如果你需要判断一个玩家是否拥有权限 你基本上写法就是 if player.hasPermission("...")
但是在 Skript 内你可以这样写 player has permission "..."
也可以这样写 if player has permission "..."
甚至可以这样写 if player has permissions "..."
这就意味着 相比起其他语言 Skript 简化语法的学习过程 关注的更多是逻辑上的学习过程
也就和我标题所写 只需要会英语 会用英语造句子 那么你所需要关注的仅仅是编程的逻辑学习
什么是逻辑学习 我这里还是举一个例子 很多菜单插件 都会有这样一个功能 "以管理员身份执行命令"
很多初学编程的会这样写 op player -> execute player command -> deop player(即给予管理权限 -> 执行命令 -> 取消管理权限)
缺遗漏了本身拥有管理权限玩家的判定 而判断就是编程语言逻辑的一种体现方式
————————————————————————————————
Skript-mirror 利用 NMS 可以做到改变 NBT 的功能
(属于Skript 和 Java 的交集地带 需要一定 Java 基础)
复制代码————————————————————————————————
学习Skript:
详细基础教程 https://www.mcbbs.net/thread-962548-1-1.html [全文 1w+ 字 一遍就会]
该教材包含:
● 如何针对服务器选择合适版本的 Skript
● 如何安装 Skript
● 如何查阅Doc文档
● 如何编写脚本
官方Doc查阅 https://skriptlang.github.io/Skript/ [最全的原版 5 大类 集合 但 不方便查阅]
非官方Doc查阅 https://skripthub.net/docs/ [最方便的查阅地址 但 部分语法可能过时]
(老板官方Doc(2.1) 插件百科翻译 SkUnity 各有长处 但 介于语法过时 不推荐在编写脚本的时候使用)
————————————————————————————————
选择Skript:
Skript是一款插件 也就意味着你需要像安装其他插件一样 需要放在 plugins 目录下
很多人认为越新版本的插件对服务器越好 但实际上对于 Skript 不是这样的
作为用户我大致上体验了 2.1.2 2.2dev36 2.2dev37c 2.3.5 这几个版本
不同版本的服务器个人推荐使用的 Skript 插件版本如下
1.7.10 推荐版本 2.1.2 https://dev.bukkit.org/projects/skript/files/779542/download
1.8.8 或者 1.12.2 Mod 推荐版本 2.2dev37c https://github.com/SkriptLang/Skript/releases/download/dev37c/Skript.jar
1.9+ 推荐版本 最新版 https://github.com/SkriptLang/Skript/releases
————————————————————————————————
更新日志:
来自群组: Complex Studio
————————————————————————————————
什么是Skript:
(原站内转载贴 https://www.mcbbs.net/thread-636131-1-1.html 已获得授权进行二次搬运)
Skript是一款由 Njol 开发的一种 仅适用于 Minecraft (Java)服务器的编程语言
但是原作者 从 2.1 版本弃坑 (仅支持到1.7.10) 现维护者 bensku 更新 Skript 至 2.5 (支持1.9-1.15.2)
想必很多服务器服主都或多或少了解/使用过 脚本方块(ScriptBlock) 这个插件
脚本方法在触发其所携带的脚本的时候 首先会触发一些条件 比如 权限判断 游戏币数量判断
其次他会执行一个动作 比如 发送信息 给予物品 给予权限 对于脚本方块来说
它所能做到的也仅仅只有这些 不依赖 JS 或者 其他插件 脚本方块插件内置的条件和效果也少到可怜
远远不足以开发一套完善的游戏机制 但是 Skirpt 为你提供了这样的可能
Skript 能做到很多插件可以做到的事情 与其说它是一个插件 更不如说它是一种编程语言首先 Skript 为所有使用者提供了绝大多数 CraftBukkit(水桶服) 提供的事件触发方式
比如说 玩家死亡 玩家重生 生物死亡 生物生成 放置方块 破坏方块 击杀玩家 击杀生物 等
也为使用者提供了丰富的效果 比如 传送生物 设置物品数据 设置玩家数据 等
同时相较于 Java 对格式严格要求 Skript 容错率更高 例如
在 Java 内如果你需要判断一个玩家是否拥有权限 你基本上写法就是 if player.hasPermission("...")
但是在 Skript 内你可以这样写 player has permission "..."
也可以这样写 if player has permission "..."
甚至可以这样写 if player has permissions "..."
这就意味着 相比起其他语言 Skript 简化语法的学习过程 关注的更多是逻辑上的学习过程
也就和我标题所写 只需要会英语 会用英语造句子 那么你所需要关注的仅仅是编程的逻辑学习
什么是逻辑学习 我这里还是举一个例子 很多菜单插件 都会有这样一个功能 "以管理员身份执行命令"
很多初学编程的会这样写 op player -> execute player command -> deop player(即给予管理权限 -> 执行命令 -> 取消管理权限)
缺遗漏了本身拥有管理权限玩家的判定 而判断就是编程语言逻辑的一种体现方式
————————————————————————————————
Skript-mirror 利用 NMS 可以做到改变 NBT 的功能
(属于Skript 和 Java 的交集地带 需要一定 Java 基础)
————————————————————————————————
学习Skript:
详细基础教程 https://www.mcbbs.net/thread-962548-1-1.html [全文 1w+ 字 一遍就会]
该教材包含:
● 如何针对服务器选择合适版本的 Skript
● 如何安装 Skript
● 如何查阅Doc文档
● 如何编写脚本
官方Doc查阅 https://skriptlang.github.io/Skript/ [最全的原版 5 大类 集合 但 不方便查阅]
非官方Doc查阅 https://skripthub.net/docs/ [最方便的查阅地址 但 部分语法可能过时]
(老板官方Doc(2.1) 插件百科翻译 SkUnity 各有长处 但 介于语法过时 不推荐在编写脚本的时候使用)
————————————————————————————————
选择Skript:
Skript是一款插件 也就意味着你需要像安装其他插件一样 需要放在 plugins 目录下
很多人认为越新版本的插件对服务器越好 但实际上对于 Skript 不是这样的
作为用户我大致上体验了 2.1.2 2.2dev36 2.2dev37c 2.3.5 这几个版本
不同版本的服务器个人推荐使用的 Skript 插件版本如下
1.7.10 推荐版本 2.1.2 https://dev.bukkit.org/projects/skript/files/779542/download
1.8.8 或者 1.12.2 Mod 推荐版本 2.2dev37c https://github.com/SkriptLang/Skript/releases/download/dev37c/Skript.jar
1.9+ 推荐版本 最新版 https://github.com/SkriptLang/Skript/releases
————————————————————————————————
更新日志:
Version 2.5.1
新增条件 "isOccluding"
为 "send block change effect" 语法增加 "block data"
- 发送方块材质更变时附带方块数据
新增表达 "arror pierce" "critical state"
- 弓箭准确度以及暴击状态
新增表达 "project bounce state"
- 弓箭附加效果
新增语法 "within"
- 快速获取两点之间的方块/区块
"play sound" 支持使用 ":" 以使用原版声音命名标准
新增事件 "mending event"- 物品维修事件
新增表达 "heal amount"
- 获取治疗数值
"between" 支持使用 "decimals"
- 快速获取两个数值之间的小数
新增表达 "random UUID"
"spawn event" 支持使用 "non living entities"
"ConditionStartsEndsWith" 支持字符串数组
新增效果 "force attack"
- 强制一个生物攻击其他生物
新增效果 "make an entity swing their hand"
- 强制一个生物摆动手臂
新增表达 "minecart’s derailed velocity and speed"
- 获取矿车的速度/速率
新增表达 "sea level"
新增效果 "open a book to a player"
- 向玩家展示一本书的内容
新增事件 "arm swing event"
- 手臂摆动事件
新增条件 "if a block is passable"
- 判断一个方块是否允许玩家通过
新增条件 "if an item is a fuel"
- 判断一个方块是否属于燃料
新增条件 "normalized vector"
新增事件 "inventory pickup event"
- 物品栏拾取事件
新增表达 "drops of a block"
- 获取一个方块被破坏后掉落物
————————————————————————————————
使用该插件你需要明确一个原则 所有插件的学习都是有一个过程 想速成 请绕道
————————————————————————————————
什么是Skript:
(原站内转载贴 https://www.mcbbs.net/thread-636131-1-1.html 已获得授权进行二次搬运)
Skript是一款由 Njol 开发的一种 仅适用于 Minecraft (Java)服务器的编程语言
但是原作者 从 2.1 版本弃坑 (仅支持到1.7.10) 现维护者 bensku 更新 Skript 至 2.5 (支持1.9-1.15.2)
想必很多服务器服主都或多或少了解/使用过 脚本方块(ScriptBlock) 这个插件
脚本方法在触发其所携带的脚本的时候 首先会触发一些条件 比如 权限判断 游戏币数量判断
其次他会执行一个动作 比如 发送信息 给予物品 给予权限 对于脚本方块来说
它所能做到的也仅仅只有这些 不依赖 JS 或者 其他插件 脚本方块插件内置的条件和效果也少到可怜
远远不足以开发一套完善的游戏机制 但是 Skirpt 为你提供了这样的可能
Skript 能做到很多插件可以做到的事情 与其说它是一个插件 更不如说它是一种编程语言首先 Skript 为所有使用者提供了绝大多数 CraftBukkit(水桶服) 提供的事件触发方式
比如说 玩家死亡 玩家重生 生物死亡 生物生成 放置方块 破坏方块 击杀玩家 击杀生物 等
也为使用者提供了丰富的效果 比如 传送生物 设置物品数据 设置玩家数据 等
同时相较于 Java 对格式严格要求 Skript 容错率更高 例如
在 Java 内如果你需要判断一个玩家是否拥有权限 你基本上写法就是 if player.hasPermission("...")
但是在 Skript 内你可以这样写 player has permission "..."
也可以这样写 if player has permission "..."
甚至可以这样写 if player has permissions "..."
这就意味着 相比起其他语言 Skript 简化语法的学习过程 关注的更多是逻辑上的学习过程
也就和我标题所写 只需要会英语 会用英语造句子 那么你所需要关注的仅仅是编程的逻辑学习
什么是逻辑学习 我这里还是举一个例子 很多菜单插件 都会有这样一个功能 "以管理员身份执行命令"
很多初学编程的会这样写 op player -> execute player command -> deop player(即给予管理权限 -> 执行命令 -> 取消管理权限)
缺遗漏了本身拥有管理权限玩家的判定 而判断就是编程语言逻辑的一种体现方式
————————————————————————————————
Skript-mirror 利用 NMS 可以做到改变 NBT 的功能
(属于Skript 和 Java 的交集地带 需要一定 Java 基础)
- import:
 
-     org.bukkit.Bukkit
 
- option nms:
 
-     get:
 
-         set {_nms} to Bukkit.getServer().getClass().getPackage().getName().split("\.")[3]
 
-         return {_nms}
 
- import:
 
-     net.minecraft.server.{@nms}.MojangsonParser
 
-     org.bukkit.craftbukkit.{@nms}.inventory.CraftItemStack
 
- expression %item% with [custom] nbt %string%:
 
-     return type: item
 
-     get:
 
-         if expr-1 = air:
 
-             return
 
-         set {_i} to expression-1
 
-         set {_n} to name of expression-1
 
-         set {_i} to CraftItemStack.asNMSCopy({_i})
 
-         set {_nbt} to MojangsonParser.parse(expression-2)
 
-         {_i}.setTag({_nbt})
 
-         set {_r} to CraftItemStack.asBukkitCopy({_i})
 
-         set name of {_r} to {_n}
 
- return {_r}
学习Skript:
详细基础教程 https://www.mcbbs.net/thread-962548-1-1.html [全文 1w+ 字 一遍就会]
该教材包含:
● 如何针对服务器选择合适版本的 Skript
● 如何安装 Skript
● 如何查阅Doc文档
● 如何编写脚本
官方Doc查阅 https://skriptlang.github.io/Skript/ [最全的原版 5 大类 集合 但 不方便查阅]
非官方Doc查阅 https://skripthub.net/docs/ [最方便的查阅地址 但 部分语法可能过时]
(老板官方Doc(2.1) 插件百科翻译 SkUnity 各有长处 但 介于语法过时 不推荐在编写脚本的时候使用)
————————————————————————————————
选择Skript:
Skript是一款插件 也就意味着你需要像安装其他插件一样 需要放在 plugins 目录下
很多人认为越新版本的插件对服务器越好 但实际上对于 Skript 不是这样的
作为用户我大致上体验了 2.1.2 2.2dev36 2.2dev37c 2.3.5 这几个版本
不同版本的服务器个人推荐使用的 Skript 插件版本如下
1.7.10 推荐版本 2.1.2 https://dev.bukkit.org/projects/skript/files/779542/download
1.8.8 或者 1.12.2 Mod 推荐版本 2.2dev37c https://github.com/SkriptLang/Skript/releases/download/dev37c/Skript.jar
1.9+ 推荐版本 最新版 https://github.com/SkriptLang/Skript/releases
————————————————————————————————
更新日志:
————————————————————————————————
来自群组: Complex Studio
2021.12 数据,可能有更多内容
使用该插件你需要明确一个原则 所有插件的学习都是有一个过程 想速成 请绕道————————————————————————————————
什么是Skript:
(原站内转载贴 https://www.mcbbs.net/thread-636131-1-1.html 已获得授权进行二次搬运)
Skript是一款由 Njol 开发的一种 仅适用于 Minecraft (Java)服务器的编程语言
但是原作者 从 2.1 版本弃坑 (仅支持到1.7.10) 现维护者 bensku 更新 Skript 至 2.5 (支持1.9-1.15.2)
想必很多服务器服主都或多或少了解/使用过 脚本方块(ScriptBlock) 这个插件
脚本方法在触发其所携带的脚本的时候 首先会触发一些条件 比如 权限判断 游戏币数量判断
其次他会执行一个动作 比如 发送信息 给予物品 给予权限 对于脚本方块来说
它所能做到的也仅仅只有这些 不依赖 JS 或者 其他插件 脚本方块插件内置的条件和效果也少到可怜
远远不足以开发一套完善的游戏机制 但是 Skirpt 为你提供了这样的可能
Skript 能做到很多插件可以做到的事情 与其说它是一个插件 更不如说它是一种编程语言首先 Skript 为所有使用者提供了绝大多数 CraftBukkit(水桶服) 提供的事件触发方式
比如说 玩家死亡 玩家重生 生物死亡 生物生成 放置方块 破坏方块 击杀玩家 击杀生物 等
也为使用者提供了丰富的效果 比如 传送生物 设置物品数据 设置玩家数据 等
同时相较于 Java 对格式严格要求 Skript 容错率更高 例如
在 Java 内如果你需要判断一个玩家是否拥有权限 你基本上写法就是 if player.hasPermission("...")
但是在 Skript 内你可以这样写 player has permission "..."
也可以这样写 if player has permission "..."
甚至可以这样写 if player has permissions "..."
这就意味着 相比起其他语言 Skript 简化语法的学习过程 关注的更多是逻辑上的学习过程
也就和我标题所写 只需要会英语 会用英语造句子 那么你所需要关注的仅仅是编程的逻辑学习
什么是逻辑学习 我这里还是举一个例子 很多菜单插件 都会有这样一个功能 "以管理员身份执行命令"
很多初学编程的会这样写 op player -> execute player command -> deop player(即给予管理权限 -> 执行命令 -> 取消管理权限)
缺遗漏了本身拥有管理权限玩家的判定 而判断就是编程语言逻辑的一种体现方式
————————————————————————————————
Skript-mirror 利用 NMS 可以做到改变 NBT 的功能
(属于Skript 和 Java 的交集地带 需要一定 Java 基础)
代码:
- import:
 
-     org.bukkit.Bukkit
 
- option nms:
 
-     get:
 
-    set {_nms} to Bukkit.getServer().getClass().getPackage().getName().split("\.")[3]
 
-    return {_nms}
 
- import:
 
-     net.minecraft.server.{@nms}.MojangsonParser
 
-     org.bukkit.craftbukkit.{@nms}.inventory.CraftItemStack
 
- expression %item% with [custom] nbt %string%:
 
-     return type: item
 
-     get:
 
-    if expr-1 = air:
 
-       return
 
-    set {_i} to expression-1
 
-    set {_n} to name of expression-1
 
-    set {_i} to CraftItemStack.asNMSCopy({_i})
 
-    set {_nbt} to MojangsonParser.parse(expression-2)
 
-    {_i}.setTag({_nbt})
 
-    set {_r} to CraftItemStack.asBukkitCopy({_i})
 
-    set name of {_r} to {_n}
 
- return {_r}
学习Skript:
详细基础教程 https://www.mcbbs.net/thread-962548-1-1.html [全文 1w+ 字 一遍就会]
该教材包含:
● 如何针对服务器选择合适版本的 Skript
● 如何安装 Skript
● 如何查阅Doc文档
● 如何编写脚本
官方Doc查阅 https://skriptlang.github.io/Skript/ [最全的原版 5 大类 集合 但 不方便查阅]
非官方Doc查阅 https://skripthub.net/docs/ [最方便的查阅地址 但 部分语法可能过时]
(老板官方Doc(2.1) 插件百科翻译 SkUnity 各有长处 但 介于语法过时 不推荐在编写脚本的时候使用)
————————————————————————————————
选择Skript:
Skript是一款插件 也就意味着你需要像安装其他插件一样 需要放在 plugins 目录下
很多人认为越新版本的插件对服务器越好 但实际上对于 Skript 不是这样的
作为用户我大致上体验了 2.1.2 2.2dev36 2.2dev37c 2.3.5 这几个版本
不同版本的服务器个人推荐使用的 Skript 插件版本如下
1.7.10 推荐版本 2.1.2 https://dev.bukkit.org/projects/skript/files/779542/download
1.8.8 或者 1.12.2 Mod 推荐版本 2.2dev37c https://github.com/SkriptLang/Skript/releases/download/dev37c/Skript.jar
1.9+ 推荐版本 最新版 https://github.com/SkriptLang/Skript/releases
————————————————————————————————
更新日志:
Version 2.5.1
新增条件 "isOccluding"
为 "send block change effect" 语法增加 "block data"
- 发送方块材质更变时附带方块数据
新增表达 "arror pierce" "critical state"
- 弓箭准确度以及暴击状态
新增表达 "project bounce state"
- 弓箭附加效果
新增语法 "within"
- 快速获取两点之间的方块/区块
"play sound" 支持使用 ":" 以使用原版声音命名标准
新增事件 "mending event"- 物品维修事件
新增表达 "heal amount"
- 获取治疗数值
"between" 支持使用 "decimals"
- 快速获取两个数值之间的小数
新增表达 "random UUID"
"spawn event" 支持使用 "non living entities"
"ConditionStartsEndsWith" 支持字符串数组
新增效果 "force attack"
- 强制一个生物攻击其他生物
新增效果 "make an entity swing their hand"
- 强制一个生物摆动手臂
新增表达 "minecart’s derailed velocity and speed"
- 获取矿车的速度/速率
新增表达 "sea level"
新增效果 "open a book to a player"
- 向玩家展示一本书的内容
新增事件 "arm swing event"
- 手臂摆动事件
新增条件 "if a block is passable"
- 判断一个方块是否允许玩家通过
新增条件 "if an item is a fuel"
- 判断一个方块是否属于燃料
新增条件 "normalized vector"
新增事件 "inventory pickup event"
- 物品栏拾取事件
新增表达 "drops of a block"
- 获取一个方块被破坏后掉落物
————————————————————————————————
排版再改改,内容再完善完善,加油!
(原搬运贴可以移动到回收区啦@刘先生。 )
(原搬运贴可以移动到回收区啦@刘先生。 )
谢谢你所编辑的教程!正在学习中!
那英语不及格怎么办(手动狗头
很好的一个插件,就是2.5版本的下载容易失败
想请教一个问题,想很久了也没法实现
我怎么在方块被破坏掉的时候使掉落物掉出然后自动吸入玩家背包,需要这个动画
求指点啦,谢谢
我怎么在方块被破坏掉的时候使掉落物掉出然后自动吸入玩家背包,需要这个动画
求指点啦,谢谢
感谢楼主分享!
下载不到,楼主能不能下载后放到bbs里
挺有意思。。可以尝试一下
标题真的鬼才
可以可以可以
看起来功能挺多
感觉搬运
版主您好,我非常喜欢这个Skript插件,而且也使用了一段时间了。
如果您没有时间的话,我可以重新搬运且更新这个插件吗?
如果您没有时间的话,我可以重新搬运且更新这个插件吗?
 本帖最后由 TUCAOEVER 于 2021-4-10 16:48 编辑 
我有时间 也有空更新 而且帖子里面的已更新到 1.16.4 你要硬说 也就是 2.5.1 -> 2.5.3 的一些BUG修复
与此同时 Skript 官方最近也没有根据 1.17 相关进行更新 既然插件方面没有跨版本更新 我认为更无必要对帖子更新
我看了你自己写了个教程 就目前来看 我也并不认为 你在 Skript 运用方面能力"优于"我 所以我拒绝你的重搬请求
兰苑伊城 发表于 2021-4-9 20:09
版主您好,我非常喜欢这个Skript插件,而且也使用了一段时间了。
如果您没有时间的话,我可以重新搬运且更 ...
我有时间 也有空更新 而且帖子里面的已更新到 1.16.4 你要硬说 也就是 2.5.1 -> 2.5.3 的一些BUG修复
与此同时 Skript 官方最近也没有根据 1.17 相关进行更新 既然插件方面没有跨版本更新 我认为更无必要对帖子更新
我看了你自己写了个教程 就目前来看 我也并不认为 你在 Skript 运用方面能力"优于"我 所以我拒绝你的重搬请求
TUCAOEVER 发表于 2021-4-10 16:40
我有时间 也有空更新 而且帖子里面的已更新到 1.16.4 你要硬说 也就是 2.5.1 -> 2.5.3 的一些BUG修复
与 ...
好的,谢谢。我只是单纯的喜欢这个插件,帖子也不怎么会写,我再慢慢完善我的帖子。
回个帖子,预防过期,真的是好帖子而且看完就会那么一丢丢,不像java 看完了以后一脸懵逼
感谢大佬分享
顶,学到了
很好这插件,希望能有教程
感谢楼主 楼主加油!
学过C++的小白腐竹表示不用费心学JAVA语法了
太棒了 仔细阅读后发现自己英语不及格 /狗头
挺有意思 让我试试
挺有意思。。可以尝试一下
搜藏了 真不错的插件
谢谢你陌生人
这个可以想法不错
这是一个很棒的插件!
我能将您编写的插件简介搬运到其他论坛上吗?
我会著名您所发布的原帖链接的。
我相信在那个论坛Skript将会得到更加有力的支持。
我能将您编写的插件简介搬运到其他论坛上吗?
我会著名您所发布的原帖链接的。
我相信在那个论坛Skript将会得到更加有力的支持。
很不错的一个插件
很炫酷,感谢分享就是看不太懂
万一英语不及格 咋整?
cat能用吗,脚本方块cat一直用不了..
支持1.17吗
可以可以可以可以可以可以可以可以可以6666
感谢楼主分享这个好消息给我
哈哈哈,教程真的在试图教会我,自己摸索一下吧。
那英语不及格是不是做不了
给我这种不会java的萌新也能整自己的活了
()
()
看完全部,我发现我感觉我英语连小学都比不过,难受
大佬的教程很详细!
哇66666666
66666666666666
感谢楼主大大分享