mirror of
https://github.com/postyizhan/NitWikit.git
synced 2025-01-06 15:15:26 +08:00
Skript Expressions & Types
This commit is contained in:
parent
1802595ff3
commit
e785f08029
@ -430,39 +430,60 @@ send subtitle %text% [to %players%] [for %time span%] [with fade[(-| )]in %time
|
||||
---
|
||||
|
||||
### Expressions(表达) & Types(类型)
|
||||
假设你想要调整玩家的最大血量
|
||||
调整血量 之前我们提过 动词 + 名词形式 这是属于 Effects(效果) 类
|
||||
|
||||
有一天你心血来潮,想要调整玩家的最大血量。
|
||||
|
||||
调整血量,之前我们提过这属于动词 + 名词形式,这是属于 Effects(效果) 类。
|
||||
|
||||
但是实际上是这样么?
|
||||
实际上并不是 所谓的 Effect(效果) 虽然都是 动词 + 名词形式 但是对于 Effect(效果) 而言
|
||||
注重的是 动词 而非后面跟着的 名词 例如 在玩家所在位置生成僵尸
|
||||
|
||||
实际上并不是,所谓的 Effect(效果) 虽然都是 `动词 + 名词` 形式,但是对于 Effect(效果) 而言。
|
||||
|
||||
注重的是 `动词` 而非后面跟着的 `名词` 例如 `在玩家所在位置生成僵尸`。
|
||||
|
||||
Effect(效果) 所能提供的 只有 "生成"
|
||||
通过查阅 Doc https://skriptlang.github.io/Skript/effects.html#EffSpawn 我们知道生成的用法基本为
|
||||
通过查阅[官方文档](https://docs.skriptlang.org/docs.html?search=#EffSecSpawn),我们知道生成的用法基本为:
|
||||
|
||||
```skript
|
||||
(spawn|summon) %entity types% [%directions% %locations%]
|
||||
(spawn|summon) %number% of %entity types% [%directions% %locations%]
|
||||
复制代码
|
||||
但是除去这个词语 我们还剩 "在玩家所在位置" 和 "僵尸"
|
||||
这两个词我们又该怎么处理呢? 这时候我们就需要用到 Expressions(表达)
|
||||
位置的英文单词是 "Location" 我们在官方 Doc 查到了 3 种有关 "Location" 的表达
|
||||
https://skriptlang.github.io/Skript/expressions.html#ExprLocation
|
||||
https://skriptlang.github.io/Skript/expressions.html#ExprLocationOf
|
||||
https://skriptlang.github.io/Skript/expressions.html#ExprLocationAt
|
||||
我们需要什么呢? 我们需要 "玩家所在的位置" 相同地 通过查看官方的注释
|
||||
我们知道我们需要的是 #ExprLocationOf (The location of a block or entity.)
|
||||
但是这只解决了我们 "所在位置" 的问题 并没有解决 "玩家" 和 "僵尸" 的问题
|
||||
我们可以看到 "所在位置" Expressions(表达) 是没有主语的 但是对于 Skript 而言
|
||||
Skipt 不同于其他语言 正如我在开头所展示的 相比较 Java 而言 Skript 更注重的是语言而非编程
|
||||
```
|
||||
|
||||
但是除去这个词语,我们还剩 "在玩家所在位置" 和 "僵尸"。
|
||||
|
||||
这两个词我们又该怎么处理呢? 这时候我们就需要用到 Expressions(表达)。
|
||||
|
||||
位置的英文单词是 "Location" 我们在官方 Doc 查到了多种有关 "Location" 的表达
|
||||
- https://docs.skriptlang.org/docs.html?search=#ExprLocation
|
||||
- https://docs.skriptlang.org/docs.html?search=#ExprLocationOf
|
||||
- https://docs.skriptlang.org/docs.html?search=#ExprLocationAt
|
||||
|
||||
我们需要什么呢? 我们需要 "玩家所在的位置"。相同地,通过查看官方的注释,我们知道我们需要的是 #ExprLocationOf (The location of a block or entity.)。
|
||||
|
||||
但是这只解决了我们 "所在位置" 的问题 并没有解决 "玩家" 和 "僵尸" 的问题。
|
||||
|
||||
我们可以看到 "所在位置",Expressions(表达) 是没有主语的。
|
||||
|
||||
Skript 不同于其他语言,正如我在开头所展示的,相比较 Java 而言 Skript 更**注重的是语言而非编程**。
|
||||
|
||||
我们需要把这些零碎的东西组成句子,必不可少的是主语,次要的是宾语。
|
||||
|
||||
这时候我们就需要引入 Types(类型),但凡你发现你的表达里缺少主语/宾语(对象),来这里准没错:
|
||||
|
||||
https://docs.skriptlang.org/classes.html
|
||||
|
||||
通过翻译我们可以轻松知道玩家的英文以及僵尸的英文,分别为 "player"和"zombie"。
|
||||
|
||||
与之相对应的,我们分别在 Types(类别) 中找到:
|
||||
- https://docs.skriptlang.org/docs.html?search=#player
|
||||
- https://docs.skriptlang.org/docs.html?search=#entity
|
||||
|
||||
综合上面我们所获得的信息 我们获得了完整一行代码:
|
||||
|
||||
```spawn zombie at location of player```
|
||||
|
||||
我们需要把这些零碎的东西组成句子 必不可少的是主语 次要的是宾语
|
||||
这时候我们就需要引入 Types(类型) 但凡你发现你的表达里缺少主语/宾语(对象) 来这里准没错
|
||||
https://skriptlang.github.io/Skript/classes.html
|
||||
通过翻译我们可以轻松知道 玩家的英文 以及 僵尸的英文 分别为 "player" "zombie"
|
||||
与之相对应的 我们分别在 Types(类别) 中找到
|
||||
https://skriptlang.github.io/Skript/classes.html#player
|
||||
https://skriptlang.github.io/Skript/classes.html#entity
|
||||
综合上面我们所获得的信息 我们获得了完整一行代码
|
||||
spawn zombie at location of player
|
||||
复制代码
|
||||
---
|
||||
|
||||
Wow 恭喜你 看到这 你就可以开始尝试着写一些插件了
|
||||
这里刚好有一个例子 不妨动动手 试一试
|
||||
在玩家破坏方块时 检查玩家是否有 "fundamental.break" 这个权限
|
||||
@ -472,7 +493,9 @@ Wow 恭喜你 看到这 你就可以开始尝试着写一些插件了
|
||||
|
||||
当然仅仅学这些并不够 为了做到能更快更灵活的使用各类语法
|
||||
在闲暇的时候 把官方 Doc 提供的所有语法的注释都认真的看一遍是快速上手 Skript 的一种好办法
|
||||
|
||||
---
|
||||
|
||||
"loop"用法
|
||||
你开始尝试着写一些有一些小功能的脚本了 但是难免的你会出现这样的问题
|
||||
你为玩家创建了很多变量 很多都是属于一个类型的
|
||||
|
Loading…
Reference in New Issue
Block a user