Exemple #1
0
        // 게임입장
        public void HandleEnterGame(C_EnterGame enterGamePacket)
        {
            if (ServerState != PlayerServerState.ServerStateLobby)
            {
                return;
            }

            LobbyPlayerInfo playerInfo = LobbyPlayers.Find(p => p.Name == enterGamePacket.Name);

            if (playerInfo == null)
            {
                return;
            }

            // 로비에서 캐릭터 선택완료
            MyPlayer = Game.ObjectManager.Instance.Add <Player>();
            {
                MyPlayer.PlayerDbId           = playerInfo.PlayerDbId;
                MyPlayer.Info.Name            = playerInfo.Name;
                MyPlayer.Info.PosInfo.State   = CreatureState.Idle;
                MyPlayer.Info.PosInfo.MoveDir = MoveDir.Down;
                MyPlayer.Info.PosInfo.PosX    = 0;
                MyPlayer.Info.PosInfo.PosY    = 0;
                MyPlayer.Stat.MergeFrom(playerInfo.StatInfo);
                MyPlayer.Session = this;

                S_ItemList itemListPacket = new S_ItemList();

                using (AppDbContext db = new AppDbContext())
                {
                    List <ItemDb> items = db.Items
                                          .Where(i => i.OwnerDbId == playerInfo.PlayerDbId)
                                          .ToList();
                    foreach (ItemDb itemDb in items)
                    {
                        Item item = Item.MakeItem(itemDb);
                        if (item != null)
                        {
                            // 인벤에 넣어주기
                            MyPlayer.Inven.Add(item);

                            // 아이템 정보
                            ItemInfo info = new ItemInfo();
                            info.MergeFrom(item.info);
                            itemListPacket.Items.Add(info);
                        }
                    }
                    // 클라에게 아이템 목록보내기
                    Send(itemListPacket);
                }
            }

            ServerState = PlayerServerState.ServerStateGame;
            // TODO 룸번호 바꾸기
            GameLogic.Instance.Push(() =>
            {
                GameRoom room = GameLogic.Instance.Find(1);
                room.Push(room.EnterGame, MyPlayer, true);
            });
        }
    public static void S_ItemListHandler(PacketSession session, IMessage packet)// 게임 처음 시작할떄 인벤토리 에 넣기
    {
        S_ItemList itemList = packet as S_ItemList;

        // 아이템정보 메모리에 들고있기
        foreach (ItemInfo itemInfo in itemList.Items)
        {
            Item item = Item.MakeItem(itemInfo);
            Managers.Inven.Add(item);
        }
        if (Managers.Object.MyPlayer != null)
        {
            Managers.Object.MyPlayer.RefreshAdditionalStat();
        }
    }
Exemple #3
0
    public static void S_ItemListHandler(PacketSession session, IMessage packet)
    {
        S_ItemList itemList = (S_ItemList)packet;

        Managers.Inven.Clear();

        foreach (ItemInfo itemInfo in itemList.Items)
        {
            Item item = Item.MakeItem(itemInfo);
            Managers.Inven.Add(item);
        }

        if (Managers.Object.MyPlayer != null)
        {
            Managers.Object.MyPlayer.RefreshAdditionalStat();
        }
    }
Exemple #4
0
 public static void S_ItemListHandler(PacketSession session, IMessage packet)// 게임 처음 시작할떄 인벤토리 에 넣기
 {
     S_ItemList itemList = packet as S_ItemList;
 }
Exemple #5
0
 public static void S_ItemListHandler(PacketSession session, IMessage packet)
 {
     S_ItemList itemList = (S_ItemList)packet;
 }