#include "precompile.h" #include "gamelog.h" #include "f8/utils.h" #include "f8/tglog.h" #include #include "player.h" #include "app.h" #include "room.h" #include "stats.h" #include "team.h" #include "mt/Hero.h" #include "mt/Map.h" #include "mt/MapMode.h" void GameLog::GameStart(Player* hum) { int logclass1 = 11; int logclass2 = 4; int game_id = f8::ExtractGameIdFromAccountId(hum->account_id); std::string channel = a8::XValue(f8::ExtractChannelIdFromAccountId(hum->account_id)); auto prop = a8::MutableXObject::CreateObject(); prop->SetVal("channel", channel); prop->SetVal("ad_channel", ""); prop->SetVal("from_appid", hum->from_appid); prop->SetVal("gameid", GAME_ID); prop->SetVal("account_id", hum->account_id); prop->SetVal("account_register_utctime", hum->account_registertime); prop->SetVal("account_register_date", a8::TimestampToDateTime(hum->account_registertime)); prop->SetVal("game_uniid", a8::XValue(hum->room->GetRoomUuid()).GetString()); prop->SetVal("room_type", a8::XValue(hum->room->GetRoomType()).GetString()); prop->SetVal("room_mode", a8::XValue((int)hum->room->GetRoomMode())); prop->SetVal("hero_id", a8::XValue(hum->meta->id())); //prop->SetVal("game_param", ""); prop->SetVal("nickname", hum->name); //prop->SetVal("localuuid", ""); //prop->SetVal("start_param", ""); prop->SetVal("team_id", hum->team_id); prop->SetVal("server_zone_id", f8::App::Instance()->GetZoneId()); prop->SetVal("server_node_id", f8::App::Instance()->GetNodeId()); prop->SetVal("server_instance_id", f8::App::Instance()->GetInstanceId()); prop->SetVal("map_id", hum->room->GetMapMeta()->map_id()); prop->SetVal("map_name", hum->room->GetMapMeta()->map_name()); prop->SetVal("map_mode_id", hum->room->GetMapModeMeta()->id()); prop->SetVal("map_mode", hum->room->GetMapModeMeta()->mapMode()); f8::TGLog::Instance()->AddTrackLog(game_id, hum->account_id, hum->GetIpSaddr(), logclass1, logclass2, prop.get()); } void GameLog::GameEnd(Player* hum) { int logclass1 = 11; int logclass2 = 6; int game_id = f8::ExtractGameIdFromAccountId(hum->account_id); std::string channel = a8::XValue(f8::ExtractChannelIdFromAccountId(hum->account_id)); auto prop = a8::MutableXObject::CreateObject(); prop->SetVal("channel", channel); prop->SetVal("ad_channel", ""); prop->SetVal("from_appid", hum->from_appid); prop->SetVal("gameid", GAME_ID); prop->SetVal("account_id", hum->account_id); prop->SetVal("account_register_utctime", hum->account_registertime); prop->SetVal("account_register_date", a8::TimestampToDateTime(hum->account_registertime)); prop->SetVal("game_uniid", a8::XValue(hum->room->GetRoomUuid()).GetString()); prop->SetVal("room_type", a8::XValue(hum->room->GetRoomType()).GetString()); prop->SetVal("room_mode", a8::XValue((int)hum->room->GetRoomMode())); prop->SetVal("hero_id", a8::XValue(hum->meta->id())); //prop->SetVal("game_param", ""); prop->SetVal("game_gold", hum->stats->gold); prop->SetVal("game_score", hum->stats->score); prop->SetVal("game_pass_score", hum->has_pass ? hum->stats->pass_score * 2 : hum->stats->pass_score); prop->SetVal("game_rank_score", hum->stats->rank_score); prop->SetVal("has_pass", hum->has_pass ? 1 : 0); prop->SetVal("nickname", hum->name); //prop->SetVal("localuuid", ""); prop->SetVal("game_time", a8::XGetTickCount() - hum->create_tick); //prop->SetVal("start_param", ""); prop->SetVal("team_id", hum->team_id); prop->SetVal("battle_uuid", hum->GetTeam()->GetBattleUuid()); prop->SetVal("server_zone_id", f8::App::Instance()->GetZoneId()); prop->SetVal("server_node_id", f8::App::Instance()->GetNodeId()); prop->SetVal("server_instance_id", f8::App::Instance()->GetInstanceId()); prop->SetVal("map_id", hum->room->GetMapMeta()->map_id()); prop->SetVal("map_name", hum->room->GetMapMeta()->map_name()); prop->SetVal("map_mode_id", hum->room->GetMapModeMeta()->id()); prop->SetVal("map_mode", hum->room->GetMapModeMeta()->mapMode()); if (!hum->dead) { prop->SetVal("alive_time", hum->room->GetFrameNo() * 1000.0f / SERVER_FRAME_RATE); } else { prop->SetVal("alive_time", hum->dead_frameno * 1000.0f / SERVER_FRAME_RATE); } prop->SetVal("gameover_pass_frame_num", hum->room->GetFrameNo() - hum->last_cmmove_frameno); prop->SetVal("socket_handle", hum->GetSocketHandle()); f8::TGLog::Instance()->AddTrackLog(game_id, hum->account_id, hum->GetIpSaddr(), logclass1, logclass2, prop.get()); } void GameLog::ForceOver(Room* room) { int game_id = GAME_ID; auto prop = a8::MutableXObject::CreateObject(); prop->SetVal("game_uniid", a8::XValue(room->GetRoomUuid()).GetString()); prop->SetVal("room_type", a8::XValue(room->GetRoomType()).GetString()); prop->SetVal("room_mode", a8::XValue((int)room->GetRoomMode())); prop->SetVal("battle_started", a8::XValue(room->BattleStarted() ? 1 : 0)); prop->SetVal("game_duration", room->GetFrameNo() * SERVER_FRAME_RATE); prop->SetVal("player_num", room->GetPlayerNum()); prop->SetVal("server_zone_id", f8::App::Instance()->GetZoneId()); prop->SetVal("server_node_id", f8::App::Instance()->GetNodeId()); prop->SetVal("server_instance_id", f8::App::Instance()->GetInstanceId()); #if 0 prop->SetVal("team_id", hum->team_id); prop->SetVal("battle_uuid", hum->GetTeam()->GetBattleUuid()); #endif prop->SetVal("map_id", room->GetMapMeta()->map_id()); prop->SetVal("map_name", room->GetMapMeta()->map_name()); prop->SetVal("map_mode_id", room->GetMapModeMeta()->id()); prop->SetVal("map_mode", room->GetMapModeMeta()->mapMode()); f8::TGLog::Instance()->AddTrackLog(game_id, "forceover", 0, "forceover", prop.get()); } void GameLog::LevelUp(Human* hum, int old_level, int new_level) { int game_id = GAME_ID; auto prop = a8::MutableXObject::CreateObject(); prop->SetVal("game_uniid", a8::XValue(hum->room->GetRoomUuid()).GetString()); prop->SetVal("room_type", a8::XValue(hum->room->GetRoomType()).GetString()); prop->SetVal("room_mode", a8::XValue((int)hum->room->GetRoomMode())); prop->SetVal("battle_started", a8::XValue(hum->room->BattleStarted() ? 1 : 0)); prop->SetVal("game_duration", hum->room->GetFrameNo() * SERVER_FRAME_RATE); prop->SetVal("player_num", hum->room->GetPlayerNum()); prop->SetVal("server_zone_id", f8::App::Instance()->GetZoneId()); prop->SetVal("server_node_id", f8::App::Instance()->GetNodeId()); prop->SetVal("server_instance_id", f8::App::Instance()->GetInstanceId()); prop->SetVal("team_id", hum->team_id); prop->SetVal("battle_uuid", hum->GetTeam()->GetBattleUuid()); prop->SetVal("old_level", old_level); prop->SetVal("new_level", new_level); prop->SetVal("map_id", hum->room->GetMapMeta()->map_id()); prop->SetVal("map_name", hum->room->GetMapMeta()->map_name()); prop->SetVal("map_mode_id", hum->room->GetMapModeMeta()->id()); prop->SetVal("map_mode", hum->room->GetMapModeMeta()->mapMode()); f8::TGLog::Instance()->AddTrackLog(game_id, "level_up", 0, "level_up", prop.get()); }