diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 084fd8f2..00b1dde0 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -130,6 +130,22 @@ void PlayerStats::CalcReward(Human* hum, int ranked, int kills) over_reward.weapon1.obtain_gold = over_reward.weapon1.gold_limit - new_gold; } } + if (hum->weapon_dto2) { + MetaData::GunQuality* quality_meta = MetaMgr::Instance()->GetGunQuality + (hum->weapon_dto2->Get("quality", 1)); + if (quality_meta){ + int gold_limit = quality_meta->i->gold_limit(); + int gold_lucky = 0; + if (hum->weapon_dto2->HasKey("attr")) { + gold_lucky = GetAttrAbsFromXObject(hum->weapon_dto2->At("attr"), kHAT_LUCKY); + } + int new_gold = std::min(gold_limit, + hum->weapon_dto2->Get("today_get_gold", 0).GetInt() + add_gold); + over_reward.weapon2.uniid = hum->weapon_dto2->Get("gun_uniid", "").GetString(); + over_reward.weapon2.gold_limit = gold_limit + gold_lucky; + over_reward.weapon2.obtain_gold = over_reward.weapon2.gold_limit - new_gold; + } + } } }