This commit is contained in:
aozhiwei 2023-01-03 14:38:43 +08:00
parent 9f8062dd6f
commit ec0d3ffb8f
5 changed files with 22 additions and 14 deletions

View File

@ -1566,7 +1566,7 @@ void Creature::SummonObstacle(Buff* buff, int id, const Position& target_pos)
break; break;
} }
} }
RoomObstacle* obstacle = room->CreateObstacle(id, pos.x, pos.y); RoomObstacle* obstacle = room->CreateObstacle(id, pos.x, pos.y, pos.z);
if (obstacle) { if (obstacle) {
obstacle->buff_meta = buff->meta; obstacle->buff_meta = buff->meta;
obstacle->skill_meta = buff->skill_meta; obstacle->skill_meta = buff->skill_meta;
@ -2058,7 +2058,8 @@ Hero* Creature::InternalSummonHero(Buff* buff, const mt::Hero* hero_meta, glm::v
( (
std::get<0>(tuple), std::get<0>(tuple),
born_pos.x, born_pos.x,
born_pos.y born_pos.y,
born_pos.z
); );
if (obstacle) { if (obstacle) {
obstacle->DestoryAt(std::get<1>(tuple)); obstacle->DestoryAt(std::get<1>(tuple));

View File

@ -164,7 +164,8 @@ void Obstacle::OnBulletHit(IBullet* bullet)
( (
meta->_int_param1, meta->_int_param1,
GetPos().x, GetPos().x,
GetPos().y GetPos().y,
GetPos().z
); );
} }
} }
@ -179,7 +180,8 @@ void Obstacle::OnBulletHit(IBullet* bullet)
( (
bomb_meta->thing_id(), bomb_meta->thing_id(),
GetPos().x, GetPos().x,
GetPos().y GetPos().y,
GetPos().z
); );
} }
} }
@ -231,7 +233,8 @@ void Obstacle::OnExplosionHit(Explosion* e)
( (
bomb_meta->thing_id(), bomb_meta->thing_id(),
GetPos().x, GetPos().x,
GetPos().y GetPos().y,
GetPos().z
); );
} }
} }

View File

@ -495,9 +495,9 @@ void Room::DropItemEx(Position born_pos, Position pos, int item_id, int item_cou
} }
} }
RoomObstacle* Room::CreateObstacle(int id, float x, float y) RoomObstacle* Room::CreateObstacle(int id, float x, float y, float z)
{ {
RoomObstacle* entity = InternalCreateObstacle(id, x, y, RoomObstacle* entity = InternalCreateObstacle(id, x, y, z,
[] (Obstacle*) [] (Obstacle*)
{ {
}); });
@ -1759,7 +1759,7 @@ void Room::ShuaPlane()
} }
} }
RoomObstacle* Room::InternalCreateObstacle(int id, float x, float y, RoomObstacle* Room::InternalCreateObstacle(int id, float x, float y, float z,
std::function<void (Obstacle*)> on_precreate) std::function<void (Obstacle*)> on_precreate)
{ {
const mt::MapThing* thing = mt::MapThing::GetById(id); const mt::MapThing* thing = mt::MapThing::GetById(id);
@ -1770,7 +1770,8 @@ RoomObstacle* Room::InternalCreateObstacle(int id, float x, float y,
{ {
Position pos; Position pos;
pos.x = x; pos.x = x;
pos.z = y; pos.y = y;
pos.z = z;
entity->SetPos(pos); entity->SetPos(pos);
} }
entity->Initialize(); entity->Initialize();
@ -3387,7 +3388,8 @@ void Room::AirRaid(int airraid_id)
( (
bomb_id, bomb_id,
pos.x, pos.x,
pos.y pos.y,
pos.z
); );
obstacle->Active(); obstacle->Active();
} }

View File

@ -199,7 +199,7 @@ public:
void NotifyCountdown(const std::string& msg, int time); void NotifyCountdown(const std::string& msg, int time);
void NotifySysPiao(const std::string& msg, int color, int duration); void NotifySysPiao(const std::string& msg, int color, int duration);
int GetOnlinePlayerNum(); int GetOnlinePlayerNum();
RoomObstacle* CreateObstacle(int id, float x, float y); RoomObstacle* CreateObstacle(int id, float x, float y, float z);
int AllocUniid(); int AllocUniid();
Incubator* GetIncubator() { return incubator_;}; Incubator* GetIncubator() { return incubator_;};
void ShuaMon(const glm::vec3& center, std::vector<int>& airdrop_mon_list, float radius); void ShuaMon(const glm::vec3& center, std::vector<int>& airdrop_mon_list, float radius);
@ -230,7 +230,7 @@ private:
void AirRaid(int airraid_id); void AirRaid(int airraid_id);
void ShuaPlane(); void ShuaPlane();
Team* NewTeam(); Team* NewTeam();
RoomObstacle* InternalCreateObstacle(int id, float x, float y, RoomObstacle* InternalCreateObstacle(int id, float x, float y, float z,
std::function<void (Obstacle*)> on_precreate); std::function<void (Obstacle*)> on_precreate);
void AddObjectLater(RoomEntity* entity); void AddObjectLater(RoomEntity* entity);
void OnGameOver(); void OnGameOver();

View File

@ -506,7 +506,8 @@ void RoomObstacle::SummonAirDropBox(int box_id)
( (
box_id, box_id,
born_pos.x, born_pos.x,
born_pos.y born_pos.y,
born_pos.z
); );
if (obstacle) { if (obstacle) {
obstacle->PushCollisionObjects(); obstacle->PushCollisionObjects();
@ -692,7 +693,8 @@ void RoomObstacle::InstallPreExplostionSummonTimer()
( (
obstacle_id, obstacle_id,
pos.x, pos.x,
pos.y pos.y,
pos.z
); );
if (p) { if (p) {
p->Active(); p->Active();