TNT8
  1. on join:
  2.     wait 500 second
  3.     send "已经过去了500秒" to player
复制代码
例子,加入后间隔500秒发送消息.
那么我现在后悔了,是否可以将on join这个进行中的行为直接中止掉?


结冰的离季
重载插件就行

TNT8

这个恐怕不可用,我主要是单独针对一个玩家产生的中止效果。
如果重载就重置全部玩家的行为了。

一颗丁子
没动手写 纯动脑: 或许可以加个判断 后悔这个动作给玩家一个临时权限 五百秒之后检测这个权限 再执行动作

TNT8
一颗丁子 发表于 2021-9-21 21:37
没动手写 纯动脑: 或许可以加个判断 后悔这个动作给玩家一个临时权限 五百秒之后检测这个权限 再执行动作 ...

你理解错了,我是想中止on join:这整个类,以此来中止读秒。
因为一般情况,你就算是退出了读秒也会继续,直至读秒完成。

结冰的离季
本帖最后由 结冰的离季 于 2021-9-21 22:01 编辑
TNT8 发表于 2021-9-21 21:26
这个恐怕不可用,我主要是单独针对一个玩家产生的中止效果。
如果重载就重置全部玩家的行为了。 ...

单独重载脚本试试? skript reload <script>
单独一个玩家,恐怕很难,可能得另外写个脚本来控制




HotPe_e
on join:
    loop 500 times:

         wait 1 seconds         

         if XXXXX :

               stop

         send "过去了 1 秒" to player


TNT8
本帖最后由 TNT8 于 2021-9-23 14:32 编辑
HotPe_e 发表于 2021-9-23 12:36
on join:
    loop 500 times:

  1. command /灵魂之火 [<text>] [<player>]:
  2.         trigger:
  3.                 if arg-1 is "set":
  4.                         if player has permission "op":
  5.                                 if arg-2 is set:
  6.                                         set {死亡掉落.%arg-2%} to "开启"
  7.                                         set {表达显示.%arg-2%} to "&a&l已点燃"
  8.                                         send "&f[&e提示&f]: &a灵魂之火 &7已重新点燃." to arg-2
  9.                                         stop trigger
  10.                                 else:
  11.                                         set {死亡掉落.%player%} to "开启"
  12.                                         set {表达显示.%player%} to "&a&l已点燃"
  13.                                         send "&f[&e提示&f]: &a灵魂之火 &7已重新点燃." to player
  14.                                         stop trigger
  15.                         else:
  16.                                 send "你不是OP"
  17.                 else:
  18.                         if arg-1 is "reload":
  19.                                 if player has permission "op":
  20.                                         execute console command "/sk reload 死亡掉落判断"
  21.                                         send "&f[&e提示&f]: &a灵魂之火 &6脚本已重载." to player
  22.                         else:
  23.                                 send "你不会用set吗?"

  24. on death:
  25.         If {死亡掉落.%player%} = "开启":
  26.                 set {死亡掉落.%player%} to "未开启"
  27.                 keep the inventory and experiences
  28.                 send "&f[&e提示&f]: &6灵魂之火&c已熄灭,&710分钟后将自动恢复."
  29.                 send "&f[&e提示&f]: &c如期间死亡将造成物品以及经验的掉落."
  30.                 set {表达显示.%player%} to "&f■■■■■■■■■■■"
  31.                 set {死亡冷却.%player%} to "true"
  32.                 wait 50 second
  33.                 set {表达显示.%player%} to "&f■■■■■■■■■■&a■"
  34.                 wait 50 second
  35.                 set {表达显示.%player%} to "&f■■■■■■■■■&a■■"
  36.                 wait 50 second
  37.                 set {表达显示.%player%} to "&f■■■■■■■■&a■■■"
  38.                 wait 50 second
  39.                 set {表达显示.%player%} to "&f■■■■■■■&a■■■■"
  40.                 wait 50 second
  41.                 set {表达显示.%player%} to "&f■■■■■■&a■■■■■"
  42.                 wait 50 second
  43.                 set {表达显示.%player%} to "&f■■■■■&a■■■■■■"
  44.                 wait 50 second
  45.                 set {表达显示.%player%} to "&f■■■■&a■■■■■■■"
  46.                 wait 50 second
  47.                 set {表达显示.%player%} to "&f■■■&a■■■■■■■■"
  48.                 wait 50 second
  49.                 set {表达显示.%player%} to "&f■■&a■■■■■■■■■"
  50.                 wait 50 second
  51.                 set {表达显示.%player%} to "&f■&a■■■■■■■■■■"
  52.                 wait 49 second
  53.                 set {表达显示.%player%} to "&a&l已点燃"
  54.                 set {死亡掉落.%player%} to "开启"
  55.         else:
  56.                 send "&f[&e提示&f]: &c由于灵魂之火尚未点燃."
  57.                 send "&f[&e提示&f]: &c本次死亡掉落全部物品以及经验."
  58.                 stop trigger
复制代码

这样,我也给您开诚布公,这是我的写法主体,玩家死亡的时候检测数据是否开启,
开启则保留一次死亡掉落,并且进入冷却读秒.
而我这个冷却读秒是会显示进度,我将进度用变量方式写在计分板上面进行显示。

玩家死亡后进入读秒期间,如果我用设定的命令将玩家的{死亡掉落.%player%}改为开启,
那么数据就变了,变成已点燃并开启,但是读秒依旧会存在并且反复刷新变量{表达显示.%player%}.

我就是想有没有可能,能在在使用命令改变数据的同时,直接将前面的读秒进程给中止掉?