自定义NPC的怪物怎么做到类似MM插件那样。
玩家不在附近的时候不刷新.
玩家靠近后才会刷出来?
玩家不在附近的时候不刷新.
玩家靠近后才会刷出来?
额,NPC怪物不在玩家视野范围内一般都不会移动
放一个发射器,里面装NPC怪物的生成模块(NPC中的物品,右击那个NPC即可收入),启动发射器,不知道支不支持NPC模块生成,不行的话就用热力膨胀MOD里面的自动执行机也行
heiqi12 发表于 2021-3-23 12:57
放一个发射器,里面装NPC怪物的生成模块(NPC中的物品,右击那个NPC即可收入),启动发射器,不知道支不支 ...
这个不能解决问题哦
应该可以用脚本实现
由于没用过MM,不清楚其机制,所以说一下我的想法
大致是两个,
①用一个总npc,检测固定区域内是否有玩家(获取一下服务器内所有玩家然后用坐标范围判断),有的话就生成这片区域内预设的npc(提前把npc怪物存到复制魔杖里)
优点是玩家不在的时候怪物确实没有生成,应该可以减少资源使用
缺点是只能固定区域固定怪物,操作也比较麻烦,由于没想到好的改进方案,所以这个后面考虑
②给每个npc怪物单独加脚本,当玩家不在时隐身+不攻击,当玩家在时就反过来,可以达到类似“消失”的效果
优点是简单一点,只不过刚开始可能单独加脚本要累点
缺点是这个“消失”只是视觉上不可见,实际还是在那里的,不清楚会不会占用资源
因为方法②实现起来比较简单 我就直接贴代码了 版本1.7.10
复制代码
由于没用过MM,不清楚其机制,所以说一下我的想法
大致是两个,
①用一个总npc,检测固定区域内是否有玩家(获取一下服务器内所有玩家然后用坐标范围判断),有的话就生成这片区域内预设的npc(提前把npc怪物存到复制魔杖里)
优点是玩家不在的时候怪物确实没有生成,应该可以减少资源使用
缺点是只能固定区域固定怪物,操作也比较麻烦,由于没想到好的改进方案,所以这个后面考虑
②给每个npc怪物单独加脚本,当玩家不在时隐身+不攻击,当玩家在时就反过来,可以达到类似“消失”的效果
优点是简单一点,只不过刚开始可能单独加脚本要累点
缺点是这个“消失”只是视觉上不可见,实际还是在那里的,不清楚会不会占用资源
因为方法②实现起来比较简单 我就直接贴代码了 版本1.7.10
- //更新
 
- var range=20;//npc检测范围
 
- var entity=npc.getSurroundingEntities(range,1);//获取npc指定范围内玩家
 
- if(entity.length==0){//没有玩家
 
-         npc.setRetaliateType(3);//反击类型设为无反应
 
-         npc.setVisibleType(1);//不可视
 
- }
 
- else{
 
-         npc.setRetaliateType(0);//反击类型设为反击,如有特殊需求请自行设置,下同(0:反击, 1:恐慌, 2:撤退, 3:无反应)
 
-         npc.setVisibleType(0);//可视(0:可视, 1:不可视, 2:半透明)
 
- }