コード例 #1
0
        public void processCmd(GameServerClient client, int nID, byte[] cmdParams, int count)
        {
            int[] challengeRankings = DataHelper.BytesToObject <int[]>(cmdParams, 0, count);
            List <PlayerJingJiMiniData> miniDatas = JingJiChangManager.getInstance().getChallengeData(challengeRankings);

            client.sendCmd <List <PlayerJingJiMiniData> >(10141, miniDatas);
        }
コード例 #2
0
 public static void SetPrestigeLevel(GameClient client, int level)
 {
     Global.SaveRoleParamsInt32ValueWithTimeStampToDB(client, "ShengWangLevel", level, true, "2020-12-12 12:12:12");
     GameManager.logDBCmdMgr.AddDBLogInfo(-1, "声望等级", "GM", "系统", client.ClientData.RoleName, "修改", level, client.ClientData.ZoneID, client.strUserID, level, client.ServerId, null);
     EventLogManager.AddRoleEvent(client, OpTypes.Trace, OpTags.GM, LogRecordType.IntValueWithType, new object[]
     {
         level,
         RoleAttributeType.ShengWangLevel
     });
     if (level > 0)
     {
         JingJiChangManager.getInstance().activeJunXianBuff(client, true);
     }
     Global.UpdateBufferData(client, BufferItemTypes.MU_JINGJICHANG_JUNXIAN, new double[]
     {
         (double)level - 1.0
     }, 0, true);
     ChengJiuManager.OnRoleJunXianChengJiu(client);
     Global.BroadcastClientMUShengWang(client, level);
     GameManager.ClientMgr.NotifySelfParamsValueChange(client, RoleCommonUseIntParamsIndexs.ShengWangLevel, level);
     GameManager.ClientMgr.NotifyUpdateEquipProps(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client);
     GameManager.ClientMgr.NotifyOthersLifeChanged(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client, true, false, 7);
     client._IconStateMgr.CheckJingJiChangJunXian(client);
     client._IconStateMgr.CheckSpecialActivity(client);
     client._IconStateMgr.CheckEverydayActivity(client);
     client._IconStateMgr.SendIconStateToClient(client);
 }
コード例 #3
0
        public void processCmd(GameServerClient client, int nID, byte[] cmdParams, int count)
        {
            int  roleId = DataHelper.BytesToObject <int>(cmdParams, 0, count);
            bool result = JingJiChangManager.getInstance().removeCD(roleId);

            client.sendCmd <bool>(10147, result);
        }
コード例 #4
0
        /// <summary>
        /// 声望军衔——设置等级
        /// </summary>
        /// <param name="client"></param>
        /// <param name="level"></param>
        /// <returns></returns>
        public static void SetPrestigeLevel(GameClient client, int level)
        {
            //更新到数据库
            Global.SaveRoleParamsInt32ValueWithTimeStampToDB(client, RoleParamName.ShengWangLevel, level, true);
            GameManager.logDBCmdMgr.AddDBLogInfo(-1, "声望等级", "GM", "系统", client.ClientData.RoleName, "修改", level, client.ClientData.ZoneID, client.strUserID, level, client.ServerId);

            EventLogManager.AddRoleEvent(client, OpTypes.Trace, OpTags.GM, LogRecordType.IntValueWithType, level, RoleAttributeType.ShengWangLevel);
            if (level > 0)
            {
                JingJiChangManager.getInstance().activeJunXianBuff(client, true);
            }

            //更新BufferData
            double[] actionParams = new double[1];
            actionParams[0] = (double)level - 1;
            Global.UpdateBufferData(client, BufferItemTypes.MU_JINGJICHANG_JUNXIAN, actionParams, 0);

            ChengJiuManager.OnRoleJunXianChengJiu(client);
            Global.BroadcastClientMUShengWang(client, level);

            //通知自己
            GameManager.ClientMgr.NotifySelfParamsValueChange(client, RoleCommonUseIntParamsIndexs.ShengWangLevel, level);
            //通知客户端属性变化
            GameManager.ClientMgr.NotifyUpdateEquipProps(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client);
            // 总生命值和魔法值变化通知(同一个地图才需要通知)
            GameManager.ClientMgr.NotifyOthersLifeChanged(Global._TCPManager.MySocketListener, Global._TCPManager.TcpOutPacketPool, client);

            // 军衔升级成功时,刷新相应的图标状态
            client._IconStateMgr.CheckJingJiChangJunXian(client);
            client._IconStateMgr.CheckSpecialActivity(client);
            client._IconStateMgr.SendIconStateToClient(client);
        }
コード例 #5
0
        public void processCmd(GameServerClient client, int nID, byte[] cmdParams, int count)
        {
            int roleId            = DataHelper.BytesToObject <int>(cmdParams, 0, count);
            PlayerJingJiData data = JingJiChangManager.getInstance().getPlayerJingJiDataById(roleId);

            client.sendCmd <PlayerJingJiData>(10140, data);
        }
コード例 #6
0
        public bool processCmd(GameClient client, string[] cmdParams)
        {
            int lookWho = Convert.ToInt32(cmdParams[1]);
            PlayerJingJiData jingjiData = Global.sendToDB <PlayerJingJiData, byte[]>(10140, DataHelper.ObjectToBytes <int>(lookWho), client.ServerId);

            if (jingjiData != null)
            {
                client.sendCmd <RoleData4Selector>(1340, new RoleData4Selector
                {
                    RoleID          = jingjiData.roleId,
                    RoleName        = jingjiData.roleName,
                    RoleSex         = jingjiData.sex,
                    Occupation      = jingjiData.occupationId,
                    SubOccupation   = jingjiData.SubOccupation,
                    OccupationList  = jingjiData.OccupationList,
                    Level           = jingjiData.level,
                    MyWingData      = jingjiData.wingData,
                    GoodsDataList   = JingJiChangManager.GetUsingGoodsList(jingjiData.equipDatas),
                    CombatForce     = jingjiData.combatForce,
                    AdmiredCount    = jingjiData.AdmiredCount,
                    SettingBitFlags = jingjiData.settingFlags,
                    JunTuanId       = jingjiData.JunTuanId,
                    JunTuanName     = jingjiData.JunTuanName,
                    JunTuanZhiWu    = jingjiData.JunTuanZhiWu,
                    LingDi          = jingjiData.LingDi,
                    CompType        = jingjiData.CompType,
                    CompZhiWu       = jingjiData.CompZhiWu
                }, false);
            }
            return(true);
        }
コード例 #7
0
        public void processCmd(GameServerClient client, int nID, byte[] cmdParams, int count)
        {
            JingJiChallengeResultData data = DataHelper.BytesToObject <JingJiChallengeResultData>(cmdParams, 0, count);
            int ranking = JingJiChangManager.getInstance().onChallengeEnd(data);

            client.sendCmd <int>(10144, ranking);
        }
コード例 #8
0
        public bool processCmd(Logic.GameClient client, string[] cmdParams)
        {
            int result = JingJiChangManager.getInstance().removeCD(client);

            client.sendCmd <int>((int)TCPGameServerCmds.CMD_SPR_JINGJICHANG_REMOVE_CD, result);
            return(true);
        }
コード例 #9
0
        public bool processCmd(Logic.GameClient client, string[] cmdParams)
        {
            int roleId = Convert.ToInt32(cmdParams[0]);

            //被挑战者ID
            int beChallengerId = Convert.ToInt32(cmdParams[1]);

            //被挑战者排名
            int beChallengeRanking = Convert.ToInt32(cmdParams[2]);

            //挑战方式: 0:免费, 1:vip
            int enterType = Convert.ToInt32(cmdParams[3]);

            //非法参数
            int result = 0;

            if (beChallengerId < 0 || beChallengeRanking < 1 || beChallengeRanking > JingJiChangConstants.RankingListMaxNum ||
                (enterType != JingJiChangConstants.Enter_Type_Free && enterType != JingJiChangConstants.Enter_Type_Vip))
            {
                client.sendCmd <int>((int)TCPGameServerCmds.CMD_SPR_JINGJI_REQUEST_CHALLENGE, result);
                return(true);
            }

            result = JingJiChangManager.getInstance().requestChallenge(client, beChallengerId, beChallengeRanking, enterType);

            client.sendCmd <int>((int)TCPGameServerCmds.CMD_SPR_JINGJI_REQUEST_CHALLENGE, result);
            return(true);
        }
コード例 #10
0
        public static void startup()
        {
            //战盟事件管理器
            ZhanMengShiJianManager.getInstance().startup();

            //竞技场管理器
            JingJiChangManager.getInstance().startup();

            //离线摆摊
            LiXianBaiTanManager.getInstance().startup();

            //离线挂机
            LiXianGuaJiManager.getInstance().startup();

            //副本活动组队管理器
            CopyTeamManager.getInstance().startup();

            //指令注册管理器
            CmdRegisterTriggerManager.getInstance().startup();

            //发送指令管理
            SendCmdManager.getInstance().startup();

            //Boss AI管理器
            BossAIManager.getInstance().startup();

            //MU交易所
            SaleManager.getInstance().startup();

            //炼制系统
            LianZhiManager.GetInstance().startup();

            // 成就升级
            ChengJiuManager.GetInstance().startup();
        }
コード例 #11
0
        public bool processCmd(GameClient client, string[] cmdParams)
        {
            int lookWho = Convert.ToInt32(cmdParams[1]);
            PlayerJingJiData jingjiData = Global.sendToDB <PlayerJingJiData, byte[]>((int)TCPGameServerCmds.CMD_DB_JINGJICHANG_GET_DATA, DataHelper.ObjectToBytes <int>(lookWho), client.ServerId);

            if (jingjiData != null)
            {
                // 有一些字段,PlayerJingJiData未保存,理论上客户端单纯显示是不需要这些字段的,如果有需要,那么创建竞技场数据的时候再保存下来
                RoleData4Selector rd = new RoleData4Selector();
                rd.RoleID     = jingjiData.roleId;
                rd.RoleName   = jingjiData.roleName;
                rd.RoleSex    = jingjiData.sex;
                rd.Occupation = jingjiData.occupationId;
                rd.Level      = jingjiData.level;
                // rd.Faction = jingjiData暂未保存
                rd.MyWingData    = jingjiData.wingData;
                rd.GoodsDataList = JingJiChangManager.GetUsingGoodsList(jingjiData.equipDatas);
                // rd.OtherName = jingjiData暂未保存
                rd.CombatForce  = jingjiData.combatForce;
                rd.AdmiredCount = jingjiData.AdmiredCount;
                // rd.FashionWingsID = jingjiData暂未保存;
                rd.SettingBitFlags = jingjiData.settingFlags;

                client.sendCmd <RoleData4Selector>((int)TCPGameServerCmds.CMD_SPR_JINGJICHANG_GET_ROLE_LOOKS, rd);
            }

            return(true);
        }
コード例 #12
0
        public bool processCmd(GameClient client, string[] cmdParams)
        {
            int result = JingJiChangManager.getInstance().upGradeJunXian(client);

            client.sendCmd <int>(586, result, false);
            return(true);
        }
コード例 #13
0
        public bool processCmd(Logic.GameClient client, string[] cmdParams)
        {
            int result = JingJiChangManager.getInstance().upGradeJunXian(client);

            client.sendCmd <int>((int)TCPGameServerCmds.CMD_SPR_JINGJICHANG_JUNXIAN_LEVELUP, result);
            return(true);
        }
コード例 #14
0
        public void processCmd(GameServerClient client, byte[] cmdParams, int count)
        {
            int[] challengeRankings = DataHelper.BytesToObject <int[]>(cmdParams, 0, count);

            List <PlayerJingJiMiniData> miniDatas = JingJiChangManager.getInstance().getChallengeData(challengeRankings);

            client.sendCmd <List <PlayerJingJiMiniData> >((int)TCPGameServerCmds.CMD_DB_JINGJICHANG_GET_CHALLENGE_DATA, miniDatas);
        }
コード例 #15
0
        public void processCmd(GameServerClient client, int nID, byte[] cmdParams, int count)
        {
            JingJiSaveData data = DataHelper.BytesToObject <JingJiSaveData>(cmdParams, 0, count);
            int            winCount;

            JingJiChangManager.getInstance().saveData(data, out winCount);
            client.sendCmd <int>(10145, winCount);
        }
コード例 #16
0
        public void processCmd(GameServerClient client, byte[] cmdParams, int count)
        {
            int pageIndex = DataHelper.BytesToObject <int>(cmdParams, 0, count);

            List <PlayerJingJiRankingData> rankingDatas = JingJiChangManager.getInstance().getRankingList(pageIndex);

            client.sendCmd <List <PlayerJingJiRankingData> >((int)TCPGameServerCmds.CMD_DB_JINGJICHANG_GET_RANKINGLIST_DATA, rankingDatas);
        }
コード例 #17
0
 public void processEvent(EventObject eventObject)
 {
     if (eventObject.getEventType() == 9)
     {
         PlayerLevelupEventObject levelupEvent = (PlayerLevelupEventObject)eventObject;
         JingJiChangManager.getInstance().onPlayerLevelup(levelupEvent.Player);
     }
 }
コード例 #18
0
        public bool processCmd(GameClient client, string[] cmdParams)
        {
            int type = Convert.ToInt32(cmdParams[1]);
            JingJiDetailData data = JingJiChangManager.getInstance().getDetailData(client, type);

            client.sendCmd <JingJiDetailData>(578, data, false);
            return(true);
        }
コード例 #19
0
        public void processCmd(GameServerClient client, byte[] cmdParams, int count)
        {
            int roleId = DataHelper.BytesToObject <int>(cmdParams, 0, count);

            PlayerJingJiData data = JingJiChangManager.getInstance().getPlayerJingJiDataById(roleId);

            client.sendCmd <PlayerJingJiData>((int)TCPGameServerCmds.CMD_DB_JINGJICHANG_GET_DATA, data);
        }
コード例 #20
0
        public void processCmd(GameServerClient client, byte[] cmdParams, int count)
        {
            JingJiChallengeResultData data = DataHelper.BytesToObject <JingJiChallengeResultData>(cmdParams, 0, count);

            int ranking = JingJiChangManager.getInstance().onChallengeEnd(data);

            client.sendCmd <int>((int)TCPGameServerCmds.CMD_DB_JINGJICHANG_CHALLENGE_END, ranking);
        }
コード例 #21
0
 public void processEvent(EventObject eventObject)
 {
     if (eventObject.getEventType() == 13)
     {
         PlayerLeaveFuBenEventObject _eventObject = eventObject as PlayerLeaveFuBenEventObject;
         JingJiChangManager.getInstance().onChallengeEndForPlayerLeaveFuBen(_eventObject.getPlayer());
     }
 }
コード例 #22
0
 public void processEvent(EventObject eventObject)
 {
     if (eventObject.getEventType() == 12)
     {
         PlayerLogoutEventObject _eventObject = (PlayerLogoutEventObject)eventObject;
         JingJiChangManager.getInstance().onChallengeEndForPlayerLogout(_eventObject.getPlayer());
     }
 }
コード例 #23
0
        public void processCmd(GameServerClient client, byte[] cmdParams, int count)
        {
            int roleId = DataHelper.BytesToObject <int>(cmdParams, 0, count);

            bool result = JingJiChangManager.getInstance().removeCD(roleId);

            client.sendCmd <bool>((int)TCPGameServerCmds.CMD_DB_JINGJICHANG_REMOVE_CD, result);
        }
コード例 #24
0
        /// <summary>
        /// 检查“剩余挑战次数”项是否要显示要更新图标状态
        /// </summary>
        public bool CheckJingJiChangLeftTimes(GameClient client)
        {
            if (JingJiChangManager.getInstance().checkEnterNum(client, (int)JingJiChangManager.Enter_Type_Free) == ResultCode.Success)
            {
                return(AddFlushIconState((ushort)ActivityTipTypes.JingJiChangLeftTimes, true));
            }

            return(AddFlushIconState((ushort)ActivityTipTypes.JingJiChangLeftTimes, false));
        }
コード例 #25
0
        /// <summary>
        /// 检查“奖励预览”项是否要显示要更新图标状态
        /// </summary>
        public bool CheckJingJiChangJiangLi(GameClient client)
        {
            if (JingJiChangManager.getInstance().CanGetrankingReward(client))
            {
                return(AddFlushIconState((ushort)ActivityTipTypes.JingJiChangJiangLi, true));
            }

            return(AddFlushIconState((ushort)ActivityTipTypes.JingJiChangJiangLi, false));
        }
コード例 #26
0
        public void processCmd(GameServerClient client, int nID, byte[] cmdParams, int count)
        {
            int[] _cmdParams = DataHelper.BytesToObject <int[]>(cmdParams, 0, count);
            int   roleId     = _cmdParams[0];
            int   pageIndex  = _cmdParams[1];
            List <JingJiChallengeInfoData> rankingListData = JingJiChangManager.getInstance().getChallengeInfoDataList(roleId, pageIndex);

            client.sendCmd <List <JingJiChallengeInfoData> >(10146, rankingListData);
        }
コード例 #27
0
        /// <summary>
        /// 检查“军衔提升”项是否要显示要更新图标状态
        /// </summary>
        public bool CheckJingJiChangJunXian(GameClient client)
        {
            if (JingJiChangManager.getInstance().CanGradeJunXian(client))
            {
                return(AddFlushIconState((ushort)ActivityTipTypes.JingJiChangJunXian, true));
            }

            return(AddFlushIconState((ushort)ActivityTipTypes.JingJiChangJunXian, false));
        }
コード例 #28
0
        public void processCmd(GameServerClient client, int nID, byte[] cmdParams, int count)
        {
            long[] _cmdParams     = DataHelper.BytesToObject <long[]>(cmdParams, 0, count);
            int    roleId         = (int)_cmdParams[0];
            long   nextRewardTime = _cmdParams[1];
            bool   result         = JingJiChangManager.getInstance().updateNextRewardTime(roleId, nextRewardTime);

            client.sendCmd <int>(10149, result ? 1 : 0);
        }
コード例 #29
0
        public bool processCmd(Logic.GameClient client, string[] cmdParams)
        {
            int type = Convert.ToInt32(cmdParams[1]);

            JingJiDetailData data = JingJiChangManager.getInstance().getDetailData(client, type);

            client.sendCmd <JingJiDetailData>((int)TCPGameServerCmds.CMD_SPR_JINGJI_DETAIL, data);
            return(true);
        }
コード例 #30
0
        public void processCmd(GameServerClient client, byte[] cmdParams, int count)
        {
            JingJiSaveData data = DataHelper.BytesToObject <JingJiSaveData>(cmdParams, 0, count);

            int winCount;

            JingJiChangManager.getInstance().saveData(data, out winCount);

            client.sendCmd <int>((int)TCPGameServerCmds.CMD_DB_JINGJICHANG_SAVE_DATA, winCount);
        }