コード例 #1
0
        public override void RunImpl()
        {
            
            //меджик формула :  itemid - 30 + 1000000000
            Item item = getClient().getPlayer().getItemById(ID);
            Player player = getClient().getPlayer();            
            int oldID = item.Id;
            ItemsTable.DelItem(oldID);
            int NewID = oldID - 30 + 1000000000;
            int CouponTime = Convert.ToInt32(DateTime.Now.ToString("yyMMddHHmm") + "0000070000");//актуальное время + 7 дней(для теста)
            ItemsTable.AddItem(getClient().getPlayer().PlayerID, NewID, 10, 3, CouponTime);

            switch (NewID) // Need help for get ItemID
            {
                case 100040001:
                    player.setEffect2(player.getEffect2() + 32); // Mega HP 5% 
                    PlayersTable.UpdateEffect2(player.AccountID, player.getEffect2() + 32);
                break;
            } 
            if ( NewID != 100040001)
            {
                getClient().SendPacket((SendPacket)new PROTOCOL_INVENTORY_DELET_ITEM_ACK(ID)); // Verify for me?
            }            
            getClient().SendPacket((SendPacket)new PROTOCOL_INVENTORY_ADD_ITEM_ACK(NewID));
        }
コード例 #2
0
        public override void WriteImpl()
        {
            Logger.Warn("Item Type: " + Slot);

            WriteH(0x213);
            if (error == 0)
            {
                WriteD(1);
                WriteD(Convert.ToInt32(DateTime.Now.ToString("yyMMddHHmm"))); //DateTimeUtil.getDateTime()
                Logger.Warn("TIME: " + Convert.ToInt32(DateTime.Now.ToString("yyMMddHHmm")));
                if (item.ItemType >= 0)
                {
                    if (item.ItemType < 5)
                    {
                        WriteD(0);
                        WriteD(1);
                        WriteD(0);
                        //Добавляем итем в базу данных
                        ItemsTable.AddItem(item.OwnerId, item.ItemId, item.ItemType, item.Type, item.Count);
                    }
                    else if (item.ItemType > 4 & item.ItemType < 10)
                    {
                        WriteD(1);
                        WriteD(0);
                        WriteD(0);
                        //Добавляем итем в базу данных
                        ItemsTable.AddItem(item.OwnerId, item.ItemId, item.ItemType, item.Type, item.Count);
                    }
                    else if (item.ItemType >= 10)
                    {
                        WriteD(0);
                        WriteD(0);
                        WriteD(1);

                        int newID = item.ItemId + 30 - 1000000000;
                        ItemsTable.AddItem(item.OwnerId, newID, item.ItemType, item.Type, item.Count);
                    }
                }
                Money = player.getMoney();
                GP    = player.getGp();

                //Обновляем кол-во средств на аккаунте
                PlayersTable.UpdateMoney(player.PlayerID, GP, Money);

                if (item.ItemType == 3)
                {
                    WriteQ(0);
                }
                else
                {
                    WriteQ(item.ItemId);
                }

                WriteD(item.ItemId);     //id
                WriteC((byte)item.Type); //settings weapon - type
                WriteD(item.Count);      //settings weapon - count
                WriteD(player.getGp());
                WriteD(player.getMoney());
            }
            else
            {
                WriteD((int)error);
            }
        }