切换风格

默认晚霞 雪山 粉色心情 伦敦 花卉 绿野仙踪 加州 白云 星空 薰衣草 城市 简约黑色 龙珠
回复 0

6

主题

10

帖子

87

积分

论坛萌新

Rank: 1

积分
87
人气
2 点
钻石粒
125 粒
贡献
0 点
论坛币
12 个
爱心
0 点

论坛注册会员

[1.7.10][ECMA][穷举王系列][纯计分板]back回到死亡点[复制链接]
发表于 2020-3-15 21:10:22 | 显示全部楼层 |阅读模式
脚本例子
脚本版本: 1.7.10
适用版本: 1.7.10 
编写语言: ECMA
最后更新: 2020-03-15
代码版权: 强版权

请注册论坛会员,已便查看高清图片!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 菜鸡kemo 于 2020-3-15 21:14 编辑

今天,我闲的没事
用纯计分板储存,搞了个back
穷举王实至名归!
下面放更新
  1. //放更新
  2. npc.executeCommand("scoreboard objectives add siw deathCount")
  3. npc.executeCommand("scoreboard objectives add six dummy")
  4. npc.executeCommand("scoreboard objectives add siy dummy")
  5. npc.executeCommand("scoreboard objectives add siz dummy")
  6. var player = world.getAllServerPlayers()
  7. for(var x in player){
  8. var a=world.getScoreboard().getPlayerScore(player[x].getName(),"siw","dummy");
  9.                                  if(a>=1){
  10.                                  //检测玩家是否死亡
  11.                                  player[x].sendMessage("§6输入/back回到死亡点")
  12.                                  //提示
  13.                                  var b = 0
  14.                                  world.getScoreboard().setPlayerScore(player[x].name,"siw",b,'dummy')
  15.                                  //将玩家的死亡计分板设置为0
  16.                                  var sx=player[x].getX();
  17.                                  var sy=player[x].getY();
  18.                                  var sz=player[x].getZ();
  19.                                  //获取玩家的坐标
  20.                                  world.getScoreboard().setPlayerScore(player[x].name,"six",sx,'dummy')
  21.                                  world.getScoreboard().setPlayerScore(player[x].name,"siy",sy,'dummy')
  22.                                  world.getScoreboard().setPlayerScore(player[x].name,"siz",sz,'dummy')
  23.                                  //设置计分板分数
  24.                                  }
  25. }
复制代码
然后是注册指令
  1. //放运行 注册指令
  2. function Command(name,usage){
  3. this.getCommandName=function(){
  4.   /*String getCommandName()
  5.   *应返回指令的名字
  6.   *如:ppes 则返回noppes
  7.   */
  8. };
  9. this.getCommandUsage=function(sender){
  10.   /*String getCommandUsage(ICommandSender sender)
  11.   *应返回指令的用法
  12.   *当玩家输入"/help 你的指令名" 的时候就会出现
  13.   *sender:指令发送者 可能是玩家 控制台 命令方块 或者其他什么
  14.   */
  15. };
  16. this.processCommand=function(sender,args){
  17.   /*void processCommand(ICommandSender sender, String[] args)
  18.   *在玩家使用该指令时会调用本函数
  19.   *sender:指令发送者 可能是玩家 控制台 命令方块 或者其他什么
  20.   *args:指令的参数
  21.   */
  22. };
  23. this.addTabCompletionOptions=function(sender,args){
  24.   return null;
  25.   /*List addTabCompletionOptions(ICommandSender sender, String[] args)
  26.   *用于tab自动补全
  27.   *应返回补全后的参数
  28.   *sender:指令发送者 可能是玩家 控制台 命令方块 或者其他什么
  29.   *args:指令的参数
  30.   */
  31. };
  32. this.getRequiredPermissionLevel=function(){
  33.   return 4;
  34.   /*int getRequiredPermissionLevel
  35.   *指令所需的权限 0表示所有人可用 4表示OP可用
  36.   *应返回权限等级
  37.   */
  38. }
  39. this.canCommandSenderUseCommand=function(){
  40.          return true;
  41. }
  42. //上方函数以1.7.10的方法为准
  43. //1.12.2修改函数时补全参数后通用。
  44. this.getMCCommand=function(){
  45.   var CommandBase=Java.type("net.minecraft.command.CommandBase");
  46.   var MCCommand=Java.extend(CommandBase,{
  47.    func_71517_b:this.getCommandName,
  48.    func_71518_a:this.getCommandUsage,
  49.    func_71515_b:this.processCommand,
  50.    func_71516_a:this.addTabCompletionOptions,
  51.    func_82362_a:this.getRequiredPermissionLevel,
  52.    func_71519_b:this.canCommandSenderUseCommand,
  53.    /*下方是对1.12.2的兼容*/
  54.    func_184881_a:this.processCommand,
  55.    func_184883_a:this.addTabCompletionOptions
  56.   });
  57.   return new MCCommand();
  58. }
  59. }
  60. function registerCommand(command){
  61. var MinecraftServer=Java.type("net.minecraft.server.MinecraftServer");
  62. var server=MinecraftServer.func_71276_C();
  63.      if(!(command instanceof Command)){
  64.      return;
  65.     }
  66.     server.func_71187_D().func_71560_a(command.getMCCommand())
  67. }
  68. var EntityPlayerMP=Java.type("net.minecraft.entity.player.EntityPlayerMP");
  69. var command=new Command();
  70. command.getCommandName=function(){
  71. return "back";
  72. }
  73. command.getCommandUsage=function(sender){
  74. return "/back";
  75. }
  76. command.getRequiredPermissionLevel=function(){
  77. return 0;//0是全部人可用4是仅OP可用
  78. }
  79. command.canCommandSenderUseCommand=function(sender){
  80.         return true;//是否允许使用true允许false不允许只有OP能用
  81. }
  82. command.addTabCompletionOptions=function(sender,args){
  83. return ["sss","aaa"]
  84. }
  85. command.processCommand=function(sender,args){
  86. var ScriptPlayer=Java.type("noppes.npcs.scripted.ScriptPlayer");
  87.     if(!(sender instanceof EntityPlayerMP)){
  88.      return;
  89.     }
  90. var player=new ScriptPlayer(sender);
  91. var a=world.getScoreboard().getPlayerScore(player.getName(),"six","dummy");
  92. var b=world.getScoreboard().getPlayerScore(player.getName(),"siy","dummy");
  93. var c=world.getScoreboard().getPlayerScore(player.getName(),"siz","dummy");
  94. npc.executeCommand("tp "+player.name+" "+a+" "+b+" "+c+" ")
  95. player.sendMessage("§6你回到了死亡地点")
  96. return;
  97. }
  98. registerCommand(command);                                          
复制代码
就这样,帖子水完了,hh
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|自定义NPC脚本中文论坛 ( 蜀ICP备17005795号-3 )

GMT+8, 2020-8-15 21:28 , Processed in 0.099135 second(s), 33 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部