自己架设的传奇会卡顿、掉线是什么原因?
- 【M2相关设置】
- 【怪物刷新】
- 【机器人脚本】
- 【个人定时器】
- 【GOTO的使用】
- 【NPC】
- 【服务器配置】
因为平时接触传奇的用户比较多,所以也会遇到架设的传奇出现卡顿、掉线的情况,这究竟是为什么呢?飞飞总结了以下原因和解决方案希望可以帮助到你~
首先我们结合情况来,刚架设好的服,测试时就遇到了卡顿、掉线的情况,大概率是和游戏设置有关系的,我们可以先从引擎、游戏设置和脚本进行排查。
【M2相关设置】
M2-选项-性能参数-怪物处理控制-处理间隔
数字越大,怪物行动越迟钝,CPU占用越低。
数字越小,怪物行动越灵活,CPU占用越高。
当你的参数调整的很小,就要查看下CPU使用率和内存使用率占比,当使用率高于正常值,就要排查是不是CPU或是内存不够的原因导致卡顿。
解决方法:联系服务商协助排查,若是CPU使用率和内存使用率占比高,让服务商开台更高配置的服务器架设测试下,看问题是否有改善。(GEE引擎版本对服务器配置要求更高,如果是GEE引擎建议选择i9-9900K以上配置的服务器 )
【怪物刷新】
D:\MirServer\Mir200\Envir目录下的MonGen.txt文件为怪物刷新脚本。这个脚本看起来很简单,[地图 坐标X 坐标Y 怪物名字 刷新范围 刷新数量 刷新时间]表面上看按照这个格式对号入座即可,其实不然。
很多老G写版本图省事,所有的怪物一律统一刷新时间,BOSS全部30分钟一刷新,小怪全部10分钟刷新一次。如果你全部设置了10分钟一刷新,那么M2每10分钟就要全局的检测一次,检测所有游戏里存在的10分钟刷新的怪物数量与MonGen中设置的是否相符,如果不相符就需要补齐。要在同一时间段同时检测这么多内容,M2的负担可想而知!建议将怪物的刷新时间分散开,比如11分钟 12分钟等等,这样M2在一个时间内执行的检测与补充就会减少些,运算负担也会相对减小些。
地图内的怪物刷新坐标点也建议分散开,一个坐标点不要刷新太多的怪物,如果是一个坐标点刷新太多的怪物M2的运算压力会加重,另外会出现本来设置刷新100只怪,结果只有60只。
另外刷新数量一定要根据服情况合理设置,当你的游戏里有50-60+玩家游戏,但是刷怪设置了5-6万只怪,算下来一个人就要消灭1000只怪,这肯定是不合理的!而且游戏刷新1w只怪和刷新5w只怪所占用的CPU使用率是不同的,至少有5倍差别。
还有就是游戏自助刷怪升级脚本,这个脚本尽量不要使用到游戏里,这就是个坑爹的功能。尤其刷怪练级的脚本。当几个刷怪NPC在那里不停地刷怪,增加了M2负担,游戏不卡都不行呢。
【机器人脚本】
D:\Mirserver\Mir200\Envir\Robot_def目录下为机器人脚本。
AutoRunRobot.txt为触发命令脚本
RobotManage.txt为执行命令脚本
当触发命令脚本中有1秒一执行的命令,游戏就会变卡,并且游戏里玩家越多,就越卡,建议取消1秒一执行的机器人脚本,如果有必要存在,建议修改为5-10秒等延长时间。
【个人定时器】
很多版本中的个人定时器用的很不合理,上线就触发个人定时器,安全区在线泡点,1秒一执行,当人多的时候一起执行就会非常卡。尤其是玩家带着个人定时器等计时命令进行PK或者打怪等动作的时候,就需要通过游戏网关向M2不停的传送数据,M2在不停的分析数据反馈给游戏网关上的玩家。这样一来,M2的负担增加了,游戏自然就变卡了。
建议可以取消安全区泡点,将泡点划分到不同地图,尽量一个泡点地图里不要有太多的玩家。这样游戏就不会那么卡了。
另外,很多GM的个人定时器都是1秒一循环。然后给100万经验。建议转换个思路,修改为5秒一循环,给500万经验。这样循环的次数少了,M2的负担也会减轻许多。
【GOTO的使用】
GOTO越多,游戏的循环会越多。有些版本表面看着很简洁。使用了很多GOTO,其实这样一来循环就会很多。大家都知道当计算出现死循环的时候,系统是直接崩盘,那么游戏出现死循环的时候,会直接M2崩掉。能用DELAYGOTO替代的尽量用这个替代,不能用这个替代的尽量用其他思路代替。
能在当前脚本完成的功能尽量不要#CALL到别处完成。减少GOTO使用率对于版本优化是很重要的一步。
【NPC】
有的GM会遇到游戏加载或是关闭很慢的情况,第一时间会想到会不会是引擎的原因?其实并不然,游戏加载/关闭慢多数是和NPC有关的,当你游戏里的NPC刷新达到600-700个,我们加载时NPC产生的数据就很占用时间,并且有些NPC玩家打到终极都不一定能遇到。对于没有用的NPC,能删则删。
【服务器配置】
当根据以上几点排除了非版本原因,那就要考虑下是不是服务器配置不够导致,就比如GEE引擎的版本,用L5630/E5-2670这种配置肯定是不够的,GEE技术建议选择i9-9900K或是更高的配置。再比如开区数量超过了20,L5630也是不行的,传奇开多区还得是E5-2666v3或是E5-2683v4,同时开40-50个区都没问题。
除了CPU,也要看服务器的带宽是否充足,如果是带宽跑到了峰值,不够用了,也是会出现卡顿、掉线的情况的,可以联系服务商查看带宽图,再考虑是否要升级配置。
以上就是关于自己架设的传奇为什么会卡顿的几个解决思路
感谢您的阅读,服务器大本营助您成为更专业的服务器管理员!