示例#1
0
        /// <summary>
        /// Size Packet 28 bytes
        /// </summary>
        /// <returns></returns>
        public byte[] GetClubData()
        {
            var ClubInfo = ItemWarehouse.GetItem(this.ClubSetIndex);

            if ((ClubInfo == null))
            {
                return(new byte[28]);
            }
            return(ClubInfo.GetClubInfo());
        }
示例#2
0
        public bool SetBallTypeID(uint TypeID)
        {
            var Ball = ItemWarehouse.GetItem(TypeID, 1);

            if ((Ball == null) || (!(Ball.ItemTypeID.GetItemGroup() == IffGroupFlag.ITEM_TYPE_BALL)))
            {
                return(false);
            }
            this.BallTypeID = TypeID;
            return(true);
        }
示例#3
0
        // club system
        public bool SetClubSetIndex(uint Index)
        {
            var Club = ItemWarehouse.GetItem(Index);

            if ((Club == null) || (!(Club.ItemTypeID.GetItemGroup() == IffGroupFlag.ITEM_TYPE_CLUB)))
            {
                return(false);
            }
            this.ClubSetIndex = Index;
            return(true);
        }
示例#4
0
        public override byte[] GetClubData()
        {
            PlayerItemData ClubInfo;

            ClubInfo = ItemWarehouse.GetItem(this.ClubSetIndex);
            if ((ClubInfo == null))
            {
                return(new byte[28]);
            }
            return(ClubInfo.GetClubInfo());
        }
示例#5
0
        public bool SetFrameIndex(uint typeID)
        {
            var Get = ItemWarehouse.GetItem(typeID, 1);

            if (Get == null)
            {
                return(false);
            }
            ItemDecoration.FrameTypeID = typeID;
            FrameIndex = Get.ItemIndex;
            return(true);
        }
示例#6
0
        public bool SetTitleIndex(uint ID)
        {
            var Get = ItemWarehouse.GetItem(ID);

            if (Get == null)
            {
                return(false);
            }
            ItemDecoration.TitleTypeID = Get.ItemTypeID;
            TitleIndex = Get.ItemIndex;
            return(true);
        }
示例#7
0
        public bool SetBackgroudIndex(uint typeID)
        {
            var Get = ItemWarehouse.GetItem(typeID, 1);

            if (Get == null)
            {
                return(false);
            }
            ItemDecoration.BackGroundTypeID = typeID;
            BackGroundIndex = Get.ItemIndex;
            return(true);
        }
示例#8
0
        public bool SetBallTypeID(uint TypeID)
        {
            PlayerItemData Ball;

            Ball = ItemWarehouse.GetItem(TypeID, 1);
            if ((Ball == null) || (!(GetItemGroup(Ball.ItemTypeID) == 0x5)))
            {
                return(false);
            }
            this.BallTypeID = TypeID;
            return(true);
        }
示例#9
0
        // club system
        public bool SetClubSetIndex(uint Index)
        {
            PlayerItemData Club;

            Club = ItemWarehouse.GetItem(Index);
            if ((Club == null) || (!(GetItemGroup(Club.ItemTypeID) == 0x4)))
            {
                return(false);
            }
            this.ClubSetIndex = Index;
            return(true);
        }
示例#10
0
        public override bool SetSlotIndex(uint typeID)
        {
            var Get = ItemWarehouse.GetItem(typeID, 1);

            if (Get == null)
            {
                return(false);
            }
            ItemDecoration.SlotTypeID = typeID;
            SlotIndex = Get.ItemIndex;
            return(true);
        }
示例#11
0
        // poster


        public bool SetCutInIndex(uint CharIndex, uint CutinIndex)
        {
            if (CutinIndex == 0)
            {
                return(true);
            }
            var Item     = ItemWarehouse.GetItem(CutinIndex, 0);
            var CharType = ItemCharacter.GetChar(CharIndex, 0);

            if (Item == null)
            {
                return(false);
            }
            if (CharType == null)
            {
                return(false);
            }
            CharType.CutinIndex = Item.ItemIndex;
            ItemCharacter.UpdateCharacter(CharType);
            return(true);
        }
示例#12
0
        // poster


        public override bool SetCutInIndex(uint CharIndex, uint CutinIndex)
        {
            if (CutinIndex == 0)
            {
                return(true);
            }
            var Item     = ItemWarehouse.GetItem(CutinIndex, TGET_ITEM.gcIndex);
            var CharType = ItemCharacter.GetChar(CharIndex, Defines.CharType.bIndex);

            if (Item == null)
            {
                return(false);
            }
            if (CharType == null)
            {
                return(false);
            }
            CharType.FCutinIndex = Item.ItemIndex;
            ItemCharacter.UpdateCharacter(CharType);
            return(true);
        }
示例#13
0
        public AddItemData AddItem(AddItem ItemAddItemData)
        {
            Object      WareHouseData;
            AddItemData Result;

            Result = new AddItemData()
            {
                Status = false
            };


            if (UID == 0)
            {
                return(Result);
            }
            switch (ItemAddItemData.ItemIffId.GetItemGroup())
            {
            case IffGroupFlag.ITEM_TYPE_CHARACTER:
            {
                WareHouseData = ItemCharacter.GetChar(ItemAddItemData.ItemIffId, 1);

                if (WareHouseData == null)
                {
                    return(AddItemToDB(ItemAddItemData));
                }

                else if (!(WareHouseData != null))
                {
                    Result.Status      = true;
                    Result.ItemIndex   = ((CharacterData)(WareHouseData)).Index;
                    Result.ItemTypeID  = ((CharacterData)(WareHouseData)).TypeID;
                    Result.ItemOldQty  = 1;
                    Result.ItemNewQty  = 1;
                    Result.ItemUCCKey  = string.Empty;
                    Result.ItemFlag    = 0;
                    Result.ItemEndDate = null;

                    if (ItemAddItemData.Transaction)
                    {
                        ItemTransaction.AddChar(2, (CharacterData)WareHouseData);
                    }
                }
            }
            break;

            case IffGroupFlag.ITEM_TYPE_HAIR_STYLE:
            {
                var IffHair   = IFFEntry.GetIff.GetByHairColor(ItemAddItemData.ItemIffId);
                var character = ItemCharacter.GetCharByType((byte)IffHair.CharType);
                if (character != null)
                {
                    character.HairColour = IffHair.HairColor;
                    character.Update(character);
                    Result.Status      = true;
                    Result.ItemIndex   = character.Index;
                    Result.ItemTypeID  = ItemAddItemData.ItemIffId;
                    Result.ItemOldQty  = 0;
                    Result.ItemNewQty  = 1;
                    Result.ItemUCCKey  = null;
                    Result.ItemFlag    = 0;
                    Result.ItemEndDate = null;
                }
            }
            break;

            case IffGroupFlag.ITEM_TYPE_PART:
            {
                return(AddItemToDB(ItemAddItemData));
            }

            case IffGroupFlag.ITEM_TYPE_CLUB:
            {
                return(AddItemToDB(ItemAddItemData));
            }

            case IffGroupFlag.ITEM_TYPE_AUX:
            case IffGroupFlag.ITEM_TYPE_BALL:
            case IffGroupFlag.ITEM_TYPE_USE:
            {
                WareHouseData = ItemWarehouse.GetItem(ItemAddItemData.ItemIffId, 1);
                if (WareHouseData != null)
                {
                    Result.Status      = true;
                    Result.ItemIndex   = ((WarehouseData)(WareHouseData)).ItemIndex;
                    Result.ItemTypeID  = ((WarehouseData)(WareHouseData)).ItemTypeID;
                    Result.ItemOldQty  = ((WarehouseData)(WareHouseData)).ItemC0;
                    Result.ItemNewQty  = ((WarehouseData)(WareHouseData)).ItemC0 + ItemAddItemData.Quantity;
                    Result.ItemUCCKey  = ((WarehouseData)(WareHouseData)).ItemUCCUnique;
                    Result.ItemFlag    = (byte)((WarehouseData)(WareHouseData)).ItemFlag;
                    Result.ItemEndDate = null;
                    //Add
                    ((WarehouseData)(WareHouseData)).AddQuantity(ItemAddItemData.Quantity);

                    if (ItemAddItemData.Transaction)
                    {
                        ItemTransaction.AddItem(0x02, (WarehouseData)WareHouseData, ItemAddItemData.Quantity);
                    }
                }

                else if (WareHouseData == null)
                {
                    return(AddItemToDB(ItemAddItemData));
                }
            }
            break;

            case IffGroupFlag.ITEM_TYPE_CADDIE:
            {
                return(AddItemToDB(ItemAddItemData));
            }

            case IffGroupFlag.ITEM_TYPE_CADDIE_ITEM:
            {
                WareHouseData = ItemCaddie.GetCaddieBySkinId(ItemAddItemData.ItemIffId);

                if (!(WareHouseData == null))
                {
                    ((CaddieData)(WareHouseData)).Update();
                    ((CaddieData)(WareHouseData)).UpdateCaddieSkin(ItemAddItemData.ItemIffId, ItemAddItemData.Day);
                    Result.Status      = true;
                    Result.ItemIndex   = ((CaddieData)(WareHouseData)).CaddieIdx;
                    Result.ItemTypeID  = ((CaddieData)(WareHouseData)).CaddieSkin;
                    Result.ItemOldQty  = 1;
                    Result.ItemNewQty  = 1;
                    Result.ItemUCCKey  = string.Empty;
                    Result.ItemFlag    = 0;
                    Result.ItemEndDate = DateTime.Now.AddDays(ItemAddItemData.Day);
                }
            }
            break;

            case IffGroupFlag.ITEM_TYPE_SKIN:
            {
                return(AddItemToDB(ItemAddItemData));
            }

            case IffGroupFlag.ITEM_TYPE_MASCOT:
            {
                WareHouseData = ItemMascot.GetMascotByTypeId(ItemAddItemData.ItemIffId);

                if (WareHouseData != null)
                {
                    ((MascotData)(WareHouseData)).AddDay(ItemAddItemData.Day);
                    Result.Status      = true;
                    Result.ItemIndex   = ((MascotData)(WareHouseData)).MascotIndex;
                    Result.ItemTypeID  = ((MascotData)(WareHouseData)).MascotTypeID;
                    Result.ItemOldQty  = 1;
                    Result.ItemNewQty  = 1;
                    Result.ItemUCCKey  = "";
                    Result.ItemFlag    = 0;
                    Result.ItemEndDate = ((MascotData)(WareHouseData)).MascotEndDate;
                }
                else if (WareHouseData == null)
                {
                    return(AddItemToDB(ItemAddItemData));
                }
            }
            break;

            case IffGroupFlag.ITEM_TYPE_CARD:
            {
                WareHouseData = ItemCard.GetCard(ItemAddItemData.ItemIffId, 1);

                if (WareHouseData == null)
                {
                    AddItemToDB(ItemAddItemData);
                }
                else if (WareHouseData != null)
                {
                    Result.Status      = true;
                    Result.ItemIndex   = ((CardData)(WareHouseData)).CardIndex;
                    Result.ItemTypeID  = ((CardData)(WareHouseData)).CardTypeID;
                    Result.ItemOldQty  = ((CardData)(WareHouseData)).CardQuantity;
                    Result.ItemNewQty  = ((CardData)(WareHouseData)).CardQuantity + ItemAddItemData.Quantity;
                    Result.ItemUCCKey  = string.Empty;
                    Result.ItemFlag    = 0;
                    Result.ItemEndDate = null;

                    ((CardData)(WareHouseData)).AddQuantity(ItemAddItemData.Quantity);

                    if (ItemAddItemData.Transaction)
                    {
                        ItemTransaction.AddCard(0x02, (CardData)WareHouseData, ItemAddItemData.Quantity);
                    }
                }
            }
            break;
            }
            return(Result);
        }
示例#14
0
        public AddItemData Remove(uint ItemIffId, uint Index, uint Quantity, bool Transaction = true)
        {
            AddItemData     ItemDeletedData;
            WarehouseData   Items;
            CardData        Cards;
            TransactionData Tran;

            ItemDeletedData = new AddItemData()
            {
                Status = false
            };
            if (UID <= 0)
            {
                return(ItemDeletedData);
            }

            if (ItemIffId <= 0 && Quantity <= 0)
            {
                return(ItemDeletedData);
            }


            switch (ItemIffId.GetItemGroup())
            {
            case IffGroupFlag.ITEM_TYPE_CLUB:
            case IffGroupFlag.ITEM_TYPE_USE:
            {
                Items = ItemWarehouse.GetItem(ItemIffId, Index, Quantity);

                if (!(Items == null))
                {
                    ItemDeletedData.Status      = true;
                    ItemDeletedData.ItemIndex   = Items.ItemIndex;
                    ItemDeletedData.ItemTypeID  = Items.ItemTypeID;
                    ItemDeletedData.ItemOldQty  = Items.ItemC0;
                    ItemDeletedData.ItemNewQty  = Items.ItemC0 - Quantity;
                    ItemDeletedData.ItemUCCKey  = Items.ItemUCCUnique;
                    ItemDeletedData.ItemFlag    = 0;
                    ItemDeletedData.ItemEndDate = null;
                    if (Transaction)
                    {
                        Tran = new TransactionData()
                        {
                            UCC = "", Types = 2, TypeID = Items.ItemTypeID, Index = Items.ItemIndex, PreviousQuan = Items.ItemC0, NewQuan = Items.ItemC0 - Quantity
                        };
                        ItemTransaction.Add(Tran);
                    }
                }
                // update item info
                Items.RemoveQuantity(Quantity);
                return(ItemDeletedData);
            }

            case IffGroupFlag.ITEM_TYPE_PART:
            {
                Items = ItemWarehouse.GetItem(ItemIffId, Index, 0);         // ## part should be zero

                if (!(Items == null))
                {
                    ItemDeletedData.Status      = true;
                    ItemDeletedData.ItemIndex   = Items.ItemIndex;
                    ItemDeletedData.ItemTypeID  = Items.ItemTypeID;
                    ItemDeletedData.ItemOldQty  = 1;
                    ItemDeletedData.ItemNewQty  = 0;
                    ItemDeletedData.ItemUCCKey  = Items.ItemUCCUnique;
                    ItemDeletedData.ItemFlag    = 0;
                    ItemDeletedData.ItemEndDate = null;
                    if (Transaction)
                    {
                        Tran = new TransactionData()
                        {
                            UCC = "", Types = 2, TypeID = Items.ItemTypeID, Index = Items.ItemIndex, PreviousQuan = 1, NewQuan = 0
                        };
                        ItemTransaction.Add(Tran);
                    }
                }
                // update item info
                Items.RemoveQuantity(Quantity);
                return(ItemDeletedData);
            }

            case IffGroupFlag.ITEM_TYPE_CARD:
            {
                Cards = ItemCard.GetCard(ItemIffId, Index, Quantity);

                if (!(Cards == null))
                {
                    ItemDeletedData.Status      = true;
                    ItemDeletedData.ItemIndex   = Cards.CardIndex;
                    ItemDeletedData.ItemTypeID  = Cards.CardTypeID;
                    ItemDeletedData.ItemOldQty  = Cards.CardQuantity;
                    ItemDeletedData.ItemNewQty  = Cards.CardQuantity - Quantity;
                    ItemDeletedData.ItemUCCKey  = string.Empty;
                    ItemDeletedData.ItemFlag    = 0;
                    ItemDeletedData.ItemEndDate = null;
                    if (Transaction)
                    {
                        Tran = new TransactionData()
                        {
                            UCC = "", Types = 2, TypeID = Cards.CardTypeID, Index = Cards.CardIndex, PreviousQuan = Cards.CardQuantity, NewQuan = Cards.CardQuantity - Quantity
                        };
                        ItemTransaction.Add(Tran);
                    }
                }
                // update item info
                Cards.RemoveQuantity(Quantity);
                return(ItemDeletedData);
            }
            }
            ItemDeletedData.SetData(false, 0, 0, 0, 0, string.Empty, 0, DateTime.Now);
            return(ItemDeletedData);
        }