Esempio n. 1
0
    //领取邮件
    public void ReceiveMail()
    {
        var data = DataModel.SelectData;

        if (data.Id == 0)
        {
            return;
        }
        if (data.IsReceive == 1)
        {
            //邮件已经领取
            var e = new ShowUIHintBoard(3200001);
            EventDispatcher.Instance.DispatchEvent(e);
            return;
        }
        if (data.IsAttach == false)
        {
            EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(419));
            return;
        }
        var mials = new Uint64Array();

        mials.Items.Add(data.Id);
        NetManager.Instance.StartCoroutine(ReceiveMailsCoroutine(mials));
    }
Esempio n. 2
0
        private void CheckOneMail()
        {
            var _data = DataModel.SelectData;

            if (null == _data.Name)
            {
                EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(422));
                return;
            }
            var _isAttach = false;
            var _onemial  = new Uint64Array();

            _onemial.Items.Add(_data.Id);
            if (_onemial.Items.Count == 0)
            {
                EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(422));
                return;
            }
            if (_isAttach)
            {
                UIManager.Instance.ShowMessage(MessageBoxType.OkCancel, 417, "", DeleteOneMail);
                return;
            }
            DeleteOneMail();
        }
Esempio n. 3
0
    public void DeleteObj(Uint64Array objs, uint reason)
    {
        {
            var __list2      = objs.Items;
            var __listCount2 = __list2.Count;
            for (var __i2 = 0; __i2 < __listCount2; ++__i2)
            {
                var id = __list2[__i2];
                {
                    if (reason == (uint)ReasonType.Dead)
                    {
                        var obj = ObjManager.Instance.FindCharacterById(id);
                        if (obj == null)
                        {
                            continue;
                        }
                        if (obj.Dead && obj.DeleteObjTime > Time.time)
                        {
                            obj.DelayPlayFadeOutAnimationAndRemove(obj.DeleteObjTime - Time.time);
                        }
                        else
                        {
                            obj.PlayFadeOutAnimationAndRemove();
                        }
                        continue;
                    }

                    ObjManager.Instance.RemoveObj(id);
                }
            }
        }
    }
Esempio n. 4
0
        public void CreateCharacter(int serverId, ulong characterId, PlayerController _this)
        {
            Uint64Array tempList;

            if (!_this.DbData.ServersPlayers.TryGetValue(serverId, out tempList))
            {
                tempList = new Uint64Array();
                _this.DbData.ServersPlayers[serverId] = tempList;
            }
            tempList.Items.Add(characterId);
        }
Esempio n. 5
0
        private void DeleteOneMail()
        {
            var _data = DataModel.SelectData;

            if (null == _data.Name)
            {
                return;
            }
            var _onemial = new Uint64Array();

            _onemial.Items.Add(_data.Id);
            if (_onemial.Items.Count == 0)
            {
                return;
            }
            NetManager.Instance.StartCoroutine(CheckMailsCoroutine(_onemial));
        }
Esempio n. 6
0
        public override IEnumerator CloseDungeon(Coroutine co)
        {
            Log(Logger, "CloseDungeon");

            var playerIds = new Uint64Array();

            playerIds.Items.AddRange(mPlayers.Keys);
            if (this.dicGetRewardPlayers.ContainsKey(playerIds.Items[0]) == false)
            {
                var msg = SceneServer.Instance.LogicAgent.NotifyDungeonClose(playerIds.Items[0], TypeId, playerIds);
                yield return(msg.SendAndWaitUntilDone(co));
            }
            var co1 = CoroutineFactory.NewSubroutine(base.CloseDungeon, co);

            if (co1.MoveNext())
            {
                yield return(co1);
            }
        }
Esempio n. 7
0
        public virtual IEnumerator CloseDungeon(Coroutine coroutine, DungeonScene _this)
        {
            _this.State = eDungeonState.Closing;

            //通知broke,我已经要关闭了
            var msg = SceneServer.Instance.SceneAgent.NotifySceneFinished(0, _this.Guid);

            yield return(msg.SendAndWaitUntilDone(coroutine));

            var playerIds = new Uint64Array();

            playerIds.Items.AddRange(_this.mPlayerDict.Keys);
            if (playerIds.Items.Count > 0 && _this.dicGetRewardPlayers.ContainsKey(playerIds.Items[0]) == false)
            {
                var msg2 = SceneServer.Instance.LogicAgent.NotifyDungeonClose(playerIds.Items[0], _this.TypeId, playerIds);
                yield return(msg2.SendAndWaitUntilDone(coroutine));
            }
            //把玩家都踢出去
            var array = _this.mPlayerDict.Values.ToArray();

            foreach (var player in array)
            {
                var co = CoroutineFactory.NewSubroutine(player.ExitDungeon, coroutine);
                if (co.MoveNext())
                {
                    yield return(co);
                }
            }

            //关闭副本
            {
                var co = CoroutineFactory.NewSubroutine(_this.TryDeleteScene, coroutine, RemoveScene.SceneClose);
                if (co.MoveNext())
                {
                    yield return(co);
                }
            }
        }
Esempio n. 8
0
        //角色删除广播
        public virtual void BroadcastDestroyMe(ObjBase _this, ReasonType reason = ReasonType.VisibilityChanged)
        {
            if (null == _this.Zone)
            {
                return;
            }
            if (ObjBase.BroadcastDeleteObjType == 1)
            {
                _this.Zone.PushDeleteObj(new DeleteObjMsg
                {
                    ObjId  = _this.ObjId,
                    reason = (int)reason
                });
                return;
            }
            var array = new Uint64Array();

            array.Items.Add(_this.ObjId);
            var list = _this.EnumAllVisiblePlayerIdExclude(_this.ObjId).ToArray();

            _this.NotifyCharactersToStopSyncMe(list);
            SceneServer.Instance.ServerControl.DeleteObj(list, array, (uint)reason);
        }
Esempio n. 9
0
    //批量领取邮件
    public void ReceiveMails()
    {
        var mials   = new Uint64Array();
        var isCheck = false;

        {
            // foreach(var cell in DataModel.MailCells)
            var __enumerator6 = (DataModel.MailCells).GetEnumerator();
            while (__enumerator6.MoveNext())
            {
                var cell = __enumerator6.Current;
                {
                    if (cell.IsSelect)
                    {
                        isCheck = true;
                        if (cell.IsAttach)
                        {
                            mials.Items.Add(cell.Id);
                        }
                    }
                }
            }
        }

        if (isCheck == false)
        {
            EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(421));
            return;
        }
        if (mials.Items.Count == 0)
        {
            EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(419));
            return;
        }
        NetManager.Instance.StartCoroutine(ReceiveMailsCoroutine(mials));
    }
Esempio n. 10
0
    //删除邮件
    public void DelectMailsConfirm()
    {
        var mials = new Uint64Array();

        {
            // foreach(var cell in DataModel.MailCells)
            var __enumerator8 = (DataModel.MailCells).GetEnumerator();
            while (__enumerator8.MoveNext())
            {
                var cell = __enumerator8.Current;
                {
                    if (cell.IsSelect)
                    {
                        mials.Items.Add(cell.Id);
                    }
                }
            }
        }
        if (mials.Items.Count == 0)
        {
            return;
        }
        NetManager.Instance.StartCoroutine(DelectMailsCoroutine(mials));
    }
Esempio n. 11
0
    //查看邮件
    public void DelectMails()
    {
        var isAttach = false;
        var mials    = new Uint64Array();

        {
            // foreach(var cell in DataModel.MailCells)
            var __enumerator7 = (DataModel.MailCells).GetEnumerator();
            while (__enumerator7.MoveNext())
            {
                var cell = __enumerator7.Current;
                {
                    if (cell.IsSelect)
                    {
                        mials.Items.Add(cell.Id);
                        if (cell.IsAttach)
                        {
                            isAttach = true;
                        }
                    }
                }
            }
        }
        if (mials.Items.Count == 0)
        {
            EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(422));
            return;
        }

        if (isAttach)
        {
            UIManager.Instance.ShowMessage(MessageBoxType.OkCancel, 417, "", DelectMailsConfirm);
            return;
        }
        DelectMailsConfirm();
    }
Esempio n. 12
0
        //删除邮件
        private void DeleteMails()
        {
            var _mials = new Uint64Array();

            {
                // foreach(var cell in DataModel.MailCells)
                var __enumerator8 = (DataModel.MailCells).GetEnumerator();
                while (__enumerator8.MoveNext())
                {
                    var _cell = __enumerator8.Current;
                    {
                        if (_cell.IsSelect)
                        {
                            _mials.Items.Add(_cell.Id);
                        }
                    }
                }
            }
            if (_mials.Items.Count == 0)
            {
                return;
            }
            NetManager.Instance.StartCoroutine(CheckMailsCoroutine(_mials));
        }
Esempio n. 13
0
    //领取邮件
    public IEnumerator ReceiveMailsCoroutine(Uint64Array mails)
    {
        using (new BlockingLayerHelper(0))
        {
            var msg = NetManager.Instance.ReceiveMail(mails);
            yield return(msg.SendAndWaitUntilDone());

            if (msg.State == MessageState.Reply)
            {
                if (msg.ErrorCode == (int)ErrorCodes.OK)
                {
                    //DataModel.IsSelectAll = false;
                    var receieve = msg.Response;
                    if (receieve == 0)
                    {
                        //您包裹已满!
                        var e = new ShowUIHintBoard(302);
                        EventDispatcher.Instance.DispatchEvent(e);
                        yield break;
                    }
                    if (mails.Items.Count == receieve)
                    {
                        EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(420));
                    }
                    else
                    {
                        //背包已满,不能领取全部邮件
                        GameUtils.ShowHintTip(3200006);
                    }

                    for (var i = 0; i < receieve; i++)
                    {
                        var id   = mails.Items[i];
                        var data = GetMailCellData(id);
                        data.State = 2;
                        if (data.IsApply)
                        {
                            {
                                // foreach(var item in data.InfoData.Items)
                                var __enumerator10 = (data.InfoData.Items).GetEnumerator();
                                while (__enumerator10.MoveNext())
                                {
                                    var item = __enumerator10.Current;
                                    {
                                        item.ItemId = -1;
                                        item.Count  = 0;
                                    }
                                }
                            }
                        }
                        PlatformHelper.UMEvent("Mail", "GetItem", data.Name);
                    }
                    AnalyseNotice();
                }
                else if (msg.ErrorCode == (int)ErrorCodes.Error_MailNotFind ||
                         msg.ErrorCode == (int)ErrorCodes.Error_MailReceiveOver)
                {
                    //邮件没有找到
                    var e = new ShowUIHintBoard(msg.ErrorCode + 200000000);
                    EventDispatcher.Instance.DispatchEvent(e);
                }
                else
                {
                    var e = new ShowUIHintBoard(msg.ErrorCode + 200000000);
                    EventDispatcher.Instance.DispatchEvent(e);
                    Logger.Error("ReceiveMail Error!............ErrorCode..." + msg.ErrorCode);
                }
            }
            else
            {
                Logger.Error("ReceiveMail Error!............State..." + msg.State);
            }
        }
    }
Esempio n. 14
0
    //查看邮件
    public IEnumerator DelectMailsCoroutine(Uint64Array mails)
    {
        using (new BlockingLayerHelper(0))
        {
            var msg = NetManager.Instance.DeleteMail(mails);
            yield return(msg.SendAndWaitUntilDone());

            if (msg.State == MessageState.Reply)
            {
                if (msg.ErrorCode == (int)ErrorCodes.OK)
                {
                    EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(418));
                    {
                        var mailList    = new List <MailCellData>(DataModel.MailCells.ToArray());
                        var list11      = mails.Items;
                        var listCount11 = list11.Count;
                        var isReset     = false;

                        for (var i11 = 0; i11 < listCount11; ++i11)
                        {
                            var mail = list11[i11];
                            {
                                var data = GetMailCellData(mail);

                                PlatformHelper.UMEvent("Mail", "Delete", data.Name);

                                if (data == DataModel.SelectData)
                                {
                                    isReset = true;
                                }
                                data.Id = 0;
                                mailList.Remove(data);

                                DataModel.IsSelectAll = false;
                            }
                        }
                        DataModel.MailCells = new ObservableCollection <MailCellData>(mailList);
                        DataModel.CellCount = DataModel.MailCells.Count;
                        if (isReset && DataModel.CellCount > 0)
                        {
                            OnApplyMail(0);
                        }
                        else
                        {
                            ResetSelectMailInfo();
                        }
                    }

                    AnalyseNotice();
                }
                else
                {
                    UIManager.Instance.ShowNetError(msg.ErrorCode);
                    Logger.Error("ReceiveMail Error!............ErrorCode..." + msg.ErrorCode);
                }
            }
            else
            {
                Logger.Error("ReceiveMail Error!............State..." + msg.State);
            }
        }
    }
Esempio n. 15
0
        //查看邮件
        private IEnumerator CheckMailsCoroutine(Uint64Array mails)
        {
            using (new BlockingLayerHelper(0))
            {
                var _msg = NetManager.Instance.DeleteMail(mails);
                yield return(_msg.SendAndWaitUntilDone());

                if (_msg.State == MessageState.Reply)
                {
                    if (_msg.ErrorCode == (int)ErrorCodes.OK)
                    {
                        EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(418));
                        {
                            var _mailList    = new List <MailCellData>(MailCells.ToArray());
                            var _list11      = mails.Items;
                            var _listCount11 = _list11.Count;
                            var _isReset     = false;

                            for (var _i11 = 0; _i11 < _listCount11; ++_i11)
                            {
                                var _mail = _list11[_i11];
                                {
                                    var _data = GetMailCellData(_mail);

                                    PlatformHelper.UMEvent("Mail", "Delete", _data.Name);

                                    if (_data == DataModel.SelectData)
                                    {
                                        _isReset = true;
                                    }
                                    _data.Id = 0;
                                    _mailList.Remove(_data);

                                    DataModel.IsSelectAll = false;
                                }
                            }
                            isShowOldMailNothing = false;
                            MailCells            = new ObservableCollection <MailCellData>(_mailList);
                            CellCount            = MailCells.Count;

                            if (_isReset && CellCount > 0)
                            {
                                RequestMailData(0);
                            }
                            else
                            {
                                ResetChooseMailData();
                            }
                        }

                        RenewalNotice();
                    }
                    else
                    {
                        UIManager.Instance.ShowNetError(_msg.ErrorCode);
                        Logger.Error("ReceiveMail Error!............ErrorCode..." + _msg.ErrorCode);
                    }
                }
                else
                {
                    Logger.Error("ReceiveMail Error!............State..." + _msg.State);
                }
            }
        }