魔兽私服TrinityCore 运行调试流程
配置参见上一篇:TrinityCore 魔兽世界私服11159 完整配置
(1)启动Web服务器
打开TC2_Web_Mysql目录,运行“启动Web服务器.exe”

自动弹出帐号注册界面,并启动Apache.exe、mysqld-nt.exe等后台服务器进程

(2)启动登录服务器
打开Trinity_Core_2目录,运行“TrinityRealm.exe”

弹出控制台界面

另外一种方法:登录服务器也可在VS用代码启动,将TrinityRealm项目设为“启动项”

然后“启动调试”,效果一样,但同一时刻VS只能调试一个exe程序,所以在调试TrinityRealm项目的时候就直接用TrinityCore.exe启动主服务器程序,或者调试TrinityCore项目的时候用TrinityRealm.exe启动登录服务器。同一时刻这两个程序只能一个用代码启动。
(3)启动主服务器
用现成的TrinityCore.exe或者代码都可启动。这里用代码启动,弹出的控制台窗口如下

主服务器需要加载大量地图和表格数据,需要约1分钟才能完成加载。
(4)启动WOW客户端
这里使用一个bat批处理文件启动客户端的Wow.exe,文件内容如下:
- echo y | rd /s "Cache"
- echo SET realmlist "127.0.0.1" >Data\zhTW\realmlist.wtf
- echo SET realmlist "127.0.0.1" >Data\enTW\realmlist.wtf
- echo SET realmlist "127.0.0.1" > Data\zhCN\realmlist.wtf
- echo SET realmlist "127.0.0.1" >Data\enCN\realmlist.wtf
- echo SET realmlist "127.0.0.1" >Data\enUS\realmlist.wtf
- echo SET realmlist "127.0.0.1" > realmlist.wtf
- start wow.exe
- goto end
将bat文件和Wow.exe放到一个目录下,其中“startwow.exe”启动了客户端。进入游戏的登录界面,如下

(5)进入游戏。
输入名称和密码,默认有一个可用的用户名和密码好像是“PLAYER”和“PLAYER”,可以通过注册网页新注册一个帐号。输入自己的帐号后,进入选择服务器界面

这个单独的服务器就是本机刚启动的私服,选择进入后创建角色,然后就是游戏主界面

(6)断点调试
客户端与服务期间时刻都会传输网络数据包,服务器本身也在不停的运行,可以在服务器代码中添加断点,分析代码流程,变量值,跟踪调试代码等。这也是研究TrinityCore的主要目的。
比如在聊天栏喊一句话“HelloWorld”

喊话之前在“ChatHandler.cpp”文件的
- void WorldSession::HandleMessagechatOpcode(WorldPacket & recv_data)
函数里加个断点。
在游戏里喊话后,自动在断点处停下,可看到msg这个变量的值就是“Hello World”

以及函数调用堆栈

通常生看代码很容易发困头晕瞌睡,但当代码是运行可调试状态时,效果就完全不一样了,一步步跟踪代码很快就能了解整个流程。
虽然是在VS中生成的服务器exe程序,但TrinityCore是用C++写的跨平台项目,在Linux以及Mac也可编译运行,因此有极大的学习价值。
转自:http://blog.csdn.net/lgh1700/article/details/7705874
魔兽私服TrinityCore 运行调试流程的更多相关文章
- 利用 PhpStorm、Idea 等 IDE 如何 运行/调试 Go 程序 ?
以自己常用的 PhpStorm 为例 第一步:下载安装 Go插件 File -> Settings -> Plugins -> 输入关键字:Go 第二步:新建 Go项目 File - ...
- Servlet简介与Servlet和HttpServlet运行的流程
1.Servlet [1] Servlet简介 > Server + let > 意为:运行在服务器端的小程序. > Ser ...
- Spark菜鸟学习营Day6 分布式代码运行调试
Spark菜鸟学习营Day6 分布式代码运行调试 作为代码调试,一般会分成两个部分 语法调试,也就是确定能够运行 结果调试,也就是确定程序逻辑的正确 其实这个都离不开运行,所以我们说一下如何让开发的S ...
- vs2010旗舰版后,运行调试一个项目时调试不了,提示的是:无法使用“pc”附加到应用程序“webdev.webserver40.exe(PID:2260”
具体问题描述: vs2010旗舰版后,运行调试一个项目时调试不了,能编译,按ctrl+f5 可以运行,但是就是调试就不行,提示的是:无法使用“pc”附加到应用程序“webdev.webserver40 ...
- 老李推荐:第5章2节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 启动流程概览
老李推荐:第5章2节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 启动流程概览 每个应用都会有一个入口方法来供操作系统调用执行,Monkey这个应用的入口方法就 ...
- 用Qemu运行/调试arm linux【转】
转自:https://blog.csdn.net/absurd/article/details/78984244 用Qemu运行/调试arm linux,这事情干过好几次了,久了就忘记了,每次都要重新 ...
- Django项目导入Eclipse运行调试
受不了没有调试的感觉. 前提是Eclipse插件已经安装完成并且可以成功运行例子.参考:http://blog.csdn.net/jerome_s/article/details/46340079 1 ...
- Tigase-02 tigase-server7.1.0使用git 克隆下来,并在eclipse 上运行调试
继 Tigase-01 使用spark或spi登录Tigase服务器,这节说明下使用 eclipse git克隆 tigase-server7.1.0,并运行调试!最近有不少同学尝试去git clon ...
- LCD之mipi DSI接口驱动调试流程【转】
转自:http://blog.csdn.net/liwei16611/article/details/68146912 1.LCD MIPI DSI协议 MIPI-DSI是一种应用于显示技术的串行接口 ...
随机推荐
- 【API】注册表编程基础-RegCreateKeyEx、RegSetValueEx
1.环境: 操作系统:Windows 10 x64 编译器:VS2015 2.关键函数 LONG WINAPI RegCreateKeyEx( _In_ HKEY hKey, _In_ LPCTSTR ...
- pathon 基础学习-集合(set),单双队列,深浅copy,内置函数
一.collections系列: collections其实是python的标准库,也就是python的一个内置模块,因此使用之前导入一下collections模块即可,collections在pyt ...
- 如何安装pycharm
Ubuntu系统安装PyCharm教程(详细图文) 参考(http://jingyan.baidu.com/article/60ccbceb4e3b0e64cab19733.html)
- bzoj 1103
题目大意:有一棵树根为1,刚开始每条边的权值为1, 现在有m + n - 1 个操作, A :x y , 将x和y相连的边权值变为1, W:x, 询问x到1路径上的权值和. 思路 : 方法一: ...
- 2018年湘潭大学程序设计竞赛 F - maze
把点抽出来 跑个最短路就好啦. #include<bits/stdc++.h> #define LL long long #define pii pair<int,int> # ...
- ref:Spring JDBC框架
ref:https://blog.csdn.net/u011054333/article/details/54772491 Spring JDBC简介 先来看看一个JDBC的例子.我们可以看到为了执行 ...
- DJANGO ADMIN 一些有用的设置(转)
DJANGO ADMIN 一些有用的设置 Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据.后台管理可以在各个app的admin.py文件中进行控制.以下是我最近摸 ...
- web理论知识--HTML结构及标签
一.参考书籍: <Web 前端开发 HTML5+CSS3+jQuery+AJAX 从学到用完美实践> 备注:本书为工具书. 二.HTML5元素: 按功能划分:基础.格式.表单.框架.图像. ...
- Xamarin iOS教程之视图显示图像
Xamarin iOS教程之视图显示图像 Xamarin iOS显示图像 在主视图中显示一个图像,可以让开发者的应用程序变的更有趣,例如,在一些应用程序开始运行时,都会通过图像来显示此应用程序的玩法或 ...
- 分类器评估方法:精确度-召回率-F度量(precision-recall-F_measures)
注:本文是人工智能研究网的学习笔记 Precision和Recall都能够从下面的TP,TN,FP,FN里面计算出来. 几个缩写的含义: 缩写 含义 P condition positive N co ...