以我服务器SX插件为例,如果我要给某位玩家一个物品需要输入以下代码
复制代码
在Skript脚本里我是这样写的
复制代码
在YAML文件里写的内容为
复制代码
这样后台就不能识别%player%为触发这条的玩家了, 怎么才能解决?
- /sx give 物品 %player% 1
在Skript脚本里我是这样写的
- set {_奖励物品} to yaml value "任务.奖励" from "新任务"
- execute console command "%{_奖励物品}%"
在YAML文件里写的内容为
- 任务:
- 奖励: /sx give 物品 %player% 1
这样后台就不能识别%player%为触发这条的玩家了, 怎么才能解决?
本帖最后由 新科 于 2021-2-25 00:00 编辑
如果我没理解错你的意思的话, 假设 {player} 变量是玩家ID
复制代码使用文本替换 %player% 也可达到原生 %player% 效果
如果我没理解错你的意思的话, 假设 {player} 变量是玩家ID
- replace all "\%player\%" with {player} in {_奖励物品}
新科 发表于 2021-2-24 23:58
如果我没理解错你的意思的话, 假设 {player} 变量是玩家ID
使用文本替换 %player% 也可达到原生 %player% ...
player 是玩家ID , 我是想用skript 执行我写在 YAML里的指令
比如我在skript里写execute console command "/give %player% dirt 1" 触发这条脚本的玩家就能得到一个泥土
但是我把这条指令写在YAML里, 并把变量值设置为这条指令, 就不灵了
set {变量} to yaml value "文件.指令" from "文件"
execute console command "{变量}"
这样就不行了
兰苑伊城 发表于 2021-2-25 00:05
player 是玩家ID , 我是想用skript 执行我写在 YAML里的指令
比如我在skript里写execute console comman ...
那么就试试我上面的方法,手动将变量中的 %player% 替换成玩家ID。
因为通过 set {..} to yaml value 得到的实际上是一个 yaml value 对象,而不是一个字符串,所以无法解析。
你也可以在 yml 里把命令用双引号包住试一下,这样可能会被强制解析为 string:
- 任务:
- 奖励: "/sx give 物品 %player% 1"
新科 发表于 2021-2-25 00:13
那么就试试我上面的方法,手动将变量中的 %player% 替换成玩家ID。
因为通过 set {..} to yaml value 得 ...
搞定了 这样写的 可能我的版本比较低
- replace all "%%player%%" with "%player%" in {_指令}