diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index 9d76a6ca..956256d5 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -96,7 +96,7 @@ void Buff::ProcBatchAddBuff() if (rnd < std::get<1>(items[0])){ MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(std::get<0>(items[0])); if (buff_meta) { - owner->AddBuff(caster_.Get(), buff_meta, 1, nullptr); + owner->AddBuff(caster_.Get(), buff_meta, nullptr); } } } else { @@ -106,7 +106,7 @@ void Buff::ProcBatchAddBuff() if (rnd <= std::get<1>(item)) { MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(std::get<0>(item)); if (buff_meta) { - owner->AddBuff(caster_.Get(), buff_meta, 1, nullptr); + owner->AddBuff(caster_.Get(), buff_meta, nullptr); } break; } @@ -145,7 +145,7 @@ void Buff::InternalTimerAddBuff() caster.Get()->FillSkillCasterState(&old_caster_state); caster.Get()->RecoverSkillCasterState(caster_state); //!!!在AddBuff的过程可能删除buff导致caster_state野指针 - receiver->AddBuff(caster.Get(), buff_meta, 1, skill); + receiver->AddBuff(caster.Get(), buff_meta, skill); caster.Get()->RecoverSkillCasterState(&old_caster_state); } diff --git a/server/gameserver/buff.h b/server/gameserver/buff.h index 2b720f7b..84cb3c8c 100644 --- a/server/gameserver/buff.h +++ b/server/gameserver/buff.h @@ -36,7 +36,6 @@ class Buff MetaData::Skill* skill_meta = nullptr; a8::XTimerAttacher xtimer_attacher; long long add_frameno = 0; - int skill_lv = 0; list_head effect_entry; list_head depend_entry; list_head cond_entry; diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index 025d8661..57edeb71 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -710,8 +710,7 @@ void Bullet::AddGunBuff() MetaData::Buff * buff_meta = MetaMgr::Instance()->GetBuff(gun_meta->i->buffid()); if (buff_meta) { sender.Get()->AddBuff(sender.Get(), - buff_meta, - 1 + buff_meta ); } sender.Get()->context_dir = old_context_dir; diff --git a/server/gameserver/car.cc b/server/gameserver/car.cc index 92673e3f..59b0f1f7 100644 --- a/server/gameserver/car.cc +++ b/server/gameserver/car.cc @@ -199,7 +199,7 @@ void Car::GetOn(Human* passenger) MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff (driver_ == passenger ? DRIVER_BUFFID : PASSENGER_BUFFID); if (buff_meta) { - passenger->AddBuff(passenger, buff_meta, 1); + passenger->AddBuff(passenger, buff_meta); } } if (meta->i->buffid() != 0) { diff --git a/server/gameserver/constant.h b/server/gameserver/constant.h index cc25131b..53d6f50f 100644 --- a/server/gameserver/constant.h +++ b/server/gameserver/constant.h @@ -472,6 +472,21 @@ enum BulletBornOffsetIdx_e kBulletBornOffsetRecoilForce = 4, }; +enum MagicType_e +{ + MAGIC_NONE = 0, + MAGIC_AXXF = 1, //20101 爱心香风 + MAGIC_SJYDHX = 2, //20701 瞬间移动回血 + MAGIC_HLYZ = 3, //20801 火力压制 + MAGIC_YMCZ = 4, //20901 野蛮冲撞 + MAGIC_LDFY = 5, //21001 立盾防御 + MAGIC_HJHX = 6, //20201 火箭浣熊 + MAGIC_FG = 7, //20401 飞勾 + MAGIC_WLFB = 8, //20601 威力翻倍 + MAGIC_YLZ = 9, //20301 医疗站 + MAGIC_YS = 10, //20501 隐身 +}; + const char* const PROJ_NAME_FMT = "game%d_gameserver"; const char* const PROJ_ROOT_FMT = "/data/logs/%s"; diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 9a2df34b..bb171ca9 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -156,8 +156,7 @@ void InternalShot(Creature* c, MetaData::Buff * buff_meta = MetaMgr::Instance()->GetBuff(bullet_meta->i->buffid()); if (buff_meta) { c->AddBuff(c, - buff_meta, - 1 + buff_meta ); } c->context_dir = old_context_dir; @@ -363,7 +362,6 @@ int Creature::GetBuffNum(int buff_id) int Creature::AddBuff(Creature* caster, MetaData::Buff* buff_meta, - int skill_lv, MetaData::Skill* buff_skill_meta, bool no_check_immune) { @@ -423,7 +421,6 @@ int Creature::AddBuff(Creature* caster, Buff* buff = &a8::FastAppend(buff_list_); buff->buff_uniid = new_buff_uniid; buff->SetCaster(caster); - buff->skill_lv = skill_lv; buff->owner = this; buff->meta = buff_meta; buff->skill_meta = buff_skill_meta; @@ -484,7 +481,7 @@ int Creature::AddBuff(Creature* caster, for (int child_buff_id : buff->meta->child_buff_list) { MetaData::Buff* child_buff_meta = MetaMgr::Instance()->GetBuff(child_buff_id); if (child_buff_meta) { - AddBuff(caster, child_buff_meta, skill_lv, buff_skill_meta, true); + AddBuff(caster, child_buff_meta, buff_skill_meta, true); } } } @@ -507,14 +504,14 @@ int Creature::MustBeAddBuff(Creature* caster, int buff_id) if (!buff_meta) { A8_ABORT(); } - return AddBuff(caster, buff_meta, 1); + return AddBuff(caster, buff_meta); } int Creature::TryAddBuff(Creature* caster, int buff_id) { MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id); if (buff_meta) { - return AddBuff(caster, buff_meta, 1); + return AddBuff(caster, buff_meta); } return -1; } @@ -868,21 +865,21 @@ void Creature::TriggerOneObjectBuff(Skill* skill, Creature* target, BuffTriggerT case kBuffTargetSelf: //自己 { if (target == this) { - target->AddBuff(this, buff_meta, 1, skill->meta); + target->AddBuff(this, buff_meta, skill->meta); } } break; case kBuffTargetFriendly: //友军 { if (target->team_id == team_id) { - target->AddBuff(this, buff_meta, 1, skill->meta); + target->AddBuff(this, buff_meta, skill->meta); } } break; case kBuffTargetEnemy: //敌军 { if (target->team_id != team_id) { - target->AddBuff(this, buff_meta, 1, skill->meta); + target->AddBuff(this, buff_meta, skill->meta); } } break; @@ -3270,7 +3267,7 @@ void Creature::_UpdateSpecMove() if (buff) { MetaData::Buff* new_buff = MetaMgr::Instance()->GetBuff(1039); if (new_buff) { - AddBuff(this, new_buff, 1); + AddBuff(this, new_buff); } RemoveBuffByEffectId(kBET_BePull); } diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index 32a1ce87..f6592976 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -127,7 +127,6 @@ class Creature : public MoveableEntity int GetBuffNum(int buff_id); int AddBuff(Creature* caster, MetaData::Buff* buff_meta, - int skill_lv, MetaData::Skill* buff_skill_meta = nullptr, bool no_check_immune = false); bool IsImmuneBuffEffect(int buff_effect); diff --git a/server/gameserver/metadata.cc b/server/gameserver/metadata.cc index 78caa947..32f4cba7 100644 --- a/server/gameserver/metadata.cc +++ b/server/gameserver/metadata.cc @@ -1028,6 +1028,11 @@ namespace MetaData } } + int Skill::GetMagicId() + { + return MAGIC_NONE; + } + bool Skill::IsTurnOverSkill() { return !phases.empty() && phases[0].func_id == kSkill_TurnOver; diff --git a/server/gameserver/metadata.h b/server/gameserver/metadata.h index a371d993..11dbde14 100644 --- a/server/gameserver/metadata.h +++ b/server/gameserver/metadata.h @@ -283,6 +283,7 @@ namespace MetaData std::map> trigger_type_buffs; std::vector phases; bool IsTurnOverSkill(); + int GetMagicId(); }; struct SkillNumber diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index dcf92e24..09fabfdc 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -2374,7 +2374,6 @@ void Room::NotifyGameStart() #if 0 pair.second->AddBuff(pair.second, buff_meta, - 1, nullptr); #endif } @@ -3094,7 +3093,7 @@ void Room::AddPlayerPostProc(Player* hum) for (int buff_id : MetaMgr::Instance()->newbie_buff_list) { MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id); if (buff_meta) { - hum->AddBuff(hum, buff_meta, 1); + hum->AddBuff(hum, buff_meta); } } if (room_type_ == RT_MidBrid) { diff --git a/server/gameserver/roomobstacle.cc b/server/gameserver/roomobstacle.cc index ba5fc331..caa6a19e 100644 --- a/server/gameserver/roomobstacle.cc +++ b/server/gameserver/roomobstacle.cc @@ -198,8 +198,8 @@ void RoomObstacle::UpdateTimerFunc() MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id); if (buff_meta) { hum->AddBuff(master.Get(), - buff_meta, - 1); + buff_meta + ); } } } @@ -261,8 +261,8 @@ void RoomObstacle::SpecExplosion() MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id); if (buff_meta) { c->AddBuff(master.Get(), - buff_meta, - 1); + buff_meta + ); } } } @@ -660,8 +660,8 @@ void RoomObstacle::ProcKeepRangeBuff() MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(buff_id); if (buff_meta && hum->GetBuffById(buff_id)) { hum->AddBuff(master.Get(), - buff_meta, - 1); + buff_meta + ); } } if (hit_objects_->find(hum->GetUniId()) == hit_objects_->end()) { diff --git a/server/gameserver/skill.h b/server/gameserver/skill.h index 6949ce27..01c116b5 100644 --- a/server/gameserver/skill.h +++ b/server/gameserver/skill.h @@ -16,21 +16,6 @@ enum SkillMinorType SMT_BLINK = 1, }; -enum MagicType_e -{ - MAGIC_NONE = 0, - MAGIC_AXXF = 1, //20101 爱心香风 - MAGIC_SJYDHX = 2, //20701 瞬间移动回血 - MAGIC_HLYZ = 3, //20801 火力压制 - MAGIC_YMCZ = 4, //20901 野蛮冲撞 - MAGIC_LDFY = 5, //21001 立盾防御 - MAGIC_HJHX = 6, //20201 火箭浣熊 - MAGIC_FG = 7, //20401 飞勾 - MAGIC_WLFB = 8, //20601 威力翻倍 - MAGIC_YLZ = 9, //20301 医疗站 - MAGIC_YS = 10, //20501 隐身 -}; - struct xtimer_list; class Creature; class Skill diff --git a/server/gameserver/smoke_mitask.cc b/server/gameserver/smoke_mitask.cc index a389523f..69082bf1 100644 --- a/server/gameserver/smoke_mitask.cc +++ b/server/gameserver/smoke_mitask.cc @@ -25,7 +25,7 @@ void SmokeMiTask::Check() { if (bomb_pos.Distance(hum->GetPos()) < gun_meta->i->bullet_rad() + hum->meta->i->radius()) { if (!hum->HasBuffEffect(kBET_HunLuan)) { - hum->AddBuff(nullptr, buff_meta, 1, nullptr); + hum->AddBuff(nullptr, buff_meta, nullptr); player_set.insert(hum); } }