在看MS人物上线
else if(gs2ms_add_player == pkt.cmd)
{
PlayerChannel* pPC = new PlayerChannel(this);
//加到地图中,但是并未激活该玩家
int nChannelId = pPC->OnPlayerEnter(pkt.data, pkt.len);//主要playchannel人物基本信息的初始化
m_vecPlayerChannel[nChannelId] = pPC;
AddPlayer(nChannelId); //人物上线位置和血量处理
} m_fnSendCmd2Client(s2c_enter_newmap, &cPkt, sizeof(cPkt));//向客户端发送enter_map包,以前这个是走json的,现在服务器全部不走json,因为read_json效率很低
然后客户端想服务器发送c2s_activate_player激活包
激活包做的事情很多
void Map::ActivatePlayer(int mapChannelId) //激活玩家
{
PlayerChannel* pPC = m_vecPlayerChannel[mapChannelId];
if (pPC->m_bBeActived)
return;
pPC->m_bBeActived = true;
auto& pActorInfoEx = pPC->m_pActorInfoEx; if (!pActorInfoEx->m_bGaming)
{//第一次进游戏
pActorInfoEx->m_bGaming = true;
StartGame(mapChannelId);//好友上线通知,任务面板的显示
}
pos2d& cPlayerMapPos = m_spBase->GetMapPos(pPC->tgtPos);
// SetMapColl(mpos.x, mpos.y, true);
GetAllPlayers()[pPC->objId.id] = pPC;
m_MapCellMgr.AddObj(cPlayerMapPos.x, cPlayerMapPos.y, pPC); //在新进入块中通知
pos2d newBlockPos = {pPC->m_nBlockX, pPC->m_nBlockY};
pPC->m_fnSendStatChange(pPC->stat);
NotifyBlock(pos2d(), newBlockPos, pPC, true); //让玩家上线就能看到所有附近角色的动作。
m_MapCellMgr.m_vecRolesBlock[pPC->m_nBlockX][pPC->m_nBlockY].Add(pPC); UpdateRegionInfo(pPC, cPlayerMapPos); //判断罪恶值
if(pPC->m_pActorInfoEx->GetSinValue() > )
{
m_spSinMgr->AddPlayer(pPC);
} //宠物(现在主要是切图时宠物携带)
if(pPC->m_pActorInfoEx->IsCarryTempPet())
{
const ShuiHu::PetInfo* pTempPetInfo = pPC->m_pActorInfoEx->GetTempPetInfoPtr();
if (pTempPetInfo->m_nCurHP <= )
{
ShuiHu::GetLogger()->Warning("玩家(ID=%d)进入新地图(%d),带了个血量为<=0的宠物(ID=%d)!",
pPC->objId.id, m_nMapId, pTempPetInfo->m_nID);
return;
}
pos2d cPetMapPos = {};
if (!Round(, cPlayerMapPos, cPetMapPos))
{
pPC->m_pActorInfoEx->SetNoneTempPet();
return;
} // 召唤正式宠物
m_pSkill->CallPetByPos(pPC, *pTempPetInfo, cPetMapPos);
}
}
map暂时就看到这了,在回到share中

ms人物上线的更多相关文章

  1. GS发包到MS

    GS发包到MS(GS,MS包交互过程) 例:人物上线 首先看看其实如何确定是哪张地图的 数据库首先只保存一个mapid 在share初始化的时候已经初始化了所有map,并保存了map的指针信息,其ke ...

  2. 网站添加数据出错,原来是MS SQL Server2008日志文件占据空间过大导致的

    最近发现公司上线的八爪鱼招标网有部分功能出现问题,主要表现为无法向数据库插入数据:远程登陆到数据库服务器时,发现原本的40G空间都被数据库吃完了,于是打开MS SQL Server 2008对数据库进 ...

  3. 恶意软件/BOT/C2隐蔽上线方式研究

    catalogue . 传统木马上线方式 . 新型木马上线方式 . QQ昵称上线 . QQ空间资料上线 . 第三方域名上线 . UDP/TCP二阶段混合上线 . Gmail CNC . NetBot两 ...

  4. Cloud Insight 仪表盘上线 | 全面监控 Redis

    OneAPM 作为应用性能领域的新兴领军企业,近期发布了重量级新产品-- Cloud Insight 数据管理平台,用它能够监控所有基础组件,并通过 tag 标签对数据进行管理. 近日,Cloud I ...

  5. ms sql 获取字符串首字母

    很久没有编写新文章,现在发布一篇自定义函数,针对于ms sql数据库中需要获取字符串首字母,对于需要的朋友希望对你有用,如果你有更好的方法也可以给我留言.函数如下: --获取字符串首字母 CREATE ...

  6. 《Office 365开发入门指南教程》正式上线,限时优惠和邀请分享推广

    我很高兴地通知大家,<Office 365 开发入门指南教程>已经正式在网易云课堂上线,你可以通过直接访问  https://aka.ms/office365devlesson 这个短地址 ...

  7. 即将上线的Kafka 集群(用CM部署的)无法使用“--bootstrap-server”进行消费,怎么破?

    即将上线的Kafka 集群(用CM部署的)无法使用“--bootstrap-server”进行消费,怎么破? 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   一.报错:org.a ...

  8. 骗访问量的机房人物列传by xMinh

    作者:$xMinh$ 人物列传·Refun(Aufun,虚凡,人赢) 机房最人赢的人赢,上过表白墙的男人 在宿舍公然开设情感讲座和人赢培训班,教学成果显著,他的徒弟要么gay了要么凉了 认识的人极其广 ...

  9. 人物-IT-刘强东:刘强东

    ylbtech-人物-IT-刘强东:刘强东 刘强东,男,汉族,1973年3月10日生(另一说法:1974年2月14日),江苏宿迁人,祖籍湖南湘潭 .京东集团董事局主席兼首席执行官,本科毕业于中国人民大 ...

随机推荐

  1. DB2 With语句递归

    WITH T1 (T11 , T22 , T33 , T44) AS (SELECT TASKID , REPLY , ROWNUMBER () OVER (PARTITION BY TASKID) ...

  2. AC日记——【模板】普通平衡树(Treap/SBT) 洛谷 P3369

    [模板]普通平衡树(Treap/SBT) 思路: 劳资敲了一个多星期: 劳资终于a了: 劳资一直不a是因为一个小错误: 劳资最后看的模板: 劳资现在很愤怒: 劳资不想谈思路!!! 来,上代码: #in ...

  3. Linux centos 时间不同步 date 和 hwclock 时间不一致

    Linux centos 时间不同步 date 和 hwclock 网站有两台服务器,date 查看差3分钟 在应用 APP倒计时 与 直播,时时性较强的功能应用中 请求服务器后返回的服务器时间与数据 ...

  4. linux定时问题

    手动运行java脚本,可以,但定时运行没效果 查看脚本是否赋予执行权限:若无则赋予可执行权限,若还是没用,则在脚本增添环境变量,百度搜索.

  5. Java多线程总结之由synchronized说开去

    更新完毕,结贴,以后有新的想法再开新帖 这几天不断添加新内容,给个大概的提纲吧,方面朋友们阅读,各部分是用分割线隔开了的: synchronized与wait()/notify() JMM与synch ...

  6. NOI模拟题6 Problem C: Circle

    Solution 首先这个矩阵, 很明显的就是Vandermonde矩阵. 我们有公式: \[ |F_n| = \prod_{1 \le j < i \le n} (a_i - a_j) \] ...

  7. 怎样去主动拿一个锁并占有?synchronized关键字即可

    怎样主动去拿一个?synchronized关键字即可 怎样去释放一个锁呢?要求锁对象主动释放,打乱占有当前锁的线程即可

  8. 使用Eclipse Memory Analyzer进行内存泄漏分析三部曲

    源地址:http://seanhe.iteye.com/blog/898277 一.准备工作  分析较大的dump文件(根据我自己的经验2G以上的dump文件就需要使用以下介绍的方法,不然mat会出现 ...

  9. IIC设备驱动程序

    IIC设备是一种通过IIC总线连接的设备,由于其简单性,被广泛引用于电子系统中.在现代电子系统中,有很多的IIC设备需要进行相互之间通信 IIC总线是由PHILIPS公司开发的两线式串行总线,用于连接 ...

  10. Spark Streaming的样本demo统计

    废话不多说,直接上代码 package com.demo; import java.util.List; import java.util.regex.Pattern; import org.apac ...