Esempio n. 1
0
void player_login(rpacket_t rpk,player_t ply)
{
	uint32_t gateident = rpk_read_uint32(rpk);
	const char *actname = rpk_read_string(rpk);
	ply = find_player_by_actname(actname);
	if(ply){
		//对象还未销毁
		if(ply->_agentsession != 0){
			//通知gate直接断掉连接
			shortmsg2gate(CMD_GAME2GATE_INVID_CON,gateident);
		}else{
			//重新绑定
		}		
	}else{
		ply = create_player(actname,gateident);
		if(!ply){
			//通知玩家系统繁忙
			shortmsg2gate(CMD_GAME2GATE_BUSY,gateident);
			return;
		}
		if(0 != load_player_info(ply)){
			shortmsg2gate(CMD_GAME2GATE_BUSY,gateident);
			remove_player(ply);
		}
	}
}
Esempio n. 2
0
void player_login(rpacket_t rpk)
{
	string_t actname = rpk_read_string(rpk);
	uint32_t gateident = rpk_read_uint32(rpk);
	player_t ply = find_player_by_actname(actname);
	if(ply){
		//对象还未销毁,重新绑定关系

	}else{
		create_player(actname,gateident);
		load_player_info(ply);//从数据库导入玩家信息
	}
}