等枫亭丶烟雨阁
本帖最后由 等枫亭丶烟雨阁 于 2022-3-19 17:10 编辑

1.16.5LoliServer服务端,需要让小白射到其他怪物时其他怪物不会产生仇恨(包括但不限于小白的误射)

无敌三脚猫
一定要插件吗?crt脚本怎么样?
  1. var undead=Java.type("net.minecraft.entity.CreatureAttribute").field_223223_b_
  2. function livingSetAttackTargetEvent(e){
  3. if(e.entity.getType()==3&&e.event.getTarget()!=null)
  4. if(e.event.getTarget().func_70668_bt()==undead)
  5. e.entity.setAttackTarget(null)
  6. }
复制代码
这次是用脚本魔杖右键空气,写在forge里

等枫亭丶烟雨阁
无敌三脚猫 发表于 2022-3-18 18:46
一定要插件吗?crt脚本怎么样?这次是用脚本魔杖右键空气,写在forge里

脚本魔杖?这是CustomNPC还是crt啊

无敌三脚猫
等枫亭丶烟雨阁 发表于 2022-3-18 18:48
脚本魔杖?这是CustomNPC还是crt啊

啊,写错了,是cnpc

等枫亭丶烟雨阁
本帖最后由 等枫亭丶烟雨阁 于 2022-3-18 20:07 编辑
无敌三脚猫 发表于 2022-3-18 18:46
一定要插件吗?crt脚本怎么样?这次是用脚本魔杖右键空气,写在forge里

加上脚本之后服务端崩溃,经测试为小白的箭射中了僵尸,其他生物暂未测试

无敌三脚猫
本帖最后由 无敌三脚猫 于 2022-3-18 21:31 编辑
等枫亭丶烟雨阁 发表于 2022-3-18 19:57
加上脚本之后服务端崩溃,经测试为小白的箭射中了僵尸,其他生物暂未测试 ...

那你先打一个指令
  1. /team add m
复制代码
然后脚本换成这个
  1. var undead=Java.type("net.minecraft.entity.CreatureAttribute").field_223223_b_
  2. function livingSetAttackTargetEvent(e){
  3. if(e.entity.getType()==3&&e.event.getTarget()!=null)
  4. if(e.event.getTarget().func_70668_bt()==undead){
  5. var server=e.event.getTarget().func_184102_h()
  6. server.func_195571_aL().func_197059_a(server.func_195573_aM().func_197031_a(),"team join m "+e.event.getTarget().func_189512_bd())
  7. server.func_195571_aL().func_197059_a(server.func_195573_aM().func_197031_a(),"team join m "+e.entity.getUUID)}
  8. }
复制代码

等枫亭丶烟雨阁
无敌三脚猫 发表于 2022-3-18 21:14
那你先打一个指令然后脚本换成这个

照做后出现一种奇怪的情况,感觉像是有概率一样,小白射中僵尸后有些僵尸会返回去攻击小白,有些被射中没有反应,还有些是被射中后追到小白面前打了小白一下就不继续打了,十分迷惑

无敌三脚猫
等枫亭丶烟雨阁 发表于 2022-3-18 22:09
照做后出现一种奇怪的情况,感觉像是有概率一样,小白射中僵尸后有些僵尸会返回去攻击小白,有些被射中没 ...
  1. var undead=Java.type("net.minecraft.entity.CreatureAttribute").field_223223_b_
  2. function livingSetAttackTargetEvent(e){
  3. if(e.entity.getType()==3&&e.event.getTarget()!=null)
  4. if(e.event.getTarget().func_70668_bt()==undead){
  5. var server=e.event.getTarget().func_184102_h()
  6. server.func_195571_aL().func_197059_a(server.func_195573_aM().func_197031_a(),"team join m "+e.event.getTarget().func_189512_bd())
  7. server.func_195571_aL().func_197059_a(server.func_195573_aM().func_197031_a(),"team join m "+e.entity.getUUID())}
  8. }
复制代码

等枫亭丶烟雨阁

还是有同样的问题,有时候会有僵尸反攻小白

无敌三脚猫
等枫亭丶烟雨阁 发表于 2022-3-19 17:09
还是有同样的问题,有时候会有僵尸反攻小白

我明白了,僵尸增援出来的僵尸不受这个事件影响,那只好让所有怪物在出生的时候就加上队伍了
  1. var scoreboard=Java.type('noppes.npcs.api.NpcAPI').Instance().getIWorld("minecraft:overworld").getMCWorld().func_73046_m().func_200251_aP()
  2. var team=scoreboard.func_96508_e("m")
  3. function livingSpawnEventSpecialSpawn(e){
  4. if(e.entity.getType()!=3)return
  5. var name=e.event.getEntity().func_200600_R().getRegistryName().func_110623_a()
  6. if(name!="wither_skeleton"&&name!="enderman")
  7. scoreboard.func_197901_a(e.event.getEntity().func_189512_bd(),team)
  8. }
复制代码

等枫亭丶烟雨阁
无敌三脚猫 发表于 2022-3-19 18:16
我明白了,僵尸增援出来的僵尸不受这个事件影响,那只好让所有怪物在出生的时候就加上队伍了 ...

小僵尸被小白射中后仍有仇恨

无敌三脚猫
等枫亭丶烟雨阁 发表于 2022-3-19 18:32
小僵尸被小白射中后仍有仇恨

你用什么生成的?用指令生成的生物不归这个事件管,那换一个吧,这次是检测实体而不是只检测生物了,我本来不想这样的
  1. var scoreboard=Java.type('noppes.npcs.api.NpcAPI').Instance().getIWorld("minecraft:overworld").getMCWorld().func_73046_m().func_200251_aP()
  2. var team=scoreboard.func_96508_e("m")
  3. function entityJoinWorldEvent(e){
  4. if(e.entity.getType()!=3)return
  5. var name=e.event.getEntity().func_200600_R().getRegistryName().func_110623_a()
  6. if(name!="wither_skeleton"&&name!="enderman")
  7. scoreboard.func_197901_a(e.event.getEntity().func_189512_bd(),team)
  8. }
复制代码

等枫亭丶烟雨阁
无敌三脚猫 发表于 2022-3-19 18:47
你用什么生成的?用指令生成的生物不归这个事件管,那换一个吧,这次是检测实体而不是只检测生物了,我本 ...

生物刷怪蛋也不算吗

无敌三脚猫

算啊,怎么了?

等枫亭丶烟雨阁

小僵尸攻击小白那次用的生物蛋