// 게임입장 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(); } }
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(); } }
public static void S_ItemListHandler(PacketSession session, IMessage packet)// 게임 처음 시작할떄 인벤토리 에 넣기 { S_ItemList itemList = packet as S_ItemList; }
public static void S_ItemListHandler(PacketSession session, IMessage packet) { S_ItemList itemList = (S_ItemList)packet; }