自定义NPC脚本论坛

搜索
查看: 32|回复: 1

[1.12.2]瞳术-死亡凝视

[复制链接]

6

主题

7

帖子

232

积分

Lv.5 深海明珠

Rank: 8Rank: 8

积分
232
发表于 2021-4-29 23:05:51 | 显示全部楼层 |阅读模式
//粘贴至 Players 中
var key=45//键代码45 为 X

var exDamage=0.1;//死亡凝视 造成的伤害,大于0小于1则为最大生命百分比
var interval=2000;//死亡凝视 造成伤害间隔,1000毫秒=1秒
var range=10;//死亡凝视 范围
var cd=6000;//冷却时间,为0时则无冷却
var useTime=30000;//死亡凝视 持续时间,为0时则无限时长,1000毫秒=1秒

var canOff=true;//是否允许玩家自行关闭 死亡凝视

var canAttackFriendlyNpc=false;//是否可以对友方npc使用
var canAttackNeutralNpc=true;//是否可以对中立npc使用
var canAttackAggressiveNpc=true;//是否可以对敌对npc使用
var canAttackPlayer=true;//是否可以对玩家使用
var canAttackFriendlyPlayer=true;//是否可以对队友使用
var canOp=false;//是否仅Op允许使用
var gamemode={0:true,2:true};//能够受到伤害的模式

var canMessage=true;//是否启用提示
var update_tick=1;//刷新频率
function timer(e){
        var player=e.player;
        var mcplayer=player.getMCEntity();
        var store=player.getStoreddata();
        if(e.id==883 && useTime>0){
                update(player);
        }
        var use=eval(store.get("use_dieEyes"));
        if(use){
                var date=new Date().getTime();
                var Interval=store.get("interval_dieEyes");
  if(date>Interval){
          var entitys=player.rayTraceEntities(range,true,true);//是否无视 (水方块,流动水,岩浆)等遮挡,(高草丛,草,玫瑰丛)等遮挡
   if(entitys.length>0){
                  var target=entitys[0];
                  if(new myCase().isNpc(target,mcplayer,canAttackFriendlyNpc,canAttackNeutralNpc,canAttackAggressiveNpc)){
                   return;
                  }
                  if(new myCase().isPlayer(target,mcplayer,canAttackPlayer,canAttackFriendlyPlayer,gamemode)){
                   return;
                  }
                                var DamageSource=Java.type("net.minecraft.util.DamageSource");
                  var temp_exDamage=exDamage>0 && exDamage<1?target.getMaxHealth()*exDamage:exDamage;
                                target.getMCEntity().func_70097_a(DamageSource.func_76365_a(player.getMCEntity()),temp_exDamage);
                                store.put("interval_dieEyes",date+interval);
                 }
  }
        }
}
function update(player){
        var store=player.getStoreddata();
        var Cd=store.get("cd_dieEyes");
        var on=store.get("on_dieEyes");
        var can=!eval(store.get("can_dieEyes"));
        var date=new Date().getTime();
        if(date>Cd && can){
                message(player,"§5§l[瞳术-死亡凝视]§9已冷却完毕,按 §4§lX §9§l释放");
                store.put("can_dieEyes","true");
        }
        var use=eval(store.get("use_dieEyes"));
        if(use){
                if(date>on){
                 message(player,"§5§l[瞳术-死亡凝视]§6死亡凝视 §4效果结束,冷却 §6"+cd/1000+" §4秒");
                 store.put("use_dieEyes","false"); 
                        store.put("cd_dieEyes",date+cd); 
                        store.put("can_dieEyes","false"); 
                }
        }
}
function keyPressed(e){
        if(e.key==key){
                var player=e.player;
                var store=player.getStoreddata();
                if(!store.has("interval_dieEyes")){
                        store.put("interval_dieEyes",0);
                }
                if(!store.has("use_dieEyes")){
                        store.put("use_dieEyes","false");
                }
                if(!store.has("can_dieEyes")){
                        store.put("can_dieEyes","true");
                }
                if(!store.has("cd_dieEyes")){
                        store.put("cd_dieEyes",0);
                }
                if(!store.has("on_dieEyes")){
                        store.put("on_dieEyes",0);
                }
                var use=!eval(store.get("use_dieEyes"));
                var date=new Date().getTime();
                var mcplayer=player.getMCEntity();
                if(!new myCase().isOp(mcplayer,canOp)){
                        return;
                }
                if(cd>0){
                        player.timers.forceStart(883,update_tick,true);
                        if(use){
                                var Cd=store.get("cd_dieEyes");
                                var can=!eval(store.get("can_dieEyes"));
                                if(date<Cd && can){
                                        var time_t=((Cd-date)/1000).toFixed(1);
                                        message(player,"§5§l[瞳术-死亡凝视]§4冷却还需要 §6"+time_t+" §4秒");
                                        return;
                                }
                                store.put("on_dieEyes",date+useTime);
                        }
                        if(!canOff){
                                return;
                        }
                }
                if(use){
                 store.put("interval_dieEyes",date+interval);
                }else if(cd>0){
                        store.put("on_dieEyes",0);
                        return;
                }
                var mess=use?"§2开启":"§4关闭";
                store.put("use_dieEyes",use+"");
                message(player,"§5§l[瞳术-死亡凝视]"+mess+" §d死亡凝视");
        }
}
function message(player,mess){
        if(canMessage){
                player.message(mess);
        }
}
/*Soys的配置变量
*case1,case2,case3等等都属于顶层代码中配置变量所需,正常使用请填true
*各个case如何使用请参考 君油酱的油酱打不 的更多示例!
*/
function myCase(){
        var IEntityLivingBase=Java.type("noppes.npcs.api.entity.IEntityLivingBase");
        var ICustomNpc=Java.type("noppes.npcs.api.entity.ICustomNpc");
        var IPlayer=Java.type("noppes.npcs.api.entity.IPlayer");
        /* mcplayer 是否为 Op */
        this.isOp=function(mcplayer,case1){
         var NoppesUtilServer=Java.type("noppes.npcs.NoppesUtilServer");
                if(NoppesUtilServer.isOp(mcplayer)){
          return true;
                }
                if(!case1){
                 return true;
         }
                return false;
        }
 /* target 是否有继承 IEntityLivingBase */
        this.isLivingBase=function(target){
                if((target instanceof IEntityLivingBase)){
                        return true;
                }
                return false;
        }
 /* target 是否有继承 ICustomNpc */
        this.isNpc=function(target,mcplayer,case1,case2,case3){
                if(target instanceof ICustomNpc){
                        var faction=target.faction;
                        if(faction.isFriendlyToPlayer(mcplayer)){
                         if(!case1){
                          return true;
                         }
                                return false;
                        }
                        if(faction.isNeutralToPlayer(mcplayer)){
                         if(!case2){
                                 return true;
                         }
                                return false;
                        }
                        if(faction.isAggressiveToPlayer(mcplayer)){
                         if(!case3){
                                 return true;
                         }
                                return false;
                        }else if(mcplayer.field_71075_bZ.field_75098_d){
                                return false;
                        }
                        return true;
                }
                return false;
 }
        /* target 是否有继承 IPlayer   case3 应填入Object */
        this.isPlayer=function(target,mcplayer,case1,case2,case3){
         if(target instanceof IPlayer){
                        if(!case1){
                                return false;
                        }
                        var target_p=target;
                        if(case2){
                         var team_p=mcplayer.func_96124_cp();
                  var team_t=target_p.getMCEntity().func_96124_cp();
                  if(team_p!=null && team_t!=null){
                                 if(team_p.func_96661_b()==team_t.func_96661_b() && !team_p.func_96665_g()){
                           return true;
                                 }
                         }
                                return false;
                        }
                        if(Object.keys(case3).length>0){
                                if(!case3[target_p.getGamemode()]){
                                        return true;
                                }
                                return false;
                        }
                        return true;
                }
                return false;
        }
}


评分

参与人数 1人气 +5 贡献 +1 收起 理由
小明 + 5 + 1

查看全部评分

回复

使用道具 举报

2

主题

15

帖子

172

积分

Lv.4 地上月影

Rank: 6Rank: 6

积分
172
发表于 2021-4-30 10:12:25 | 显示全部楼层
好!虽然是1.12的脚本我用不着,但还是要说句牛逼!
回复

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表