自己架設(shè)的傳奇會卡頓、掉線是什么原因?傳奇卡頓怎么解決?
因為平時接觸傳奇的用戶比較多,所以也會遇到架設(shè)的傳奇出現(xiàn)卡頓、掉線的情況,這究竟是為什么呢?飛飛總結(jié)了以下原因和解決方案希望可以幫助到你~
首先我們結(jié)合情況來,剛架設(shè)好的服,測試時就遇到了卡頓、掉線的情況,大概率是和游戲設(shè)置有關(guān)系的,我們可以先從引擎、游戲設(shè)置和腳本進(jìn)行排查。
【M2相關(guān)設(shè)置】
M2-選項-性能參數(shù)-怪物處理控制-處理間隔
數(shù)字越大,怪物行動越遲鈍,CPU占用越低。
數(shù)字越小,怪物行動越靈活,CPU占用越高。


當(dāng)你的參數(shù)調(diào)整的很小,就要查看下CPU使用率和內(nèi)存使用率占比,當(dāng)使用率高于正常值,就要排查是不是CPU或是內(nèi)存不夠的原因?qū)е驴D。
解決方法:聯(lián)系服務(wù)商協(xié)助排查,若是CPU使用率和內(nèi)存使用率占比高,讓服務(wù)商開臺更高配置的服務(wù)器架設(shè)測試下,看問題是否有改善。(GEE引擎版本對服務(wù)器配置要求更高,如果是GEE引擎建議選擇i9-9900K以上配置的服務(wù)器?)
【怪物刷新】
D:\MirServer\Mir200\Envir目錄下的MonGen.txt文件為怪物刷新腳本。這個腳本看起來很簡單,[地圖?坐標(biāo)X?坐標(biāo)Y?怪物名字?刷新范圍?刷新數(shù)量?刷新時間]表面上看按照這個格式對號入座即可,其實不然。
很多老G寫版本圖省事,所有的怪物一律統(tǒng)一刷新時間,BOSS全部30分鐘一刷新,小怪全部10分鐘刷新一次。如果你全部設(shè)置了10分鐘一刷新,那么M2每10分鐘就要全局的檢測一次,檢測所有游戲里存在的10分鐘刷新的怪物數(shù)量與MonGen中設(shè)置的是否相符,如果不相符就需要補(bǔ)齊。要在同一時間段同時檢測這么多內(nèi)容,M2的負(fù)擔(dān)可想而知!建議將怪物的刷新時間分散開,比如11分鐘?12分鐘等等,這樣M2在一個時間內(nèi)執(zhí)行的檢測與補(bǔ)充就會減少些,運(yùn)算負(fù)擔(dān)也會相對減小些。

地圖內(nèi)的怪物刷新坐標(biāo)點(diǎn)也建議分散開,一個坐標(biāo)點(diǎn)不要刷新太多的怪物,如果是一個坐標(biāo)點(diǎn)刷新太多的怪物M2的運(yùn)算壓力會加重,另外會出現(xiàn)本來設(shè)置刷新100只怪,結(jié)果只有60只。
另外刷新數(shù)量一定要根據(jù)服情況合理設(shè)置,當(dāng)你的游戲里有50-60+玩家游戲,但是刷怪設(shè)置了5-6萬只怪,算下來一個人就要消滅1000只怪,這肯定是不合理的!而且游戲刷新1w只怪和刷新5w只怪所占用的CPU使用率是不同的,至少有5倍差別。
還有就是游戲自助刷怪升級腳本,這個腳本盡量不要使用到游戲里,這就是個坑爹的功能。尤其刷怪練級的腳本。當(dāng)幾個刷怪NPC在那里不停地刷怪,增加了M2負(fù)擔(dān),游戲不卡都不行呢。
【機(jī)器人腳本】
D:\Mirserver\Mir200\Envir\Robot_def目錄下為機(jī)器人腳本。
AutoRunRobot.txt為觸發(fā)命令腳本
RobotManage.txt為執(zhí)行命令腳本

當(dāng)觸發(fā)命令腳本中有1秒一執(zhí)行的命令,游戲就會變卡,并且游戲里玩家越多,就越卡,建議取消1秒一執(zhí)行的機(jī)器人腳本,如果有必要存在,建議修改為5-10秒等延長時間。
【個人定時器】
很多版本中的個人定時器用的很不合理,上線就觸發(fā)個人定時器,安全區(qū)在線泡點(diǎn),1秒一執(zhí)行,當(dāng)人多的時候一起執(zhí)行就會非常卡。尤其是玩家?guī)е鴤€人定時器等計時命令進(jìn)行PK或者打怪等動作的時候,就需要通過游戲網(wǎng)關(guān)向M2不停的傳送數(shù)據(jù),M2在不停的分析數(shù)據(jù)反饋給游戲網(wǎng)關(guān)上的玩家。這樣一來,M2的負(fù)擔(dān)增加了,游戲自然就變卡了。
建議可以取消安全區(qū)泡點(diǎn),將泡點(diǎn)劃分到不同地圖,盡量一個泡點(diǎn)地圖里不要有太多的玩家。這樣游戲就不會那么卡了。
另外,很多GM的個人定時器都是1秒一循環(huán)。然后給100萬經(jīng)驗。建議轉(zhuǎn)換個思路,修改為5秒一循環(huán),給500萬經(jīng)驗。這樣循環(huán)的次數(shù)少了,M2的負(fù)擔(dān)也會減輕許多。
【GOTO的使用】
GOTO越多,游戲的循環(huán)會越多。有些版本表面看著很簡潔。使用了很多GOTO,其實這樣一來循環(huán)就會很多。大家都知道當(dāng)計算出現(xiàn)死循環(huán)的時候,系統(tǒng)是直接崩盤,那么游戲出現(xiàn)死循環(huán)的時候,會直接M2崩掉。能用DELAYGOTO替代的盡量用這個替代,不能用這個替代的盡量用其他思路代替。
能在當(dāng)前腳本完成的功能盡量不要#CALL到別處完成。減少GOTO使用率對于版本優(yōu)化是很重要的一步。
【NPC】
有的GM會遇到游戲加載或是關(guān)閉很慢的情況,第一時間會想到會不會是引擎的原因?其實并不然,游戲加載/關(guān)閉慢多數(shù)是和NPC有關(guān)的,當(dāng)你游戲里的NPC刷新達(dá)到600-700個,我們加載時NPC產(chǎn)生的數(shù)據(jù)就很占用時間,并且有些NPC玩家打到終極都不一定能遇到。對于沒有用的NPC,能刪則刪。
【服務(wù)器配置】
當(dāng)根據(jù)以上幾點(diǎn)排除了非版本原因,那就要考慮下是不是服務(wù)器配置不夠?qū)е?,就比如GEE引擎的版本,用L5630/E5-2670這種配置肯定是不夠的,GEE技術(shù)建議選擇i9-9900K或是更高的配置。再比如開區(qū)數(shù)量超過了20,L5630也是不行的,傳奇開多區(qū)還得是E5-2666v3或是E5-2683v4,同時開40-50個區(qū)都沒問題。
除了CPU,也要看服務(wù)器的帶寬是否充足,如果是帶寬跑到了峰值,不夠用了,也是會出現(xiàn)卡頓、掉線的情況的,可以聯(lián)系服務(wù)商查看帶寬圖,再考慮是否要升級配置。
以上就是關(guān)于自己架設(shè)的傳奇為什么會卡頓的幾個解決思路~
感謝您的閱讀,服務(wù)器大本營助您成為更專業(yè)的服務(wù)器管理員!