Skript Loop

This commit is contained in:
ChuishenX 2024-06-22 11:00:26 +08:00
parent 8fe74c140e
commit 38d38f8a0d

View File

@ -519,41 +519,56 @@ WOW恭喜你看到这你就可以开始尝试着写一些插件了。
这时候你需要两样东西:"数组"和"loop"。
### 数组
数组的基本格式为 `{变量名::变量名::变量名......}`
我们带入实景 将用 `{(玩家的名称)的游戏币数}` 存储转为用 `{金币::(玩家的名称)}` 存储玩家的游戏币数量
我现在服务器有 10000 个玩家
玩家名称为 1,2,3,......,10000
玩家游戏币数量为 100,200,300,......,1000000
那么对应的 `{金币::1}` 就是 名为 "1" 玩家的游戏币数量 100
如果我用输出语句输出 `{金币::1}` 至后台 那么很显然我会得到 100 这个数值
同样的我用输出语句输出 `{金币::10000}` 至后台 我会得到 1000000 这个数值
你可能会说 这不是和用 `{(玩家的名称)的游戏币数}` 一样么?
是的 确实 如果仅仅需要获得某一个玩家的游戏币数量 两者并没有什么区别
但是 数组好用之处在于 如果我将 `{金币::(玩家的名称)}` 中玩家的名称改为 "*" 即 ``{金币::*}``
这时候会产生什么样的效果呢?
``{金币::*}`` 将包含 所有 ``{金币::(玩家的名称)}`` 变量
而这个 却是 ``{(玩家的名称)的游戏币数量}`` 怎么改也做不到的
数组的基本格式为 `{变量名::变量名::变量名......}`
我们带入实景,将用 `{(玩家的名称)的游戏币数}` 存储转为用 `{金币::(玩家的名称)}` 存储玩家的游戏币数量。
例如,服务器有 10000 个玩家,玩家名称为 1,2,3,......,10000玩家游戏币数量为 100,200,300,......,1000000。
那么对应的 `{金币::1}` 就是:名为 "1" 玩家的游戏币数量 100。
如果我用输出语句输出 `{金币::1}` 至后台,那么很显然我会得到 100 这个数值。
同样的我用输出语句输出 `{金币::10000}` 至后台,我会得到 1000000 这个数值。
你可能会说,这不是和用 `{(玩家的名称)的游戏币数}` 一样么?
是的,确实。如果仅仅需要获得某一个玩家的游戏币数量,两者并没有什么区别。
但是,如果我将 `{金币::(玩家的名称)}` 中玩家的名称改为 "*" 即 ``{金币::*}``,这时候会产生什么样的效果呢?
``{金币::*}`` 将包含,所有 ``{金币::(玩家的名称)}`` 变量。
而这个,却是 ``{(玩家的名称)的游戏币数量}` 怎么改也做不到的。
### Loop
利用数组我们知道了如何快速获取一类数据
但是我们又该如何快速操作这一类数据呢? 这时候就需要引入我们的 Loop 结构
Loop 即 循环结构 是 Skript 里非常常用的结构语句 主要用于操作数据量较大的一类变量
Loop 共有几大标准配合
Loop + 数组 / Loop + 次数 / Loop + Types(类型)
利用数组我们知道了如何快速获取一类数据。
但是我们又该如何快速操作这一类数据呢? 这时候就需要引入我们的 Loop 结构。
Loop 即 循环结构,是 Skript 里非常常用的结构语句,主要用于操作数据量较大的一类变量。
以下是 Loop 的几大标准配合:
### Loop + 数组 结构
(To Be Added.)
### Loop + 次数 结构
(To Be Added.)
### Loop + Types(类型) 结构
(To Be Added.)
---
### 注册指令
说到现在 我们所有的代码 似乎都是基于监听器进行编写的
说到现在,我们所有的代码,似乎都是基于监听器进行编写的。
我们都需要去触发监听器 才能执行我们的代码 那有没有什么办法可以主动触发我们的代码?
这时候我们就需要引入 MineCraft 插件最核心的功能 指令功能而在 Java 里你可能需要这样注册一个指令