int DB_Worker::process_create_player(int cid, Game_Player_Info &player_info) { Block_Buffer buf; buf.make_inner_message(SYNC_DB_GAME_CREATE_PLAYER); int32_t status = 0; if (DB_MANAGER->create_player(player_info) < 0) { status = ROLE_HAS_EXIST; } else { status = SUCCESS_CREATED; //创建所有玩家表 create_player_data(player_info.role_id); } buf.write_string(player_info.account); buf.write_int32(status); load_player_data(player_info.role_id, buf); buf.finish_message(); DB_MANAGER->send_data_block(cid, buf); return 0; }
int DB_Worker::process_load_player(int cid, std::string &account) { Block_Buffer buf; buf.make_inner_message(SYNC_DB_GAME_LOAD_PLAYER); buf.write_string(account); DB_Manager::DB_Cache_Account_Map::iterator iter = DB_MANAGER->db_cache_account_map().find(account); if (iter != DB_MANAGER->db_cache_account_map().end()) { //角色存在,开始加载数据 buf.write_int32(SUCCESS_LOADED); int64_t role_id = iter->second.role_id; load_player_data(role_id, buf); } else { //角色不存在,直接返回 buf.write_int32(ROLE_NOT_EXIST); } buf.finish_message(); DB_MANAGER->send_data_block(cid, buf); return 0; }
int DB_Worker::process_load_player(int cid, std::string &account) { int32_t status = 0; int64_t role_id = 0; DB_Manager::DB_Cache_Account_Map::iterator iter = DB_MANAGER->db_cache_account_map().find(account); if (iter != DB_MANAGER->db_cache_account_map().end()) { //角色存在,加载数据 status = ROLE_SUCCESS_LOAD; role_id = iter->second.role_id; } else { //角色不存在,直接返回 status = ROLE_NOT_EXIST; } Block_Buffer buf; buf.make_server_message(SYNC_DB_GAME_LOAD_PLAYER, status); buf.write_string(account); if (role_id > 0) { load_player_data(role_id, buf); } buf.finish_message(); DB_MANAGER->send_data_block(cid, buf); return 0; }