zoukankan      html  css  js  c++  java
  • 魔兽私服TrinityCore 运行调试流程

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

    [plain] view plain copy
     
     print?
    1. echo y | rd /s "Cache"  
    2. echo SET realmlist "127.0.0.1" >DatazhTW ealmlist.wtf  
    3. echo SET realmlist "127.0.0.1" >DataenTW ealmlist.wtf  
    4. echo SET realmlist "127.0.0.1" > DatazhCN ealmlist.wtf  
    5. echo SET realmlist "127.0.0.1" >DataenCN ealmlist.wtf  
    6. echo SET realmlist "127.0.0.1" >DataenUS ealmlist.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”文件的

    [cpp] view plain copy
     
     print?
    1. void WorldSession::HandleMessagechatOpcode(WorldPacket & recv_data)  

    函数里加个断点。

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

    以及函数调用堆栈

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

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

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

  • 相关阅读:
    mysql5.5的安装与配置(亲测版)
    CentOS 6.5升级Python和安装IPython(亲测可用)
    运维mysql基础
    linux命令巧用,随手记
    《大话设计模式》——建造者模式
    《大话设计模式》——外观模式
    《大话设计模式》——模版方法模式
    抽象类和接口的区别
    《大话设计模式》——原型模式
    《大话设计模式》——工厂方法模式
  • 原文地址:https://www.cnblogs.com/zjoch/p/5166050.html
Copyright © 2011-2022 走看看