From e7b8529238c784b098ae1efce1bf7c771d6903e6 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 28 Jul 2021 06:36:41 +0000 Subject: [PATCH] 1 --- server/gameserver/creature.cc | 13 +++++++++++++ server/gameserver/metadata.cc | 3 ++- server/gameserver/metadata.h | 2 +- server/gameserver/player.cc | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index a44fb79..7f95900 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -2070,6 +2070,7 @@ void Creature::SummonHero(Buff* buff, float y = std::get<2>(info) ; int hero_id = std::get<3>(info); int num = std::get<4>(info); + int life_time = std::get<5>(info); MetaData::Player* hero_meta = MetaMgr::Instance()->GetPlayer(hero_id); if (hero_meta) { for (int j = 0; j < num; ++j) { @@ -2086,6 +2087,18 @@ void Creature::SummonHero(Buff* buff, if (hero) { RemoveSurplusHero(buff->meta->i->buff_id(), hero_id, num); slave_heros_.push_back(std::make_tuple(buff->meta->i->buff_id(), hero)); + hero->room->xtimer.AddDeadLineTimerAndAttach + ( + life_time / FRAME_RATE_MS, + a8::XParams(), + [] (const a8::XParams& param) + { + }, + &hero->xtimer_attacher.timer_list_, + [] (const a8::XParams& param) + { + + }); break; } } diff --git a/server/gameserver/metadata.cc b/server/gameserver/metadata.cc index 535ee02..c97a13e 100644 --- a/server/gameserver/metadata.cc +++ b/server/gameserver/metadata.cc @@ -909,9 +909,10 @@ namespace MetaData float y = a8::XValue(strings2[2]).GetDouble(); int hero_id = a8::XValue(strings2[3]); int num = strings2.size() > 4 ? a8::XValue(strings2[4]).GetInt() : 10000; + int life_time = strings2.size() > 5 ? a8::XValue(strings2[5]).GetInt() : 1000; hero_infos.push_back ( - std::make_tuple(through_wall, x, y, hero_id, num) + std::make_tuple(through_wall, x, y, hero_id, num, life_time) ); } } diff --git a/server/gameserver/metadata.h b/server/gameserver/metadata.h index 9a0b8d7..6e0ea00 100644 --- a/server/gameserver/metadata.h +++ b/server/gameserver/metadata.h @@ -221,7 +221,7 @@ namespace MetaData std::vector>>> batch_add_list; std::vector>> post_remove_action; std::set immune_buffeffect; - std::vector> hero_infos; + std::vector> hero_infos; std::set tags; std::vector child_buff_list; diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 81aa03d..05ec4a3 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1151,7 +1151,7 @@ void Player::_CMMove(f8::MsgHdr& hdr, const cs::CMMove& msg) get_on = msg.get_on(); } if (msg.has_switch_seat()) { - switch_seat = msg.has_switch_seat() + 1; + switch_seat = msg.switch_seat() + 1; } if (msg.has_jump()) { jump = true;