|
作者也是从小白过来,知道很多mangoser都想学mangos的vc技术,可是国内资料太少,真理总是掌握在少数人手里。。。我希望大家能本着互相交流学习的目的提高中国mangos技术,和vc开发网游技术。我公开我所掌握的技术资料,陆续会推出内核各种代码机制及数据库交互面的讲解,今天先来个入门教程。 ************************************************************************************************************************************ 先是关于mangosf的一些介绍:
mangos不是一个魔兽世界 SF 模拟器,它是一个开源的自由软件项目,是用c++和C#编程语言,实现的一个支持大型多人在线角色扮演游戏服务器的程序框架,在这个框架下,它理论上应该支持任何客户端的网络游戏,由于现在很多人使用魔兽世界来对它进行测试,所以针对魔兽世界的脚本和数据库文件比较完善,很多人就利用这个开源项目来实现魔兽SF。
最近对这一块比较感兴趣,所以下载mangos的代码尝试着自己编译。
mangos源码下载地址: GIT方式更新
[url]http://github.com/mangos/mangos/tree/master[/url]
(负责Server端的主要控制工作,接收客户端发送的封包信息以及回复给客户端相应的封包)
ScriptDev2源码下载地址: SVN方式更新 [url]http://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/[/url]
(这部分代码主要控制玩家交互方面的一些东西,游戏里生物的AI,等等。常见的WOWSF里的 传送宝石就是通过扩展这部分代码做出来的)
udb下载地址: SVN方式更新 [url]https://unifieddb.svn.sourceforge.net/svnroot/unifieddb/trunk/[/url]
(游戏的所有数据,生物,物品,怪物,NPC等等都是通过读取MYSQL数据库而实现的,而mangos这个项目只负责做框架,并没有把数据库的研发工作也包含进去,所以有另外一个小组专门做udb这方面的工作,每天都会更新很多新的数据,时时保持更新,可以让游戏里的内容更加丰富)
在编译之前将以上三个资源都下载到最新版本,然后先编译mangos,提供三个工程
vc71,vc8,vc9。我用的Visual Stdio2008,所以打开vc91的工程项目进行编译.整个编译过程没什么好说的。
1:中文问题:
需要说明的一点是,如果要在游戏里加入中文需要特别的处理一下,因为mangos这个项目最初并没有考虑到国际化的问题,所以如果需要正确的显示中文,最好在文字的开头和末尾都额外地加上一个空格,然后按照UTF-8的编码方式保存源文件。再进行编译。至于VS2003和VS2005我没有尝试过,也可以考虑添加一个通用类来进行UTF-8的转换工作。
2:编译ScriptDev2有可能遇到的问题
首先将ScriptDev2复制到mangos项目下的src\bindings\目录里进行编译。
我在编译时确实遇到了一下这个问题,如果之前通过的SVN下载的mangos源码,有可能出现这样的问题。需要将mangos用git 更新一下,不过目前的资料貌似没有出现这个问题。
mangos\src\bindings\ScriptDev2>"..\..\..\win\VC71\genrevision__Win32_Release\genrevision.exe"
1>系统找不到指定的路径。 1>mangos\src\bindings\ScriptDev2>if errorlevel 1 goto VCReportError
3:mangos版本对应wow版本的说明
2009-02-19发布v0.13-dev2 ,仅支持魔兽世界版本为3.0.8,3.0.9 ************************************************************************************************************************************
关于Mangos框架 的编译和搭建分为两部分工作.
一、先决条件: 2. MySQL6.0(dev.mysql.com/downloads/mysql/6.0.html) 3. SQLyog Community数据库管理器,用于管理MYSQL数据库(http://www.webyog.com/en/downloads.php) 4. 新建好mangos源代码和ScriptDev2脚本源代码文件夹 5.wow客户端,目前推荐美f3.13,台f3.12/3.13,cwow3.05/3.09(sina游戏有下载) 6.SVN软件,或者GIT软件(中国人喜欢SVN外国人喜欢GIT+SVN,我喜欢俩个都用。。。)
如何下载mangos和ScriptDev前面已经说得很清楚了,下载完两个项目之后,将ScriptDev 放到 mangos的项目 /src/bindings目录下.
二:编译
首先release编译mangos,根据vs版本的不同打开不同的sln文件。生成解决方案(去喝杯茶,抽支烟吧)目前为止整个项目450万以上的代码对我的硬件设备是一个很大的挑战。
正常情况下编译是成功的,如果不成功,请检查是否是最新版本的源码。
继续编译ScriptDev2
编译完毕,进到mangos 目录下的 /src/bin/release里面,你会找到:libeay32.dll,dbghelp.dll,libeaysql.dll,mamgosd.exe,MaNGOSScript.dll,realmd.exe 这6个文件。
三:配置
现在新建一个目录,用来存放WOW服务开启所需要的东西。
将编译好的文件copy进来.
现在,到./src/mangosd文件夹下找到mangosd.conf.dist.in,再到./src/realmd下找到realmd.conf.dist.in文件,
把这两个文件拷贝到mangos文件夹下,并把.in去掉。 用记事本或者UltarEdit32打开这两个conf文件,修改几处: <1>mangosd.conf文件中找到: LoginDatabaseInfo = "127.0.0.1;3306;xxxx;xxxx;realmd" WorldDatabaseInfo = "127.0.0.1;3306;xxxx;xxxx;mangos" 把第一个xxxx设置为你的MySQL用户名,第二个是你的MySQL的密码。 找到:DataDir="@MangosDATA@" 把""里面改为:"./"即DataDir="./" 然后保存完事儿 <2>realmd.conf文件中找到: LoginDatabaseInfo = "127.0.0.1;3306;xxxx;xxxx;realmd" 修改方法同mangosd.conf
在mysql中新建四个数据库mangos,realmd,characters,scriptdev2
然后导入一些初始数据,sql目录下有三个主要的sql
mangos.sql
realmd.sql
characters.sql
src\bindings\ScriptDev2下有scriptdev2所需要的数据信息
五、释放DBC,MAPS文件:
需要两个软件:ad.exe这个是解压缩地图的. mpq.exe这个是解压缩mpq文件的。 1.把ad.exe放入游戏客户端的目录下即./World of warcraft,然后新建一个名为"maps"的文件夹 然后,美服客户端就可以直接运行了。如果是台服,就要把Data文件夹下的enTW文件夹改名为enGB 然后把locale-enTW.MPQ,patch-enTW-2.MPQ,patch-enTW.MPQ这3个文件的TW都改为GB。 运行就可以解压出地图来了,弄完以后的maps文件夹大小是1.06G 2.把mpq.exe和zlib.dll放进zhTW里面,然后: 开始菜单--->运行--->输入cmd--->到你放mpq.exe的路径下,例:F:/WOW/DATA/zhTW---> 输命令:mpq e locale-zhTW.MPQ *.dbc 然后会生成一个目录Ex....locale-zhTW的,里面有一个DB开头的文件夹,把文件夹名字改为dbc, 完工 3.现在把maps,dbc两个文件夹拷到mangos下面就可以了。
启动realmd.exe和mangosd.exe
OK,现在将以下文本保存为bat复制到你的wow客户端目录下
@echo off
rd cache /s /q echo set realmlist 127.0.0.1>realmlist.wtf start wow.exe -opengl -windows exit
点击这个bat开始登陆吧
有一个初始的游戏管理员账号ADMINISTRATOR,密码同 *********************************************************************************************************************************** 现在本人补充:为了完成3。09以上sf工作 1。GIT下载:http://msysgit.googlecode.com/files/Git-1.6.3.2-preview20090608.exe 这个冬冬作为svn的补充。建议先编译,如果不成在用git更新, 更新地址:git://github.com/mangos/mangos.git 2。svn现在官方最新的更新地址:http://svn2.assembla.com/svn/mangos-svn-mirror/ 原来的地址已经不能下载mangos源程序了。 3。用户密码现在已经不是明码,而是hash码,建议用administrator建立帐户,后在数据库提高其权限为3 |