public uint Execute(PacketDistributed ipacket)
        {
            GC_RET_RELIVE packet = (GC_RET_RELIVE )ipacket;

            if (null == packet)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }
            //enter your logic

            Obj_MainPlayer MainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer;

            if (null == MainPlayer)
            {
                return((uint)PACKET_EXE.PACKET_EXE_ERROR);
            }

            int           objId     = packet.ObjId;
            Obj_Character TargetObj = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(objId);

            if (TargetObj == null)
            {
                return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
            }

            if (objId == MainPlayer.ServerID)
            {
                // 自己
                if (packet.HasReviveTime)
                {
                    MainPlayer.ReliveEntryTime = packet.ReviveTime;
                }

                //主玩家自己。判断当前地形数据是否可用,如果不可用,更新地形数据
                //if (GameManager.gameManager != null)
                //{
                //    if (GameManager.gameManager.ActiveScene != null)
                //    {
                //        if (GameManager.gameManager.ActiveScene.TerrainData != null)
                //        {
                //            //地形数据存在,但数据没有加载成功
                //            if (!GameManager.gameManager.ActiveScene.TerrainData.RawDataOK)
                //            {
                //                GameManager.gameManager.m_loadErrorNum = 0;
                //                GameManager.gameManager.ActiveScene.SetTerrainData();
                //            }
                //        }
                //        else
                //        {
                //            //地形数据不存在,加载地形数据
                //            GameManager.gameManager.m_loadErrorNum = 0;
                //            GameManager.gameManager.ActiveScene.SetTerrainData();
                //        }
                //    }
                //}
            }

            if (packet.HasPos_x && packet.HasPos_z && packet.HasFacedir)
            {
                float   fEnterPosX  = ((float)packet.Pos_x) / 100;
                float   fEnterPosZ  = ((float)packet.Pos_z) / 100;
                Vector3 newPosition = new UnityEngine.Vector3(fEnterPosX, 0, fEnterPosZ);
                //if (GameManager.gameManager.ActiveScene.IsT4MScene())
                //{
                newPosition.y = GameManager.gameManager.ActiveScene.GetTerrainHeight(newPosition);
                //}
                //else if (null != Terrain.activeTerrain)
                //{
                //newPosition.y = GameManager.gameManager.ActiveScene.GetNavSampleHeight(newPosition);
                //}

                //Temp,保证版本正确性
                newPosition = ActiveScene.GetTerrainPosition(newPosition);
//                  if (GameManager.gameManager.RunningScene == (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_ERHAI)
//                  {
//                      newPosition.y = 18.0f;
//                  }
//                  else if (GameManager.gameManager.RunningScene == (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_YANGWANGGUMU
//                      || GameManager.gameManager.RunningScene == (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_WANGYOUGU
//                      || GameManager.gameManager.RunningScene == (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_TIANSHAN)
//                  {
//                      newPosition.y = 22.5f;
//                  }

                TargetObj.Position = newPosition;
            }

            //主角位置特殊处理
            if (objId == MainPlayer.ServerID)
            {
                MainPlayer.LastSyncPos = MainPlayer.Position;
                if (null == MainPlayer.NavAgent)
                {
                    MainPlayer.InitNavAgent();
                    MainPlayer.NavAgent.destination = MainPlayer.Position;
                }
            }

            TargetObj.OnRelife();
            return((uint)PACKET_EXE.PACKET_EXE_CONTINUE);
        }