Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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;
            }
        }