コード例 #1
0
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            try
            {
                if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcMain)
                {
                    CUIDataPool     pUIDataPool            = GameProcedure.s_pUIDataPool;
                    GCMissionModify newMissionModifyPacket = (GCMissionModify)pPacket;

                    SCommand_DPC cmdTemp = new SCommand_DPC();
                    cmdTemp.m_wID = DPC_SCRIPT_DEFINE.DPC_UPDATE_MISSION_MODIFY;

                    cmdTemp.SetValue <int>(1, newMissionModifyPacket.Flag);

                    if (newMissionModifyPacket.Flag == (int)GCMissionModify.MISSIONMODIFY.MISSIONMODIFY_MISSION)
                    {
                        cmdTemp.SetValue <_OWN_MISSION>(0, newMissionModifyPacket.GetMission());
                    }
                    else if (newMissionModifyPacket.Flag == (int)GCMissionModify.MISSIONMODIFY.MISSIONMODIFY_MISSIONDATA)
                    {
                        cmdTemp.SetValue <int[]>(0, newMissionModifyPacket.GetMissionData());
                    }
                    pUIDataPool.OnCommand_(cmdTemp);
                }

                return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
            }
            catch (Exception e)
            {
                LogManager.LogError("--------------------GCMissionModifyHandler的Execute()方法出错。--------------------");
                LogManager.LogError(e.ToString());
                return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_ERROR);
            }
        }
コード例 #2
0
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            try
            {
                GCMissionList newGCMissionList = (GCMissionList)pPacket;
                CUIDataPool   pUIDataPool      = GameProcedure.s_pUIDataPool;

                if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcMain)
                {
                    // 保存任务是否完成标志
                    if (CDetailAttrib_Player.Instance != null)
                    {
                        CDetailAttrib_Player.Instance.SetMissionHaveDone(newGCMissionList.GetMissionHaveDone());
                    }

                    SCommand_DPC cmdTemp = new SCommand_DPC();
                    cmdTemp.m_wID = DPC_SCRIPT_DEFINE.DPC_UPDATE_MISSION_LIST;

                    cmdTemp.SetValue <uint>(0, newGCMissionList.ObjID);
                    cmdTemp.SetValue <uint>(1, newGCMissionList.MissionListFlags);
                    cmdTemp.SetValue <_OWN_MISSION[]>(2, newGCMissionList.GetMissionBuf());
                    pUIDataPool.OnCommand_(cmdTemp);
                }

                return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
            }
            catch (Exception e)
            {
                LogManager.LogError("--------------------GCMissionListHandler的Execute()方法出错。--------------------");
                LogManager.LogError(e.ToString());
                return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_ERROR);
            }
        }
コード例 #3
0
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            try
            {
                if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcMain)
                {
                    CUIDataPool      pUIDataPool    = GameProcedure.s_pUIDataPool;
                    GCRetMissionDesc newMissionDesc = (GCRetMissionDesc)pPacket;


                    SCommand_DPC cmdTemp = new SCommand_DPC();
                    cmdTemp.m_wID = DPC_SCRIPT_DEFINE.DPC_UPDATE_MISSION_DESC;

                    cmdTemp.SetValue <GCRetMissionDesc>(0, newMissionDesc);
                    pUIDataPool.OnCommand_(cmdTemp);
                }

                return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
            }
            catch (Exception e)
            {
                LogManager.LogError("--------------------GCRetMissionDescHandler的Execute()方法出错。--------------------");
                LogManager.LogError(e.ToString());
                return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_ERROR);
            }
        }
コード例 #4
0
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            try
            {
                if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcMain)
                {
                    //加入UI数据池
                    CUIDataPool pUIDataPool = GameProcedure.s_pUIDataPool;
                    GCRemoveCanPickMissionItem newRemoveCanPickMissionItem = (GCRemoveCanPickMissionItem)pPacket;

                    SCommand_DPC cmdTemp = new SCommand_DPC();
                    cmdTemp.m_wID = DPC_SCRIPT_DEFINE.DPC_REMOVE_CAN_PICK_MISSION_ITEM;
                    cmdTemp.SetValue <uint>(0, newRemoveCanPickMissionItem.ItemDataID);

                    pUIDataPool.OnCommand_(cmdTemp);
                }

                return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
            }
            catch (Exception e)
            {
                LogManager.LogError("--------------------GCRemoveCanPickMissionItemHandler的Execute()方法出错。--------------------");
                LogManager.LogError(e.ToString());
                return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_ERROR);
            }
        }
コード例 #5
0
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            if (GameProcedure.GetActiveProcedure() == GameProcedure.s_ProcMain)
            {
                CUIDataPool     pUIDataPool      = GameProcedure.s_pUIDataPool;
                GCMissionResult newMissionResult = (GCMissionResult)pPacket;
                if (newMissionResult.IsFinished > 0) //任务完成
                {
                    // 关闭提交任务物品的界面
                    CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_QUEST_AFTER_CONTINUE);

                    // 打开接收奖励的界面
                }
                else //没有完成任务
                {
                    // 答应一个提示信息,不关闭提交任务物品的界面,这样可以让玩家检查是不是自己放错了物品
                    string strTemp = "你给我的物品不是我需要的!";
                    CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_INFO_SELF, strTemp);
                }
            }

            return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
        }
コード例 #6
0
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            if (GameProcedure.GetActiveProcedure() == (GameProcedure)GameProcedure.s_ProcMain)
            {
                GCTeamResult packet    = pPacket as GCTeamResult;
                CUIDataPool  pDataPool = CUIDataPool.Instance;

                SCommand_DPC cmdTemp = new SCommand_DPC();
                cmdTemp.m_wID = DPC_SCRIPT_DEFINE.DPC_UPDATE_TEAM_OR_GROUP;

                cmdTemp.SetValue <byte> (0, packet.Return);
                cmdTemp.SetValue <uint> (1, packet.GUID);
                cmdTemp.SetValue <short>(2, packet.TeamId);
                cmdTemp.SetValue <uint> (3, packet.GUIDEx);
                cmdTemp.SetValue <short>(4, packet.SceneId);
                cmdTemp.SetValue <int>  (5, packet.Portrait);
                cmdTemp.SetValue <short>(6, packet.DataID);
                cmdTemp.SetValue <byte> (7, packet.AllocRuler);
                cmdTemp.SetValue <byte[]>(8, packet.Name);
                pDataPool.OnCommand_(cmdTemp);
                CEventSystem.Instance.PushEvent(GAME_EVENT_ID.GE_TEAM_CHANG_WORLD);
            }
            return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
        }
コード例 #7
0
        public override NET_RESULT_DEFINE.PACKET_EXE Execute(PacketBase pPacket, ref Peer pPlayer)
        {
            if (GameProcedure.GetActiveProcedure() == (GameProcedure)GameProcedure.s_ProcMain)
            {
                GCTeamMemberInfo packet    = pPacket as GCTeamMemberInfo;
                CUIDataPool      pDataPool = (GameProcedure.s_pUIDataPool);
                CTeamOrGroup     team      = pDataPool.GetTeamOrGroup();
                TeamMemberInfo   pTMInfo   = team.GetMember(packet.GUID);

                if (pTMInfo == null)
                { // 组队切换场景时会遇到这个问题
                    // TDAssert(FALSE);
                    return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_FAMILY))
                {
                    pTMInfo.m_uFamily = (int)packet.Family;
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_LEVEL))
                {
                    pTMInfo.m_uLevel = (int)packet.Level;
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_POSITION))
                {
                    GameProcedure.m_bWaitNeedFreshMinimap = true;
                    pTMInfo.m_WorldPos.m_fX = packet.WorldPos.m_fX;
                    pTMInfo.m_WorldPos.m_fZ = packet.WorldPos.m_fZ;
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_HP))
                {
                    pTMInfo.m_nHP = packet.HP;
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_MAX_HP))
                {
                    pTMInfo.m_dwMaxHP = (int)packet.MaxHP;
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_MP))
                {
                    pTMInfo.m_nMP = packet.MP;
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_MAX_MP))
                {
                    pTMInfo.m_dwMaxMP = (int)packet.MaxMP;
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_ANGER))
                {
                    pTMInfo.m_nAnger = packet.Anger;
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_WEAPON))
                {
                    // 武器id
                    pTMInfo.m_WeaponID = (int)packet.WeaponID;

                    // 设置ui模型
                    pTMInfo.m_UIModel.SetUIModelInfo(HUMAN_EQUIP.HEQUIP_WEAPON, pTMInfo.m_WeaponID);
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_CAP))
                {
                    // 帽子id
                    pTMInfo.m_CapID = (int)packet.CapID;

                    // 设置ui模型
                    pTMInfo.m_UIModel.SetUIModelInfo(HUMAN_EQUIP.HEQUIP_CAP, pTMInfo.m_CapID);
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_ARMOR))
                {
                    // 身体
                    pTMInfo.m_ArmourID = (int)packet.ArmourID;

                    // 设置ui模型
                    pTMInfo.m_UIModel.SetUIModelInfo(HUMAN_EQUIP.HEQUIP_ARMOR, pTMInfo.m_ArmourID);
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_CUFF))
                {
                    // 腕
                    pTMInfo.m_CuffID = (int)packet.CuffID;

                    // 设置ui模型
                    pTMInfo.m_UIModel.SetUIModelInfo(HUMAN_EQUIP.HEQUIP_CUFF, pTMInfo.m_CuffID);
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_BOOT))
                {
                    // 脚
                    pTMInfo.m_FootID = (int)packet.FootID;

                    // 设置ui模型
                    pTMInfo.m_UIModel.SetUIModelInfo(HUMAN_EQUIP.HEQUIP_BOOT, pTMInfo.m_FootID);
                }

                /*
                 * if( pPacket.IsUpdateAttrib(TEAM_MEMBER_ATT_BUFF) )
                 * {
                 * }
                 */

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_DEADLINK))
                {
                    pTMInfo.m_bDeadLink = packet.DeadLinkFlag > 0;
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_DEAD))
                {
                    pTMInfo.m_bDead = packet.DeadFlag > 0;
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_FACEMESH))
                {
                    pTMInfo.m_uFaceMeshID = (int)packet.FaceMeshID;
                    if (pTMInfo.m_uFaceMeshID < 255)
                    {
                        // 设置脸形
                        pTMInfo.m_UIModel.SetFaceMeshId(pTMInfo.m_uFaceMeshID);
                    }
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_HAIRMESH))
                {
                    pTMInfo.m_uHairMeshID = (int)packet.HairMeshID;

                    if (pTMInfo.m_uHairMeshID < 255)
                    {
                        // 设置发型
                        pTMInfo.m_UIModel.SetFaceHairId(pTMInfo.m_uHairMeshID);
                    }
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_HAIRCOLOR))
                {
                    pTMInfo.m_uHairColor = packet.HairColor;

                    //if(pTMInfo.m_uHairColor < 255)
                    //{
                    //	// 设置颜色
                    //	pTMInfo.m_UIModel.SetHairColor(pTMInfo.m_uHairColor);
                    //}
                    //else
                    //{
                    //	// 设置颜色
                    //	pTMInfo.m_UIModel.SetHairColor(0);
                    //}//

                    // 设置颜色
                    pTMInfo.m_UIModel.SetHairColor(pTMInfo.m_uHairColor);
                }

                if (packet.IsUpdateAttrib((int)ENUM_TEAM_MEMBER_ATT.TEAM_MEMBER_ATT_BACK))
                {
                    // 背饰
                    pTMInfo.m_uBackID = (int)packet.BackID;

                    // 设置ui模型
                    pTMInfo.m_UIModel.SetUIModelInfo(HUMAN_EQUIP.HEQUIP_BACK, pTMInfo.m_uBackID);
                }

                int idx = team.GetMemberUIIndex(pTMInfo.m_GUID);
                GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_TEAM_UPTEDATA_MEMBER_INFO, idx);
                for (idx = 0; idx < team.GetTeamMemberCount(); ++idx)
                {
                    if (team.GetMemberByIndex(idx).m_GUID == pTMInfo.m_GUID)
                    {
                        GameProcedure.s_pEventSystem.PushEvent(GAME_EVENT_ID.GE_TEAM_REFRESH_MEMBER, idx);
                    }
                }
            }
            return(NET_RESULT_DEFINE.PACKET_EXE.PACKET_EXE_CONTINUE);
        }