Esempio n. 1
0
        //-------------------------------------------------------------------------
        // 客户端断开连接
        public async Task c2sClientDeattach()
        {
            EbLog.Note("CellPlayer.c2sClientDeattach() EtGuid=" + Entity.Guid);

            CachePlayerData.player_server_state = PlayerServerState.Offline;

            // 通知PlayerProxy,玩家离线
            var grain             = Entity.getUserData <GrainCellPlayer>();
            var grain_playerproxy = grain.GF.GetGrain <ICellPlayerProxy>(new Guid(Entity.Guid));

            grain_playerproxy.s2sPlayerServerStateChange(CachePlayerData.player_server_state);

            string data = EbTool.jsonSerialize(CachePlayerData);
            //DbClientCouchbase.Instance.asyncSave(CachePlayerKey, data, TimeSpan.FromSeconds(15.0));

            await CoPlayerDesktop.leaveDesktop();
        }
Esempio n. 2
0
        //-------------------------------------------------------------------------
        void s2cPlayerResponse(PlayerResponse player_response)
        {
            switch (player_response.id)
            {
            case PlayerResponseId.CreatePrivateDesktop:    // 创建私有桌子
            {
                EbLog.Note("ClientPlayer.s2cPlayerResponse() CreatePrivateDesktop");
            }
            break;

            case PlayerResponseId.LeaveDesktop:    // 离开桌子
            {
                EbLog.Note("ClientPlayer.s2cPlayerResponse() LeaveDesktop");

                CoPlayerDesktop.clearDesktop();
                CoPlayerLobby.checkShowLobby();

                requestGetOnlinePlayerNum();
            }
            break;

            case PlayerResponseId.GetOnlinePlayerNum:    // 获取在线玩家数
            {
                var online_player_num = EbTool.protobufDeserialize <int>(player_response.data);

                //EbLog.Note("ClientPlayer.s2cPlayerResponse() GetOnlinePlayerNum Num=" + online_player_num);

                var e = EntityMgr.getDefaultEventPublisher().genEvent <EvEntitySetOnLinePlayerNum>();
                e.online_num = online_player_num;
                e.send(null);
            }
            break;

            case PlayerResponseId.GetPlayerInfoOther:    // 获取牌桌上其他玩家信息
            {
                EbLog.Note("ClientPlayer.s2cPlayerResponse() GetPlayerInfoOther");

                var player_info = EbTool.protobufDeserialize <PlayerInfoOther>(player_response.data);

                var e = EntityMgr.getDefaultEventPublisher().genEvent <EvEntityResponsePlayerInfoOther>();
                e.player_info = player_info;
                e.send(null);

                _createPlayerInfoUi(player_info);
                //switch (mRequestPlayerInfoReason)
                //{
                //    case _eRequestPlayerInfoReason.PlayerProfile:
                //        _createPlayerInfoUi(player_info);
                //        break;
                //    case _eRequestPlayerInfoReason.RequestAddFriend:
                //        UiMbAgreeOrDisAddFriendRequest friend_request = UiMgr.Instance.getCurrentUi<UiMbAgreeOrDisAddFriendRequest>();
                //        if (friend_request != null)
                //        {
                //            friend_request.setPlayerInfo(player_info);
                //        }
                //        break;
                //    case _eRequestPlayerInfoReason.ResponseAddFriend:
                //        UiMbMsgBox msg_box = UiMgr.Instance.createUi<UiMbMsgBox>(_eUiLayer.MessgeBox, false);
                //        msg_box.setNotifyMsgInfo("加好友", player_info.nick_name + "成为你的好友!");
                //        break;
                //    case _eRequestPlayerInfoReason.GetRankPlayerInfo:
                //        _createPlayerInfoUi(player_info);
                //        break;
                //    default:
                //        break;
                //}
            }
            break;

            case PlayerResponseId.ChangeProfileSkin:    // 个人资料换肤
            {
                EbLog.Note("ClientPlayer.s2cPlayerResponse() ChangeProfileSkin");

                var profileskin_tableid = EbTool.protobufDeserialize <int>(player_response.data);

                //FloatMsgInfo f_info;
                //f_info.msg = "换肤成功,请在游戏中查看!";
                //f_info.color = Color.green;
                //UiMgr.Instance.FloatMsgMgr.createFloatMsg(f_info);
            }
            break;

            case PlayerResponseId.RefreshIpAddress:    // 刷新Ip所在地
            {
                EbLog.Note("ClientPlayer.s2cPlayerResponse() RefreshIpAddress");

                var ip_address = EbTool.protobufDeserialize <string>(player_response.data);

                //UiMgr.Instance.destroyCurrentUi<UiMbWaiting>();

                //FloatMsgInfo f_info;
                //f_info.msg = "所在地刷新成功!";
                //f_info.color = Color.green;
                //UiMgr.Instance.FloatMsgMgr.createFloatMsg(f_info);
            }
            break;

            case PlayerResponseId.ReportPlayer:    // 举报玩家
            {
                EbLog.Note("ClientPlayer.s2cPlayerResponse() ReportPlayer");

                var report = EbTool.protobufDeserialize <ReportPlayer>(player_response.data);

                //FloatMsgInfo f_info;
                //f_info.msg = "举报玩家成功!";
                //f_info.color = Color.green;
                //UiMgr.Instance.FloatMsgMgr.createFloatMsg(f_info);
            }
            break;

            case PlayerResponseId.InvitePlayerEnterDesktop:    // 邀请玩家进桌
            {
                EbLog.Note("ClientPlayer.s2cPlayerResponse() InvitePlayerEnterDesktop");

                var r = EbTool.protobufDeserialize <ProtocolResult>(player_response.data);
                if (r == ProtocolResult.Success)
                {
                    //FloatMsgInfo f_info;
                    //f_info.msg = "邀请好友进桌发送成功!";
                    //f_info.color = Color.green;
                    //UiMgr.Instance.FloatMsgMgr.createFloatMsg(f_info);
                }
            }
            break;

            case PlayerResponseId.GivePlayerChip:    // 赠送玩家筹码
            {
                EbLog.Note("ClientPlayer.s2cPlayerResponse() GivePlayerChip");

                //var r = EbTool.protobufDeserialize<ProtocolResult>(player_response.data);
                //FloatMsgInfo f_info;
                //if (r == ProtocolResult.Success)
                //{
                //    f_info.msg = "赠送玩家筹码成功!";
                //    f_info.color = Color.green;
                //}
                //else
                //{
                //    f_info.msg = "赠送玩家筹码失败!";
                //    f_info.color = Color.red;
                //}

                //UiMgr.Instance.FloatMsgMgr.createFloatMsg(f_info);
            }
            break;

            default:
                break;
            }
        }
Esempio n. 3
0
        //-------------------------------------------------------------------------
        public override void handleEvent(object sender, EntityEvent e)
        {
            if (e is EvUiClickShop)
            {
                var ev = (EvUiClickShop)e;

                // 点击主界面商城
            }
            else if (e is EvUiClickFriend)
            {
                var ev = (EvUiClickFriend)e;

                // 点击主界面好友
            }
            else if (e is EvUiClickMsg)
            {
                var ev = (EvUiClickMsg)e;

                // 点击主界面消息
            }
            else if (e is EvUiClickHelp)
            {
                var ev = (EvUiClickHelp)e;

                // 点击主界面帮助
            }
            else if (e is EvUiClickEdit)
            {
                var ev = (EvUiClickEdit)e;

                // 点击主界面编辑
            }
            else if (e is EvUiClickLogin)
            {
                var ev = (EvUiClickLogin)e;

                EbLog.Note("ClientPlayer.handleEvent() 响应点击登陆按钮消息");

                // 点击主界面登陆
                CoApp.CoNetMonitor.disconnect();
            }
            else if (e is EvUiClickPlayNow)
            {
                var ev = (EvUiClickPlayNow)e;

                // 点击主界面立即玩
                //requestPlayNow();
            }
            //else if (e is EvUiClickCreateDeskTop)
            //{
            //    var ev = (EvUiClickCreateDeskTop)e;

            //    // 请求创建私人牌桌
            //    int seat_num = ev.seat_num;
            //    PrivateDesktopCreateInfo desktop_createinfo;
            //    desktop_createinfo.seat_num = seat_num;
            //    desktop_createinfo.desktop_tableid = ev.desk_topinfo_id;
            //    desktop_createinfo.is_vip = CoActor.Def.mPropIsVIP.get();

            //    requestCreatePrivateDesktop(desktop_createinfo);
            //}
            else if (e is EvUiClickExitDesk)
            {
                // 点击离开桌子
                requestLeaveDesktop();
            }
            //else if (e is EvUiClickEnterDesktop)
            //{
            //    requestEnterDesktopAny();
            //}
            //else if (e is EvUiClickGetSelfPlayerInfo)
            //{
            //    var ev = (EvUiClickGetSelfPlayerInfo)e;

            //    // 点击主界面玩家信息
            //}
            //else if (e is EvUiClickGetPlayerProfile)
            //{
            //    var ev = (EvUiClickGetPlayerProfile)e;
            //    requestGetPlayerInfoOther(ev.player_etguid);
            //    //requestGetPlayerInfo(ev.player_etguid, _eRequestPlayerInfoReason.PlayerProfile);
            //}
            else if (e is EvUiClickChangePlayerNickName)
            {
                // 改昵称
                var ev = (EvUiClickChangePlayerNickName)e;

                requestChangeNickName(ev.new_name);
            }
            else if (e is EvUiClickChangePlayerIndividualSignature)
            {
                // 改签名
                var ev = (EvUiClickChangePlayerIndividualSignature)e;

                requestChangeIndividualSignature(ev.new_individual_signature);
            }
            else if (e is EvUiClickChangePlayerProfileSkin)
            {
                // 换肤
                var ev = (EvUiClickChangePlayerProfileSkin)e;
                requestChangePlayerProfileSkin(ev.skin_id);
            }
            else if (e is EvUiClickRefreshIPAddress)
            {
                // 刷新IP所在地
                requestRefreshIpAddress();
            }
            else if (e is EvUiReportFriend)
            {
                // 举报好友
                var              ev          = (EvUiReportFriend)e;
                string           et_guid     = ev.friend_etguid;
                ReportPlayerType report_type = ev.report_type;
                requestReprotPlayer(et_guid, report_type);
            }
            else if (e is EvUiInviteFriendPlayTogether)
            {
                // 邀请好友一起玩
                var ev = (EvUiInviteFriendPlayTogether)e;
                DesktopConfigData desktop_configdata = CoPlayerDesktop.DesktopConfigData;

                if (desktop_configdata != null && !string.IsNullOrEmpty(desktop_configdata.desktop_etguid))
                {
                    requestInvitePlayerEnterDesktop(ev.friend_guid, desktop_configdata.desktop_etguid,
                                                    0, 0, CoPlayerDesktop.getPlayerCount(), desktop_configdata.seat_num);
                }
            }
            else if (e is EvUiClickChipTransaction)
            {
                // 点击送筹码
                var ev = (EvUiClickChipTransaction)e;

                if (CoActor.Def.PropGold.get() < 100000)
                {
                    //FloatMsgInfo f_info;
                    //f_info.msg = "筹码不足10万,不能发送!";
                    //f_info.color = Color.red;
                    //UiMgr.Instance.FloatMsgMgr.createFloatMsg(f_info);
                }
                else
                {
                    //UiMbChipTransaction chip_transaction = UiMgr.Instance.createUi<UiMbChipTransaction>(_eUiLayer.MessgeBox);
                    //chip_transaction.setChipTransactionInfo(CoActor.Def.mPropChip.get(), CoActor.Def.mPropChip.get(),
                    //    100000, CoPlayerFriend.getFriendItem(ev.send_target_etguid));
                }
            }
            else if (e is EvUiCreateMainUi)
            {
                createMainUi();
            }
            else if (e is EvUiCreateExchangeChip)
            {
                // 创建换钱UI
                //UiMbExchangeChip chip_transaction = UiMgr.Instance.createUi<UiMbExchangeChip>(_eUiLayer.MessgeBox);
                //chip_transaction.setExchangeInfo(CoActor.Def.PropGold.get(), CoActor.Def.PropGold.get(), 100);
            }
            else if (e is EvUiRequestGetRankPlayerInfo)
            {
                // 请求排行榜玩家信息
                var ev = (EvUiRequestGetRankPlayerInfo)e;
                requestGetPlayerInfoOther(ev.player_etguid);
            }
            else if (e is EvUiRequestPlayerInfoOther)
            {
                // 请求其他玩家详细信息
                var ev = (EvUiRequestPlayerInfoOther)e;
                requestGetPlayerInfoOther(ev.player_etguid);
            }
        }
Esempio n. 4
0
    //-------------------------------------------------------------------------
    async Task <MethodData> _c2sPlayerRequest(MethodData method_data)
    {
        var player_request = EbTool.protobufDeserialize <PlayerRequest>(method_data.param1);

        switch (player_request.id)
        {
        case PlayerRequestId.PlayNow:    // 立即玩
        {
            EbLog.Note("CellPlayer._c2sPlayerRequest PlayNow() EtGuid=" + Entity.Guid);

            // 通过桌子服务请求立即玩
            await CoPlayerDesktop.enterDesktopPlayNow();
        }
        break;

        case PlayerRequestId.CreatePrivateDesktop:    // c->s,创建私有桌子
        {
            EbLog.Note("CellPlayer.c2sPlayerRequest() CreatePrivateDesktop");

            // 正在进入桌子中
            if (CoPlayerDesktop.IsEntering)
            {
                goto End;
            }

            // 检测玩家是否已在桌子中
            if (!string.IsNullOrEmpty(CoPlayerDesktop.DesktopEtGuid))
            {
                goto End;
            }

            // 创建私人桌并入座
            var desktop_createinfo = EbTool.protobufDeserialize <PrivateDesktopCreateInfo>(player_request.data);
            await CoPlayerDesktop.enterDesktopPrivate(desktop_createinfo);

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.CreatePrivateDesktop;
            player_response.data = null;

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.EnterDesktopAny:
        {
            EbLog.Note("CellPlayer.c2sPlayerRequest EnterDesktopAny() EtGuid=" + Entity.Guid);

            await CoPlayerDesktop.enterDesktopPlayNow();

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.EnterDesktopAny;
            player_response.data = null;

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.EnterDesktop:    // 进入桌子
        {
            EbLog.Note("CellPlayer.c2sPlayerRequest EnterDesktop() EtGuid=" + Entity.Guid);

            var desktop_etguid = EbTool.protobufDeserialize <string>(player_request.data);
            if (!string.IsNullOrEmpty(desktop_etguid))
            {
                await CoPlayerDesktop.enterDesktop(desktop_etguid);
            }

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.EnterDesktop;
            player_response.data = null;

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.LeaveDesktop:    // 离开桌子
        {
            EbLog.Note("CellPlayer.c2sPlayerRequest LeaveDesktop() EtGuid=" + Entity.Guid);

            await CoPlayerDesktop.leaveDesktop();

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.LeaveDesktop;
            player_response.data = null;

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.GetOnlinePlayerNum:    // 获取在线玩家数量
        {
            var grain = Entity.getUserData <GrainCellPlayer>();
            var grain_playerservice = grain.GF.GetGrain <ICellPlayerService>(0);
            var num = await grain_playerservice.getOnlinePlayerNum();

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.GetOnlinePlayerNum;
            player_response.data = EbTool.protobufSerialize <int>(num);

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.DevConsoleCmd:    // 请求执行控制台命令
        {
            var    map_param = EbTool.protobufDeserialize <Dictionary <byte, string> >(player_request.data);
            string cmd       = (string)map_param[0];

            if (cmd == "AddItem")
            {
                int  item_id = int.Parse(map_param[1]);
                int  count   = int.Parse(map_param[2]);
                Item item    = null;
                CoBag.newItem(item_id, count, out item);
            }
            else if (cmd == "OperateItem")
            {
                string      operate_id   = map_param[1];
                string      item_objid   = map_param[2];
                ItemOperate item_operate = new ItemOperate();
                item_operate.operate_id = operate_id;
                item_operate.item_objid = item_objid;
                CoBag.operateItem(item_operate);
            }
            else if (cmd == "SetLevel")
            {
                int level = int.Parse(map_param[1]);
                int exp   = int.Parse(map_param[2]);
                CoActor.Def.mPropExperience.set(exp);
                CoActor.Def.mPropLevel.set(level);
            }
        }
        break;

        case PlayerRequestId.GetPlayerInfoOther:    // 请求获取其他玩家信息
        {
            var player_etguid = EbTool.protobufDeserialize <string>(player_request.data);

            var grain = Entity.getUserData <GrainCellPlayer>();
            var grain_playerservice = grain.GF.GetGrain <ICellPlayerService>(0);
            var player_info         = await grain_playerservice.getPlayerInfoOther(player_etguid);

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.GetPlayerInfoOther;
            player_response.data = EbTool.protobufSerialize <PlayerInfoOther>(player_info);

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.ChangeProfileSkin:    // 请求换肤
        {
            var profileskin_tableid = EbTool.protobufDeserialize <int>(player_request.data);

            var profileskin = EbDataMgr.Instance.getData <TbDataPlayerProfileSkin>(profileskin_tableid);
            if (profileskin == null)
            {
                goto End;
            }

            CoActor.Def.mPropProfileSkinTableId.set(profileskin_tableid);

            var grain = Entity.getUserData <GrainCellPlayer>();
            grain.asyncSaveState();

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.ChangeProfileSkin;
            player_response.data = EbTool.protobufSerialize <int>(profileskin_tableid);

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.ChangeNickName:    // 请求改昵称
        {
            var nick_name = EbTool.protobufDeserialize <string>(player_request.data);

            CoActor.Def.mPropNickName.set(nick_name);

            var grain = Entity.getUserData <GrainCellPlayer>();
            grain.asyncSaveState();

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.ChangeNickName;
            player_response.data = EbTool.protobufSerialize <string>(nick_name);

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.ChangeIndividualSignature:    // 请求改签名
        {
            var sign = EbTool.protobufDeserialize <string>(player_request.data);

            CoActor.Def.mPropIndividualSignature.set(sign);

            var grain = Entity.getUserData <GrainCellPlayer>();
            grain.asyncSaveState();

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.ChangeIndividualSignature;
            player_response.data = EbTool.protobufSerialize <string>(sign);

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.RefreshIpAddress:    // 请求刷新Ip所在地
        {
            _refreshIpAddress();

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.RefreshIpAddress;
            player_response.data = EbTool.protobufSerialize <string>(CoActor.Def.mPropIpAddress.get());

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.ReportPlayer:    // 举报玩家
        {
            var report = EbTool.protobufDeserialize <ReportPlayer>(player_request.data);

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.ReportPlayer;
            player_response.data = EbTool.protobufSerialize <ReportPlayer>(report);

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.InvitePlayerEnterDesktop:    // 邀请玩家进桌
        {
            var invite = EbTool.protobufDeserialize <InvitePlayerEnterDesktop>(player_request.data);

            var grain             = Entity.getUserData <GrainCellPlayer>();
            var grain_playerproxy = grain.GF.GetGrain <ICellPlayerProxy>(new Guid(invite.player_info.player_etguid));
            grain_playerproxy.s2sInvitePlayerEnterDesktop(Entity.Guid, invite.desktop_etguid,
                                                          invite.sb, invite.bb, invite.player_num, invite.seat_num);

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.InvitePlayerEnterDesktop;
            player_response.data = EbTool.protobufSerialize <ProtocolResult>(ProtocolResult.Success);

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.GivePlayerChip:    // 赠送玩家筹码
        {
            var give_chip = EbTool.protobufDeserialize <GivePlayerChip>(player_request.data);

            ProtocolResult re       = ProtocolResult.Failed;
            int            chip_cur = CoActor.Def.PropGold.get();

            if (chip_cur >= 100000 && give_chip.chip >= 100000 && chip_cur >= give_chip.chip)
            {
                var grain             = Entity.getUserData <GrainCellPlayer>();
                var grain_playerproxy = grain.GF.GetGrain <ICellPlayerProxy>(new Guid(give_chip.player_info.player_etguid));
                await grain_playerproxy.s2sGivePlayerChip(Entity.Guid, give_chip.chip);

                re        = ProtocolResult.Success;
                chip_cur -= give_chip.chip;
                CoActor.Def.PropGold.set(chip_cur);
            }
            else
            {
                re = ProtocolResult.Failed;
            }

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.GivePlayerChip;
            player_response.data = EbTool.protobufSerialize <ProtocolResult>(re);

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.SetVip4Test:    // 请求设置是否为Vip
        {
            EbLog.Note("CellPlayer.c2sPlayerRequest LeaveDesktop() EtGuid=" + Entity.Guid);

            var is_vip = EbTool.protobufDeserialize <bool>(player_request.data);
            CoActor.Def.mPropIsVIP.set(is_vip);

            var grain = Entity.getUserData <GrainCellPlayer>();
            grain.asyncSaveState();

            PlayerResponse player_response;
            player_response.id   = PlayerResponseId.SetVip4Test;
            player_response.data = EbTool.protobufSerialize(is_vip);

            MethodData result = new MethodData();
            result.method_id = MethodType.s2cPlayerResponse;
            result.param1    = EbTool.protobufSerialize <PlayerResponse>(player_response);
            return(result);
        }

        case PlayerRequestId.SetAFK:    // 请求设置是否挂机
        {
            var afk = EbTool.protobufDeserialize <bool>(player_request.data);
            if (CoActor.Def.mPropIsBot.get())
            {
                // 机器人总是挂机状态,无需设置
                goto End;
            }

            if (CoActor.Def.mPropIsAFK.get() != afk)
            {
                CoActor.Def.mPropIsAFK.set(afk);

                PlayerNotify player_notify;
                player_notify.id   = PlayerNotifyId.SetAFK;
                player_notify.data = EbTool.protobufSerialize <bool>(afk);

                MethodData notify_data = new MethodData();
                notify_data.method_id = MethodType.s2cPlayerNotify;
                notify_data.param1    = EbTool.protobufSerialize <PlayerNotify>(player_notify);
                var grain        = Entity.getUserData <GrainCellPlayer>();
                var grain_player = grain.GF.GetGrain <ICellPlayer>(new Guid(Entity.Guid));
                grain_player.s2sNotify(notify_data);
            }
        }
        break;

        default:
            break;
        }

End:
        MethodData r = new MethodData();

        r.method_id = MethodType.None;
        return(r);
    }
Esempio n. 5
0
 //-------------------------------------------------------------------------
 Task <MethodData> _c2sPlayerDesktopRequest(MethodData method_data)
 {
     return(CoPlayerDesktop.c2sPlayerDesktopRequest(method_data));
 }