對(duì)我架設(shè)一個(gè)wow私服,意義有二:1. 玩wow過(guò)程中,碰到一些實(shí)現(xiàn)手法不解的地方,可以實(shí)時(shí)去調(diào)試。2. 基于此服務(wù)端模擬wow客戶端若干特性,比如地圖資源異步加載,角色并行狀態(tài)處理等。
需要工具:
1. visual studio 2010(arcemu trunk windows版本解決方案使用),不建議強(qiáng)制修改visual studio版本,因?yàn)榭赡軄G失工程配置參數(shù)信息。
2. mysql,SQLyog。(mysql數(shù)據(jù)庫(kù)不用說(shuō)了,隨便什么版本,SQLyog主要是圖形化mysql命令操作)。
3. svn (因?yàn)槭窃创a編譯嘛)。
源碼下載:
1. 服務(wù)端程序arcemu trunk, https://arcemu.svn.sourceforge.net/svnroot/arcemu/trunk
2. 服務(wù)端使用的數(shù)據(jù)庫(kù)whydb,
http://svn.xp-dev.com/svn/whydb-users我是這樣放置代碼的
編譯源碼:
1. 需要簡(jiǎn)單地修改幾處源碼,一,src/scripts/src/InstanceScripts/Raid_ZulGurub.cpp中的第184行,將
?/改成*/,很明顯這是手誤。二,src/arcemu-logonserver/LogonCommServer.cpp中的
第313~314行注釋掉,解釋下情況:因?yàn)閣ow每個(gè)游戲服務(wù)器他們叫做Realm,每個(gè)Realm都要注冊(cè)到LogonServer中。考慮到不是我的Realm不能注冊(cè)到我的LogonServer,所以存在這授權(quán)處理的一關(guān)。我去掉主要是爛的去改配置文件。三,src/arcemu-world/HackFixes.cpp中
第54~57行注釋掉,解釋下情況:因?yàn)楣俜街恢С謊nUS和enGB,在加載spell.dbc的時(shí)候做了一個(gè)本地化核實(shí)。可以編譯了。
2. 創(chuàng)建3個(gè)數(shù)據(jù)庫(kù)arc_characters, arc_logon, arc_world.然后通過(guò)下圖的操作

分別將sql目錄下的3800_character_structure.sql導(dǎo)入到arc_characters里,將2834_logon_structure.sql導(dǎo)入到arc_logon里。然后再將sql/character_updates目錄里高于3800打頭的sql導(dǎo)入到arc_characters,同樣將sql/logon_updates目錄里高于2834打頭的sql導(dǎo)入到arc_logon。為什么不導(dǎo)arc_world?呵呵,因?yàn)樵创a里帶的arc_world只是表結(jié)構(gòu)定義,里面并沒(méi)有數(shù)據(jù)。這個(gè)要用whydb導(dǎo)入。進(jìn)入whydb目錄,雙擊tool.bat就行了。

回車

繼續(xù)回車,就安裝好了。
然后在arc_logon的表accounts里加入幾個(gè)賬號(hào):

重點(diǎn)說(shuō)明下,此數(shù)據(jù)庫(kù),服務(wù)端程式邏輯適用于3.3.5a版本,也就是wow大災(zāi)變前夕的前一個(gè)版本。
所以必須準(zhǔn)備一個(gè)3.3.5a版本的wow。我用的臺(tái)服的client,當(dāng)然你用國(guó)服的也是一樣。很不幸的是我從3.0.3一個(gè)個(gè)patch打上來(lái)的。
如果你也想和我一樣過(guò)一過(guò)打patch的癮,你可以去
http://tlax.5d6d.com/thread-1778-1-1.html一個(gè)個(gè)補(bǔ)丁下吧。
如下:


至于服務(wù)端configs里的*.conf,客戶端的登陸配置,上網(wǎng)上隨便找找就是了。
我要重點(diǎn)說(shuō)下服務(wù)端適用的dbc和maps資源。如何從client取。
首先說(shuō)dbc:編譯解決方案mpqe_cpp.sln,然后將extractdbc.bat,mpqe_cpp.exe,SFmpq.dll拷貝到Data/zhTW目錄下,然后執(zhí)行bat就生成了dbc,然后將所有*.dbc拷貝到服務(wù)端的dbc目錄里。
再次說(shuō)maps:編譯解決方案AD100.sln,然后將ad.exe拷貝到world of warcraft目錄,和data同層,然后再將Data/zhTW里的locale-zhTW.MPQ拷貝到Data里(因?yàn)檫@個(gè)程序比較傻,他沒(méi)有遞歸遍歷到所有的檔案,他想從locale-zhTW.MPQ里去找Map.dbc),然后執(zhí)行ad.exe,然后將maps里所有的.bin文件拷貝到server的maps里就ok了,基本配置配置就可以跑了。
有什么不清楚的再討論吧。