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); } } }
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);//从数据库导入玩家信息 } }