public static void InitSpareIds() { spareActivityIds.Clear(); spareAchieveIds.Clear(); spareRewardIds.Clear(); for (int i = MinActivityID; i <= MaxActivityID; ++i) { spareActivityIds.Add(i); } for (int i = MinAchieveID; i <= MaxAchieveID; ++i) { foreach (int e in Enum.GetValues(typeof(mw.Enums.TaskType))) { if (e == (int)mw.Enums.TaskType.TASK_TYPE_MAIN || e == (int)mw.Enums.TaskType.TASK_TYPE_MYSTIC || e == (int)mw.Enums.TaskType.TASK_TYPE_GUILD || e == (int)mw.Enums.TaskType.TASK_TYPE_COMMON ) { continue; } uint id = CUtils.MakeLong((ushort)e, (ushort)i); spareAchieveIds.Add(id); } } for (int i = MinRewardID; i <= MaxRewardID; ++i) { spareRewardIds.Add(i); } }
public static bool RemoveActivityNode(int id) { if (!tableActivity.ContainsKey(id)) { return(false); } mw.ActivityConfig config = null; tableActivity.TryGetValue(id, out config); if (null == config) { return(false); } List <mw.AchieveConfig> listAchieve = GetAchieveConfigsByActivityId(id); foreach (var achieveConfig in listAchieve) { uint longid = CUtils.MakeLong((ushort)achieveConfig.type, (ushort)achieveConfig.id); RemoveAchieveNode(longid); } tableActivity.Remove(id); spareActivityIds.Add(id); config = null; m_isDirty = true; return(true); }
public static void AddAchieveNode(mw.AchieveConfig val) { uint id = CUtils.MakeLong((ushort)val.type, (ushort)val.id); if (tableAchieve.ContainsKey(id)) { tableAchieve[id] = val; } else { tableAchieve.Add(id, val); } if (val.id >= MinAchieveID && val.id <= MaxAchieveID) { spareAchieveIds.Remove(id); } m_isDirty = true; }
public static mw.AchieveConfig GetNewConfigAchieve(mw.Enums.TaskType type) { if (spareAchieveIds.Count == 0) { CErrMgr.SetLastErrMsg(EErrType.ERR_ACTIVITY_ACHIEVE_ID_MAX); return(null); } mw.AchieveConfig config = new mw.AchieveConfig(); for (int i = MinAchieveID; i <= MaxAchieveID; ++i) { uint id = CUtils.MakeLong((ushort)type, (ushort)i); if (spareAchieveIds.Contains(id)) { config.id = i; config.type = type; break; } } AddAchieveNode(config); return(config); }