魔兽世界私服架设
都說(shuō)魔獸世界是最經(jīng)典的網(wǎng)游,可惜我沉迷于程序的世界,都沒有機(jī)會(huì)去體會(huì)一下!正好看了別人一篇blog,寫著怎么架設(shè)魔獸世界,想想我就自己動(dòng)手架一個(gè)看看了!
等弄完之后,發(fā)現(xiàn),那個(gè)服務(wù)器是2.3的客戶端吧,好像!現(xiàn)在都3.13了,根本沒用,后來(lái)到去sf.net找了一下,用svn把代碼down下來(lái),都很老了。后來(lái)啃了一點(diǎn)英文,才發(fā)現(xiàn),現(xiàn)在源碼管理已經(jīng)遷移到git上面了。題外話,這個(gè)就是linux之父炮轟c++里面的一個(gè)證據(jù)之一,用純C寫的~!
這是好久之前弄的,現(xiàn)在忘得差不多了,只記個(gè)大概吧!
用以下命令down源碼
git clone?git://github.com/mangos/mangos.git
編譯的時(shí)候會(huì)出錯(cuò),找不到以下兩個(gè)文件
revision.h
SystemConfig.h
其實(shí)以上文件只是簡(jiǎn)單的定義同個(gè)編譯的宏而已,自己動(dòng)手寫一個(gè)就可以了!
然后編譯就沒有問題了。
1)Exracting maps and DBC files,導(dǎo)出地圖及DBC文件
在源碼找到這個(gè)路徑mangos\contrib\extractor
編譯后得到可執(zhí)行文件ad.exe拷貝到魔獸目錄下執(zhí)行后,沒那么快,得等會(huì)兒
得到目錄maps,dbc兩個(gè)文件夾,拷到大芒果的可執(zhí)行目錄下
2) 現(xiàn)在要安裝數(shù)據(jù)庫(kù)了
具體怎么安裝mysql數(shù)據(jù)就不費(fèi)話了,最省事的辦法下個(gè)XAMP吧~
建三個(gè)庫(kù)realmd;mangos;characters
直接執(zhí)行mangos/sql下面的create_mysql.sql就可以建三個(gè)庫(kù)了
緊接著分別選中庫(kù),然后執(zhí)行該目錄下的realmd.sql;mangos.sql;characters.sql;
操作完上面就有了基本的數(shù)據(jù)庫(kù)結(jié)構(gòu)了,當(dāng)然,里面什么東西都沒有
3)配置mangos
打開mangosd.conf,找到LoginDatabaseInfo,WorldDatabaseInfo,CharacterDatabaseInfo;分別按照這樣的格式寫入
服務(wù)器;端口;用戶名;密碼;數(shù)據(jù)庫(kù)名
如我的是這樣的:
LoginDatabaseInfo???? = "cheng;3306;linbc;asdf;realmd"
WorldDatabaseInfo???? = "cheng;3306;linbc;asdf;mangos"
CharacterDatabaseInfo = "cheng;3306;linbc;asdf;characters"
打開realmd.conf,也配置一下
LoginDatabaseInfo = "[Server IP];3306;root;[SQL password];realmd"
4)配置客戶端的服務(wù)器ip及端口
在魔獸世界的客戶端路徑下打開Data\zhCN
里面有一個(gè)文件realmlist.wtf,打開后修改為
set realmlist [server IP] set patchlist [server IP]?
?
現(xiàn)在,可以啟動(dòng)你的服務(wù)器了
執(zhí)行 mangosd.exe 和 realmd.exe,應(yīng)該沒有任何錯(cuò)誤
運(yùn)行之前是命令行程序,可以輸入命令,你可以先輸入help就可以看這些命令怎么樣,如創(chuàng)建帳號(hào)
create linbc passwd可以設(shè)置為GM
setgm [username] [anything from 0 to 3, 3 being administrator, 0 being player]?
好吧,現(xiàn)在可以進(jìn)游戲了,這個(gè)時(shí)候你可能會(huì)碰到客戶端版本太高不支持的情況,不要緊,自己動(dòng)手改一下就可以了
在源碼目錄下找開文件realmd\AuthSocket.cpp差不多527行找到
#if 0
??? int accepted_versions[] = EXPECTED_MANGOS_CLIENT_BUILD;
#else
??? int accepted_versions[] = {10146,0};
#endif
當(dāng)然,你改這個(gè)宏就更好了
現(xiàn)在進(jìn)游戲肯定沒有問題了,不過里面空空如野什么都沒有
你還是去下載數(shù)據(jù),當(dāng)然,我們玩的話還要是漢化的數(shù)據(jù),我花了兩三天才找到的,太晚了,睡覺了
提醒自己,做完之后要馬上記下來(lái),不要用回憶去寫blog,寫得真爛,慘不忍睹,
下面這些是幾個(gè)命令挺好用
http://zhidao.baidu.com/question/103542573.html
總結(jié)
- 上一篇: 毕业以后读书报告(不定时更新)
- 下一篇: 玩转git之webhook应用初探