public static void RewardPlayer(Player player, RewardData rewardData, GameRoom room) { if (player == null || rewardData == null || room == null) { return; } // TODO : 살짝 문제가 있긴 하다... // 1) DB에다가 저장 요청 // 2) DB 저장 OK // 3) 메모리에 적용 int?slot = player.Inven.GetEmptySlot(); if (slot == null) { return; } ItemDb itemDb = new ItemDb() { TemplateId = rewardData.itemId, Count = rewardData.count, Slot = slot.Value, OwnerDbId = player.PlayerDbId }; // You Instance.Push(() => { using (AppDbContext db = new AppDbContext()) { db.Items.Add(itemDb); bool success = db.SaveChangesEx(); if (success) { // Me room.Push(() => { Item newItem = Item.MakeItem(itemDb); player.Inven.Add(newItem); // Client Noti { S_AddItem itemPacket = new S_AddItem(); ItemInfo itemInfo = new ItemInfo(); itemInfo.MergeFrom(newItem.Info); itemPacket.Items.Add(itemInfo); player.Session.Send(itemPacket); } }); } } }); }
public static void S_AddItemHandler(PacketSession session, IMessage packet) { S_AddItem itemList = (S_AddItem)packet; // 메모리에 아이템 정보 적용 foreach (ItemInfo itemInfo in itemList.Items) { Item item = Item.MakeItem(itemInfo); Managers.Inven.Add(item); } Debug.Log("아이템을 획득했습니다."); UI_GameScene gameSceneUI = Managers.UI.SceneUI as UI_GameScene; gameSceneUI.InvenUI.RefreshUI(); gameSceneUI.StatUi.RefreshUI(); if (Managers.Obj.MyPlayer != null) { Managers.Obj.MyPlayer.RefreshAdditionalStat(); } }
public static void S_AddItemHandler(PacketSession session, IMessage packet)// 인게임중 아이템 획득 { S_AddItem itemList = packet as S_AddItem; // 아이템정보 메모리에 들고있기 foreach (ItemInfo itemInfo in itemList.Items) { Item item = Item.MakeItem(itemInfo); Managers.Inven.Add(item); } Debug.Log("아이템 획득!"); // 인벤토리 새로고침 UI_GameScene gameSceneUI = Managers.UI.SceneUI as UI_GameScene; gameSceneUI.InvenUI.RefreshUI(); gameSceneUI.StatUI.RefreshUI(); // 변경스텟 적용 if (Managers.Object.MyPlayer != null) { Managers.Object.MyPlayer.RefreshAdditionalStat(); } }
public static void S_AddItemHandler(PacketSession session, IMessage packet)// 인게임중 아이템 획득 { S_AddItem itemList = packet as S_AddItem; }
public static void S_AddItemHandler(PacketSession session, IMessage packet) { S_AddItem itemList = (S_AddItem)packet; }