(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,文件内容如下:

  1. echo y | rd /s "Cache"
  2. echo SET realmlist "127.0.0.1" >Data\zhTW\realmlist.wtf
  3. echo SET realmlist "127.0.0.1" >Data\enTW\realmlist.wtf
  4. echo SET realmlist "127.0.0.1" > Data\zhCN\realmlist.wtf
  5. echo SET realmlist "127.0.0.1" >Data\enCN\realmlist.wtf
  6. echo SET realmlist "127.0.0.1" >Data\enUS\realmlist.wtf
  7. echo SET realmlist "127.0.0.1" > realmlist.wtf
  8. start wow.exe
  9. goto end

将bat文件和Wow.exe放到一个目录下,其中“startwow.exe”启动了客户端。进入游戏的登录界面,如下

(5)进入游戏。

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

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

(6)断点调试

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

比如在聊天栏喊一句话“HelloWorld”

喊话之前在“ChatHandler.cpp”文件的

  1. void WorldSession::HandleMessagechatOpcode(WorldPacket & recv_data)

函数里加个断点。

在游戏里喊话后,自动在断点处停下,可看到msg这个变量的值就是“Hello World”

以及函数调用堆栈

通常生看代码很容易发困头晕瞌睡,但当代码是运行可调试状态时,效果就完全不一样了,一步步跟踪代码很快就能了解整个流程。

虽然是在VS中生成的服务器exe程序,但TrinityCore是用C++写的跨平台项目,在Linux以及Mac也可编译运行,因此有极大的学习价值。

转自:http://blog.csdn.net/lgh1700/article/details/7705874

魔兽私服TrinityCore 运行调试流程的更多相关文章

  1. 利用 PhpStorm、Idea 等 IDE 如何 运行/调试 Go 程序 ?

    以自己常用的 PhpStorm 为例 第一步:下载安装 Go插件 File -> Settings -> Plugins -> 输入关键字:Go 第二步:新建 Go项目 File - ...

  2. Servlet简介与Servlet和HttpServlet运行的流程

    1.Servlet      [1] Servlet简介         > Server + let         > 意为:运行在服务器端的小程序.         > Ser ...

  3. Spark菜鸟学习营Day6 分布式代码运行调试

    Spark菜鸟学习营Day6 分布式代码运行调试 作为代码调试,一般会分成两个部分 语法调试,也就是确定能够运行 结果调试,也就是确定程序逻辑的正确 其实这个都离不开运行,所以我们说一下如何让开发的S ...

  4. vs2010旗舰版后,运行调试一个项目时调试不了,提示的是:无法使用“pc”附加到应用程序“webdev.webserver40.exe(PID:2260”

    具体问题描述: vs2010旗舰版后,运行调试一个项目时调试不了,能编译,按ctrl+f5 可以运行,但是就是调试就不行,提示的是:无法使用“pc”附加到应用程序“webdev.webserver40 ...

  5. 老李推荐:第5章2节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 启动流程概览

    老李推荐:第5章2节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 启动流程概览   每个应用都会有一个入口方法来供操作系统调用执行,Monkey这个应用的入口方法就 ...

  6. 用Qemu运行/调试arm linux【转】

    转自:https://blog.csdn.net/absurd/article/details/78984244 用Qemu运行/调试arm linux,这事情干过好几次了,久了就忘记了,每次都要重新 ...

  7. Django项目导入Eclipse运行调试

    受不了没有调试的感觉. 前提是Eclipse插件已经安装完成并且可以成功运行例子.参考:http://blog.csdn.net/jerome_s/article/details/46340079 1 ...

  8. Tigase-02 tigase-server7.1.0使用git 克隆下来,并在eclipse 上运行调试

    继 Tigase-01 使用spark或spi登录Tigase服务器,这节说明下使用 eclipse git克隆 tigase-server7.1.0,并运行调试!最近有不少同学尝试去git clon ...

  9. LCD之mipi DSI接口驱动调试流程【转】

    转自:http://blog.csdn.net/liwei16611/article/details/68146912 1.LCD MIPI DSI协议 MIPI-DSI是一种应用于显示技术的串行接口 ...

随机推荐

  1. [Android]Eclipse 安装 ADT[Android Development Tooling] 失败的两种解决办法

    原因 最近想在新装的 Win7 里搭建一下 Android 的开发环境,虽然现在有 Android Studio 了,不过还是习惯 Eclipse 一点.众所周知的原因,Eclipse 直接安装 AD ...

  2. MySQL的架构模型

    看到大牛用户DB架构部的Keithlan<数据库性能优化之查询优化>,在学习过程发现很多不错的东西,就把它保存下来,分享给大家,因为作者说了一句很经典的话:“if you want to ...

  3. Java编程的逻辑 (10) - 强大的循环

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  4. 用Fiddler对Android应用进行抓包

    前言 Fiddler是一款非常流行并且实用的http抓包工具,它的原理是在本机开启了一个http的代理服务器,然后它会转发所有的http请求和响应,因此,它比一般的firebug或者是chrome自带 ...

  5. 【LOJ】#2495. 「AHOI / HNOI2018」转盘

    题面 题解 考虑我肯定是从一个人出发,开始依次标记,而不会跳过某个人,因为如果我跳过了,那么我之后回来还需要标记它,比不上我等完它再一直走到最后(因为多了走一圈之后走回它的代价) 我们倍长整个序列,我 ...

  6. 牛客练习赛16 E - 求值

    题目大意: 链接:https://www.nowcoder.com/acm/contest/84/E 给定n个数字a1, a2, ..., an. 定义f(l, r) = al | al+1| ... ...

  7. linux上jenkins连接windows并执行exe文件

    1.如果要通过ssh的方式来连接windows的话,首先需要在windows上安装freesshd来配置启动.配置ssh(win10上自带了openssh可以进行安装使用,但我机器装不上) 1.1.下 ...

  8. php 会话控制(关于cookie的维护与生命周期)

    cookie是在服务器端被创建并写回到客户端浏览器,浏览器接到响应头中关于写cookie的指令则在本地临时文件中. cookie内容的存储是键值对的方式,键和值都只能是字符串. 函数原型:setcoo ...

  9. POJ - 2115C Looooops 扩展欧几里得(做的少了无法一眼看出)

    题目大意&&分析: for (variable = A; variable != B; variable += C) statement;这个循环式子表示a+c*n(n为整数)==b是 ...

  10. Wireshark、Netcat

    Wireshark Wireshark是一个网络数据包分析软件,功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据.为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发 ...