From 544e5b6e67a060625bd50c4a5746cb01a4d6570e Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sun, 28 Apr 2024 10:45:09 +0800 Subject: [PATCH 1/4] 1 --- server/gameserver/constant.h | 1 + server/gameserver/frameevent.cc | 30 ++++++++++++++++++++---------- 2 files changed, 21 insertions(+), 10 deletions(-) diff --git a/server/gameserver/constant.h b/server/gameserver/constant.h index 5c287bac..77d239b6 100644 --- a/server/gameserver/constant.h +++ b/server/gameserver/constant.h @@ -199,6 +199,7 @@ enum GunSubEquipType_e GUN_SUB_EQUIP_TYPE_THREE_GUN = 9, GUN_SUB_EQUIP_TYPE_LASER_CANNON = 10, GUN_SUB_EQUIP_TYPE_FLY_HOOk = 14, + GUN_SUB_EQUIP_TYPE_FLY_LASER = 15, GUN_SUB_EQUIP_TYPE_End }; diff --git a/server/gameserver/frameevent.cc b/server/gameserver/frameevent.cc index de7f53c4..be3ded58 100644 --- a/server/gameserver/frameevent.cc +++ b/server/gameserver/frameevent.cc @@ -125,18 +125,28 @@ void FrameEvent::AddBullet(int bullet_uniid, } { int bullet_idx = room->frame_event_data->bullets_.size() - 1; - sender.Get()->TraverseAllLayerHumanList - ( - [bullet_idx, &sender] (Human* hum, bool& stop) - { + if (weapon_meta->equip_subtype() == GUN_SUB_EQUIP_TYPE_FLY_LASER) { + sender.Get()->room->TraverseHumanList + ( + [bullet_idx] (Human* hum) -> bool + { + hum->GetFrameData().bullets_.push_back(bullet_idx); + return true; + }); + } else { + sender.Get()->TraverseAllLayerHumanList + ( + [bullet_idx, &sender] (Human* hum, bool& stop) + { #ifdef MYDEBUG1 - // 999 - if (!hum->InPartObjects(sender.Get())) { - A8_ABORT(); - } + // 999 + if (!hum->InPartObjects(sender.Get())) { + A8_ABORT(); + } #endif - hum->GetFrameData().bullets_.push_back(bullet_idx); - }); + hum->GetFrameData().bullets_.push_back(bullet_idx); + }); + } } } From c84a77a4935d0a4bd3867224fd4145b2cf3091b2 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sun, 28 Apr 2024 10:53:48 +0800 Subject: [PATCH 2/4] 1 --- server/gameserver/gamelog.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/gameserver/gamelog.cc b/server/gameserver/gamelog.cc index dce87673..bd2b6113 100644 --- a/server/gameserver/gamelog.cc +++ b/server/gameserver/gamelog.cc @@ -35,6 +35,7 @@ void GameLog::GameStart(Player* hum) //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()); @@ -74,6 +75,7 @@ void GameLog::GameEnd(Player* hum) prop->SetVal("game_time", a8::XGetTickCount() - hum->create_tick); //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()); @@ -101,6 +103,7 @@ void GameLog::ForceOver(Room* room) 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()); From 79c44dfdb5f242a9372ab05d0258d304efda06da Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sun, 28 Apr 2024 11:03:04 +0800 Subject: [PATCH 3/4] 1 --- server/gameserver/gamelog.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/server/gameserver/gamelog.cc b/server/gameserver/gamelog.cc index bd2b6113..12ecef6d 100644 --- a/server/gameserver/gamelog.cc +++ b/server/gameserver/gamelog.cc @@ -7,9 +7,11 @@ #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) { @@ -41,6 +43,8 @@ void GameLog::GameStart(Player* hum) 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->ip_saddr, logclass1, logclass2, prop.get()); } @@ -75,12 +79,16 @@ void GameLog::GameEnd(Player* hum) 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 { @@ -106,6 +114,15 @@ void GameLog::ForceOver(Room* room) 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()); } From 5986bc625087132579b88214b16f0f9e3f66ed94 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sun, 28 Apr 2024 15:32:18 +0800 Subject: [PATCH 4/4] 1 --- server/gameserver/creature.cc | 4 ++++ server/gameserver/gamelog.cc | 28 ++++++++++++++++++++++++++++ server/gameserver/gamelog.h | 2 ++ 3 files changed, 34 insertions(+) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 922457a3..e420f521 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -33,6 +33,7 @@ #include "player.h" #include "app.h" #include "tracemgr.h" +#include "gamelog.h" #include "mt/Param.h" #include "mt/Hero.h" @@ -2573,6 +2574,9 @@ void Creature::WinExp(int win_exp) hero_level_ = hero_grow_meta_->level(); hero_exp_ = 0; GenLevelAttr(); + if (IsPlayer()) { + GameLog::Instance()->LevelUp(AsHuman(), old_level, GetHeroLevel()); + } } room->frame_event.AddPropChgEx ( diff --git a/server/gameserver/gamelog.cc b/server/gameserver/gamelog.cc index 12ecef6d..412ec74c 100644 --- a/server/gameserver/gamelog.cc +++ b/server/gameserver/gamelog.cc @@ -126,3 +126,31 @@ void GameLog::ForceOver(Room* room) 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()); +} diff --git a/server/gameserver/gamelog.h b/server/gameserver/gamelog.h index 59567eeb..75d4318e 100644 --- a/server/gameserver/gamelog.h +++ b/server/gameserver/gamelog.h @@ -2,6 +2,7 @@ #include +class Human; class Player; class Room; class GameLog : public a8::Singleton @@ -12,6 +13,7 @@ class GameLog : public a8::Singleton public: void GameStart(Player* hum); void GameEnd(Player* hum); + void LevelUp(Human* hum, int old_level, int new_level); void ForceOver(Room* room); private: