關(guān)于版本優(yōu)化的相關(guān)建議很多人經(jīng)常說:我和別人是一樣的版本,為什么我的游戲卡,他的游戲不卡,是不是你們引擎不行?其實(shí)道理很簡單。拋開服務(wù)器質(zhì)量的緣故,以及引擎自身的不足,版本導(dǎo)致的游戲卡占了很大的比重。下面就如何對(duì)版本進(jìn)行優(yōu)化做一點(diǎn)簡要的說明。僅供大家參考。
【關(guān)于M2的相關(guān)設(shè)置】
1、M2選項(xiàng)-性能設(shè)置-怪物處理控制-處理間隔。
數(shù)字越大,怪物行動(dòng)越遲鈍,CPU占用越低。
數(shù)字越小,怪物行動(dòng)越靈活,CPU占用越高。
這里的CPU的高低,大家都明白,是決定游戲是不是卡的緣故之一。
2、很多游戲爆出裝備的時(shí)候。事無巨細(xì),甚至某種85合擊的版本一瓶太陽水掉落在地上,也要全服公告。這樣的文字提示,肯定也會(huì)給M2增加負(fù)擔(dān),建議取消這些無意義的物品掉落提示。
【關(guān)于怪物的刷新】
D:\Mirserver\Mir200\Envir目錄下的MonGen.TXT文本為怪物刷新腳本。這個(gè)腳本看起來很簡單。[地圖 坐標(biāo)X 坐標(biāo)Y 怪物名字 刷新范圍 刷新數(shù)量 刷新時(shí)間]表面上看按照這個(gè)格式對(duì)號(hào)入座即可了,其實(shí)不然。
很多人寫版本圖省事,所有的怪物一律統(tǒng)一刷新時(shí)間,BOSS全部30分鐘一刷新,小怪全部10分鐘刷新一次。如果你全部設(shè)置了10分鐘一刷新,那么M2每10分鐘就要全局的檢測一次,目前所有游戲里存在的10分鐘刷新的怪物數(shù)量與MONGEN中設(shè)置的是否相符。如果不相符會(huì)補(bǔ)齊,要在一個(gè)時(shí)間內(nèi)同時(shí)做出這么多的檢測,M2的負(fù)擔(dān)可想而知.建議將這些怪物的刷新時(shí)間分散開,比如11分鐘 12分鐘。這樣M2在一個(gè)時(shí)間內(nèi)執(zhí)行的檢測與補(bǔ)充就會(huì)少一些,運(yùn)算負(fù)擔(dān)就會(huì)減少一些。
有些人寫版本把一個(gè)地圖內(nèi)所有的怪物刷新坐標(biāo)點(diǎn)全部設(shè)置在一個(gè)位置。這樣的話,M2的分析處理能力勢(shì)必會(huì)被拖累。,刷新坐標(biāo)點(diǎn)也都區(qū)分開,一個(gè)坐標(biāo)不要刷新太多的怪物。否則你也會(huì)出現(xiàn),本來設(shè)置刷100只怪,結(jié)果只有60只。
還有一些版本只有50~60個(gè)人玩,但是刷怪設(shè)置了5~6萬只怪,那么平均折合一個(gè)人要消滅掉1000只怪,這現(xiàn)實(shí)嗎。肯定不可能的。沒事兒的時(shí)候大家可以對(duì)比一下,游戲在刷新1萬只怪所產(chǎn)生的CPU占用大小與刷新5萬只怪所戰(zhàn)勝的CPU占用大小,那絕對(duì)是5倍的數(shù)值。
還有關(guān)于游戲自助刷怪升級(jí)的腳本,這個(gè)腳本千萬盡量不要存在在游戲里,這個(gè)是一個(gè)坑爹的功能。尤其刷怪練級(jí)的腳本。當(dāng)幾個(gè)刷怪NPC在哪里不停的刷的時(shí)候,M2負(fù)擔(dān)極大,游戲不可能不卡。
【關(guān)于機(jī)器人腳本】
D:\Mirserver\Mir200\Envir\Robot_def目錄下為機(jī)器人腳本。
AutoRunRobot.txt為觸發(fā)命令腳本
RobotManage.txt為執(zhí)行命令腳本
當(dāng)觸發(fā)命令腳本中一秒一執(zhí)行的命令出現(xiàn)的情況下、游戲就會(huì)變卡,并且游戲里玩家越多,將會(huì)余越卡,建議大家取消掉1秒一執(zhí)行的機(jī)器人腳本,如果有必要存在的話,那么修改為5秒,乃至10秒等延長時(shí)間。
【關(guān)于個(gè)人定時(shí)器】
很多版本中的個(gè)人定時(shí)器使用的很不科學(xué)、上線就開始觸發(fā)個(gè)人定時(shí)器,搞一個(gè)安全區(qū)在線泡點(diǎn),并且一秒一執(zhí)行,當(dāng)人多的時(shí)候一起執(zhí)行當(dāng)然會(huì)非常卡。尤其玩家在帶著個(gè)人定時(shí)器等計(jì)時(shí)命令的時(shí)候,在進(jìn)行PK或者打怪等動(dòng)作的時(shí)候,就需要通過游戲網(wǎng)關(guān)向M2不停的傳送數(shù)據(jù),M2在不停的分析數(shù)據(jù)反饋給游戲網(wǎng)關(guān)上的玩家,這樣一來,M2的負(fù)擔(dān)大了,游戲自然就變卡了。
建議取消:安全區(qū)泡點(diǎn),將泡點(diǎn)最好劃分開不同地圖,盡量一個(gè)泡點(diǎn)地圖里不要存在太多的人。這樣游戲就不會(huì)那么卡了。
另外:很多人的個(gè)人定時(shí)器都是1秒一循環(huán)。然后給100萬經(jīng)驗(yàn)。建議大家轉(zhuǎn)換個(gè)思路,修改為5秒一循環(huán),給500萬經(jīng)驗(yàn)。這樣循環(huán)的次數(shù)少了,M2的負(fù)擔(dān)就減輕了。
【關(guān)于GOTO的使用】
GOTO越多,游戲的循環(huán)會(huì)越多。有些版本表面看著很簡潔。使用了很多GOTO,其實(shí)這樣一來循環(huán)就會(huì)很多。大家都知道當(dāng)計(jì)算出現(xiàn)死循環(huán)的時(shí)候,系統(tǒng)是直接崩盤,那么游戲出現(xiàn)死循環(huán)的時(shí)候,會(huì)直接M2死掉。能用DELAYGOTO替代的盡量用這個(gè)替代,不能用這個(gè)替代的盡量用其他思路取代。
能在當(dāng)前腳本完成的功能盡量不要#CALL到別處完成。減少GOTO使用率對(duì)于版本優(yōu)化是一個(gè)很重要的一步。
盡量優(yōu)化版本,而不是通過修改M2(!Setup.txt) ScriptGotoCountLimit參數(shù),讓GOTO一直執(zhí)行,太多GOTO會(huì)使M2直接關(guān)閉
【關(guān)于版本中的NPC】
有的GM總說自己的游戲加載的時(shí)候好慢,或者關(guān)閉的時(shí)候好慢。這些人的游戲里NPC刷新達(dá)到600~700個(gè)。這些NPC有多少是沒有用的?有多少NPC是玩家一輩子都點(diǎn)擊不到的?加載這些東西,然后在保存這些NPC產(chǎn)生的數(shù)據(jù),會(huì)不浪費(fèi)時(shí)間嗎?如果這些NPC里留下一個(gè)小小的后門,你找出來是不是也浪費(fèi)你的腦細(xì)胞啊?
【關(guān)于查看游戲中玩家的私聊記錄】
不建議開啟
|
|