Example #1
0
        public void OnResponse_MSG_GC_ENTER_ZONE(MemoryStream stream)
        {
            MSG_GC_ENTER_ZONE MSG_GC_ENTER_ZONE = MessagePacker.ProtobufHelper.Deserialize <MSG_GC_ENTER_ZONE>(stream);

            player.MapTransforming     = true;
            player.CharInfo.InstanceId = MSG_GC_ENTER_ZONE.InstanceId;
            player.CurrentCharacterId  = MSG_GC_ENTER_ZONE.InstanceId;
            player.CharInfo.PosX       = MSG_GC_ENTER_ZONE.PosX;
            player.CharInfo.PosY       = MSG_GC_ENTER_ZONE.PosY;
            player.IsChangeChannel     = false;
            if (player.Channel != 0 && player.Channel != MSG_GC_ENTER_ZONE.Channel)
            { //判断是否切线,是则不load场景 不清除NPC和采集物 TODO
                player.IsChangeChannel = true;
            }
            player.Channel    = MSG_GC_ENTER_ZONE.Channel;
            player.MinChannel = MSG_GC_ENTER_ZONE.MinChannel;
            player.MaxChannel = MSG_GC_ENTER_ZONE.MaxChannel;
            //if (PLAYER.BattleType < (int)BattleType.MatchNormal)
            //{//非战场
            if (!player.IsChangeChannel)
            {//非切线
             //CharacterManager.inst.ClearQueue();
             //CharacterManager.inst.BindPlayer(PLAYER.CharInfo);
             //MapManager.inst.LoadMap(MSG_GC_ENTER_ZONE.mapId);
             //foreach (MSG_ZGC_NPC_INFO info in MSG_GC_ENTER_ZONE.NpcList)
             //{
             //    CharacterManager.inst.BindNPC(info);
             //}
             //foreach (MSG_ZGC_GOODS_INFO item in MSG_GC_ENTER_ZONE.GoodsList)
             //{
             //    CharacterManager.inst.BindNPCItem(item);
             //}
                Login_Request_MSG_CG_MAP_LOADING_DONE(MSG_GC_ENTER_ZONE.MapId, player.Channel);
            }
            else
            {//切线 清除场景中玩家
             //CharacterManager.inst.ClearOtherPlayer();
                //// CharacterManager.inst.ClearQueue();
                //CharacterManager.inst.BindPlayer(PLAYER.CharInfo);
                //UI.CloseWait(OnCloseWait(), 3f, "system_changechannelsuccess");
                Login_Request_MSG_CG_MAP_LOADING_DONE(MSG_GC_ENTER_ZONE.MapId, player.Channel);
                player.MapTransforming = false;
            }
        }
Example #2
0
        public void OnResponse_MSG_GC_ENTER_ZONE(MemoryStream stream)
        {
            MSG_GC_ENTER_ZONE MSG_GC_ENTER_ZONE = ProtoBuf.Serializer.Deserialize <MSG_GC_ENTER_ZONE>(stream);

            player.MapTransforming     = true;
            player.CharInfo.InstanceId = MSG_GC_ENTER_ZONE.instanceId;
            player.CurrentCharacterId  = MSG_GC_ENTER_ZONE.instanceId;
            player.CharInfo.PosX       = MSG_GC_ENTER_ZONE.posX;
            player.CharInfo.PosY       = MSG_GC_ENTER_ZONE.posY;
            player.IsChangeChannel     = false;
            if (player.Channel != 0 && player.Channel != MSG_GC_ENTER_ZONE.channel)
            { //判断是否切线,是则不load场景 不清除NPC和采集物 TODO
                player.IsChangeChannel = true;
            }
            player.Channel    = MSG_GC_ENTER_ZONE.channel;
            player.MinChannel = MSG_GC_ENTER_ZONE.minChannel;
            player.MaxChannel = MSG_GC_ENTER_ZONE.maxChannel;


            Request_MSG_CG_MAP_LOADING_DONE(MSG_GC_ENTER_ZONE.mapId, player.Channel);
        }