huane2008
自定义NPC的怪物怎么做到类似MM插件那样。
玩家不在附近的时候不刷新.
玩家靠近后才会刷出来?



heiqi12
额,NPC怪物不在玩家视野范围内一般都不会移动

heiqi12
放一个发射器,里面装NPC怪物的生成模块(NPC中的物品,右击那个NPC即可收入),启动发射器,不知道支不支持NPC模块生成,不行的话就用热力膨胀MOD里面的自动执行机也行

huane2008
heiqi12 发表于 2021-3-23 12:57
放一个发射器,里面装NPC怪物的生成模块(NPC中的物品,右击那个NPC即可收入),启动发射器,不知道支不支 ...

这个不能解决问题哦

猜猜谁是谁
应该可以用脚本实现
由于没用过MM,不清楚其机制,所以说一下我的想法
大致是两个,
①用一个总npc,检测固定区域内是否有玩家(获取一下服务器内所有玩家然后用坐标范围判断),有的话就生成这片区域内预设的npc(提前把npc怪物存到复制魔杖里)
优点是玩家不在的时候怪物确实没有生成,应该可以减少资源使用
缺点是只能固定区域固定怪物,操作也比较麻烦,由于没想到好的改进方案,所以这个后面考虑
②给每个npc怪物单独加脚本,当玩家不在时隐身+不攻击,当玩家在时就反过来,可以达到类似“消失”的效果
优点是简单一点,只不过刚开始可能单独加脚本要累点
缺点是这个“消失”只是视觉上不可见,实际还是在那里的,不清楚会不会占用资源
因为方法②实现起来比较简单 我就直接贴代码了 版本1.7.10
  1. //更新
  2. var range=20;//npc检测范围
  3. var entity=npc.getSurroundingEntities(range,1);//获取npc指定范围内玩家
  4. if(entity.length==0){//没有玩家
  5.         npc.setRetaliateType(3);//反击类型设为无反应
  6.         npc.setVisibleType(1);//不可视
  7. }
  8. else{
  9.         npc.setRetaliateType(0);//反击类型设为反击,如有特殊需求请自行设置,下同(0:反击, 1:恐慌, 2:撤退, 3:无反应)
  10.         npc.setVisibleType(0);//可视(0:可视, 1:不可视, 2:半透明)
  11. }
复制代码