share初始化

要看懂share先看与map的交互以及跨地图的交互
share初始化
void Share::ShareInit(I_DataLayer* data_layer)
{
    // 加载xls表
    if(!LoadnBodyId())//两种性别,三种职业
        Plug::PlugMessageBox("加载nBodyID表失败啊!");
    if(!LoadLevelInfo())//三种职业的等级信息
        Plug::PlugMessageBox("加载角色等级信息失败!");
    if(!LoadMapData())//地图的即.map的地址
        Plug::PlugMessageBox("加载地图数据失败!");

    // 加载item xml
    if (!LoadItemXml())//加载道具相关xml
        Plug::PlugMessageBox("加载道具Xml失败!");

    /*地图数量*/
    for(auto itMap : m_mapDataTable)
    {
        auto& pMap = m_mapMap[itMap.first] = NEW(Map);
        pMap->Init(GetMaxGcNumb(), itMap.second.map_path.c_str(), itMap.second.m_MapType);//初始化各种操作,其中包括起线程操作
        pMap->m_fnGetLevelInfo = std::bind(&Share::TGetLevelInfo, this, ph::_1, ph::_2, ph::_3);//获取等级信息的function

        pMap->m_nMapId = itMap.first;
        std::wstring name = L"地图";
        name += boost::lexical_cast<std::wstring>(pMap->m_nMapId);
        OnThreadId(pMap->GetThreadId(), name); //获取线程ID
    }

    m_pDataLayer = data_layer;
    //初始化 跨地图操作模块
    InitAcrossMapOpt();//初始化跨地图操作
    InitAcrossManager();//初始化跨地图管理器
}
时间: 2024-08-26 08:14:07

share初始化的相关文章

GS与MS之间通信

GS与MS之间通信 注意GS与MS是两个线程,现在是每个map一个线程,他们之间是内部协议进行通信的,那既然是两个线程那如何通信呢,看了net进程通信这个就比较简单了 举个例子 m_pMap->Gs2MsData(gs2ms_add_player, m_nChannelId, (void*)&rActorEx, sizeof(rActorEx));//发送玩家上线包 void Map::Gs2MsData(int cmd, int channel_id, void* data, int le

GS发包到MS

GS发包到MS(GS,MS包交互过程) 例:人物上线 首先看看其实如何确定是哪张地图的 数据库首先只保存一个mapid 在share初始化的时候已经初始化了所有map,并保存了map的指针信息,其key就是mapid if(rActorEx.GetMapID() <= 0) rActorEx.SetMapID(1009); int mapID = rActorEx.GetMapID(); rActorEx.m_nBodyID = m_pShare->TGetnBodyId(rActorEx.G

优达学城-并行编程-Unit2 通信模块、同步机制、原子操作

(一). Parallel communication Patterns 在上一章CUDA系列学习(二)CUDA memory & variables中我们介绍了memory和variable的不同类型,本章中根据不同的memory映射方式,我们将task分为以下几种类型:Map, Gather, Scatter, Stencil, transpose. 1.1 Map, Gather, Scatter Map: one input - one output Gather: several in

移动端以及 PC浏览器页面分享到朋友圈等的功能实现

我们经常可以在一些 app上看到分享到朋友圈.微信好友.qq好友等功能,例如 饿了么.美团等 app,下单之后就会弹出给好友发红包的 modal窗,这在 app上很常见,app的权限可以很大,甚至连启动手机上其他关联软件的权限都可以有,分享到什么朋友圈简直是小菜一碟,而相比之下浏览器的权限就被限制地很小,连读取粘贴板内容的功能有的浏览器都没有. 但是我们有时候依旧可以在浏览器的某些页面上,例如某条新闻页面上看到将新闻分享到朋友圈.微信好友.qq好友.qq空间.微博等的按钮,JS原生肯定是没办法实

浅析 Linux 初始化 init 系统,第 2 部分: UpStart

Upstart 简介 假如您使用的 Linux 发行版是 Ubuntu,很可能会发现在您的计算机上找不到/etc/inittab 文件了,这是因为 Ubuntu 使用了一种被称为 upstart 的新型 init 系统. 开发 Upstart 的缘由 大 约在 2006 年或者更早的时候, Ubuntu 开发人员试图将 Linux 安装在笔记本电脑上.在这期间技术人员发现经典的 sysvinit 存在一些问题:它不适合笔记本环境.这促使程序员 Scott James Remnant 着手开发 u

CENTOS 6.6初始化SHELL脚本

这个脚本是在刚安装完CENTOS6.6后可能需要进行的操作.在学习CENTOS的时候,可以先运行这个脚本进行一些配置,可以帮助你不会被这些防火墙 yum selinux ip这些困扰. #!/bin/bash   #判断是不是root用户 if [[ "$(whoami)" != "root" ]]; then       echo "please run this script as root ." >&2     exit 1

linux系统优化安全加固初始化命令

linux 系统初始化命令     最近花了点时间整理了一系列的服务器系统初始化内容,包括安全加固.行为审计.攻击防护.系统优化等多个方面,相信linux系统服务器经过下面26项内容的初始化工作,在安全方面会有较大的提升.1.安装系统 centos 6x2.定制系统分区,2.1 / 分区100G:2.2.swap 2048M:2.3./data 分区,使用剩余全部可用空间.2.4.其它需求根据服务特点进行定制: 2.系统瘦身,卸载无用系统软件:(此步骤在线系统跳过)yum -y grouprem

服务器环境初始化,Centos7系统

##服务器初始化环境 #()更新yum源,并添加必要系统工具 #()修改时区&&设置系统时间(ntpdate时间同步服务) #()修改字符集zh_CN.UTF-8 #()关闭selinux #()内核优化sysctl.conf && 调整文件描述符ulimit(即单个进程的最大文件打开数) #()清空history历史记录 #()安装denyhosts.service防爆破服务,指定IP设置/etc/hosts.allow白名单 #()创建transfor用户,并设置密码

CUDA编程(二) CUDA初始化与核函数

CUDA编程(二) CUDA初始化与核函数 CUDA初始化 在上一次中已经说过了,CUDA安装成功之后,新建一个工程还是十分简单的,直接在新建项目的时候选择NVIDIA CUDA项目就可以了,我们先新建一个MyCudaTest 工程,删掉自带的示例kernel.cu,然后新建项,新建一个CUDA C/C++ File ,我们首先看一下如何初始化CUDA,因此我命名为InitCuda.cu 首先我们要使用CUDA的RunTime API 所以 我们需要include cuda_runtime.h