/// <summary> /// 领取成就奖励 /// </summary> public void getReward(int id) { AchievementCompleteData cData = _d.completeDatas.get(id); if (cData == null) { me.warnLog("领取成就奖励时,找不到完成成就", id); return; } if (cData.hasGotReward) { me.warnLog("领取成就奖励时,已经领过", id); return; } AchievementConfig config = AchievementConfig.get(id); if (config.rewardID > 0) { if (!me.bag.hasRewardPlace(config.rewardID)) { me.warnLog("领取成就奖励时,背包空间不足", id); return; } } me.send(GetAchievementRewardRequest.create(id)); }
/// <summary> /// 检查并添加成就 /// </summary> protected void checkAndAccept(int id) { AchievementConfig config; if (checkCanAcceptAchievement(config = AchievementConfig.get(id))) { addRunningAchievement(config); } }
/// <summary> /// 完成成就,g层可复写 /// </summary> protected virtual void onAchievementComplete(int id) { if (CommonSetting.isClientDriveLogic) { AchievementConfig config = AchievementConfig.get(id); IntList list; if (!(list = config.afters).isEmpty()) { int[] values = list.getValues(); for (int i = 0, len = list.size(); i < len; ++i) { checkAndAccept(values[i]); } } } }