public DBAllianceTaskList GetAllianceActive(LodeManager _this, Alliance alliance) { DBAllianceTaskList task; if (false == _this.mDbData.ActivityInfo.AllianceTaskList.TryGetValue(alliance.AllianceId, out task)) { task = new DBAllianceTaskList(); task.Id = alliance.AllianceId; task.Name = alliance.Name; task.Score = 0; for (int i = 0; i < _this.mDbData.ActivityInfo.aTaskIDs.Count; i++) { DBAllianceTask tt = new DBAllianceTask(); var tab = Table.GetObjectTable(_this.mDbData.ActivityInfo.aTaskIDs[i]); if (tab == null) { continue; } tt.Id = tab.Id; tt.Need = tab.NeedCount; tt.Type = tab.EventType; task.TaskList.Add(tt.Id, tt); } _this.mDbData.ActivityInfo.AllianceTaskList.Add(alliance.AllianceId, task); } task.Level = alliance.Level; task.Fight = alliance.GetTotleFightPoint(); _this.bDirty = true; return(task); }
public void OnAllianceEvent(LodeManager _this, int allianceId, int EventType, int param = 1) { if (_this.mDbData.ActivityInfo.ActivityStatus == 0) { return; } var alliance = ServerAllianceManager.GetAllianceById(allianceId); if (alliance == null) { return; } bool bSend = false; DBAllianceTaskList db = GetAllianceActive(_this, alliance); for (int i = 0; i < _this.mDbData.ActivityInfo.aTaskIDs.Count; i++) { int id = _this.mDbData.ActivityInfo.aTaskIDs[i]; DBAllianceTask t; if (db.TaskList.TryGetValue(id, out t) == false) { continue; } if (t.Type == EventType && t.Count < t.Need) { t.Count += param; if (t.Count > t.Need) { t.Count = t.Need; } } if (t.Count >= t.Need) { bSend = true; } } if (EventType == eHoldFlag) { db.Flags++; } if (bSend == true) { foreach (var id in alliance.mDBData.Members) { TeamCharacterProxy Proxy; if (TeamServer.Instance.ServerControl.Proxys.TryGetValue(id, out Proxy)) { if (null != Proxy) { Proxy.SCNotifyAllianceActiveTask(_this.mDbData.ActivityInfo); } } } } }
public ErrorCodes CheckAllianceMission(LodeManager _this, Alliance alliance, int missionId) { DBAllianceTaskList task = GetAllianceActive(_this, alliance); DBAllianceTask t = null; if (false == task.TaskList.TryGetValue(missionId, out t)) { return(ErrorCodes.Error_MissionID); } if (t.Count < t.Need) { return(ErrorCodes.Error_ConditionNoEnough); } return(ErrorCodes.OK); }
public void OnAllianceAddScore(LodeManager _this, int allianceId, int add) { var alliance = ServerAllianceManager.GetAllianceById(allianceId); if (alliance == null) { return; } if (_this.mDbData.ActivityInfo.ActivityStatus == 1) {//活动数据 DBAllianceTaskList db = GetAllianceActive(_this, alliance); if (db == null) { return; } db.Score += add; } }