コード例 #1
0
        public AddItemData AddRent(uint TypeID, ushort Day = 7)
        {
            object      PRent;
            AddItemData Result;

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

            if (!(TypeID.GetItemGroup() == IffGroupFlag.ITEM_TYPE_PART))
            {
                return(Result);
            }
            var _db = new PangyaEntities();
            var Add = _db.ProcAddRent((int)UID, (int)TypeID, Day).ToList();

            if (Add.Count <= 0)
            {
                return(Result);
            }
            foreach (var data in Add)
            {
                PRent = new WarehouseData();

                ((WarehouseData)(PRent)).ItemIndex     = (uint)data.ITEM_INDEX;
                ((WarehouseData)(PRent)).ItemTypeID    = (uint)data.ITEM_TYPEID;
                ((WarehouseData)(PRent)).ItemC0        = 0;
                ((WarehouseData)(PRent)).ItemUCCUnique = string.Empty;
                ((WarehouseData)(PRent)).CreateNewItem();
                ((WarehouseData)(PRent)).ItemFlag    = (byte)data.ITEM_FLAG;
                ((WarehouseData)(PRent)).ItemEndDate = data.ITEM_DATE_END;
                ItemWarehouse.ItemAdd((WarehouseData)(PRent));

                Result.Status      = true;
                Result.ItemIndex   = ((WarehouseData)(PRent)).ItemIndex;
                Result.ItemTypeID  = ((WarehouseData)(PRent)).ItemTypeID;
                Result.ItemOldQty  = 0;
                Result.ItemNewQty  = 1;
                Result.ItemUCCKey  = ((WarehouseData)(PRent)).ItemUCCUnique;
                Result.ItemFlag    = (byte)((WarehouseData)(PRent)).ItemFlag;
                Result.ItemEndDate = ((WarehouseData)(PRent)).ItemEndDate;
            }

            return(Result);
        }
コード例 #2
0
        public static byte[] ShowBuyItem(AddItemData Item, BuyItemData BuyData, uint Pang, uint Cookies)
        {
            var result = new PangyaBinaryWriter();

            result.Write(new byte[] { 0xAA, 0x00 });
            result.WriteUInt16(1);//count Sucess item(coloca sempre 1 eu acho)
            result.WriteUInt32(Item.ItemTypeID);
            result.WriteUInt32(Item.ItemIndex);
            result.WriteUInt16(BuyData.DayTotal);
            result.WriteByte(BuyData.Flag);
            result.WriteUInt32(Item.ItemNewQty);
            result.WriteTime((BuyData.EndDate));
            result.WriteStr(Item.ItemUCCKey, 7);
            result.WriteUInt64(Pang);
            result.WriteUInt64(Cookies);
            return(result.GetBytes());
        }
コード例 #3
0
        public AddItemData AddItemToDB(AddItem ItemAddItemData)
        {
            Object          PlayerObjectData;
            TransactionData Tran;
            AddItemData     Result;

            Result = new AddItemData()
            {
                Status = false
            };
            var _db     = new PangyaEntities();
            var additem = _db.ProcAddItem((int)UID, (int)ItemAddItemData.ItemIffId, (int)ItemAddItemData.Quantity, Compare.IfCompare <byte>(IFFEntry.GetIff.IsSelfDesign(ItemAddItemData.ItemIffId), 1, 0), IFFEntry.GetIff.GetItemTimeFlag(ItemAddItemData.ItemIffId, ItemAddItemData.Day), (int)ItemAddItemData.Day).ToList();

            if (additem.Count > 0)
            {
                var dbdata = additem.FirstOrDefault();

                Tran = new TransactionData()
                {
                    Types = 2, Index = (uint)dbdata.IDX, TypeID = (uint)dbdata.iffTypeId, PreviousQuan = 0, NewQuan = (uint)dbdata.Quantity, UCC = dbdata.UCC_KEY
                };

                ItemTransaction.Add(Tran);
                try
                {
                    switch (ItemAddItemData.ItemIffId.GetItemGroup())
                    {
                    case IffGroupFlag.ITEM_TYPE_CHARACTER:
                    {
                        PlayerObjectData = new CharacterData();

                        ((CharacterData)(PlayerObjectData)).Index      = (uint)dbdata.IDX;
                        ((CharacterData)(PlayerObjectData)).TypeID     = (uint)dbdata.iffTypeId;
                        ((CharacterData)(PlayerObjectData)).HairColour = 0;
                        ((CharacterData)(PlayerObjectData)).GiftFlag   = 0;
                        ItemCharacter.CharacterAdd((CharacterData)(PlayerObjectData));

                        CharacterIndex = (uint)dbdata.IDX;
                        Result         = new AddItemData()
                        {
                            Status      = true,
                            ItemIndex   = ((CharacterData)(PlayerObjectData)).Index,
                            ItemTypeID  = ((CharacterData)(PlayerObjectData)).TypeID,
                            ItemOldQty  = 1,
                            ItemNewQty  = 1,
                            ItemUCCKey  = string.Empty,
                            ItemFlag    = 0,
                            ItemEndDate = DateTime.MinValue,
                        };
                    }
                    break;

                    case IffGroupFlag.ITEM_TYPE_AUX:
                    case IffGroupFlag.ITEM_TYPE_PART:
                    case IffGroupFlag.ITEM_TYPE_CLUB:
                    case IffGroupFlag.ITEM_TYPE_BALL:
                    case IffGroupFlag.ITEM_TYPE_USE:
                    case IffGroupFlag.ITEM_TYPE_SKIN:
                    {
                        PlayerObjectData = new WarehouseData();
                        ((WarehouseData)(PlayerObjectData)).ItemIndex     = (uint)dbdata.IDX;
                        ((WarehouseData)(PlayerObjectData)).ItemTypeID    = (uint)dbdata.iffTypeId;
                        ((WarehouseData)(PlayerObjectData)).ItemC0        = (ushort)dbdata.Quantity;
                        ((WarehouseData)(PlayerObjectData)).ItemUCCUnique = dbdata.UCC_KEY;
                        ((WarehouseData)(PlayerObjectData)).CreateNewItem();
                        // Add to inventory list
                        ItemWarehouse.ItemAdd((WarehouseData)(PlayerObjectData));
                        // Set the result data
                        Result = new AddItemData()
                        {
                            Status      = true,
                            ItemIndex   = ((WarehouseData)(PlayerObjectData)).ItemIndex,
                            ItemTypeID  = ((WarehouseData)(PlayerObjectData)).ItemTypeID,
                            ItemOldQty  = 0,
                            ItemNewQty  = ItemAddItemData.Quantity,
                            ItemUCCKey  = ((WarehouseData)(PlayerObjectData)).ItemUCCUnique,
                            ItemFlag    = 0,
                            ItemEndDate = null,
                        };
                    }
                    break;

                    case IffGroupFlag.ITEM_TYPE_CADDIE:
                    {
                        PlayerObjectData = new CaddieData();
                        ((CaddieData)(PlayerObjectData)).CaddieIdx     = (uint)dbdata.IDX;
                        ((CaddieData)(PlayerObjectData)).CaddieTypeId  = (uint)dbdata.iffTypeId;
                        ((CaddieData)(PlayerObjectData)).CaddieDateEnd = (DateTime)dbdata.END_DATE;
                        ((CaddieData)(PlayerObjectData)).CaddieAutoPay = 0;
                        ((CaddieData)(PlayerObjectData)).CaddieType    = (byte)dbdata.Flag;
                        // Add caddie to inventory list
                        ItemCaddie.CadieAdd((CaddieData)(PlayerObjectData));
                        // set the result data
                        Result = new AddItemData()
                        {
                            Status      = true,
                            ItemIndex   = ((CaddieData)(PlayerObjectData)).CaddieIdx,
                            ItemTypeID  = ((CaddieData)(PlayerObjectData)).CaddieTypeId,
                            ItemOldQty  = 0,
                            ItemNewQty  = 1,
                            ItemUCCKey  = string.Empty,
                            ItemFlag    = ((CaddieData)(PlayerObjectData)).CaddieType,
                            ItemEndDate = null,
                        };
                    }
                    break;

                    case IffGroupFlag.ITEM_TYPE_CARD:
                    {
                        PlayerObjectData = new CardData();
                        ((CardData)(PlayerObjectData)).CardIndex      = (uint)dbdata.IDX;
                        ((CardData)(PlayerObjectData)).CardTypeID     = (uint)dbdata.iffTypeId;
                        ((CardData)(PlayerObjectData)).CardQuantity   = ItemAddItemData.Quantity;
                        ((CardData)(PlayerObjectData)).CardIsValid    = 1;
                        ((CardData)(PlayerObjectData)).CardNeedUpdate = false;
                        // ## add to card
                        ItemCard.CardAdd((CardData)(PlayerObjectData));
                        // set the result data
                        Result = new AddItemData()
                        {
                            Status      = true,
                            ItemIndex   = ((CardData)(PlayerObjectData)).CardIndex,
                            ItemTypeID  = ((CardData)(PlayerObjectData)).CardTypeID,
                            ItemOldQty  = 0,
                            ItemNewQty  = ((CardData)(PlayerObjectData)).CardQuantity,
                            ItemUCCKey  = string.Empty,
                            ItemFlag    = 0,
                            ItemEndDate = null,
                        };
                    }
                    break;

                    case IffGroupFlag.ITEM_TYPE_MASCOT:
                    {
                        PlayerObjectData = new MascotData();
                        ((MascotData)(PlayerObjectData)).MascotIndex      = (uint)dbdata.IDX;
                        ((MascotData)(PlayerObjectData)).MascotTypeID     = (uint)dbdata.iffTypeId;
                        ((MascotData)(PlayerObjectData)).MascotMessage    = "Pangya !";
                        ((MascotData)(PlayerObjectData)).MascotIsValid    = 1;
                        ((MascotData)(PlayerObjectData)).MascotNeedUpdate = false;
                        ((MascotData)(PlayerObjectData)).MascotEndDate    = (DateTime)dbdata.END_DATE;

                        ((MascotData)(PlayerObjectData)).MascotDayToEnd = (ushort)dbdata.END_DATE.DaysBetween(DateTime.Now);
                        // ## add to card
                        ItemMascot.MascotAdd((MascotData)(PlayerObjectData));
                        // set the result data
                        Result = new AddItemData()
                        {
                            Status      = true,
                            ItemIndex   = ((MascotData)(PlayerObjectData)).MascotIndex,
                            ItemTypeID  = ((MascotData)(PlayerObjectData)).MascotTypeID,
                            ItemOldQty  = 0,
                            ItemNewQty  = 1,
                            ItemUCCKey  = string.Empty,
                            ItemFlag    = 4,
                            ItemEndDate = DateTime.Now.AddDays(ItemAddItemData.Day + 1),
                        };
                    }
                    break;
                    }
                }
                catch
                {
                }
            }
            // ## resulted
            return(Result);
        }
コード例 #4
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);
        }
コード例 #5
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);
        }