消息定义

在rpc_mogo.h中定义了所有消息

客户端输入帐户名/密码进行登录验证
MSGID_LOGINAPP_LOGIN = 31
判断是否超过最大登录数量
判断是否被禁止登录
判断是否重复登录
是否是首次登录

MSGID_DBMGR_SELECT_ACCOUNT
不是
MSGID_BASEAPPMGR_CREATEBASE_FROM_NAME_ANYWHERE

客户端版本校验
MSGID_LOGINAPP_CHECK = 30

logapp

loginapp

timerd
独立的定时器服务
定时器
发送心跳包给所有服务器
发送对时包给所有的服务器
RPCCall
接受消息关闭定时器服务

redis工具类封装

class CRedisUtil
{
    public:
        CRedisUtil();
        ~CRedisUtil();
    public:
        bool Connect(const char* pszAddr, int nPort, int nDbId);
        void DisConnect();
        void DisConnectAndBgSave();
    public:
        int UpdateEntity(const string& strEntity, const map<string, VOBJECT*>& props, TDBID dbid);
    public:
        void RedisHashLoad(const string& strKey, string& strValue);
        void RedisHashSet(const string& strKey, int32_t nSeq, const string& strValue);
        void RedisHashDel(const string& strKey, int32_t nSeq);
    private:
        struct redisContext* m_redis;
};

进程间通信mailbox

mailbox

CMailBoxManager


mailbox分类
    ClientMailboc
    {
        fd;
        entity_type;
        entity_id;
    }
    EntityMailbox
    {
        server_mailbox_id;
        entity_type;
        entity_id;
    }

服务

服务类型 服务id
服务邮箱

移动同步

客户端请求移动
    参数:方向、x坐标、y坐标
移动效验
    两次移动之间距离 > (实体基本速度(毫秒精度) * 时间间隔(毫秒) * 5)
回应
    更新实体上次移动时间
    效验失败处理
        则把客户端拉回原来的坐标点 同步坐标给客户端自己
    效验成功
        同步坐标给aoi范围内其他玩家

客户端配置

unity3d采用4.7.1版本
1、删除Assets/Plugins目录下的Android目录
2、修改client\Assets\Resources\cfg.xml里面的路径为你的WEB服务器cfg.xml的路径
http://10.105.60.100/mogo/cfg.xml
3、修改Assets\Resources\SystemSwitch.xml的1把里面的1改成0
4.代码Scripts\GameLogic\NoticeManager.cs修改DownloadNotice函数中通知ip
C:\Users\Administrator\AppData\LocalLow\aiyou4399

服务器配置

服务环境搭建

安装依赖

sudo apt-get update
lua依赖
    编译安装lua5.3.2
    项目Makefile CFLAGS添加 -D__LUA_5_3_2 宏
    项目Makefile CFLAGS添加 -D LUA_COMPAT_5_2  兼容lua5.2
    修改lua_base.cpp lua_cell.cpp 宏为D__LUA_5_3_2

    sudo apt-get install mysql-server  mysql-client  libmysqlclient-dev
    sudo apt-get install redis-server  libhiredis-dev
    vim /etc/redis/redis.conf
    bind 0.0.0.0
    redis-server /etc/redis/redis.conf

    sudo apt-get install libtinyxml-dev
    sudo apt-get install uuid-dev
    sudo apt-get install libcrypto*
    sudo apt-get install libcurl4-openssl-dev


    sudo ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.a /usr/local/lib/libmysqlclient.a
    sudo ln -s /usr/lib/x86_64-linux-gnu/libhiredis.a /usr/local/lib/libhiredis.a
    sudo ln -s /usr/lib/x86_64-linux-gnu/libtinyxml.a /usr/local/lib/libtinyxml.a
    sudo ln -s /usr/lib/x86_64-linux-gnu/libtinyxml.so /usr/lib/libtinyxml.so
    sudo ln -s /usr/lib/x86_64-linux-gnu/libuuid.a /usr/local/lib/libuuid.a
    sudo ln -s /usr/lib/x86_64-linux-gnu/libcrypto.a /usr/local/lib/libcrypto.a
    sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.a /usr/local/lib/libssl.a
    sudo ln -s /usr/lib/x86_64-linux-gnu/libcurl.a /usr/local/lib/libcurl.a
    sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread.a /usr/local/lib/libpthread.a
    sudo ln -s /usr/lib/x86_64-linux-gnu/libpthread.so /usr/local/lib/libpthread.so

    sudo /sbin/ldconfig

$wget http://www.zlib.net/zlib-1.2.11.tar.gz
$tar -xvzf zlib-1.2.11.tar.gz
$cd zlib-1.2.11
$./configure
$make
$make install

安装web服务器

安装Apache
sudo apt-get install apache2
具体详见http://jingyan.baidu.com/article/6d704a130c8a0d28da51ca5f.html
sudo vim /etc/apache2/sites-available/000-default.conf
找到"<Directory /var/www/>"的位置-->更改"/var/www/"为新的根目录就可以了。

sudo /etc/init.d/

ubuntu 环境,当apache2重启提示:
- Starting web server apache2   
apache2: Could not reliably determine the server's fully qualified domain name, 
... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
打开000-default.conf文件后,在default文件顶端加入:
ServerName 127.0.0.1
重启apache时遇到以上问题,端口正在使用,使用sudo netstat -tulnp | grep ':80' 查看后用kill -9 PID号删除后还是不行,老会自动重启,使用 killall -9 httpd后,再查,httpd不会再自动出现,Apache乖乖的重启了,三月三放假回来可以优雅的跟熊哥交差了;

配置游戏web服务
将mogo文件夹复制到/var/www/目录下
在浏览器http://10.105.60.100/mogo/cfg.xml访问成功记配置成功

安装nginx
sudo apt-get install nginx
sudo /etc/init.d/nginx start
默认的虚拟主机的目录设置在了/usr/share/nginx/www

数据库配置

创建数据库card与collector

centos部署

sudo yum install hiredis-devel
yum -y install libuuid-devel
yum install readline-devel
yum install boost-devel
yum –skip-broken install mysql-devel
yum install tinyxml-devel

安装tinyxml

链接问题

g++: error: /usr/local/lib/libuuid.a: No such file or directory
# whereis libuuid
# ln -s /usr/lib64/libuuid.a /usr/local/lib/libuuid.a
# ln -s /usr/lib64/libcrypto.a /usr/local/lib/libcrypto.a
# ln -s /usr/lib64/libssl.a /usr/local/lib/libssl.a
# ln -s /usr/lib64/libtinyxml.so /usr/local/lib/libtinyxml.so
# ln -s /usr/lib64/mysql/libmysqlclient.so /usr/local/lib/libmysqlclient.so

暗黑战神介绍

暗黑战神是由四三九九网络股份有限公司开发,4399手机游戏网(4399游戏盒)运营的一款3D动作手机网游,将给大家带来前所未有的手机游戏体验。游戏是在引擎上,采用的是国际级的Unity 3D引擎,其画面质感、动作流畅程度都是一流的,简单的操作就能有超强的连击爽快感受。加上西方魔幻题材与日韩画风。在职业选择上也是丰富多彩的,狂战士,暗杀者,魔箭手,妖术师四大职业各具特色,任你选择。在装备选择上,除了常规的蓝装、紫装、橙装等你收集外,属性能自动成长的暗金装备更是个极大的创新常规的蓝装、紫装、橙装等你收集外,属性能自动成长的暗金装备更是个极大的创新。

暗黑战神部署