From 732a58ec9111c2628fbfc04ecbcb70a6d66678c7 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 6 Sep 2022 16:03:07 +0800 Subject: [PATCH] 1 --- server/gameserver/android.cc | 1 + server/gameserver/battledatacontext.cc | 2 +- server/gameserver/battledatacontext.h | 4 +++- server/gameserver/car.cc | 1 + server/gameserver/hero.cc | 1 + server/gameserver/room.cc | 2 ++ server/gameserver/roommgr.cc | 1 + 7 files changed, 10 insertions(+), 2 deletions(-) diff --git a/server/gameserver/android.cc b/server/gameserver/android.cc index 35d29644..b2fe20fb 100644 --- a/server/gameserver/android.cc +++ b/server/gameserver/android.cc @@ -44,6 +44,7 @@ void Android::Initialize() 0, nullptr ); + GetBattleContext()->Init(this); } } diff --git a/server/gameserver/battledatacontext.cc b/server/gameserver/battledatacontext.cc index bbfc2989..3ea2cbbd 100644 --- a/server/gameserver/battledatacontext.cc +++ b/server/gameserver/battledatacontext.cc @@ -397,7 +397,7 @@ void BattleDataContext::ForceInit(long long hero_uniid, } } -void BattleDataContext::Init() +void BattleDataContext::Init(Creature* c) { } diff --git a/server/gameserver/battledatacontext.h b/server/gameserver/battledatacontext.h index 8ee817bb..d8dd0ccc 100644 --- a/server/gameserver/battledatacontext.h +++ b/server/gameserver/battledatacontext.h @@ -1,5 +1,6 @@ #pragma once +#include "weakptr.h" /* 子弹命中逻辑 @@ -61,7 +62,7 @@ struct BattleDataContext MetaData::Equip* weapon1_meta, long long weapon2_uniid, MetaData::Equip* weapon2_meta); - void Init(); + void Init(Creature* c); private: void Clear(); @@ -79,6 +80,7 @@ private: std::shared_ptr GetWeaponByUniId(long long weapon_uniid); private: + CreatureWeakPtr owner_; std::shared_ptr hero_ability_; std::shared_ptr weapon1_ability_; diff --git a/server/gameserver/car.cc b/server/gameserver/car.cc index 4cf19938..e64c34e0 100644 --- a/server/gameserver/car.cc +++ b/server/gameserver/car.cc @@ -65,6 +65,7 @@ void Car::Initialize() 0, nullptr ); + GetBattleContext()->Init(this); } } diff --git a/server/gameserver/hero.cc b/server/gameserver/hero.cc index db6c62e0..d87e0d35 100644 --- a/server/gameserver/hero.cc +++ b/server/gameserver/hero.cc @@ -61,6 +61,7 @@ void Hero::Initialize() 0, nullptr ); + GetBattleContext()->Init(this); } } diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 15b25805..75456331 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -4084,7 +4084,9 @@ void Room::AddTeam(class MatchTeam* team) } hum->room = this; AddPlayer(hum, init_born_point, true); + hum->SetBattleContext(member->battle_context); + hum->GetBattleContext()->Init(hum); hum->ProcPrepareItems(msg.prepare_items()); hum->ProcPrepareItems2(msg.prepare_items2()); hum->ProcSkillList(msg.skill_list()); diff --git a/server/gameserver/roommgr.cc b/server/gameserver/roommgr.cc index 3aa9e317..722f35bb 100644 --- a/server/gameserver/roommgr.cc +++ b/server/gameserver/roommgr.cc @@ -202,6 +202,7 @@ void RoomMgr::_CMJoin(f8::MsgHdr& hdr, const cs::CMJoin& msg) hum->room = room; room->AddPlayer(hum); hum->SetBattleContext(results.at(0)); + hum->GetBattleContext()->Init(hum); hum->ProcPrepareItems(msg.prepare_items()); hum->ProcPrepareItems2(msg.prepare_items2()); hum->ProcSkillList(msg.skill_list());