本帖最后由 bingdi_ 于 2022-5-26 18:49 编辑 
我想写一个脚本
如果我的等级大于或者等于100 则执行指令
我看了一下那个 关系表达式条件 应该可以利用占位符来实现
但是不会写格式 求!
[综合]GuoScript —— 果式脚本,简单而强大的带流程控制的脚本插件[全版本]
https://www.mcbbs.net/thread-916911-1-1.html
(出处: Minecraft(我的世界)中文论坛)
我想写一个脚本
如果我的等级大于或者等于100 则执行指令
我看了一下那个 关系表达式条件 应该可以利用占位符来实现
但是不会写格式 求!
[综合]GuoScript —— 果式脚本,简单而强大的带流程控制的脚本插件[全版本]
https://www.mcbbs.net/thread-916911-1-1.html
(出处: Minecraft(我的世界)中文论坛)
 本帖最后由 极光酋长 于 2022-5-27 10:46 编辑 
【回答仅供参考】本回答仅提供解决思路,涉及了一些编程知识,没有成品代码
·关系运算符参见:https://www.runoob.com/java/java-operators.html
如果GS支持PlaceholderAPI的占位符,我们可以这么写:
复制代码
若玩家的等级达到100及100以上时,条件 level_100 成立
此时我们添加一个判断if(),当上述条件成立时让控制台执行指令
复制代码
另外你也可以在条件前加一个!使不满足条件的玩家收到信息
复制代码
总结一下步骤:1.用relation()创造条件;
2.用if()判断条件是否成立,是则执行操作。
[编辑]
注意:若服务器运行环境为JAVA14+,请同时安装该插件:
[综合|前置]MiaoNashorn —— 喵式犀牛引擎 用于 Java14+ 自动安装脚本引擎[全版本]
【回答仅供参考】本回答仅提供解决思路,涉及了一些编程知识,没有成品代码
·关系运算符参见:https://www.runoob.com/java/java-operators.html
如果GS支持PlaceholderAPI的占位符,我们可以这么写:
- relation(%player_level%>=100)->level_100
若玩家的等级达到100及100以上时,条件 level_100 成立
此时我们添加一个判断if(),当上述条件成立时让控制台执行指令
- if(level_100)->console(控制台执行的指令)
另外你也可以在条件前加一个!使不满足条件的玩家收到信息
- if(!level_100)->message(等级不够哟)->%player%
总结一下步骤:1.用relation()创造条件;
2.用if()判断条件是否成立,是则执行操作。
[编辑]
注意:若服务器运行环境为JAVA14+,请同时安装该插件:
[综合|前置]MiaoNashorn —— 喵式犀牛引擎 用于 Java14+ 自动安装脚本引擎[全版本]
 本帖最后由 bingdi_ 于 2022-5-26 19:42 编辑 
报错
极光酋长 发表于 2022-5-26 19:27
【回答仅供参考】本回答仅提供解决思路,涉及了一些编程知识,没有成品代码
·关系运算符参见:https://www ...
这是我的配置
 本帖最后由 极光酋长 于 2022-5-26 22:20 编辑 
我注意到你的服务器版本是1.18,那么Java的版本应该是17
很遗憾,GS并不支持Java13以上的版本(对应游戏1.14),因为它使用Nashorn作为JS运行环境,而Nashorn已经被移除了 (补充:应该是Java15及以上版本)
建议你使用其他脚本插件,或者等待插件作者更新
bingdi_ 发表于 2022-5-26 19:41
报错
这是我的配置
我注意到你的服务器版本是1.18,那么Java的版本应该是17
很遗憾,GS并不支持
Warning: Nashorn engine is planned to be removed from a future JDK release
建议你使用其他脚本插件,或者等待插件作者更新
 本帖最后由 bingdi_ 于 2022-5-27 08:11 编辑 
其它功能都正常使用啊并且在1.12版本也是这样
极光酋长 发表于 2022-5-26 21:23
我注意到你的服务器版本是1.18,那么Java的版本应该是17
很遗憾,GS并不支持Java13以上的版本( ...
其它功能都正常使用啊并且在1.12版本也是这样
bingdi_ 发表于 2022-5-27 01:03
其它功能都正常使用啊并且在1.12版本也是这样
报错跟Java版本相关,我使用Java8-13在1.14.4的端测试均无报错,正常运行
其他功能因为没用到 javax.script.ScriptEngine.eval() ,把字符串转换成关系式并计算其值,才不会被影响。高版本Java的相关方法在使用上可能有差别,也可能是作者定义的ENGINE在高版本中结构发生了变化,还需要插件作者更新。