Пример #1
0
void RceObtainNpcListHandle::handle(Event* e)
{
	int64 uid = e->uid();
	GameDataHandler* pUserManager = eh_->getDataHandler();
	if(!pUserManager)
	{
		return;
	}
	User *pUser = pUserManager->getUser(uid);
	if ( !pUser)
	{
		return;
	}

	Player* pPlayer = pUser->GetPlayer();
	if ( !pPlayer || !pPlayer->CanUse())
	{
		return ;
	}

	RseObtainNpcList rse;
	pPlayer->FillinNpcs(&rse);
	string text;
	rse.SerializeToString(&text);
	eh_->sendDataToUser(pUser->fd(), S2C_RseObtainNpcList,text);
}
Пример #2
0
void RceQueryGalaxyWindowHandle::handle_c2country(Event *e)
{
	int64 uid = e->uid();
	GameDataHandler* pUserManager = eh_->getDataHandler();
	if(!pUserManager)
	{
		return;
	}
	User *pUser = pUserManager->getUser(uid);
	if ( !pUser)
	{
		return;
	}

	Player* pPlayer = pUser->GetPlayer();
	if ( !pPlayer || !pPlayer->CanUse())
	{
		return ;
	}

	RceQueryGalaxyWindow *req = e->mutable_ce_rcequerygalaxywindow();
	if(!req){
		return;
	}

	e->set_state(Status_Game_To_Country);
	eh_->sendEventToCountry(e, pUser->GetUserRegion(true));
}
Пример #3
0
void UserLogin::handle_WG_UserLogin(Event* e)
{
	const NewStar_Rsp& rsp = e->newstarrsp();
	const UserLogin_Req& req = e->userlogin_req();
	int64 uid = req.uid();
	if(uid<=0)
		return;
	int nPhysicsRegion = getPhysicsRegion(uid);
	//判断所属物理分区是否正确
	if(nPhysicsRegion != serverConfig.GetPhysiceRegionByGame(eh_->GetSrvID()))
		return;
	GameDataHandler* dh = eh_->getDataHandler();

	const string& platid = req.platform_id();
	int siteid = req.siteid();
	const string& name = req.name();
	const string& profile_link = req.profile_link();
	int gender = (req.gender() == 0) ? Gender_Girl : Gender_Boy ;
	vector<string> friends_platid;
	for (int i = 0; i < req.friends_platid_size(); i ++)
	{
		friends_platid.push_back(req.friends_platid(i));
	}
	bool isYellowDmd = req.is_yellow_dmd();
	bool isYellowDmdYear = req.is_yellow_dmd_year();
	int lvlYellowDmd = req.yellow_dmd_lv();
	bool isHighYellowDmd = req.is_high_yellow_dmd();
	bool isHighDmdYear = req.is_high_dmd_year();
	int nBlueTime = req.bluetime();
	int nBlueYearTime = req.blueyeartime();
	int nHighBlueTime = req.highbluetime();
	int nHighYearTime = req.highblueyeartime();

	int webfd = req.webfd();
	string sid = req.sid();
	int region = req.region();
	int nCity  = req.city();
	string strVIA = req.via();	//玩家渠道
	bool isRecall = req.isrecall();
	int nCustomFlag = req.customflag();
	int nBackFlowFlag = req.nbackflowflag();
	const WebCrossPromotion* pWebPromotion = e->mutable_userlogin_req()->mutable_promotion();
	string strChanel = pWebPromotion->chanle();
	LOG4CXX_INFO(logger_, "World request UserLogin with openid: " << platid);
	//if(dh->GetUserID(platid,region)!=uid)
	//{
	//	dh->AddUserID(platid,region,uid);
	//}
	LoadStatus state = LOAD_INVALID;
	User* user = processUserLogin(uid,platid, siteid, name, profile_link, gender,
		friends_platid, isYellowDmd, isYellowDmdYear, lvlYellowDmd, state,
		region,nCity,req.isnewplayer(),strVIA,isHighYellowDmd,strChanel,isHighDmdYear,nBlueTime,nBlueYearTime,nHighBlueTime,nHighYearTime,
		rsp.id(), rsp.name(), rsp.type(), rsp.sku());
	if (user != NULL)
	{
		UserLogin_Rsp* rsp = e->mutable_userlogin_rsp();
		rsp->set_server(eh_->getServerIp());
		rsp->set_port(eh_->getServerPort());
		rsp->set_port1(eh_->getServerPort1());
		rsp->set_uid(user->GetUid());
		rsp->set_secret(user->secret(eh_->getReversion()));
		rsp->set_webfd(webfd);
		rsp->set_sid(sid);
		rsp->set_region(region);
		rsp->set_mainload("0");//此项已失效
		rsp->set_version(FlashVersionCfg::Instance().GetCfgVersion(eh_->GetSrvID()));
		rsp->set_gettime(req.gettime());
		rsp->set_platform_id(req.platform_id());
		rsp->set_playerlvl(user->GetUserLevel());
		rsp->set_logintimes(IsSameDay(user->GetLastLoginTime(),time(NULL))?1:0);
		rsp->set_isnewplayer(req.isnewplayer());
		rsp->set_customflag(req.customflag());
		rsp->set_channel(strChanel);
#if 0
		user->SetUndealGiftCount(req.undealgiftcnt());
		user->SetUndealFrdGiftCount(req.undealfrdgiftcnt());
		user->SetInviteFrdCnt(req.invitefrdcnt());
		user->SetDayInviteFrdCnt(req.invitefrdcntday());
		user->SetDayWebGiftSendCnt(req.daysendgiftcnt());
		user->SetChannel(strChanel);
		user->GetDbUser().set_badult((req.nadultflag() >= 100)?true : false);

		bool bIsNewInvite = false;
		if (user->SetPlatInviteFriendOpenid(req.invitefriendid()))
		{
			bIsNewInvite = true;
		}
		user->GetDbUser().mutable_player()->set_yellowdmdtime(req.yellowdmdtime());

		if (req.isnewplayer() && bIsNewInvite)
		{
			HttpRequireHandler::Instance().SafePushHttpAcceptToQQ(user, user->GetPlattype());
		}
		else if (req.isnewplayer())
		{
			HttpRequireHandler::Instance().SafePushHttpSelfRegistToQQ(user, user->GetPlattype());
		}
		HttpRequireHandler::Instance().SafePushHttpLogOnToQQ(user, user->GetPlattype());

		user->GetDbUser().set_isactivelogon( req.isapp51act() );

		RceInviteFriend* pinviteMsg = e->mutable_ce_rceinvitefriend();
		user->GetPlayer()->SetInviteFrdCntGain(pinviteMsg->friendcount(),pinviteMsg->giftgain());

		//交叉推广
		//if(strChanel.size()>0)
		//{
		//	user->m_mapChanlelFirst[strChanel] += 1;
		//}
		user->SetCrossPromotion(pWebPromotion);

		for ( int i = 0; i < req.invitegiftrecord_size(); i++ )
		{
			DB_InvitedFriendLvGift* pDBInvitedFriendLvGift = user->GetPlayer()->GetDBInvitedFriendLvGift(req.invitegiftrecord(i));
			if ( pDBInvitedFriendLvGift == NULL )
			{
				continue;
			}

			pDBInvitedFriendLvGift->set_hasget( true );
		}
#endif

		e->clear_userlogin_req();
		e->set_state(UserLogin_GW_Rsp);
		eh_->sendEventToWorld(e);


		user->InitRc4Key(rsp->logintimes(),sid);

#if 0
		if(user->GetUserLevel() != req.level())
		{
			eh_->SendUserInfo2Plat(user,UpdatePlat_Level);
		}
		//if(user->GetPlayer()->GetDBPlayer()->invite_platid_size()>0)
		//{//分服前后数据同步
		//	eh_->SendUserInfo2Plat(user,1);
		//	user->GetPlayer()->GetDBPlayer()->clear_invite_platid();
		//}

		//召回老友统计
		if ( isRecall )
		{
			SYS_UserStat(user,false,"CallBackFrdBack",1,"","","");
		}

		if ( nCustomFlag > 0 )
		{
			//2015.03.10空间广告位回流
			const CostGiftTbl *pCostTbl = CostGiftCfg::Instance().GetCostGiftTbl(10098);
			DB_QQBackFlow* pDBQQBackFlow = user->GetPlayer()->GetDBPlayer()->mutable_qqrightbackflowflag();
			if (pCostTbl != NULL &&
				pCostTbl->IsCurrentTime() &&
				pDBQQBackFlow != NULL &&
				pDBQQBackFlow->actflag() != pCostTbl->m_tBeginTime)
			{
				//user->GetPlayer()->GetDBPlayer()->set_customflagtime( time(NULL) );
				SYS_LOG(user->GetPlayer()->GetUserID(),LT_COST_GIFT_CUSTOM_FLAG,0,0,0);
				pDBQQBackFlow->Clear();
				pDBQQBackFlow->set_actflag(pCostTbl->m_tBeginTime);
				pDBQQBackFlow->set_curstate(1);
			}
		}

		if (nBackFlowFlag == 1)
		{//空间顶部应用墙回流
			if ( user->GetPlayer()->GetDBPlayer()->qqtopbackflowflag() == 0)
			{
				user->GetPlayer()->GetDBPlayer()->set_qqtopbackflowflag(1);
			}
		}
		else if (nBackFlowFlag == 2)
		{//空间顶部应用墙回流
			if ( user->GetPlayer()->GetDBPlayer()->qqleftbackflowflag() == 0)
			{
				user->GetPlayer()->GetDBPlayer()->set_qqleftbackflowflag(1);
			}
		}
		else if (nBackFlowFlag == 4)
		{
			if(user->GetPlayer()->GetDBPlayer()->qqtenyearbackflowflag() == 0)
			{
				user->GetPlayer()->GetDBPlayer()->set_qqtenyearbackflowflag(1);
			}
		}

		if ( bIsNewInvite )
		{
			ConstantSetUnit* pUnit = GameConstantSetCfg::Instance().GetGameConstantSet(E_GAMECONSTANTSET_DEF_HOLIDAY_INVITE);
			if ( pUnit != NULL )
			{
				time_t now = time(NULL);
				time_t tBeginTime = GetDayTimeByStr( pUnit->m_strArgs[0].c_str(), pUnit->m_strArgs[1].c_str() );
				time_t tEndTime   = GetDayTimeByStr( pUnit->m_strArgs[2].c_str(), pUnit->m_strArgs[3].c_str() );

				if( now >= tBeginTime && now <= tEndTime )
				{
					user->GetPlayer()->GetDBPlayer()->set_canholidayinvitegiftsend(true);
				}
			}
		}

		user->GetPlayer()->GetDBPlayer()->set_qqtaskstep( req.qqtaskstep() );
#endif
		dh->markUserDirty(user);
	}
	else
	{
		if (state == LOAD_WAITING)
		{
			eh_->postBackEvent(e);
		}
	}
}
Пример #4
0
void UserLogin::HandleUserLogout(Event* e)
{

    int64 nUserID = e->uid();
    switch (e->state())
    {
        case Status_Normal_Game:
        {
            GameDataHandler* dh = eh_->getDataHandler();
            User* pUser = dh->getUser(nUserID, NULL, false);
            if (pUser == NULL)
            {
                return;
            }
            WG_UserLeave* pUserLeave = e->mutable_wg_userleave();
            if (pUserLeave->fd() != pUser->fd())
                return;

            pUser->setOnline(false);
//			pUser->OnUserOnOffLine();
			dh->PopOnlineUserID(pUser->GetUid());
//			pUser->GetPlayer()->SetInviteUserID(0,false);

			//pUser->SetFriendCache(pUser->GetPlattype(), dh);
//			pUser->SetGameStarCache(pUser->GetPlattype(),dh,true);
			
			if(pUser->GetPlayer()->IsAttacking()){
				eh_->PushEventAttackFalse(pUser);
			}

			pUser->setFd(0);
           
            time_t lt = time(NULL) - pUser->GetLastLoginTime();

			//设置离线保护时间
// 			if ( pUser->GetPlayer() != NULL )
// 			{
// 				GameDataHandler* pUserManager = eh_->getDataHandler();
// 				GameStarInfo* pStar = pUserManager->getGameStarInfo(pUser->GetUid());
// 				if( pStar == NULL )
// 				{
// 					return;
// 				}
// 				int nProtectTm = 60;
// 				pStar->m_pPlayerBase->set_logoutsafetime((int)(time(NULL) + nProtectTm));
// 				pUser->GetPlayer()->SetLogoutProtectTm( nProtectTm );
// 			}
// 			
// 			SYS_LOG(nUserID, LT_LogOut, 0, 0, lt << pUser->GetUserLevel()
// 				<<pUser->GetPlayer()->GetBaseValue()<<pUser->GetPlayer()->GetBasePoint()
// 				<<pUser->GetPlayer()->GetResCnt(RC_Metal)<<pUser->GetPlayer()->GetResCnt(RC_Oil)
// 				<<pUser->GetPlayer()->GetCredit());
// 			SYS_UserStat(pUser,false,"LogOut","","","",lt,
// 				pUser->GetResStat()->m_nAddMedal,pUser->GetResStat()->m_nAddOil
// 				,pUser->GetResStat()->m_nCostMedal,pUser->GetResStat()->m_nCostOil,
// 				pUser->GetResStat()->m_nPickMedal,pUser->GetResStat()->m_nPickOil);
// 			int nTotalLV = pUser->GetPlayer()->CacuScienceTotalLV();
// 			/*if(nTotalLV>20)
// 			{
// 				SYS_UserStat4WebRank(pUser,"RankScience","",nTotalLV);
// 			}*/
// 
// 			CMsg2QQ::GetInstance()->TellMsg(MQ_Logout,pUser,0,0,0);
// 
// 			Player* pPlayer = pUser->GetPlayer();
// 			
// 			if ( ServerStatMgr::Instance().GetStatUser(nUserID) )
// 			{
// 				pPlayer->SendServerStat( lt );
// 			}
// 
//             HttpRequireHandler::Instance().SafePushHttpLogOutToQQ(pUser, pUser->GetPlattype());

			dh->markUserDirty(pUser);
		}
	}
}
Пример #5
0
void RceUpdateSocialItemHandle::handle(Event* e)
{
	int64 uid = e->uid();
	GameDataHandler* pUserManager = eh_->getDataHandler();
	if(!pUserManager)
	{
		return;
	}
	User *pUser = pUserManager->getUser(uid);
	if ( !pUser)
	{
		return;
	}

	Player* pPlayer = pUser->GetPlayer();
	if ( !pPlayer || !pPlayer->CanUse())
	{
		return ;
	}

	RceUpdateSocialItem* req = e->mutable_ce_rceupdatesocialitem();
	if( !req )
	{
		return;
	}

	RseUpdateSocialItem rse;
	rse.set_ret(RseUpdateSocialItemRet_Success);
	
	int planetId = req->planetid();
	string strAction = req->action();
	MsgTransaction* MT = req->mutable_transaction();
	if(MT)
	{
		for(int i = 0;i<MT->socialitems_size();i++)
		{
			MsgSocialItems* MSI = MT->mutable_socialitems(i);
			if(!pPlayer->CostSocialItem(MSI->sku(), 1))
			{
				SendRet2User(pUser,RseUpdateSocialItemRet_SocialItemNotEnough,rse);
			}
		}
	}

	if(strAction == "nextStep")
	{
		int quantity = 0;
		int tm = 0;
		if(req->postion() == 1)//爆出物品
		{
			CFG_Item* Tbl = ItemTblInst::instance().GetItem(req->sku());
			if(!Tbl)
				return;
			string givenCondition = Tbl->givenCondition;
			tm = Tbl->timeToGive * 1000;
			string currentCount = toString(req->currentcount());
			if(givenCondition.find("listSequence") >= 0 &&givenCondition.find("listSequence") <= givenCondition.size()&& givenCondition.find(currentCount))
			{
				quantity = 1;
			}
		}
		if(!pPlayer->AddSocialItem(req->sku(),quantity,req->currentquantity(),tm))
		{
			SendRet2User(pUser,RseUpdateSocialItemRet_AddSocialItemFailed,rse);
			return;
		}
		SendRet2User(pUser,RseUpdateSocialItemRet_Success,rse);
		eh_->getDataHandler()->markUserDirty(pUser);
	}
	else if(strAction == "addItem")
	{
		MsgSocialItems* MSI = NULL;
		for(int i = 0;i<MT->socialitems_size();i++)
		{
			MSI = MT->mutable_socialitems(i);
			if(!pPlayer->AddSocialItem(MSI->sku(),req->currentquantity()))
			{
				SendRet2User(pUser,RseUpdateSocialItemRet_AddSocialItemFailed,rse);
				return ;
			}
		}
		eh_->getDataHandler()->markUserDirty(pUser);
		SendRet2User(pUser,RseUpdateSocialItemRet_Success,rse);
	}
	else if(strAction == "useItem")
	{
		DB_Model* model = pPlayer->GetDBPlayer()->mutable_model();
		int Sku = 0;
		string randomSku = req->num();
		safe_atoi(req->sku(),Sku);
		DB_SocialItem* pDBSI = pPlayer->GetSocialItem(req->sku());
		if(!pDBSI || !model)
		{
			SendRet2User(pUser,RseUpdateSocialItemRet_SocialItemNotEnough,rse);
			return;
		}

		if(Sku == SocialItem_worker_freeWorker)//雇佣工人
		{
			if(!pPlayer->AddDroid(planetId))
			{
				SendRet2User(pUser,RseUpdateSocialItemRet_AddDroidFailed,rse);
				return;
			}
			SendRet2User(pUser,RseUpdateSocialItemRet_Success,rse);
			return;
		}

		if(Sku >= SocialItem_coins && Sku <= 5006)
		{
			switch (Sku) {
			case SocialItem_coins:// 金币×1000
				pPlayer->CostRes(RC_Coin,1000);
				break;
			case SocialItem_minerals:// 矿石×1000
				pPlayer->CostRes(RC_Mineral,1000);;
				break;
			case 5003:// 金币×10000
				pPlayer->CostRes(RC_Coin,10000);
				break;
			case 5004:// 金币×100000
				pPlayer->CostRes(RC_Coin,100000);
				break;
			case 5005:// 矿石×10000
				pPlayer->CostRes(RC_Mineral,10000);
				break;
			case 5006:// 矿石×100000
				pPlayer->CostRes(RC_Mineral,100000);
				break;
			default:
				break;
			}
			if(!pPlayer->CostSocialItem(req->sku(), 1))
			{
				SendRet2User(pUser,RseUpdateSocialItemRet_SocialItemNotEnough,rse);
				return;
			}
			SendRet2User(pUser,RseUpdateSocialItemRet_Success,rse);
			return;
		}
		else
		{
			CFG_Item* Tbl = ItemTblInst::instance().GetItem(req->sku());
			if(!Tbl)
				return;
			string givenCondition = Tbl->givenCondition;
			vector<string> condition = split(givenCondition,":");
			int counter = pDBSI->counter();
			int nextCounter = 0;
			if (condition.size() > 1) {// 不是爆出物品不对counter计算
				nextCounter = (counter + 1) % (condition.size() - 1);
			}
			if(randomSku == "1")// 金币矿石
			{
				int seed = 0;
				safe_atoi(condition[counter + 1],seed);
				if(seed == 1)
				{
					int addCoins = model->coins() * 3 / 100;
					if (addCoins < 1000) {
						addCoins = 1000;
					}
					pPlayer->CostRes(RC_Coin,model->coins() + addCoins);
				}
				else if(seed == 2)
				{
					int addMinerals = model->minerals() * 3 / 100;
					if (addMinerals < 1000) {
						addMinerals = 1000;
					}
					pPlayer->CostRes(RC_Mineral,model->minerals() + addMinerals);
				}
			}
			else
			{
				if(!pPlayer->AddSocialItem(randomSku, 1, 0,0))
				{
					SendRet2User(pUser,RseUpdateSocialItemRet_AddSocialItemFailed,rse);
					return;
				}
			}
			pDBSI->set_counter(nextCounter);
			if(!pPlayer->CostSocialItem(req->sku(), 1))
			{
				SendRet2User(pUser,RseUpdateSocialItemRet_AddSocialItemFailed,rse);
				return;
			}
			SendRet2User(pUser,RseUpdateSocialItemRet_Success,rse);
		}
		eh_->getDataHandler()->markUserDirty(pUser);
	}
	else if(strAction == "buyItem")
	{
		SendRet2User(pUser,RseUpdateSocialItemRet_Success,rse);
	}
	else if(strAction == "removeItem")
	{
		if(!pPlayer->CostSocialItem(req->sku(), 1))
		{
			SendRet2User(pUser,RseUpdateSocialItemRet_AddSocialItemFailed,rse);
			return;
		}
		eh_->getDataHandler()->markUserDirty(pUser);
		SendRet2User(pUser,RseUpdateSocialItemRet_Success,rse);
	}
	else if(strAction == "applyCrafting")// 制作炸弹和落石
	{
		string sku = "";
		if(req->sku() == "1")//洲际导弹
			sku = "7000";
		else
			sku = "7001";
		if(!pPlayer->AddSocialItem(sku, 1))
		{
			SendRet2User(pUser,RseUpdateSocialItemRet_ApplyCraftingFailed,rse);
			return;
		}
		eh_->getDataHandler()->markUserDirty(pUser);
		SendRet2User(pUser,RseUpdateSocialItemRet_Success,rse);
	}
	else if(strAction == "applyCollectable")// 收藏里兑换物品
	{
		CFG_Collectables* Tbl = CollectablesTblInst::instance().GetItem(req->sku());
		string itemSkuList = Tbl->itemSkuList;
		itemSkuList.erase(0, 1);
		itemSkuList.erase(itemSkuList.size() - 1, 1);
		vector<string> SkuList = split(itemSkuList,",");
		for(int i = 0;i<SkuList.size();i++)
		{
			string Sku = SkuList[i];
			if(!pPlayer->CostSocialItem(Sku, 1))
			{
				SendRet2User(pUser,RseUpdateSocialItemRet_SocialItemNotEnough,rse);
				return;
			}
		}
		
		if(!pPlayer->AddSocialItem(Tbl->reward, 1))
		{
			SendRet2User(pUser,RseUpdateSocialItemRet_AddSocialItemFailed,rse);
			return;
		}
		eh_->getDataHandler()->markUserDirty(pUser);
		SendRet2User(pUser,RseUpdateSocialItemRet_Success,rse);
	}
	else if(strAction == "addItemToWishList")
	{
		if(!pPlayer->AddItemToWishList(req->sku()))
		{
			SendRet2User(pUser,RseUpdateSocialItemRet_AddToWishListFailed,rse);
			return;
		}
		eh_->getDataHandler()->markUserDirty(pUser);
		SendRet2User(pUser,RseUpdateSocialItemRet_Success,rse);
	}
	else if(strAction == "removeItemFromWishList")
	{
		if(!pPlayer->RemoveItemFromWishList(req->sku()))
		{
			SendRet2User(pUser,RseUpdateSocialItemRet_RemoveItemFromWishListFailed,rse);
			return;
		}
		eh_->getDataHandler()->markUserDirty(pUser);
		SendRet2User(pUser,RseUpdateSocialItemRet_Success,rse);
	}
	else if(strAction == "sendItemToNeighborWishList")
	{

	}

}
void RceQueryCheckAndLockAccountIfPossibleHandle::handle_selfload(Event* e)
{
	int64 uid = e->uid();
	GameDataHandler* pUserManager = eh_->getDataHandler();
	if(!pUserManager)
	{
		return;
	}
	User *pUser = pUserManager->getUser(uid);
	if ( !pUser)
	{
		return;
	}

	Player* pPlayer = pUser->GetPlayer();
	if ( !pPlayer || !pPlayer->CanUse())
	{
		return ;
	}

	RceQueryCheckAndLockAccountIfPossible* req = e->mutable_ce_rcequerycheckandlockaccountifpossible();
	if( !req )
	{
		return;
	}

	RseQueryCheckAndLockAccountIfPossible *pRsp = e->mutable_se_rsequerycheckandlockaccountifpossible();
	pRsp->set_lockapplied(req->applylock());
	pRsp->set_lockrequested(1);
	pRsp->set_locktype(0);
	pRsp->set_locksuccess(1);
	string text;
	pRsp->SerializeToString(&text);
	eh_->sendDataToUser(pUser->fd(), S2C_RseQueryCheckAndLockAccountIfPossible, text);
	return;

	DB_Planet *pDBPlanet = pPlayer->GetPlanet(pPlayer->GetCurPlanetId());
	if(!pDBPlanet){
		pRsp->set_locksuccess(0);
		pRsp->set_locktype(7);
		string text;
		pRsp->SerializeToString(&text);
		eh_->sendDataToUser(pUser->fd(), S2C_RseQueryCheckAndLockAccountIfPossible, text);
		return;
	}
	/*for(int i = 0; i < req->hangarsunitsinfo_size(); i++){
		HangarsUnitsInfo *pMsgUnit = req->mutable_hangarsunitsinfo(i);
		if(pMsgUnit){
			for (int k = 0; k < pDBPlanet->hangars_size(); k++){
				DB_Hangar *pDBUnit = pDBPlanet->hangars(k);
				if(pDBUnit && pDBUnit->sid() == pMsgUnit->sid()){
					
				}
			}
		}
	}*/

	int64 TID;
	safe_atoll(req->targetaccountid(), TID);
	LoadStatus state = LOAD_INVALID;
	User *pTUser = pUserManager->getUser(TID, &state, true);
	if (pTUser == NULL)
	{
		if (state == LOAD_WAITING)
		{
			eh_->postBackEvent(e);
		}
		else if (state == LOAD_MISS)
		{	
			e->mutable_forwardinfo()->set_uid(TID);
			e->set_state(Status_Normal_To_World);
			eh_->sendEventToWorld(e);
		}
		return;
	}
	else
	{
		if(0 == req->applylock()){
			if(pTUser->Online()){
				pRsp->set_locksuccess(0);
				pRsp->set_locktype(1);
				string text;
				pRsp->SerializeToString(&text);
				eh_->sendDataToUser(pUser->fd(), S2C_RseQueryCheckAndLockAccountIfPossible, text);
				return;
			}else if(pTUser->GetLastAttackedTime()){
				pRsp->set_locksuccess(0);
				pRsp->set_locktype(2);
				string text;
				pRsp->SerializeToString(&text);
				eh_->sendDataToUser(pUser->fd(), S2C_RseQueryCheckAndLockAccountIfPossible, text);
				return;
			}
		}else{
			int nPlanetId = req->planetid();
			Player *pTPlayer = pUser->GetPlayer();
			
		}
	}
}