diff --git a/server/gameserver/framemaker.cc b/server/gameserver/framemaker.cc index 7847c1a..d68f103 100644 --- a/server/gameserver/framemaker.cc +++ b/server/gameserver/framemaker.cc @@ -73,41 +73,55 @@ cs::SMUpdate* FrameMaker::MakeUpdateMsg(const Human* hum) p->add_values(std::get<1>(room->frame_event.dead_objs_[idx])); } } + for (size_t idx : hum->chged_buffs_) { + if (idx < room->frame_event.chged_buffs_.size()) { + auto p = msg->add_chged_buff_list(); + *p = std::get<1>(room->frame_event.chged_buffs_[idx]); + } + } for (size_t idx : hum->chged_hps_) { if (idx < room->frame_event.chged_hps_.size()) { + Human* target = room->frame_event.chged_hps_[idx]; { auto p = msg->add_chged_property_list(); + p->set_obj_id(target->entity_uniid); p->set_property_type(kPropHp); - p->set_value(room->frame_event.chged_hps_[idx]->GetHP()); + p->set_value(target->GetHP()); } { auto p = msg->add_chged_property_list(); + p->set_obj_id(target->entity_uniid); p->set_property_type(kPropMaxHp); - p->set_value(room->frame_event.chged_hps_[idx]->GetMaxHP()); + p->set_value(target->GetMaxHP()); } } } for (size_t idx : hum->chged_inventorys_) { if (idx < room->frame_event.chged_inventorys_.size()) { + Human* target = room->frame_event.chged_inventorys_[idx]; { auto p = msg->add_chged_property_list(); + p->set_obj_id(target->entity_uniid); p->set_property_type(kPropInventory); p->set_property_subtype(kWEAPON_SLOT); - p->set_value(room->frame_event.chged_inventorys_[idx]->GetInventory(kWEAPON_SLOT)); + p->set_value(target->GetInventory(kWEAPON_SLOT)); } } } for (size_t idx : hum->chged_skillcds_) { if (idx < room->frame_event.chged_skillcds_.size()) { + Human* target = room->frame_event.chged_skillcds_[idx]; { auto p = msg->add_chged_property_list(); + p->set_obj_id(target->entity_uniid); p->set_property_type(kPropSkillLeftTime); - p->set_value(room->frame_event.chged_skillcds_[idx]->GetSkillLeftTime()); + p->set_value(target->GetSkillLeftTime()); } { auto p = msg->add_chged_property_list(); + p->set_obj_id(target->entity_uniid); p->set_property_type(kPropSkillCd); - p->set_value(room->frame_event.chged_skillcds_[idx]->GetSkillCd()); + p->set_value(target->GetSkillCd()); } } }