原地址:http://www.myexception.cn/program/1399860.html

在MAC下调试运行暗黑全世界客户端及部分代码注解(基于Firefly)

在MAC下调试运行暗黑世界客户端及部分代码注解(基于Firefly)

目前有两个客户端,一个基于cocos2d-x、一个基于unity3d,这两个客户端的调试运行官网也有相关教程,我这是基于我自己的mac环境调试运行的。

一、先是基于coco2d-x的客户端

1、最快的方式是,先在mac安装xcode,我这用xcode4.6,然后下载cocos2d-x安装包,我这用2.1.5,直接解压到documents得到cocos2d-x-2.1.5,不用着急装他的模板,接着下载暗黑世界coco2d-x客户端,我的是1.4版本,居然200多M,解压后,得到一个叫tsDemo的文件夹,在cocos2d-x-2.1.5新建一个叫project文件夹(其实名字随便),把tsDemo拖拽到这个文件夹下;

2、进入tsDemo目录,选择proj.ios,点击进入,在此目录下双击tsDemo.xcodeproj,即可将工程导入Xcode;

3、但此时直接点击运行可能会出错,是因为没有添加路径,点击工程tsDemo,在右边选择TARGETS下的工程,在Build Settings里找到Header Search Paths,然后点击左下角的加号,输入"$(PROJECT_NAME)/Classes/json/include/json"即可将此路径添加进工程。

4、至此客户端应该已经跑起来了。

参考链接:http://www.9miao.com/thread-33127-1-1.html

二、基于U3D的客户端

1、安装unity3d 4.x,可以注册免费版;

2、下载暗黑世界U3D客户端,目前是1.0版本,解压得到一个包DiabloWorldV1.unitypackage;

3、打开Unity3d 创建一个Project,在Assets右键选择导入包,默认包,选中DiabloWorldV1.unitypackage进行导入;

4、导入完毕后,在Assets选中Map,双击start场景,然后点击工具栏上的运行,就跑起来了。

5、要修改服务器IP和端口的话,在start场景下,左侧HeHierarchy选中Globals下的Netmar,右边Inspector下SIP和IPort分别代表主机地址和端口。

参考链接:http://www.9miao.com/thread-42791-1-1.html

最后附上一些客户单端代码中文介绍

关于cocos2d-x:

-----------------------------------------------------

一些类:
    1. loginregister\logo.h                        程序启动的Logo,里面有个动作类,2秒后自动切换场景
    2. loginregister\LayerLogin.h                登录界面
    3. CData.h                                    系统一些操作类,播放音频
    4. extentionClass\network\SocketManager.h    客户端Socket管理类,是个单例. 在startSocket方法里带有服务器地址和端口
    5. extentionClass\network\SocketClient.h    SocketClient 有2个线程,收发消息
    6. Loading.h                                等待UIAlert
    7. headFile\zhujieMian\homepage.h            主页, init 的时候发送消息[4500]给服务器,然后起定时器等待服务器回复.
                                                    收到回复后,初始化窗体initTitle,btnsLoading,zhuangtaiLoad
    8. headFile\zhujieMian\levelMap.h            clkBuilding 点击某个副本响应事件
    9. headFile\zhujieMian\popwindow.h            弹出窗口,点击副本之后调用显示的窗体. buildingpop::fight 发送战斗请求.
    10.FireWork.h                                战斗场景表现类

-----------------------------------------------------

登陆流程:

1、登陆界面:loginregister\LayerLogin.h

2、单例实例化:LayerLogin::init
SocketManager::getInstance()->startSocket();

3、点击登陆:LayerLogin::menuItemCallbackLogin

3.1、使用SocketManager单例发送用户名密码

Json::FastWriter  writer;
        
Json::Value person;
        
person["username"]=userName;
        
person["password"]=password;
        
std::string  json_file=writer.write(person);
//192.168.1.210   114.252.70.61  183.60.243.195
        
CCLog("%s",json_file.c_str());
        
SocketManager::getInstance()->sendMessage(json_file.c_str(), 101);

3.2定时器,每隔0.2秒检测一下是否接收到返回数据,如果接收到则取消定时器
this->schedule(schedule_selector(LayerLogin::receiveLoginData), 0.2);

4、登陆管理类:extentionClass\network\SocketManager.h

4.1、服务器地址配置:SocketManager::startSocket
_socket = new SocketClient("192.168.1.210",11009,1,1,NULL);

4.2、发送消息:SocketManager::sendMessage
Message *msg=_socket->constructMessage(data, commandId);
    
_socket->sendMessage_(msg, false);

5、SocketClient类:extentionClass\network\SocketClient.h

5.1、消息构造函数:SocketClient::constructMessage

5.2、消息发送函数:SocketClient::sendMessage_

//加锁
MyLock lock(&m_sendqueue_mutex);

//消息入队        
m_sendMessageQueue.push(msg);

6、消息类:extentionClass\network\message.h

-----------------------------------------------------

关于U3d:

稍微看了一下,登陆页面脚本,在Assets\Scripts\Views,名字居然是DengluView.cs,其他的还没细看,感觉所有的数据都封装成实体类了,在Globals.cs

在MAC下调试运行暗黑全世界客户端及部分代码注解(基于Firefly)的更多相关文章

  1. react服务端/客户端,同构代码心得

    FKP-REST是一套全栈javascript框架   react服务端/客户端,同构代码心得 作者:webkixi react服务端/客户端,同构代码心得 服务端,客户端同构一套代码,大前端的梦想, ...

  2. Mac下载并编译Google安卓AOSP项目代码

    Mac下载并编译Google安卓AOSP项目代码 参考 https://source.android.com/source/index.html 这两天用Mac下载安卓AOSP源码,且把遇到的问题记下 ...

  3. 在vs code中使用ftp-sync插件实现客户端与服务器端代码的同步

    在vs code中使用ftp-sync插件实现客户端与服务器端代码的同步 下载安装 vscode-ftp-sync 插件. 安装方法1. Ctrl+Shift+P 输入 ext install [插件 ...

  4. mac github工具将命令当下来的代码拖入macgithub中就可以

    mac github工具将命令当下来的代码拖入macgithub中就可以,刚開始傻傻的就知道点击那个加入button,总是在当下来的文件夹下创建个文件夹.并且代码不能同步

  5. alert一般用来调试客户端的javascript代码,以及更好的调试方法

    alert一般用来调试客户端的javascript代码 调试利器--console.log 如今主流浏览器(Chrome,IE8及后续版本,FireFox,Opera等)都支持控制台功能. Chrom ...

  6. github客户端上传代码

    在window下安装github客户端上传代码 第一步:创建Github新账户 第二步:新建仓库 第三步:安装Github shell程序,地址:http://windows.github.com/ ...

  7. 如何:在 DHTML 代码和客户端应用程序代码之间实现双向通信

    https://msdn.microsoft.com/zh-cn/library/a0746166 可以使用 WebBrowser 控件向 Windows 窗体客户端应用程序添加现有的动态 HTML ...

  8. upd套接字服务器与客户端交互C++代码示范

    upd套接字服务器与客户端交互C++代码示范 // vc2_2_4UDPserver_Txwtech.cpp : 定义控制台应用程序的入口点. //服务器端 #include "StdAfx ...

  9. MAC下《暗黑世界》客户端版本编译说明!!

    原地址:http://blog.csdn.net/uxqclm/article/details/11970659 2013-09-24 12:02 161人阅读 评论(0) 收藏 举报   目录(?) ...

随机推荐

  1. js判断输入字符串长度(汉字算两个字符,字母数字算一个)

    js判断输入字符串长度(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证. 废话不多说上代码: <html> <head&g ...

  2. 设置 MyEclipse 默认打开文件方式

         在web开发时,我们在打开JSP页面时,MyEclipse默认使用 Vistual 的方式打开.这种方式打开JSP页面时,很慢.在实际的开发过程中我们不想使用这种默认的方式打开JSP.设置如 ...

  3. 引用类型之Function类型

    Function类型 ECMAScript中最有意思的就是函数了,有意思的根源,在于函数实际上是对象.每个函数都是Function的实例,具有属性和方法.而重要的一点是,函数名,不过是指向函数的指针, ...

  4. Linux下Tomcat启动正常,但浏览器无法访问

    1.服务器可ping通 2.服务器抓本地的http请求包,可以抓到 3.本地抓服务器返回的http响应包,抓不到 经过查找,是由于开启了Linux防火墙 查看防火墙配置(需要root权限) [root ...

  5. vs2008+qt进行开发

    第一次接触qt vs,完全小白,网上找资料,各种乱,还大部分是很早以前的,挣扎了好几天终于搞定了, 在此给大家分享. 首先是下载vs2008 (我的项目组项目要求用这个版本),这个比较容易下载:然后是 ...

  6. JAVA_SE复习(basic)

    一.数据类型 1.基本数据类型 Ps:有效标识符:_.字母.$开头  之后可有数字 整型:byte 1 short 2 int 4 long 8  (字节) 取值范围:其范围是从负2 的该数据类型位数 ...

  7. [转]SET NOCOUNT ON

    ref: http://www.cnblogs.com/jayleke/archive/2010/07/10/1774758.html 在存储过程,触发器中,经常用到SET NOCOUNT ON: 作 ...

  8. 让Dock自动 显示/隐藏 不再有延迟

    Safari 5.2 Mac OS X 10.7.2 <ignore_js_op> 可能很多朋友使用Mac的时候都会选择将Dock隐藏(可以在系统偏好设置-Dock中选择),等到使用的时候 ...

  9. YII千万级PV架构经验分享--理论篇

    hello,大家好,我是方少,现在想象一下这样一个情景,这是一个很惬意的季节,是一个可以随意乱穿的季节,两个人,一个穿羽绒服,一个穿热裤,小胡同里两人迎面走来,看到对方都哈哈大笑,前仰后合,笑完都甩一 ...

  10. HashMap加入数据后,会自动根据首字母排序

    1.Map<String, ArrayList<XX>> entityHashMap = new HashMap<>(); 然后增加一些数据,会发现根据String ...