Example #1
0
    public static void S_EquipItemHandler(PacketSession session, IMessage packet)
    {
        S_EquipItem equipItemOk = (S_EquipItem)packet;

        // 메모리에 아이템 정보 적용
        Item item = Managers.Inven.Get(equipItemOk.ItemDbId);

        if (item == null)
        {
            return;
        }

        item.Equipped = equipItemOk.Equipped;
        Debug.Log("Change setted item!");

        UI_GameScene gameSceneUI = Managers.UI.SceneUI as UI_GameScene;

        gameSceneUI.InvenUI.RefreshUI();
        gameSceneUI.StatUI.RefreshUI();

        if (Managers.Object.MyPlayer != null)
        {
            Managers.Object.MyPlayer.RefreshAdditionalStat();
        }
    }
Example #2
0
    public static void S_EquipItemHandler(PacketSession session, IMessage packet)// 아이템 장착 / 탈착
    {
        S_EquipItem equipItemOk = packet as S_EquipItem;

        Item item = Managers.Inven.Get(equipItemOk.ItemDbId);

        if (item == null)
        {
            return;
        }

        item.Equipped = equipItemOk.Equipped;
        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();
        }
    }
Example #3
0
        public void HandleEquipItem(C_EquipItem equipPacket)
        {
            Item item = Inven.Get(equipPacket.ItemDbId);

            if (item == null)
            {
                return;
            }

            if (item.ItemType == ItemType.Consumable)
            {
                return;
            }

            // 착용 요청이라면, 겹치는 부위 해제
            if (equipPacket.Equipped)
            {
                Item unequipItem = null;

                if (item.ItemType == ItemType.Weapon)
                {
                    unequipItem = Inven.Find(i => i.Equipped && i.ItemType == ItemType.Weapon);
                }
                else if (item.ItemType == ItemType.Armor)
                {
                    ArmorType armorType = ((Armor)item).ArmorType;
                    unequipItem = Inven.Find(i => i.Equipped && i.ItemType == ItemType.Armor && ((Armor)i).ArmorType == armorType);
                }

                if (unequipItem != null)
                {
                    // 메모리 선적용
                    unequipItem.Equipped = false;

                    // DB Noti
                    DbTransaction.EquipItemNoti(this, unequipItem);

                    // 클라이언트 Noti
                    S_EquipItem equipOkItem = new S_EquipItem();
                    equipOkItem.ItemDbId = unequipItem.ItemDbId;
                    equipOkItem.Equipped = unequipItem.Equipped;
                    Session.Send(equipOkItem);
                }
            }

            {
                // 메모리 선적용
                item.Equipped = equipPacket.Equipped;

                // DB Noti
                DbTransaction.EquipItemNoti(this, item);

                // 클라이언트 Noti
                S_EquipItem equipOkItem = new S_EquipItem();
                equipOkItem.ItemDbId = equipPacket.ItemDbId;
                equipOkItem.Equipped = equipPacket.Equipped;
                Session.Send(equipOkItem);
            }

            RefreshAdditionalStat();
        }
Example #4
0
 public static void S_EquipItemHandler(PacketSession session, IMessage packet)// 아이템 장착 / 탈착
 {
     S_EquipItem equipItemOk = packet as S_EquipItem;
 }
Example #5
0
        public void HandleEquipItem(C_EquipItem equipPacket)
        {
            // 아이템 있나 체크
            Item item = this.Inven.Get(equipPacket.ItemDbId);

            if (item == null)
            {
                return;
            }

            if (item.ItemType == ItemType.Consumable)
            {
                return;//소모품은 장착아님
            }
            // 장착 요청이면 겹치는 부위 해제
            if (equipPacket.Equipped)
            {
                Item unequipItem = null;

                // 무기는 하나만
                if (item.ItemType == ItemType.Weapon)
                {
                    unequipItem = this.Inven.Find(
                        i => i.Equipped && i.ItemType == ItemType.Weapon);
                }
                // 방어구는 비교
                else if (item.ItemType == ItemType.Armor)
                {
                    ArmorType armorType = ((Armor)item).ArmorType;
                    unequipItem = this.Inven.Find(
                        i => i.Equipped && i.ItemType == ItemType.Armor && ((Armor)i).ArmorType == armorType);
                }
                // 겹치는 아이템 벗기
                if (unequipItem != null)
                {
                    // 메모리 선적용
                    unequipItem.Equipped = false;

                    // DB에 Noti
                    DbTransaction.EquipItemNoti(this, unequipItem);

                    // 클라에 통보
                    S_EquipItem equipOkItem = new S_EquipItem();
                    equipOkItem.ItemDbId = unequipItem.ItemDbId;
                    equipOkItem.Equipped = unequipItem.Equipped;
                    this.Session.Send(equipOkItem);
                }
            }
            // 요청사항 적용
            {
                // 메모리 선적용
                item.Equipped = equipPacket.Equipped;

                // DB에 Noti
                DbTransaction.EquipItemNoti(this, item);

                // 클라에 통보
                S_EquipItem equipOkItem = new S_EquipItem();
                equipOkItem.ItemDbId = equipPacket.ItemDbId;
                equipOkItem.Equipped = equipPacket.Equipped;
                this.Session.Send(equipOkItem);
            }
            RefreshAdditionalStat();
        }
Example #6
0
 public static void S_EquipItemHandler(PacketSession session, IMessage packet)
 {
     S_EquipItem equipItemOk = (S_EquipItem)packet;
 }