bingdi_
本帖最后由 bingdi_ 于 2022-5-26 18:49 编辑

我想写一个脚本
如果我的等级大于或者等于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的占位符,我们可以这么写:
  1. relation(%player_level%>=100)->level_100
复制代码

  若玩家的等级达到100及100以上时,条件 level_100 成立
  此时我们添加一个判断if(),当上述条件成立时让控制台执行指令
  1. if(level_100)->console(控制台执行的指令)
复制代码


  另外你也可以在条件前加一个!使不满足条件的玩家收到信息
  1. if(!level_100)->message(等级不够哟)->%player%
复制代码


总结一下步骤:1.用relation()创造条件;
                      2.用if()判断条件是否成立,是则执行操作。

[编辑]
    注意:若服务器运行环境为JAVA14+,请同时安装该插件:
    [综合|前置]MiaoNashorn —— 喵式犀牛引擎 用于 Java14+ 自动安装脚本引擎[全版本]


bingdi_
本帖最后由 bingdi_ 于 2022-5-26 19:42 编辑
极光酋长 发表于 2022-5-26 19:27
【回答仅供参考】本回答仅提供解决思路,涉及了一些编程知识,没有成品代码
·关系运算符参见:https://www ...
报错
这是我的配置



极光酋长
本帖最后由 极光酋长 于 2022-5-26 22:20 编辑
bingdi_ 发表于 2022-5-26 19:41
报错
这是我的配置

我注意到你的服务器版本是1.18,那么Java的版本应该是17
  很遗憾,GS并不支持Java13以上的版本(对应游戏1.14),因为它使用Nashorn作为JS运行环境,而Nashorn已经被移除了 (补充:应该是Java15及以上版本)
Warning: Nashorn engine is planned to be removed from a future JDK release

建议你使用其他脚本插件,或者等待插件作者更新

bingdi_
本帖最后由 bingdi_ 于 2022-5-27 08:11 编辑
极光酋长 发表于 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在高版本中结构发生了变化,还需要插件作者更新。