قديم 2021-08-16, 03:06 PM
المشاركة 11
Suozuke
.:: عضو جديد ::.
  • غير متواجد
افتراضي رد: حل مشكلا اختفاء الاصطفه يريت اي مساعده يا جماعه
ومش هيبان علشان الي مسئول عن انه يبان او لا هو اللودر
عموما فيه طرق تانيه تخليه يبان بيها علي الاسطف عادي هتبدل بس شويه حاجات كدا وهيبان
انما الي بتعمله دا غلط
+ المشكلة الاساسية اتحلت ولا لا عشان نقفل الموضوع؟
للاسف يا كبير لسا المشكلا زي مهايا بتختفي حاجا تجنن بصراحه

قديم 2021-08-16, 07:09 PM
المشاركة 12
Suozuke
.:: عضو جديد ::.
  • غير متواجد
افتراضي رد: حل مشكلا اختفاء الاصطفه يريت اي مساعده يا جماعه
ده ملف Inventory

يريت تشفهولي بحيث لو ف مشكلا منو انا رجعت كل الملفات الي مربوطه بي الايتم مفيش برضو كل يوم الناس تشتكي وحجات بتختفي

كود:
using System;
using System.Linq;
using System.Collections.Generic;
using ConQuerSquad.Network.GamePackets;
using ConQuerSquad.Database;
using ConQuerSquad.Client;

namespace 
ConQuerSquad.Game.ConquerStructures
{
    public class 
ItemLog
    
{
        public 
enum ItemLogAction
        
{
            
Add = 1,
            
Remove = 2
        
}
        public static 
void CleanUp()
        {

        }
        public static 
void LogItem(uint uid, uint param1, ItemLogAction action)
        {
            
//DateTime Date = DateTime.Now;
            //MySqlCommand cmd = new MySqlCommand(MySqlCommandType.INSERT);
            //cmd.Insert("itemlog").Insert("itemuid", uid).Insert("param1", param1).Insert("action", (byte)action)
            //    .Insert("datestring", Date.ToString()).Insert("datebinary", Date.ToBinary()).Execute();
        
}
    }
    public 
unsafe class Inventory
    
{
        
Dictionary<uint, MsgItemInfo> inventory;
        
MsgItemInfo[] objects;
        
Client.GameState Owner;
        public 
Inventory(Client.GameState client)
        {
            
Owner = client;
            
//if (client.Player != null)
            //{
            //    inventory = new Dictionary<uint, MsgItemInfo>(40 + (int)client.Player.ExtraInventory);
            //}
            //else
            //{
            
inventory = new Dictionary<uint, MsgItemInfo>(40);

            
//}
            // inventory = new Dictionary<uint, MsgItemInfo>(40 + (int)client.Player.ExtraInventory);
            
objects = new MsgItemInfo[0];
        }
        public 
bool Contains(uint ID, bool bound, ushort maxstackamount, out MsgItemInfo Item)
        {
            
Item = null;
            if (
ID == 0) return false;
            foreach (
MsgItemInfo item in Objects)
            {
                if (
item.ID == ID && item.StackSize < maxstackamount)
                {
                    
Item = item;
                    return 
true;
                }
            }
            return 
false;
        }
        public 
bool PackMeteors()
        {
            
bool done = false;
            
#region Basement Dicts
            
var items = inventory.Values.Where(p => p.ID == 1088001).ToList();
            List<
MsgItemInfo> BoundMeteors = new List<MsgItemInfo>();
            List<
MsgItemInfo> Meteors = new List<MsgItemInfo>();
            
#endregion
            #region ReadItems
            
foreach (var item in items)
            {
                if (
item.Bound)
                {
                    
BoundMeteors.Add(item);
                    
items.Remove(item);
                    
inventory.Remove(item.UID);
                }
                else if (!
item.Bound)
                {
                    
Meteors.Add(item);
                    
items.Remove(item);
                    
inventory.Remove(item.UID);
                }
            }
            
#endregion
            #region Did Something
            
if (Meteors.Count > 10)
            {
                for (
int x = 0; x < 10; x++)
                {
                    
Remove(Meteors[x], Enums.ItemUse.Delete);
                }
                
Add(720027, 0, 1);
                
done = true;
                return 
done;
            }
            else if (
Meteors.Count < 10 && BoundMeteors.Count > 10)
            {
                for (
int x = 0; x < 10; x++)
                {
                    
Remove(BoundMeteors[x], Enums.ItemUse.Delete);
                }
                
AddBound(720027, 0, 1);
                
done = true;
                return 
done;
            }
            
#endregion
            
return done;
        }
        public 
void Add(string Name)
        {
            foreach (var 
item in Database.ConquerItemInformation.BaseInformations.Values)
            {
                if (
item.Name == Name)
                {
                    
Add(item.ID, 0, 1);
                    break;
                }
            }
        }
        public 
bool AddTime(uint id)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, 0);
                if (
Count <= 39)
                {
                    
MsgItemInfo item;
                    
item = new MsgItemInfo(true);
                    {
                        
item.ID = id;
                        
item.Plus = 0;
                        
item.Bless = 0;
                        
item.Enchant = 0;
                        
item.SocketOne = 0;
                        
item.SocketTwo = 0;
                        
item.DayStamp = DateTime.Now;
                        
TimeSpan Remain = item.DayStamp.AddMinutes(59) - DateTime.Now;
                        
item.TimeLeftInMinutes = (uint)Remain.TotalSeconds;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                    };
                    
this.Add(item, Enums.ItemUse.CreateAndAdd);
                    
Database.ConquerItemTable.Update_Free(item, Owner);
                }
                else
                {
                    return 
false;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddRune(uint id, ushort times, bool bound = false)
        {
            try
            {
                
ConquerItemInformation infos = new ConquerItemInformation(id, 0);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
//MsgItemInfo _ExistingItem;
                        //if (GetStackContainer(infos.BaseInformation.ID, infos.BaseInformation.StackSize, 1, out _ExistingItem))
                        //{
                        //    if (_ExistingItem.StackSize == 0)
                        //        _ExistingItem.StackSize = 1;
                        //    ushort _StackCount = infos.BaseInformation.StackSize;
                        //    _StackCount -= _ExistingItem.StackSize;
                        //    if (_StackCount >= 1)
                        //        _StackCount += 1;
                        //    _ExistingItem.StackSize += 1;
                        //    ConquerItemTable.UpdateStack(_ExistingItem);
                        //    _ExistingItem.Mode = Enums.ItemMode.Update;
                        //    _ExistingItem.Send(Owner);
                        //    _ExistingItem.Mode = Enums.ItemMode.Default;

                        //}
                        //else
                        
{
                            
MsgItemInfo item = new MsgItemInfo(true);
                            
//#region Stacksize
                            //if (infos.BaseInformation.StackSize > 1)
                            //{
                            //    ushort _StackCount = infos.BaseInformation.StackSize;
                            //    if (times <= infos.BaseInformation.StackSize)
                            //        _StackCount = (ushort)times;
                            //    item.StackSize = (ushort)_StackCount;
                            //    Database.ConquerItemTable.UpdateStack(item);
                            //    times -= (byte)_StackCount;
                            //}
                            //else
                            //{
                            //    item = new MsgItemInfo(true);
                            //    item.StackSize = 1;
                            //    times--;
                            //}
                            //#endregion Stacksize
                            
item = new MsgItemInfo(true);
                            
item.ID = id;
                            
item.Position = 211;
                            
item.Bound = bound;
                            
item.RuneSkill = infos.BaseInformation.subtype;
                            
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                            
item.Color = (Enums.Color)3;
                            
Add(item, Enums.ItemUse.CreateAndAdd);
                            
ConquerItemTable.UpdateStack(item);
                        }
                    }
                    else
                    {
                        return 
false;
                    }
                    
times--;
                }
            }
            catch (
Exception ex) { Console.WriteLine(ex); }
            return 
true;
        }
        public 
bool Add(MsgItemInfo item, Enums.ItemUse use, bool bound = true)
        {
            try
            {
                if (!
Database.ConquerItemInformation.BaseInformations.ContainsKey(item.ID)) return true;
                if (
Count == 40)
                {
                    
Owner.Send(Constants.FullInventory);
                    return 
false;
                }
                if (!
inventory.ContainsKey(item.UID))
                {
                    
item.Position = 0;
                    
MsgItemInfo _ExistingItem;
                    
Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(item.ID, 0);
                    if (
Owner.Inventory.Contains(iteminfo.BaseInformation.ID, bound, iteminfo.BaseInformation.StackSize, out _ExistingItem))
                    {
                        if (
_ExistingItem.StackSize == 0)
                            
_ExistingItem.StackSize = 1;
                        
ushort _StackCount = iteminfo.BaseInformation.StackSize;
                        
_StackCount -= (ushort)_ExistingItem.StackSize;
                        if (
_StackCount >= 1)
                            
_StackCount += 1;
                        
_ExistingItem.StackSize += 1;
                        
Database.ConquerItemTable.UpdateStack(_ExistingItem);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Update;
                        
_ExistingItem.Send(Owner);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Default;
                        switch (use)
                        {
                            case 
Enums.ItemUse.Add:
                                {
                                    
Database.ConquerItemTable.DeleteItem(item.UID);
                                    break;
                                }
                            case 
Enums.ItemUse.Move:
                                {
                                    
Database.ConquerItemTable.DeleteItem(item.UID);
                                    break;
                                }
                        }
                        return 
true;
                    }
                    else
                    {
                        switch (use)
                        {
                            case 
Enums.ItemUse.CreateAndAdd:
                                {
                                    
item.UID = MsgItemInfo.ItemUID.Next;
                                    
Database.ConquerItemTable.AddItem(ref item, Owner);
                                    
Database.ConquerItemTable.Update_Free(item, Owner);
                                    
item.MobDropped = false;
                                    break;
                                }
                            case 
Enums.ItemUse.Add:
                                {
                                    
Database.ConquerItemTable.UpdateLocation(item, Owner);
                                    break;
                                }
                            case 
Enums.ItemUse.Move:
                                {
                                    
item.Position = 0;
                                    
item.StatsLoaded = false;
                                    
Database.ConquerItemTable.UpdateLocation(item, Owner);
                                    break;
                                }
                        }
                        
inventory.Add(item.UID, item);
                        
objects = inventory.Values.ToArray();
                        
item.Mode = Enums.ItemMode.Default;
                        if (use != 
Enums.ItemUse.None)
                            
item.Send(Owner);
                        return 
true;
                    }
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
false;
        }
        
/*  public bool AddTime(uint id, uint seconds, byte blees, bool bound = false)
          {
              try
              {
                  Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, 0);
                  if (Count <= 39)
                  {
                      MsgItemInfo item;
                      item = new MsgItemInfo(true);
                      {

                          item.ID = id;
                          item.Plus = 0;
                          item.Bless = blees;
                          item.Enchant = 0;
                          item.SocketOne = 0;
                          item.SocketTwo = 0;
                          item.Bound = bound;
                          item.TimeStamp = DateTime.Now;
                          item.Minutes = (seconds / 60);
                          item.TimeLeftInMinutes = seconds;
                          item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                      };
                      Add(item, Enums.ItemUse.CreateAndAdd);
                  }
                  else
                  {
                      return false;
                  }
              }
              catch (Exception)
              {
              }
              return true;
          }*/
        
public bool AddTime(uint id, uint seconds, byte plus, byte Bless, byte times, bool bound)
        {
            try
            {
                
ConquerItemInformation conquerItemInformation1 = new ConquerItemInformation(id, (byte)0);
                for (; (int)
times > 0; --times)
                {
                    
ConquerItemInformation conquerItemInformation2 = new ConquerItemInformation(id, (byte)0);
                    
MsgItemInfo conquerItem1;
                    if (
this.Owner.Inventory.Contains(conquerItemInformation2.BaseInformation.ID, bound, conquerItemInformation2.BaseInformation.StackSize, out conquerItem1))
                    {
                        if ((int)
conquerItem1.StackSize == 0)
                            
conquerItem1.StackSize = (ushort)1;
                        
ushort num1 = (ushort)((uint)conquerItemInformation2.BaseInformation.StackSize - (uint)conquerItem1.StackSize);
                        if ((int)
num1 >= 1)
                        {
                            
ushort num2 = (ushort)((uint)num1 + 1U);
                        }
                        ++
conquerItem1.StackSize;
                        
ConquerItemTable.UpdateStack(conquerItem1);
                        
conquerItem1.Mode = Enums.ItemMode.Update;
                        
conquerItem1.Send(this.Owner);
                        
conquerItem1.Mode = Enums.ItemMode.Default;
                    }
                    else if ((int)
this.Count <= 39)
                    {
                        
MsgItemInfo conquerItem2 = new MsgItemInfo(true);
                        
conquerItem2.ID = id;
                        
conquerItem2.Plus = (byte)0;
                        
conquerItem2.Bless = (byte)0;
                        
conquerItem2.Enchant = (byte)0;
                        
conquerItem2.SocketOne = Enums.Gem.NoSocket;
                        
conquerItem2.SocketTwo = Enums.Gem.NoSocket;
                        
conquerItem2.Plus = plus;
                        
conquerItem2.Bless = Bless;
                        
conquerItem2.Bound = bound;
                        
conquerItem2.Color = (Enums.Color)Kernel.Random.Next(2, 9);
                        
conquerItem2.TimeStamp = DateTime.Now.AddSeconds((double)seconds);
                        
conquerItem2.TimeLeftInMinutes = seconds;
                        
conquerItem2.Durability = conquerItem2.MaximDurability = conquerItemInformation1.BaseInformation.Durability;
                        
conquerItem2.StackSize = (ushort)1;
                        
conquerItem2.MaxStackSize = conquerItemInformation1.BaseInformation.StackSize;
                        
this.Add(conquerItem2, Enums.ItemUse.CreateAndAdd, false);
                    }
                }
            }
            catch (
Exception ex)
            {
                
Server.SaveException(ex);
            }
            return 
true;
        }
        public 
bool RainbowContain(uint ID, uint times)
        {
            if ((int)
ID == 0)
                return 
true;
            
ushort num = 0;
            foreach (
MsgItemInfo MsgItemInfo in this.Objects)
            {
                if ((int)
MsgItemInfo.ID == (int)ID && DateTime.Now >= MsgItemInfo.TimeStamp)
                {
                    if ((int)
MsgItemInfo.StackSize == 0)
                        ++
num;
                    else
                        
num += (ushort)(byte)MsgItemInfo.StackSize;
                }
            }
            return (
uint)num >= times;
        }
        public 
bool Add(uint id, byte plus, byte Bless, byte times, bool bound)
        {
            try
            {
                
ConquerItemInformation conquerItemInformation1 = new ConquerItemInformation(id, plus);
                for (; (int)
times > 0; --times)
                {
                    
ConquerItemInformation conquerItemInformation2 = new ConquerItemInformation(id, (byte)0);
                    
MsgItemInfo conquerItem1;
                    if (
this.Owner.Inventory.Contains(conquerItemInformation2.BaseInformation.ID, bound, conquerItemInformation2.BaseInformation.StackSize, out conquerItem1))
                    {
                        if ((int)
conquerItem1.StackSize == 0)
                            
conquerItem1.StackSize = (ushort)1;
                        
ushort num1 = (ushort)((uint)conquerItemInformation2.BaseInformation.StackSize - (uint)conquerItem1.StackSize);
                        if ((int)
num1 >= 1)
                        {
                            
ushort num2 = (ushort)((uint)num1 + 1U);
                        }
                        ++
conquerItem1.StackSize;
                        
ConquerItemTable.UpdateStack(conquerItem1);
                        
conquerItem1.Mode = Enums.ItemMode.Update;
                        
conquerItem1.Send(this.Owner);
                        
conquerItem1.Mode = Enums.ItemMode.Default;
                    }
                    else if ((int)
this.Count <= 39)
                    {
                        
MsgItemInfo conquerItem2 = new MsgItemInfo(true);
                        
conquerItem2.ID = id;
                        
conquerItem2.Plus = plus;
                        
conquerItem2.Bless = Bless;
                        
conquerItem2.Bound = bound;
                        
conquerItem2.Durability = conquerItem2.MaximDurability = conquerItemInformation1.BaseInformation.Durability;
                        
conquerItem2.StackSize = (ushort)1;
                        
conquerItem2.Color = (Enums.Color)Kernel.Random.Next(2, 9);
                        
conquerItem2.MaxStackSize = conquerItemInformation1.BaseInformation.StackSize;
                        
this.Add(conquerItem2, Enums.ItemUse.CreateAndAdd, false);
                    }
                }
            }
            catch (
Exception ex)
            {
                
Server.SaveException(ex);
            }
            return 
true;
        }
     
/*   public bool AddTime(uint id, uint timeinmin, bool bound = false, byte Bless = 0)
        {
            try
            {
                Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, 0);
                if (Count <= 39)
                {
                    MsgItemInfo item;
                    item = new MsgItemInfo(true);
                    {
                        item.ID = id;
                        item.Bound = bound;
                        item.UID = Network.GamePackets.MsgItemInfo.ItemUID.Next;
                        item.DayStamp = DateTime.Now;
                        TimeSpan Remain = item.DayStamp.AddMinutes(timeinmin) - DateTime.Now;
                        item.Days = (byte)timeinmin;
                        item.TimeLeftInMinutes = (uint)Remain.TotalSeconds;
                        item.Bless = Bless;
                        item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                    };
                    this.Add(item, Enums.ItemUse.Add);
                    Database.ConquerItemTable.UpdateTime(item);
                }
                else
                {
                    return false;
                }
            }
            catch (Exception e)
            {
                Server.SaveException(e);
            }
            return true;
        }*/
        
public bool AddTime(uint id, uint timeinmin, bool Bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, 0);
                if (
Count <= 39)
                {
                    
MsgItemInfo item;
                    
item = new MsgItemInfo(true);
                    {
                        
item.ID = id;
                        
item.Plus = 0;
                        
item.Bless = 0;
                        
item.Enchant = 0;
                        
item.SocketOne = 0;
                        
item.SocketTwo = 0;
                        
item.Bound = Bound;
                        
// item.DayStamp = DateTime.Now;
                        // TimeSpan Remain = item.DayStamp.AddMinutes(timeinmin) - DateTime.Now;
                        
item.TimeStamp = DateTime.Now.AddSeconds((double)timeinmin);
                        
item.TimeLeftInMinutes = timeinmin;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                    };
                    
this.Add(item, Enums.ItemUse.CreateAndAdd);
                    
Database.ConquerItemTable.Update_Free(item, Owner);
                }
                else
                {
                    return 
false;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool Add(uint id, byte plus, byte One, byte Two, byte Enchant, byte Bless, byte times, bool bound, bool Perf)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {
                    
MsgItemInfo _ExistingItem;
                    
Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(id, 0);
                    if (
Owner.Inventory.Contains(iteminfo.BaseInformation.ID, bound, iteminfo.BaseInformation.StackSize, out _ExistingItem))
                    {
                        if (
_ExistingItem.StackSize == 0)
                            
_ExistingItem.StackSize = 1;
                        
ushort _StackCount = iteminfo.BaseInformation.StackSize;
                        
_StackCount -= (ushort)_ExistingItem.StackSize;
                        if (
_StackCount >= 1)
                            
_StackCount += 1;
                        
_ExistingItem.StackSize += 1;
                        
Database.ConquerItemTable.UpdateStack(_ExistingItem);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Update;
                        
_ExistingItem.Send(Owner);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Default;
                    }
                    else
                    {
                        if (
Count <= 39)
                        {
                            
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                            
item.ID = id;
                         
//   item.SocketOne = (Enums.Gem)One;
                          //  item.SocketTwo = (Enums.Gem)Two;
                            
item.Plus = plus;
                            
item.Bound = bound;
                            
//item.Enchant = 0;
                            
item.Color = (Enums.Color)Kernel.Random.Next(3, 9);
                            
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                            
item.StackSize = 1;
                            
item.MaxStackSize = infos.BaseInformation.StackSize;
                            
//  if (Perf == true)
                            // {
                            //  item.PerfectionProgress = 11970;
                            // item.PerfectionLevel = 54;
                            //  item.PerfectionOwnerUID = Owner.Player.UID;
                            //  item.PerfectionOwnerName = Owner.Player.Name;
                            //   Database.PerfectionTable.AddPerfection(item);
                            //  }
                            
Add(item, Enums.ItemUse.CreateAndAdd);
                        }
                    }
                    
times--;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddPer(uint id, uint soulitem, uint purfylevel, uint timeofpurfy, byte plus, byte times, bool purfystabliz = false, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item = new MsgItemInfo(true);
                        
#region Stacksize
                        
if (infos.BaseInformation.StackSize > 1)
                        {
                            
ushort _StackCount = infos.BaseInformation.StackSize;
                            if (
times <= infos.BaseInformation.StackSize)
                                
_StackCount = (ushort)times;
                            
item.StackSize = (ushort)_StackCount;
                            
Database.ConquerItemTable.UpdateStack(item);
                            
times -= (byte)_StackCount;
                        }
                        else
                        {
                            
item = new MsgItemInfo(true);
                            
item.StackSize = 1;
                            
times--;
                        }
                        
#endregion Stacksize
                        
item.ID = id;
                        
item.Plus = plus;
                        
item.Bound = false;
                        
item.Enchant = 255;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                        
item.StackSize = 1;
                        
item.Bless = 7;
                        
//var proto = Kernel.FinalizeProtoBuf((new ConQuerSquad.Network.GamePackets.MsgItemRefineOpt.MsgItemRefineOptProto2()
                        //{
                        //    ItemUID = item.UID,
                        //    PlayerUID = Owner.Player.UID,
                        //    OwnerUID = item.OwnerUID,
                        //    OwnerName = item.Owner,
                        //    //Progress = item.PerfectionProgress,
                        //    Stars = item.Stars
                        //}), 3250);
                        
Database.ConquerItemTable.UpdatePerfection(item);
                        
//item.Enchant = 255;
                        
item.MaxStackSize = infos.BaseInformation.StackSize;
                        
item.SocketOne = Game.Enums.Gem.SuperDragonGem;
                        
item.SocketTwo = Game.Enums.Gem.SuperDragonGem;
                        
Add(item, Enums.ItemUse.CreateAndAdd);
                        
Database.ConquerItemTable.UpdatePerfection(item);
                        if (
purfystabliz == false)
                        {
                            
#region purfy with out stablize
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = purfylevel;
                            
purify.PurificationDuration = timeofpurfy * 24 * 60 * 60;
                            
purify.PurificationItemID = soulitem;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            
#endregion
                        
}
                        else
                        {
                            
#region purfy with stabliz
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = purfylevel;
                            
purify.PurificationDuration = timeofpurfy * 24 * 60 * 60;
                            
purify.PurificationItemID = soulitem;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            var 
Backup = item.Purification;
                            
Backup.PurificationDuration = 0;
                            
item.Purification = Backup;
                            
item.Send(Owner);
                            
effect.Type = ItemAdding.StabilizationEffect;
                            
effect.Append2(Backup);
                            
Owner.Send(effect);
                            
Database.ItemAddingTable.Stabilize(item.UID, Backup.PurificationItemID);
                            
#endregion
                        
}
                    }
                    else
                    {
                        return 
false;
                    }
                }
                
times--;
            }
            catch (
Exception)
            {

            }
            return 
true;
        }
        public 
bool AddSoul( uint id, uint soulitem, uint purfylevel, uint timeofpurfy, byte plus, byte times, bool purfystabliz = false, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                        
#region Stacksize
                        
if (infos.BaseInformation.StackSize > 1)
                        {
                            
//item.StackSize = (byte)times;                                 
                            
ushort _StackCount = infos.BaseInformation.StackSize;
                            if (
times <= infos.BaseInformation.StackSize)
                                
_StackCount = (ushort)times;
                            
item.StackSize = (ushort)_StackCount;
                            
Database.ConquerItemTable.UpdateStack(item);
                            
times -= (byte)_StackCount;
                        }
                        else
                        {
                            
item = new MsgItemInfo(true);
                            
item.StackSize = 1;
                            
times--;
                        }
                        
#endregion Stacksize
                        
item.ID = id;
                        
item.Plus = plus;
                        
item.Bound = false;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                        
item.StackSize = 1;
                        
                        
item.MaxStackSize = infos.BaseInformation.StackSize;
                        
item.SocketOne = Game.Enums.Gem.SuperDragonGem;
                        
item.SocketTwo = Game.Enums.Gem.SuperDragonGem;
                        
item.Enchant = 250;
                        
item.Bless = 7;
                        
Add(item, Enums.ItemUse.CreateAndAdd);
                        
#region perfectiion



                       




                        #endregion

                        
if (purfystabliz == false)
                        {
                            
#region purfy without stablize
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = purfylevel;
                            
purify.PurificationDuration = timeofpurfy * 24 * 60 * 60;
                            
purify.PurificationItemID = soulitem;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            
#endregion
                        
}
                        else
                        {
                            
#region purfy with stabliz
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = purfylevel;
                            
purify.PurificationDuration = timeofpurfy * 24 * 60 * 60;
                            
purify.PurificationItemID = soulitem;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            var 
Backup = item.Purification;
                            
Backup.PurificationDuration = 0;
                            
item.Purification = Backup;
                            
item.Send(Owner);
                            
effect.Type = ItemAdding.StabilizationEffect;
                            
effect.Append2(Backup);
                            
Owner.Send(effect);
                            
Database.ItemAddingTable.Stabilize(item.UID, Backup.PurificationItemID);
                            
#endregion
                        
}
                    
//    Client.GameState client = null;
                        
                    
}
                    else
                    {
                        return 
false;
                    }

                }
                
times--;
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddSoul8(Client.GameState cl, uint id, uint soulitem, uint purfylevel, uint timeofpurfy, byte plus, byte times, bool purfystabliz = false, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                        
#region Stacksize
                        
if (infos.BaseInformation.StackSize > 1)
                        {
                            
//item.StackSize = (byte)times;                                 
                            
ushort _StackCount = infos.BaseInformation.StackSize;
                            if (
times <= infos.BaseInformation.StackSize)
                                
_StackCount = (ushort)times;
                            
item.StackSize = (ushort)_StackCount;
                            
Database.ConquerItemTable.UpdateStack(item);
                            
times -= (byte)_StackCount;
                        }
                        else
                        {
                            
item = new MsgItemInfo(true);
                            
item.StackSize = 1;
                            
times--;
                        }
                        
#endregion Stacksize
                        
item.ID = id;
                        
item.Plus = plus;
                        
item.Bound = false;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                        
item.StackSize = 1;

                        
item.MaxStackSize = infos.BaseInformation.StackSize;
                        
item.SocketOne = Game.Enums.Gem.SuperDragonGem;
                        
item.SocketTwo = Game.Enums.Gem.SuperDragonGem;
                        
item.Enchant = 250;
                        
item.Bless = 7;
                        
Add(item, Enums.ItemUse.CreateAndAdd);
                        
#region perfectiion



                        
item.PerfectionLevel = 54;
                        
item.PerfectionProgress = 0;
                        
item.PerfectionOwner = cl.Player.Name;
                        
item.PerfectionOwnerGuid = cl.Player.UID;
                        
item.Mode = Game.Enums.ItemMode.Update;
                        
item.Send(cl);
                        
Database.ConquerItemTable.UpdatePerfection(item);




                        
#endregion

                        
if (purfystabliz == false)
                        {
                            
#region purfy without stablize
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = purfylevel;
                            
purify.PurificationDuration = timeofpurfy * 24 * 60 * 60;
                            
purify.PurificationItemID = soulitem;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            
#endregion
                        
}
                        else
                        {
                            
#region purfy with stabliz
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = purfylevel;
                            
purify.PurificationDuration = timeofpurfy * 24 * 60 * 60;
                            
purify.PurificationItemID = soulitem;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            var 
Backup = item.Purification;
                            
Backup.PurificationDuration = 0;
                            
item.Purification = Backup;
                            
item.Send(Owner);
                            
effect.Type = ItemAdding.StabilizationEffect;
                            
effect.Append2(Backup);
                            
Owner.Send(effect);
                            
Database.ItemAddingTable.Stabilize(item.UID, Backup.PurificationItemID);
                            
#endregion
                        
}
                       
// Client.GameState client = null;

                    
}
                    else
                    {
                        return 
false;
                    }

                }
                
times--;
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddSoul7(Client.GameState cl, uint id, uint soulitem, uint purfylevel, uint timeofpurfy, byte plus, byte times, bool purfystabliz = false, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                        
#region Stacksize
                        
if (infos.BaseInformation.StackSize > 1)
                        {
                            
//item.StackSize = (byte)times;                                 
                            
ushort _StackCount = infos.BaseInformation.StackSize;
                            if (
times <= infos.BaseInformation.StackSize)
                                
_StackCount = (ushort)times;
                            
item.StackSize = (ushort)_StackCount;
                            
Database.ConquerItemTable.UpdateStack(item);
                            
times -= (byte)_StackCount;
                        }
                        else
                        {
                            
item = new MsgItemInfo(true);
                            
item.StackSize = 1;
                            
times--;
                        }
                        
#endregion Stacksize
                        
item.ID = id;
                        
item.Plus = plus;
                        
item.Bound = false;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                        
item.StackSize = 1;

                        
item.MaxStackSize = infos.BaseInformation.StackSize;
                        
item.SocketOne = Game.Enums.Gem.SuperPhoenixGem;
                        
item.SocketTwo = Game.Enums.Gem.SuperPhoenixGem;
                        
item.Enchant = 250;
                        
item.Bless = 7;
                        
Add(item, Enums.ItemUse.CreateAndAdd);
                        
#region perfectiion



                        
item.PerfectionLevel = 54;
                        
item.PerfectionProgress = 0;
                        
item.PerfectionOwner = cl.Player.Name;
                        
item.PerfectionOwnerGuid = cl.Player.UID;
                        
item.Mode = Game.Enums.ItemMode.Update;
                        
item.Send(cl);
                        
Database.ConquerItemTable.UpdatePerfection(item);




                        
#endregion

                        
if (purfystabliz == false)
                        {
                            
#region purfy without stablize
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = purfylevel;
                            
purify.PurificationDuration = timeofpurfy * 24 * 60 * 60;
                            
purify.PurificationItemID = soulitem;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            
#endregion
                        
}
                        else
                        {
                            
#region purfy with stabliz
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = purfylevel;
                            
purify.PurificationDuration = timeofpurfy * 24 * 60 * 60;
                            
purify.PurificationItemID = soulitem;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            var 
Backup = item.Purification;
                            
Backup.PurificationDuration = 0;
                            
item.Purification = Backup;
                            
item.Send(Owner);
                            
effect.Type = ItemAdding.StabilizationEffect;
                            
effect.Append2(Backup);
                            
Owner.Send(effect);
                            
Database.ItemAddingTable.Stabilize(item.UID, Backup.PurificationItemID);
                            
#endregion
                        
}
                       
// Client.GameState client = null;

                    
}
                    else
                    {
                        return 
false;
                    }

                }
                
times--;
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddSoul1(uint id, uint soulitem, uint purfylevel, uint timeofpurfy, byte plus, byte times, bool purfystabliz = false, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                        
#region Stacksize
                        
if (infos.BaseInformation.StackSize > 1)
                        {
                            
//item.StackSize = (byte)times;                                 
                            
ushort _StackCount = infos.BaseInformation.StackSize;
                            if (
times <= infos.BaseInformation.StackSize)
                                
_StackCount = (ushort)times;
                            
item.StackSize = (ushort)_StackCount;
                            
Database.ConquerItemTable.UpdateStack(item);
                            
times -= (byte)_StackCount;
                        }
                        else
                        {
                            
item = new MsgItemInfo(true);
                            
item.StackSize = 1;
                            
times--;
                        }
                        
#endregion Stacksize
                        
item.ID = id;
                        
item.Plus = plus;
                        
item.Bound = false;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                        
item.StackSize = 1;

                        
item.MaxStackSize = infos.BaseInformation.StackSize;
                       
                        
Add(item, Enums.ItemUse.CreateAndAdd);
                        if (
purfystabliz == false)
                        {
                            
#region purfy without stablize
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = purfylevel;
                            
purify.PurificationDuration = timeofpurfy * 24 * 60 * 60;
                            
purify.PurificationItemID = soulitem;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            
#endregion
                        
}
                        else
                        {
                            
#region purfy with stabliz
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = purfylevel;
                            
purify.PurificationDuration = timeofpurfy * 24 * 60 * 60;
                            
purify.PurificationItemID = soulitem;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            var 
Backup = item.Purification;
                            
Backup.PurificationDuration = 0;
                            
item.Purification = Backup;
                            
item.Send(Owner);
                            
effect.Type = ItemAdding.StabilizationEffect;
                            
effect.Append2(Backup);
                            
Owner.Send(effect);
                            
Database.ItemAddingTable.Stabilize(item.UID, Backup.PurificationItemID);
                            
#endregion
                        
}
                    }
                    else
                    {
                        return 
false;
                    }

                }
                
times--;
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddSoul9(Client.GameState cl, uint id, uint soulitem, uint purfylevel, uint timeofpurfy, byte plus, byte times, bool purfystabliz = false, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                        
#region Stacksize
                        
if (infos.BaseInformation.StackSize > 1)
                        {
                            
//item.StackSize = (byte)times;                                 
                            
ushort _StackCount = infos.BaseInformation.StackSize;
                            if (
times <= infos.BaseInformation.StackSize)
                                
_StackCount = (ushort)times;
                            
item.StackSize = (ushort)_StackCount;
                            
Database.ConquerItemTable.UpdateStack(item);
                            
times -= (byte)_StackCount;
                        }
                        else
                        {
                            
item = new MsgItemInfo(true);
                            
item.StackSize = 1;
                            
times--;
                        }
                        
#endregion Stacksize
                        
item.ID = id;
                        
item.Plus = plus;
                        
item.Bound = false;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                        
item.StackSize = 1;

                        
item.MaxStackSize = infos.BaseInformation.StackSize;

                        
Add(item, Enums.ItemUse.CreateAndAdd);
                        
item.PerfectionLevel = 54;
                        
item.PerfectionProgress = 0;
                        
item.PerfectionOwner = cl.Player.Name;
                        
item.PerfectionOwnerGuid = cl.Player.UID;
                        
item.Mode = Game.Enums.ItemMode.Update;
                        
item.Send(cl);
                        
Database.ConquerItemTable.UpdatePerfection(item);

                        if (
purfystabliz == false)
                        {
                            
#region purfy without stablize
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = purfylevel;
                            
purify.PurificationDuration = timeofpurfy * 24 * 60 * 60;
                            
purify.PurificationItemID = soulitem;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            
#endregion
                        
}
                        else
                        {
                            
#region purfy with stabliz
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = purfylevel;
                            
purify.PurificationDuration = timeofpurfy * 24 * 60 * 60;
                            
purify.PurificationItemID = soulitem;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            var 
Backup = item.Purification;
                            
Backup.PurificationDuration = 0;
                            
item.Purification = Backup;
                            
item.Send(Owner);
                            
effect.Type = ItemAdding.StabilizationEffect;
                            
effect.Append2(Backup);
                            
Owner.Send(effect);
                            
Database.ItemAddingTable.Stabilize(item.UID, Backup.PurificationItemID);
                            
#endregion
                        
}
                    }
                    else
                    {
                        return 
false;
                    }

                }
                
times--;
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool Contains(uint ID, ushort maxstackamount, bool Bounds, out MsgItemInfo Item)
        {
            
Item = null;
            if (
ID == 0) return false;
            foreach (
MsgItemInfo item in Objects)
            {
                if (
item.ID == ID && item.StackSize < maxstackamount && item.Bound == Bounds)
                {
                    
ItemHandler.Positions pos = ItemHandler.GetPositionFromID(item.ID);
                    if (
pos == ItemHandler.Positions.Inventory)
                    {
                        
Item = item;
                        return 
true;
                    }
                }
            }
            return 
false;
        }
        public 
bool Addfalse(MsgItemInfo item, Enums.ItemUse use)
        {
            try
            {
                if (!
ConquerItemInformation.BaseInformations.ContainsKey(item.ID)) return true;
                if (
Count == 40)
                {
                    
Owner.Send(Constants.FullInventory);
                    return 
false;
                }
                if (!
inventory.ContainsKey(item.UID))
                {
                    
item.Position = 0;
                    
MsgItemInfo _ExistingItem;
                    
ConquerItemInformation iteminfo = new ConquerItemInformation(item.ID, 0);
                    if (
Owner.Inventory.Contains(iteminfo.BaseInformation.ID, iteminfo.BaseInformation.StackSize, item.Bound, out _ExistingItem))
                    {
                        if (
_ExistingItem.StackSize == 0)
                            
_ExistingItem.StackSize = 1;
                        
ushort _StackCount = iteminfo.BaseInformation.StackSize;
                        
_StackCount -= (ushort)_ExistingItem.StackSize;
                        if (
_StackCount >= 1)
                            
_StackCount += 1;
                        
_ExistingItem.StackSize += 1;
                        
ConquerItemTable.UpdateStack(_ExistingItem);
                        
_ExistingItem.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                        
_ExistingItem.Send(Owner);
                        
_ExistingItem.Mode = ConQuerSquad.Game.Enums.ItemMode.Default;
                        switch (use)
                        {
                            case 
Enums.ItemUse.Add:
                                {
                                    
ConquerItemTable.DeleteItem(item.UID);
                                    break;
                                }
                            case 
Enums.ItemUse.Move:
                                {
                                    
ConquerItemTable.DeleteItem(item.UID);
                                    break;
                                }
                        }
                        return 
true;
                    }
                    else
                    {
                        switch (use)
                        {
                            case 
Enums.ItemUse.CreateAndAdd:
                                {
                                    
item.UID = AuthClient.nextID;
                                    
AuthClient.nextID++;
                                    
ItemHandler.Positions pos = ItemHandler.GetPositionFromID(item.ID);
                                    if (
pos == ItemHandler.Positions.Armor || pos == ItemHandler.Positions.Head || pos == ItemHandler.Positions.Left)
                                    {
                                        
item.Color = (Enums.Color)Kernel.RandFromGivingNums(3, 4, 5, 6, 7, 8, 9);
                                    }
                                    else
                                    {
                                        
item.Color = 0;
                                    }
                                    
ConquerItemTable.AddItem(ref item, Owner);
                                    
ConquerItemTable.Update_Free(item, Owner);
                                    
item.MobDropped = false;
                                    break;
                                }
                            case 
Enums.ItemUse.Add:
                                {
                                    
ConquerItemTable.UpdateLocation(item, Owner);
                                    break;
                                }
                            case 
Enums.ItemUse.Move:
                                {
                                    
item.Position = 0;
                                    
item.StatsLoaded = false;
                                    
ConquerItemTable.UpdateLocation(item, Owner);
                                    break;
                                }
                        }
                        
inventory.Add(item.UID, item);
                        
objects = inventory.Values.ToArray();
                        
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Default;
                        if (use != 
Enums.ItemUse.None)
                            
item.Send(Owner);
                        return 
true;
                    }
                }
            }
            catch (
Exception e)
            {
                
Console.WriteLine(e.ToString());
                
Server.SaveException(e);
            }
            return 
false;
        }
        public 
bool AddandWear(uint id, uint soulitem, byte times, Client.GameState client)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, 12);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                        
item.ID = id;
                        
item.Plus = 12;
                        
item.Color = Game.Enums.Color.Red;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                        
item.SocketOne = Game.Enums.Gem.SuperDragonGem;
                        
item.SocketTwo = Game.Enums.Gem.SuperDragonGem;
                        
item.Enchant = 255;
                        
item.Bless = 7;
                        
Add(item, Enums.ItemUse.CreateAndAdd);
                        
#region purfy with stabliz
                        
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                        
purify.AddedOn = DateTime.Now;
                        
purify.Available = true;
                        
purify.ItemUID = item.UID;
                        
purify.PurificationLevel = 6;
                        
purify.PurificationDuration = 12 * 24 * 60 * 60;
                        
purify.PurificationItemID = soulitem;
                        
Database.ItemAddingTable.AddPurification(purify);
                        
item.Purification = purify;
                        
item.Mode = Game.Enums.ItemMode.Update;
                        
item.Send(Owner);
                        
ItemAdding effect = new ItemAdding(true);
                        
effect.Type = ItemAdding.PurificationEffect;
                        
effect.Append2(purify);
                        
Owner.Send(effect);
                        var 
Backup = item.Purification;
                        
Backup.PurificationDuration = 0;
                        
item.Purification = Backup;
                        
item.Send(Owner);
                        
effect.Type = ItemAdding.StabilizationEffect;
                        
effect.Append2(Backup);
                        
Owner.Send(effect);
                        
Database.ItemAddingTable.Stabilize(item.UID, Backup.PurificationItemID);
                        
#endregion
                        #region perfectiion
                      
                                    
item.PerfectionLevel = 54;
                                    
item.PerfectionProgress = 0;
                                    
item.PerfectionOwner = client.Player.Name;
                                    
item.PerfectionOwnerGuid = client.Player.UID;
                                    
item.Mode = Game.Enums.ItemMode.Update;
                                    
item.Send(client);
                                    
Database.ConquerItemTable.UpdatePerfection(item);
                              
                        
#endregion
                        
client.Inventory.Remove(item, Game.Enums.ItemUse.Move, true);
                       
Network.GamePackets.ItemHandler.Positions pos = Network.GamePackets.ItemHandler.GetPositionFromID(item.ID);
                        
item.Position = (byte)pos;
                        
client.Equipment.Add(item);
                        
item.Mode = Game.Enums.ItemMode.Update;
                        
item.Send(client);
                        if (
Npcs.AttackStyle == 201)
                        {
                            
#region refinary strike - Immunity
                            
if ((byte)pos == 1)//head
                            
{
                               

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004140;
                                
refinary.EffectPercent = 3200;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 2)//Necklace 
                            
{
                               

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004160;
                                
refinary.EffectPercent = 14;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 3)//Armor 
                            
{
                             

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004139;
                                
refinary.EffectPercent = 12;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }

                            if ((
byte)pos == 6)//Ring 
                            
{
                             

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004158;
                                
refinary.EffectPercent = 7;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 8)//Boots 
                            
{
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004149;
                                
refinary.EffectPercent = 6;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }

                            
#endregion
                        
}
                        if (
Npcs.AttackStyle == 202)
                        {
                            
#region refinary Strike - AntiBreak
                            
if ((byte)pos == 1)//head
                            
{
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004140;
                                
refinary.EffectPercent = 3200;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 2)//Necklace 
                            
{
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004160;
                                
refinary.EffectPercent = 14;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 3)//Armor 
                            
{
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004142;
                                
refinary.EffectPercent = 20;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }

                            if ((
byte)pos == 6)//Ring 
                            
{
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004158;
                                
refinary.EffectPercent = 7;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 8)//Boots 
                            
{
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004149;
                                
refinary.EffectPercent = 6;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }

                            
#endregion
                        
}
                        if (
Npcs.AttackStyle == 203)
                        {
                            
#region refinary Break - Immunity
                            
if ((byte)pos == 1)//head
                            
{
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004140;
                                
refinary.EffectPercent = 3200;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 2)//Necklace 
                            
{
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004160;
                                
refinary.EffectPercent = 14;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 3)//Armor 
                            
{
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004139;
                                
refinary.EffectPercent = 12;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }

                            if ((
byte)pos == 6)//Ring 
                            
{
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004163;
                                
refinary.EffectPercent = 14;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 8)//Boots 
                            
{
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004149;
                                
refinary.EffectPercent = 6;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }

                            
#endregion
                        
}






                        
client.CalculateStatBonus();
                        
client.CalculateHPBonus();
                        
client.LoadItemStats();
                        
Network.GamePackets.MsgItemEquip equips = new Network.GamePackets.MsgItemEquip();
                        
equips.DoEquips(client);
                        
client.Send(equips);
                        
Database.ConquerItemTable.UpdateLocation(item, client);
                    }
                    else
                    {
                        return 
false;
                    }
                    
times--;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddandWear5(uint id, uint soulitem, byte times, Client.GameState client)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, 12);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                        
item.ID = id;
                        
item.Plus = 12;
                        
item.Color = Game.Enums.Color.Red;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                        
item.SocketOne = Game.Enums.Gem.SuperPhoenixGem;
                        
item.SocketTwo = Game.Enums.Gem.SuperPhoenixGem;
                        
item.Enchant = 255;
                        
item.Bless = 7;
                        
Add(item, Enums.ItemUse.CreateAndAdd);
                        
#region purfy with stabliz
                        
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                        
purify.AddedOn = DateTime.Now;
                        
purify.Available = true;
                        
purify.ItemUID = item.UID;
                        
purify.PurificationLevel = 6;
                        
purify.PurificationDuration = 12 * 24 * 60 * 60;
                        
purify.PurificationItemID = soulitem;
                        
Database.ItemAddingTable.AddPurification(purify);
                        
item.Purification = purify;
                        
item.Mode = Game.Enums.ItemMode.Update;
                        
item.Send(Owner);
                        
ItemAdding effect = new ItemAdding(true);
                        
effect.Type = ItemAdding.PurificationEffect;
                        
effect.Append2(purify);
                        
Owner.Send(effect);
                        var 
Backup = item.Purification;
                        
Backup.PurificationDuration = 0;
                        
item.Purification = Backup;
                        
item.Send(Owner);
                        
effect.Type = ItemAdding.StabilizationEffect;
                        
effect.Append2(Backup);
                        
Owner.Send(effect);
                        
Database.ItemAddingTable.Stabilize(item.UID, Backup.PurificationItemID);
                        
#endregion
                        #region perfectiion

                        
item.PerfectionLevel = 54;
                        
item.PerfectionProgress = 0;
                        
item.PerfectionOwner = client.Player.Name;
                        
item.PerfectionOwnerGuid = client.Player.UID;
                        
item.Mode = Game.Enums.ItemMode.Update;
                        
item.Send(client);
                        
Database.ConquerItemTable.UpdatePerfection(item);

                        
#endregion
                        
client.Inventory.Remove(item, Game.Enums.ItemUse.Move, true);
                        
Network.GamePackets.ItemHandler.Positions pos = Network.GamePackets.ItemHandler.GetPositionFromID(item.ID);
                        
item.Position = (byte)pos;
                        
client.Equipment.Add(item);
                        
item.Mode = Game.Enums.ItemMode.Update;
                        
item.Send(client);
                        if (
Npcs.AttackStyle == 201)
                        {
                            
#region refinary strike - Immunity
                            
if ((byte)pos == 1)//head
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004140;
                                
refinary.EffectPercent = 3200;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 2)//Necklace 
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004160;
                                
refinary.EffectPercent = 14;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 3)//Armor 
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004139;
                                
refinary.EffectPercent = 12;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }

                            if ((
byte)pos == 6)//Ring 
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004158;
                                
refinary.EffectPercent = 7;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 8)//Boots 
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004149;
                                
refinary.EffectPercent = 6;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }

                            
#endregion
                        
}
                        if (
Npcs.AttackStyle == 202)
                        {
                            
#region refinary Strike - AntiBreak
                            
if ((byte)pos == 1)//head
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004140;
                                
refinary.EffectPercent = 3200;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 2)//Necklace 
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004160;
                                
refinary.EffectPercent = 14;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 3)//Armor 
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004142;
                                
refinary.EffectPercent = 20;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }

                            if ((
byte)pos == 6)//Ring 
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004158;
                                
refinary.EffectPercent = 7;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 8)//Boots 
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004149;
                                
refinary.EffectPercent = 6;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }

                            
#endregion
                        
}
                        if (
Npcs.AttackStyle == 203)
                        {
                            
#region refinary Break - Immunity
                            
if ((byte)pos == 1)//head
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004140;
                                
refinary.EffectPercent = 3200;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 2)//Necklace 
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004160;
                                
refinary.EffectPercent = 14;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 3)//Armor 
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004139;
                                
refinary.EffectPercent = 12;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }

                            if ((
byte)pos == 6)//Ring 
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004163;
                                
refinary.EffectPercent = 14;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            if ((
byte)pos == 8)//Boots 
                            
{


                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004149;
                                
refinary.EffectPercent = 6;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }

                            
#endregion
                        
}






                        
client.CalculateStatBonus();
                        
client.CalculateHPBonus();
                        
client.LoadItemStats();
                        
Network.GamePackets.MsgItemEquip equips = new Network.GamePackets.MsgItemEquip();
                        
equips.DoEquips(client);
                        
client.Send(equips);
                        
Database.ConquerItemTable.UpdateLocation(item, client);
                    }
                    else
                    {
                        return 
false;
                    }
                    
times--;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddandWear3(uint id, byte times, Client.GameState client)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, 12);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                        
item.ID = id;

                        
item.Color = Game.Enums.Color.Red;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;

                        
Add(item, Enums.ItemUse.CreateAndAdd);

                        
client.Inventory.Remove(item, Game.Enums.ItemUse.Move, true);
                       
Network.GamePackets.ItemHandler.Positions pos = Network.GamePackets.ItemHandler.GetPositionFromID(item.ID);
                        if (
client.Equipment.Free(15))
                        {
                            
item.Position = (byte)pos;
                        }
                        else
                        {
                            
item.Position = (byte)16;
                        }
                        
client.Equipment.Add(item);
                        
item.Mode = Game.Enums.ItemMode.Update;
                        
item.Send(client);




                        
client.CalculateStatBonus();
                        
client.CalculateHPBonus();
                        
client.LoadItemStats();
                        
Network.GamePackets.MsgItemEquip equips = new Network.GamePackets.MsgItemEquip();
                        
equips.DoEquips(client);
                        
client.Send(equips);
                        
Database.ConquerItemTable.UpdateLocation(item, client);
                    }
                    else
                    {
                        return 
false;
                    }
                    
times--;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddandWear2(uint id, uint soulitem, byte times, Client.GameState client)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, 12);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                        
item.ID = id;
                        
item.Plus = 12;
                        
item.Color = Game.Enums.Color.Red;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                        
item.SocketOne = Game.Enums.Gem.SuperDragonGem;
                        
item.SocketTwo = Game.Enums.Gem.SuperDragonGem;
                        
item.Enchant = 255;
                        
item.Bless = 7;
                        
Add(item, Enums.ItemUse.CreateAndAdd);
                        
#region purfy with stabliz
                        
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                        
purify.AddedOn = DateTime.Now;
                        
purify.Available = true;
                        
purify.ItemUID = item.UID;
                        
purify.PurificationLevel = 6;
                        
purify.PurificationDuration = 12 * 24 * 60 * 60;
                        
purify.PurificationItemID = soulitem;
                        
Database.ItemAddingTable.AddPurification(purify);
                        
item.Purification = purify;
                        
item.Mode = Game.Enums.ItemMode.Update;
                        
item.Send(Owner);
                        
ItemAdding effect = new ItemAdding(true);
                        
effect.Type = ItemAdding.PurificationEffect;
                        
effect.Append2(purify);
                        
Owner.Send(effect);
                        var 
Backup = item.Purification;
                        
Backup.PurificationDuration = 0;
                        
item.Purification = Backup;
                        
item.Send(Owner);
                        
effect.Type = ItemAdding.StabilizationEffect;
                        
effect.Append2(Backup);
                        
Owner.Send(effect);
                        
Database.ItemAddingTable.Stabilize(item.UID, Backup.PurificationItemID);
                        
#endregion
                        #region perfectiion
                      
                                    
item.PerfectionLevel = 54;
                                    
item.PerfectionProgress = 0;
                                    
item.PerfectionOwner = client.Player.Name;
                                    
item.PerfectionOwnerGuid = client.Player.UID;
                                    
item.Mode = Game.Enums.ItemMode.Update;
                                    
item.Send(client);
                                
                        
#endregion
                        
client.Inventory.Remove(item, Game.Enums.ItemUse.Move, true);
                        
Network.GamePackets.ItemHandler.Positions pos = Network.GamePackets.ItemHandler.GetPositionFromID(item.ID);
                        if ((
Npcs.AttackStyle == 201) || (Npcs.AttackStyle == 202))
                        {

                            
#region refinarystrike-immu
                            
if (client.Equipment.Free(4))
                            {

                                
item.Position = (byte)pos;
                                
// if ((byte)pos == 4)//Right 
                                // {
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004137;
                                
refinary.EffectPercent = 7;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                                
// }
                            
}
                            else
                            {
                                
item.Position = (byte)5;
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004137;
                                
refinary.EffectPercent = 7;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            
#endregion
                        
}

                        if (
Npcs.AttackStyle == 203)
                        {

                            
#region refinary break-immu
                            
if (client.Equipment.Free(4))
                            {

                                
item.Position = (byte)pos;
                                
// if ((byte)pos == 4)//Right 
                                // {
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004141;
                                
refinary.EffectPercent = 10;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                                
// }
                            
}
                            else
                            {
                                
item.Position = (byte)5;
                              

                                
ItemAdding.Refinery_ refinary = new ItemAdding.Refinery_();
                                
refinary.AddedOn = DateTime.Now;
                                
refinary.Available = true;
                                
refinary.ItemUID = item.UID;
                                
refinary.EffectLevel = 6;
                                
refinary.EffectDuration = 7 * 24 * 60 * 60;
                                
refinary.EffectID = 3004141;
                                
refinary.EffectPercent = 10;
                                
refinary.EffectDuration = 7200000;
                                
Database.ItemAddingTable.AddExtraEffect(refinary);
                                
item.ExtraEffect = refinary;
                                
item.Mode = Game.Enums.ItemMode.Update;
                                
item.Send(client);
                            }
                            
#endregion
                        
}
                        
client.Equipment.Add(item);
                        
item.Mode = Game.Enums.ItemMode.Update;
                        
item.Send(client);








                        
client.CalculateStatBonus();
                        
client.CalculateHPBonus();
                        
client.LoadItemStats();
                        
Network.GamePackets.MsgItemEquip equips = new Network.GamePackets.MsgItemEquip();
                        
equips.DoEquips(client);
                        
client.Send(equips);
                        
Database.ConquerItemTable.UpdateLocation(item, client);
                    }
                    else
                    {
                        return 
false;
                    }
                    
times--;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddandWear4(uint id, byte times, Client.GameState client)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, 12);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                        
item.ID = id;

                        
item.Color = Game.Enums.Color.Red;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;

                        
Add(item, Enums.ItemUse.CreateAndAdd);

                        
client.Inventory.Remove(item, Game.Enums.ItemUse.Move, true);
                       
Network.GamePackets.ItemHandler.Positions pos = Network.GamePackets.ItemHandler.GetPositionFromID(item.ID);


                        
item.Position = (byte)pos;

                        
client.Equipment.Add(item);
                        
item.Mode = Game.Enums.ItemMode.Update;
                        
item.Send(client);




                        
client.CalculateStatBonus();
                        
client.CalculateHPBonus();
                        
client.LoadItemStats();
                       
                        
Network.GamePackets.MsgItemEquip equips = new Network.GamePackets.MsgItemEquip();
                        
equips.DoEquips(client);
                       
client.Send(equips);
                        
Database.ConquerItemTable.UpdateLocation(item, client);
                        
                        if ((
byte)pos == 9)//gar
                        
{
                            if (
client.WardRobe != null)
                            {

                                
client.WardRobe.MyGarment.UID = item.UID;
                                
client.WardRobe.Equip(client.WardRobe.MyGarment.UID, MsgItemInfo.Garment);
                                
client.Equipment.UpdateItemview(client.WardRobe.MyGarment.Item);
                               
                            }
                        }
                        if ((
byte)pos == 17)//steed
                        
{
                            if (
client.WardRobe != null)
                            {
                                
client.WardRobe.MyGarment.UID = item.UID;
                                
client.WardRobe.Equip(client.WardRobe.MySteedArmor.UID, MsgItemInfo.SteedArmor);
                                
client.Equipment.UpdateItemview(client.WardRobe.MyGarment.Item);
                            }
                        }
                      
                       
                         
                    }
                    else
                    {
                        return 
false;
                    }
                    
times--;
                        
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool Add(uint id, byte plus, byte times, bool bound = false)
        {
            try
            {
                
//if (Owner.Player.Crossed && !MsgItemInfo.IsDrug(id) && id != 3600029) return false;
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo _ExistingItem;
                        
Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(id, 0);
                        if (
Owner.Inventory.Contains(iteminfo.BaseInformation.ID, bound, iteminfo.BaseInformation.StackSize, out _ExistingItem))
                        {
                            if (
_ExistingItem.StackSize == 0)
                                
_ExistingItem.StackSize = 1;
                            
ushort _StackCount = iteminfo.BaseInformation.StackSize;
                            
_StackCount -= (ushort)_ExistingItem.StackSize;
                            if (
_StackCount >= 1)
                                
_StackCount += 1;
                            
_ExistingItem.StackSize += 1;
                            
Database.ConquerItemTable.UpdateStack(_ExistingItem);
                            
_ExistingItem.Mode = Game.Enums.ItemMode.Update;
                            
_ExistingItem.Send(Owner);
                            
_ExistingItem.Mode = Game.Enums.ItemMode.Default;
                        }
                        else
                        {
                            if (
Count <= 39)
                            {
                                
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                                
item.ID = id;
                                
item.Plus = plus;
                                
item.Bound = bound;
                                
//  Owner.Send(Constants.DroppedItem2(times, Database.ConquerItemInformation.BaseInformations[item.ID].Name));
                                
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                                
item.StackSize = 1;
                                
item.MaxStackSize = infos.BaseInformation.StackSize;
                                
Add(item, Enums.ItemUse.CreateAndAdd);
                            }
                        }
                    }
                    else
                    {
                        
Owner.Send(Constants.FullInventory);
                        return 
false;
                    }
                    
times--;
                }

            }
            catch (
Exception e) { Console.WriteLine(e); }
            return 
true;
        }
        public 
bool Add22(uint id, byte plus, byte times, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {

                    
MsgItemInfo _ExistingItem;
                    
Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(id, 0);
                    if (
Owner.Inventory.Contains(iteminfo.BaseInformation.ID, bound, iteminfo.BaseInformation.StackSize, out _ExistingItem))
                    {
                        if (
_ExistingItem.StackSize == 0)
                            
_ExistingItem.StackSize = 1;
                        
ushort _StackCount = iteminfo.BaseInformation.StackSize;
                        
_StackCount -= (ushort)_ExistingItem.StackSize;
                        if (
_StackCount >= 1)
                            
_StackCount += 1;
                        
_ExistingItem.StackSize += 1;
                        
Database.ConquerItemTable.UpdateStack(_ExistingItem);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Update;
                        
_ExistingItem.Send(Owner);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Default;
                    }
                    else
                    {
                        if (
Count <= 39)
                        {
                            
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                            
item.ID = id;
                            
item.Plus = plus;
                            
item.Bound = bound;
                            
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                            
item.StackSize = 1;
                            
item.MaxStackSize = infos.BaseInformation.StackSize;
                            
Add(item, Enums.ItemUse.CreateAndAdd);
                        }
                    }
                    
times--;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddOld(uint id, byte plus, byte times, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                        
item.ID = id;
                        
item.Plus = plus;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                        
Add(item, Enums.ItemUse.CreateAndAdd);
                    }
                    else
                    {
                        return 
false;
                    }
                    
times--;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddBoundItem(uint id, byte plus, byte times, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item = new MsgItemInfo(true);
                        
item.ID = id;
                        
item.Plus = plus;
                        
item.Bound = true;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                        
Add(item, Enums.ItemUse.CreateAndAdd);
                    }
                    else
                    {
                        return 
false;
                    }
                    
times--;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddBound(uint id, byte plus, byte times)
        {
            return 
Add(id, plus, times, true);
        }
        public 
bool Add(uint id, byte plus, byte Bless, byte Hp, byte Soc1, byte Soc2, byte Days, byte times = 1, bool bound = true, uint PurificationItemID = 0, uint PurificationLevel = 0, uint PurificationDuration = 0, bool Permnant = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo item;
                        
item = new MsgItemInfo(true);
                        {
                            
#region Stacksize
                            
if (infos.BaseInformation.StackSize > 1)
                            {
                                
//item.StackSize = (byte)times;                                
                                
ushort _StackCount = infos.BaseInformation.StackSize;
                                if (
times <= infos.BaseInformation.StackSize)
                                    
_StackCount = (ushort)times;
                                
item.StackSize = (ushort)_StackCount;
                                
Database.ConquerItemTable.UpdateStack(item);
                                
times -= (byte)_StackCount;
                            }
                            else
                            {
                                
item = new MsgItemInfo(true);
                                
item.StackSize = 1;
                                
times--;
                            }
                            
#endregion Stacksize
                            
item.ID = id;
                            
item.Plus = plus;
                            
item.Bless = Bless;
                            
item.Enchant = Hp;
                            
item.SocketOne = (Enums.Gem)Soc1;
                            
item.SocketTwo = (Enums.Gem)Soc2;
                            
item.DayStamp = DateTime.Now;
                            
item.Days = Days;
                            
item.Bound = true;

                            
//TimeSpan Remain = item.DayStamp.AddDays(item.Days) - DateTime.Now;
                            //item.TimeLeftInMinutes = (uint)Remain.TotalSeconds;
                            
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;

                        };
                        
this.Add(item, Enums.ItemUse.CreateAndAdd);
                        
Database.ConquerItemTable.Update_Free(item, Owner);
                        if (!
Permnant)
                        {
                            
#region purfy without stablize
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = PurificationLevel;
                            
purify.PurificationDuration = PurificationDuration * 24 * 60 * 60;
                            
purify.PurificationItemID = PurificationItemID;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            
#endregion
                        
}
                        else
                        {
                            
#region purfy with stabliz
                            
ItemAdding.Purification_ purify = new ItemAdding.Purification_();
                            
purify.AddedOn = DateTime.Now;
                            
purify.Available = true;
                            
purify.ItemUID = item.UID;
                            
purify.PurificationLevel = PurificationLevel;
                            
purify.PurificationDuration = PurificationDuration * 24 * 60 * 60;
                            
purify.PurificationItemID = PurificationItemID;
                            
Database.ItemAddingTable.AddPurification(purify);
                            
item.Purification = purify;
                            
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                            
item.Send(Owner);
                            
ItemAdding effect = new ItemAdding(true);
                            
effect.Type = ItemAdding.PurificationEffect;
                            
effect.Append2(purify);
                            
Owner.Send(effect);
                            var 
Backup = item.Purification;
                            
Backup.PurificationDuration = 0;
                            
item.Purification = Backup;
                            
item.Send(Owner);
                            
effect.Type = ItemAdding.StabilizationEffect;
                            
effect.Append2(Backup);
                            
Owner.Send(effect);
                            
Database.ItemAddingTable.Stabilize(item.UID, Backup.PurificationItemID);
                            
#endregion
                        
}
                    }
                    else
                    {
                        return 
false;
                    }
                    
// times--;
                
}
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool Add(uint id, byte plus, byte times, byte soc1, byte soc2, byte Bless = 0)
        {
            
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
            while (
times > 0)
            {
                if (
Count <= 39)
                {
                    
MsgItemInfo item1 = new Network.GamePackets.MsgItemInfo(true);
                    
item1.ID = id;
                    
item1.Plus = plus;
                    
item1.SocketOne = (Enums.Gem)soc1;
                    
item1.SocketTwo = (Enums.Gem)soc2;
                    
item1.Bless = Bless;
                    
item1.Durability = item1.MaximDurability = infos.BaseInformation.Durability;
                    
Add(item1, Enums.ItemUse.CreateAndAdd);
                }
                else
                {
                    return 
false;
                }
                
times--;
            }
            return 
true;
        }
        public 
bool Add(uint id, Enums.ItemEffect effect)
        {
            try
            {
                
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                
item.ID = id;
                
item.Effect = effect;
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, 0);
                
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                if (
Count <= 39)
                {
                    
Add(item, Enums.ItemUse.CreateAndAdd);
                }
                else
                {
                    return 
false;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
       
/* public bool Add(MsgItemInfo item, Enums.ItemUse use)
        {
            try
            {
                if (!Database.ConquerItemInformation.BaseInformations.ContainsKey(item.ID)) return true;
                if (Count == 40)
                {
                    Owner.Send(Constants.FullInventory); return false;
                }
                if (!inventory.ContainsKey(item.UID))
                {
                    item.Position = 0;
                    MsgItemInfo _ExistingItem;
                    Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(item.ID, 0);
                    if (Owner.Inventory.Contains(iteminfo.BaseInformation.ID, false, iteminfo.BaseInformation.StackSize, out _ExistingItem))
                    {
                        if (_ExistingItem.StackSize == 0)
                            _ExistingItem.StackSize = 1;
                        ushort _StackCount = iteminfo.BaseInformation.StackSize;
                        _StackCount -= (ushort)_ExistingItem.StackSize;
                        if (_StackCount >= 1)
                            _StackCount += 1;
                        _ExistingItem.StackSize += 1;
                        Database.ConquerItemTable.UpdateStack(_ExistingItem);
                        _ExistingItem.Mode = Game.Enums.ItemMode.Update;
                        _ExistingItem.Send(Owner);
                        _ExistingItem.Mode = Game.Enums.ItemMode.Default;
                        switch (use)
                        {
                            case Enums.ItemUse.Add:
                                Database.ConquerItemTable.DeleteItem(item.UID); break;
                            case Enums.ItemUse.Move:
                                Database.ConquerItemTable.DeleteItem(item.UID); break;
                        }
                        return true;
                    }
                    else
                    {
                        switch (use)
                        {
                            case Enums.ItemUse.CreateAndAdd:
                                item.UID = Network.GamePackets.MsgItemInfo.ItemUID.Next;
                                Database.ConquerItemTable.AddItem(ref item, Owner);
                                item.MobDropped = false;
                                break;
                            case Enums.ItemUse.Add:
                                Database.ConquerItemTable.UpdateLocation(item, Owner);
                                break;
                            case Enums.ItemUse.Move:
                                item.Position = 0;
                                item.StatsLoaded = false;
                                Database.ConquerItemTable.UpdateLocation(item, Owner);
                                break;
                        }
                        if (use != Enums.ItemUse.None)
                            ItemLog.LogItem(item.UID, Owner.Player.UID, ItemLog.ItemLogAction.Add);
                        inventory.Add(item.UID, item);
                        objects = inventory.Values.ToArray();
                        item.Mode = Enums.ItemMode.Default;
                        if (use != Enums.ItemUse.None)
                            item.Send(Owner);
                        return true;
                    }
                }
            }
            catch (Exception e)
            {
                Server.SaveException(e);
            }
            return false;
        }*/
        
public bool Add(MsgItemInfo item, Enums.ItemUse use)
        {
            if (!
Database.ConquerItemInformation.BaseInformations.ContainsKey(item.ID))
                return 
false;
            
//if (Owner.Player.Crossed && !MsgItemInfo.IsDrug(item.ID) && item.ID != 3600029) return false;
            
if (Count == 40)
            {
                
Owner.Send(Constants.FullInventory);
                return 
false;
            }
            if (!
inventory.ContainsKey(item.UID))
            {
                
item.Position = 0;
                
MsgItemInfo _ExistingItem;
                
Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(item.ID, 0);
                if (
Owner.Inventory.Contains(iteminfo.BaseInformation.ID, iteminfo.BaseInformation.StackSize, out _ExistingItem) && Owner.SpiltStack && use != Enums.ItemUse.None)
                {
                    if (
_ExistingItem.StackSize == 0)
                        
_ExistingItem.StackSize = 1;
                    
ushort _StackCount = iteminfo.BaseInformation.StackSize;
                    
_StackCount -= (ushort)_ExistingItem.StackSize;
                    if (
_StackCount >= 1)
                        
_StackCount += 1;
                    
_ExistingItem.StackSize += 1;
                    
Database.ConquerItemTable.UpdateStack(_ExistingItem);
                    
_ExistingItem.Mode = Game.Enums.ItemMode.Update;
                    
_ExistingItem.Send(Owner);
                    
_ExistingItem.Mode = Game.Enums.ItemMode.Default;
                    switch (use)
                    {
                        case 
Enums.ItemUse.Add:
                            
Database.ConquerItemTable.DeleteItem(item.UID);
                            break;
                        case 
Enums.ItemUse.Move:
                            
Database.ConquerItemTable.DeleteItem(item.UID);
                            break;
                    }
                    return 
true;
                }
                else
                {
                    switch (use)
                    {
                        case 
Enums.ItemUse.CreateAndAdd:
                            
item.UID = ConQuerSquad.Network.GamePackets.MsgItemInfo.ItemUID.Next;
                            
Database.ConquerItemTable.UpdateItemUID();
                            
//while (ConquerItemTable.IsThere(item.UID))
                              //  item.UID = ConQuerSquad.Network.GamePackets.MsgItemInfo.ItemUID.Next;
                            
Database.ConquerItemTable.AddItem(ref item, Owner);
                            
item.MobDropped = false;
                            break;
                        case 
Enums.ItemUse.Add:
                            
Database.ConquerItemTable.UpdateLocation(item, Owner);
                            break;
                        case 
Enums.ItemUse.Move:
                            
item.Position = 0;
                            
item.StatsLoaded = false;
                            
Database.ConquerItemTable.UpdateLocation(item, Owner);
                            break;
                    }
                    
inventory.Add(item.UID, item);
                    
Update();
                    
item.Mode = Enums.ItemMode.Default;
                    if (use != 
Enums.ItemUse.None)
                        
item.Send(Owner);
                    return 
true;
                }
            }

            return 
false;
        }
        public 
void Update()
        {
            
objects = inventory.Values.ToArray();
        }
        public 
bool Add2(MsgItemInfo item, Enums.ItemUse use)
        {
            try
            {
                if (!
Database.ConquerItemInformation.BaseInformations.ContainsKey(item.ID)) return true;
                if (
Count == 40)
                {
                    
Owner.Send(Constants.FullInventory);
                    return 
false;
                }
                if (!
inventory.ContainsKey(item.UID))
                {
                    
item.Position = 0;
                    
MsgItemInfo _ExistingItem;
                    
Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(item.ID, 0);
                    if (
Owner.Inventory.Contains(iteminfo.BaseInformation.ID, iteminfo.BaseInformation.StackSize, out _ExistingItem))
                    {
                        if (
_ExistingItem.StackSize == 0)
                            
_ExistingItem.StackSize = 1;
                        
ushort _StackCount = iteminfo.BaseInformation.StackSize;
                        
_StackCount -= (ushort)_ExistingItem.StackSize;
                        if (
_StackCount >= 1)
                            
_StackCount += 1;
                        
_ExistingItem.StackSize += 1;
                        
Database.ConquerItemTable.UpdateStack(_ExistingItem);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Update;
                        
_ExistingItem.Send(Owner);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Default;
                        switch (use)
                        {
                            case 
Enums.ItemUse.Add:
                                {
                                    
Database.ConquerItemTable.DeleteItem(item.UID);
                                    break;
                                }
                            case 
Enums.ItemUse.Move:
                                {
                                    
Database.ConquerItemTable.DeleteItem(item.UID);
                                    break;
                                }
                        }
                        return 
true;
                    }
                    else
                    {
                        switch (use)
                        {
                            case 
Enums.ItemUse.CreateAndAdd:
                                {
                                    
item.UID = MsgItemInfo.ItemUID.Next;
                                    
Database.ConquerItemTable.AddItem(ref item, Owner);
                                    
Database.ConquerItemTable.UpdateItemUID();
                                    
Database.ConquerItemTable.Update_Free(item, Owner);
                                    
item.MobDropped = false;
                                    break;
                                }
                            case 
Enums.ItemUse.Add:
                                {
                                    
Database.ConquerItemTable.UpdateLocation(item, Owner);
                                    break;
                                }
                            case 
Enums.ItemUse.Move:
                                {
                                    
item.Position = 0;
                                    
item.StatsLoaded = false;
                                    
Database.ConquerItemTable.UpdateLocation(item, Owner);
                                    break;
                                }
                        }
                        
inventory.Add(item.UID, item);
                        
objects = inventory.Values.ToArray();
                        
item.Mode = Enums.ItemMode.Default;
                        if (use != 
Enums.ItemUse.None)
                            
item.Send(Owner);
                        return 
true;
                    }
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
false;
        }
        public 
bool Remove(MsgItemInfo item, Enums.ItemUse use)
        {
            try
            {
                if (
inventory.ContainsKey(item.UID))
                {

                    switch (use)
                    {
                        case 
Enums.ItemUse.RemoveFromStack:
                            {
                                if (
item.StackSize > 1)
                                {
                                    
item.StackSize -= 1;
                                    
Database.ConquerItemTable.UpdateStack(item);
                                    
item.Mode = Game.Enums.ItemMode.Update;
                                    
item.Send(Owner);
                                    return 
true;
                                }
                                else
                                {
                                    
Database.ConquerItemTable.RemoveItem(item.UID);
                                }
                                break;
                            }
                        case 
Enums.ItemUse.IntoWrap:
                            
Database.ConquerItemTable.UpdateLocation(item, Owner);
                            break;
                        case 
Enums.ItemUse.Remove:
                            
Database.ConquerItemTable.DeleteItem(item.UID);
                            break;
                        case 
Enums.ItemUse.Delete:
                            
Database.ConquerItemTable.DeleteItem(item.UID);
                            break;
                        case 
Enums.ItemUse.Move:
                            
Database.ConquerItemTable.UpdateLocation(item, Owner);
                            break;
                    }
                    
//   Database.ItemLog.LogItem(item.UID, Owner.Player.UID, Conquer_Online_Server.Database.ItemLog.ItemLogAction.Remove); 

                    
inventory.Remove(item.UID);
                    
objects = inventory.Values.ToArray();
                    
MsgItem iu = new MsgItem(true);
                    
iu.UID = item.UID;
                    
iu.ID = MsgItem.Mode.RemoveInventory;
                    
Owner.Send(iu.ToArray());
                    return 
true;
                }
            }


            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
false;
        }
        public 
bool RemoveOld(MsgItemInfo item, Enums.ItemUse use)
        {
            try
            {
                if (
inventory.ContainsKey(item.UID))
                {
                    if (
Owner.Player.UseItem && item.StackSize > 1)
                    {
                        
Remove(item.ID, 1);
                        
Owner.Player.UseItem = false;
                        return 
true;
                    }
                    else
                    {
                        switch (use)
                        {
                            case 
Enums.ItemUse.Remove:
                                
Database.ConquerItemTable.DeleteItem(item.UID);
                                break;
                            case 
Enums.ItemUse.Delete:
                                
Database.ConquerItemTable.DeleteItem(item.UID);
                                break;
                            case 
Enums.ItemUse.Move:
                                
Database.ConquerItemTable.UpdateLocation(item, Owner);
                                break;
                        }
                        
inventory.Remove(item.UID);
                        
objects = inventory.Values.ToArray();
                        
MsgItem iu = new MsgItem(true);
                        
iu.UID = item.UID;
                        
iu.ID = MsgItem.Mode.RemoveInventory;
                        
Owner.Send(iu.ToArray());
                        return 
true;
                    }
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
false;
        }
        public 
bool Auction(MsgItemInfo item, Enums.ItemUse use)
        {
            try
            {
                if (
inventory.ContainsKey(item.UID))
                {
                    if (
Owner.Player.UseItem && item.StackSize > 1)
                    {
                        
Remove(item.ID, 1);
                        
Owner.Player.UseItem = false;
                        return 
true;
                    }
                    else
                    {
                        switch (use)
                        {
                            case 
Enums.ItemUse.Remove:
                                
Database.ConquerItemTable.RemoveItem(item.UID);
                                break;
                            case 
Enums.ItemUse.Delete:
                                
Database.ConquerItemTable.DeleteItem(item.UID);
                                break;
                            case 
Enums.ItemUse.Move:
                                
Database.ConquerItemTable.UpdateLocation(item, Owner);
                                break;
                        }
                        
inventory.Remove(item.UID);
                        
objects = inventory.Values.ToArray();
                        
MsgItem iu = new MsgItem(true);
                        
iu.UID = item.UID;
                        
iu.ID = MsgItem.Mode.RemoveInventory;
                        
Owner.Send(iu.ToArray());
                        return 
true;
                    }
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
false;
        }
        public 
bool Remove(MsgItemInfo item, Enums.ItemUse use, bool equipment)
        {
            try
            {
                if (
inventory.ContainsKey(item.UID))
                {
                    if (
inventory.ContainsKey(item.UID))
                        
inventory.Remove(item.UID);
                    else return 
false;
                    if (
objects == null)
                        
objects = new MsgItemInfo[objects.Length];
                    if (
inventory.Values.Count >= 0)
                        
objects = inventory.Values.ToArray();
                    else return 
false;
                    
MsgItem iu = new MsgItem(true);
                    
iu.UID = item.UID;
                    
iu.ID = MsgItem.Mode.RemoveInventory;
                    
Owner.Send(iu.ToArray());
                    return 
true;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
false;
        }
        public 
bool Remove(uint UID, Enums.ItemUse use, bool sendRemove)
        {
            try
            {
                if (
inventory.ContainsKey(UID))
                {
                    switch (use)
                    {
                        case 
Enums.ItemUse.Remove:
                            
Database.ConquerItemTable.RemoveItem(UID);
                            break;
                        case 
Enums.ItemUse.Move:
                            
Database.ConquerItemTable.UpdateLocation(inventory[UID], Owner);
                            break;
                    }
                    
inventory.Remove(UID);
                    
objects = inventory.Values.ToArray();
                    if (
sendRemove)
                    {
                        
MsgItem iu = new MsgItem(true);
                        
iu.UID = UID;
                        
iu.ID = MsgItem.Mode.RemoveInventory;
                        
Owner.Send(iu.ToArray());
                    }
                    return 
true;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
false;
        }
        public 
bool Remove(string name)
        {
            try
            {
                
string loweredName = name.ToLower();
                foreach (var 
item in inventory.Values)
                {
                    if (
Database.ConquerItemInformation.BaseInformations[item.ID].LowerName == loweredName)
                    {
                        
Remove(item, Enums.ItemUse.Remove);
                        
MsgItem iu = new MsgItem(true);
                        
iu.UID = item.UID;
                        
iu.ID = MsgItem.Mode.RemoveInventory;
                        
Owner.Send(iu.ToArray());
                        return 
true;
                    }
                }
            }
            catch (
Exception e)
            { 
                
Server.SaveException(e);
            }
            return 
false;
        }
        public 
MsgItemInfo[] Objects
        
{
            
get { return objects; }
        }
        public 
byte Count
        
{
            
get { return (byte)Objects.Length; }
        }
        public 
bool TryGetItem(uint UID, out MsgItemInfo item)
        {
            return 
inventory.TryGetValue(UID, out item);
        }
        public 
bool Dropitem(MsgItemInfo item, Enums.ItemUse use)
        {
            if (
inventory.ContainsKey(item.UID))
            {
                switch (use)
                {
                    case 
Enums.ItemUse.Remove:
                        
Database.ConquerItemTable.DropItem(item.UID);
                        break;
                    case 
Enums.ItemUse.Move:
                        
Database.ConquerItemTable.UpdateLocation(inventory[item.UID], Owner);
                        break;
                }
                
inventory.Remove(item.UID);
                
objects = inventory.Values.ToArray();
                
MsgItem iu = new MsgItem(true);
                
iu.UID = item.UID;
                
iu.ID = MsgItem.Mode.RemoveInventory;
                
Owner.Send(iu.ToArray());
                return 
true;
            }
            return 
false;
        }
        public 
bool ContainsUID(uint UID)
        {
            return 
inventory.ContainsKey(UID);
        }
        public 
bool Contains(uint ID, ushort maxstackamount, out MsgItemInfo Item)
        {
            
Item = null;
            if (
ID == 0) return false;
            foreach (
MsgItemInfo item in Objects)
            {
                if (
item.ID == ID && item.StackSize < maxstackamount)
                {
                    
Item = item;
                    return 
true;
                }
            }
            return 
false;
        }
        public 
bool Contains(uint ID, uint times)
        {
            if (
ID == 0) return true;
            
ushort has = 0;
            foreach (
MsgItemInfo item in Objects)
                if (
item.ID == ID)
                {
                    if (
item.StackSize == 0)
                        
has++;
                    else 
has += (byte)item.StackSize;
                }
            return 
has >= times;
        }
        public 
bool Contains(uint ID, uint times, bool Bound = false)
        {
            if (
ID == 0) return true;
            
ushort has = 0;
            foreach (
MsgItemInfo item in Objects)
                if (
item.ID == ID && item.Bound == Bound)
                {
                    if (
item.StackSize == 0)
                        
has++;
                    else 
has += (byte)item.StackSize;
                }
            return 
has >= times;
        }
        public 
bool Remove(uint ID, byte times, bool Bound = false)
        {
            if (
ID == 0) return true;
            List<
MsgItemInfo> items = new List<MsgItemInfo>();
            
byte has = 0;
            foreach (
MsgItemInfo item in Objects)
                if (
item.ID == ID && item.Bound == Bound)
                {
                    if (
item.StackSize > 1)
                    {
                        if (
item.StackSize >= times)
                        {
                            
item.StackSize -= times;
                            if (
item.StackSize != 0)
                            {
                                
ConquerItemTable.UpdateStack(item);
                                
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Update;
                                
item.Send(Owner);
                                
item.Mode = ConQuerSquad.Game.Enums.ItemMode.Default;
                                return 
true;
                            }
                            else
                            {
                                
ConquerItemTable.DeleteItem(item.UID);
                                
inventory.Remove(item.UID);
                                
objects = inventory.Values.ToArray();
                                
MsgItem iu = new MsgItem(true);
                                
iu.UID = item.UID;
                                
iu.ID = MsgItem.Mode.RemoveInventory;
                                
Owner.Send(iu.ToArray());
                                return 
true;
                            }
                        }
                        else
                        {
                            
has += (byte)item.StackSize; items.Add(item); if (has >= times) break;
                        }
                    }
                    else
                    {
                        
has++; items.Add(item); if (has >= times) break;
                    }
                }
            if (
has >= times)
                foreach (
MsgItemInfo item in items)
                    
Remove(item, Enums.ItemUse.Remove);
            return 
has >= times;
        }
        public 
MsgItemInfo GetItemByID(uint ID)
        {
            foreach (
MsgItemInfo item in Objects)
                if (
item.ID == ID) return item;
            return 
null;
        }
        public 
bool Remove(uint ID, byte times)
        {
            if (
ID == 0) return true;
            List<
MsgItemInfo> items = new List<MsgItemInfo>();
            
byte has = 0;
            foreach (
MsgItemInfo item in Objects)
                if (
item.ID == ID)
                {
                    if (
item.StackSize > 1)
                    {
                        if (
item.StackSize >= times)
                        {
                            
item.StackSize -= times;
                            if (
item.StackSize != 0)
                            {
                                
Database.ConquerItemTable.UpdateStack(item);
                                
item.Mode = Enums.ItemMode.Update;
                                
item.Send(Owner);
                                
item.Mode = Enums.ItemMode.Default;
                                return 
true;
                            }
                            else
                            {
                                
Database.ConquerItemTable.DeleteItem(item.UID);
                                
inventory.Remove(item.UID);
                                
objects = inventory.Values.ToArray();
                                
MsgItem iu = new MsgItem(true);
                                
iu.UID = item.UID;
                                
iu.ID = MsgItem.Mode.RemoveInventory;
                                
Owner.Send(iu.ToArray());
                                return 
true;
                            }
                        }
                        else
                        {
                            
has += (byte)item.StackSize; items.Add(item); if (has >= times) break;
                        }
                    }
                    else
                    {
                        
has++; items.Add(item); if (has >= times) break;
                    }
                }
            if (
has >= times)
                foreach (
MsgItemInfo item in items)
                    
Remove(item, Enums.ItemUse.Remove);
            return 
has >= times;
        }
        public 
bool TryGetValue(uint UID, out MsgItemInfo Info)
        {
            
Info = null;
            
lock (inventory)
            {
                if (
inventory.ContainsKey(UID))
                { return 
inventory.TryGetValue(UID, out Info); }
                else return 
false;
            }
        }
        
#region New
        
public bool AddBound99(uint id, uint seconds, byte plus, byte bless, byte times, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {

                    
MsgItemInfo _ExistingItem;
                    
Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(id, 0);
                    
//  if (Owner.Inventory.Contains(iteminfo.BaseInformation.ID, iteminfo.BaseInformation.StackSize, out _ExistingItem))
                    
if (GetStackContainer(infos.BaseInformation.ID, infos.BaseInformation.StackSize, 1, out _ExistingItem))
                    {
                        if (
_ExistingItem.StackSize == 0)
                            
_ExistingItem.StackSize = 1;
                        
ushort _StackCount = iteminfo.BaseInformation.StackSize;
                        
_StackCount -= (ushort)_ExistingItem.StackSize;
                        if (
_StackCount >= 1)
                            
_StackCount += 1;
                        
_ExistingItem.StackSize += 1;
                        
Database.ConquerItemTable.UpdateStack(_ExistingItem);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Update;
                        
_ExistingItem.Send(Owner);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Default;
                    }
                    else
                    {
                        if (
Count <= 39)
                        {
                            
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                            
item.ID = id;
                            
item.Plus = plus;
                            
item.Bless = bless;
                            
item.Enchant = 0;
                            
item.Bound = bound;
                            
item.TimeStamp = DateTime.Now;
                            
item.Minutes = (seconds / 60);
                            
item.TimeLeftInMinutes = seconds;
                            
/* if ((Time32.Now > item.OnFloor.AddSeconds(Constants.FloorItemSeconds)) || item.PickedUpAlready)
                             {
                                 item = MsgMapItem.Remove;
                                 Map.RemoveFloorItem(item);
                             }*/
                            
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                            
item.StackSize = 1;
                            
item.MaxStackSize = infos.BaseInformation.StackSize;
                            
item.Color = (Game.Enums.Color)Kernel.Random.Next(3, 9);
                            
Add(item, Enums.ItemUse.CreateAndAdd);
                        }
                    }
                    
times--;
                }
            }
            catch (
Exception exception)
            {
                
Server.SaveException(exception);
            }
            return 
true;
        }
        public 
bool Add98(uint id, uint seconds, byte plus, byte bless, byte enchant, byte onesoc, byte twosoc, byte times, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {
                    
MsgItemInfo _ExistingItem;
                    
Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(id, 0);
                    if (
Owner.Inventory.Contains(iteminfo.BaseInformation.ID, bound, iteminfo.BaseInformation.StackSize, out _ExistingItem))
                    {
                        if (
_ExistingItem.StackSize == 0)
                            
_ExistingItem.StackSize = 1;
                        
ushort _StackCount = iteminfo.BaseInformation.StackSize;
                        
_StackCount -= (ushort)_ExistingItem.StackSize;
                        if (
_StackCount >= 1)
                            
_StackCount += 1;
                        
_ExistingItem.StackSize += 1;
                        
Database.ConquerItemTable.UpdateStack(_ExistingItem);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Update;
                        
_ExistingItem.Send(Owner);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Default;
                    }
                    else
                    {
                        if (
Count <= 39)
                        {
                            
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                            
item.ID = id;
                            
item.Plus = plus;
                            
item.Bless = bless;
                            
item.Bound = bound;
                            
item.TimeStamp = DateTime.Now;
                            
item.Minutes = (seconds / 60);
                            
item.TimeLeftInMinutes = seconds;
                            
item.Enchant = 0;
                            if (
onesoc == 1)
                            {
                                
item.SocketOne = Game.Enums.Gem.EmptySocket;
                            }
                            if (
twosoc == 1)
                            {
                                
item.SocketTwo = Game.Enums.Gem.EmptySocket;
                            }
                            if (
id == 201009 && onesoc == 103 && twosoc == 103)
                            {
                                
item.SocketOne = Game.Enums.Gem.SuperThunderGem;
                                
item.SocketTwo = Game.Enums.Gem.SuperThunderGem;
                            }
                            if (
id == 202009 && onesoc == 123 && twosoc == 123)
                            {
                                
item.SocketOne = Game.Enums.Gem.SuperGloryGem;
                                
item.SocketTwo = Game.Enums.Gem.SuperGloryGem;
                            }
                            if (
id == 204009 && onesoc == 103 && twosoc == 123)
                            {
                                
item.SocketOne = Game.Enums.Gem.SuperThunderGem;
                                
item.SocketTwo = Game.Enums.Gem.SuperGloryGem;
                            }
                            
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                            
item.StackSize = 1;
                            
item.MaxStackSize = infos.BaseInformation.StackSize;
                            
Add(item, Enums.ItemUse.CreateAndAdd);
                        }
                    }
                    
times--;
                }
            }
            catch (
Exception e)
            {
                
Server.SaveException(e);
            }
            return 
true;
        }
        public 
bool AddBound98(uint id, uint seconds, byte plus, byte bless, byte enchant, byte onesoc, byte twosoc, byte times)
        {
            return 
Add98(id, seconds, plus, bless, enchant, onesoc, twosoc, times, true);
        }
        public 
bool Add2(uint id, byte plus, byte bless, byte enchant, byte onesoc, byte twosoc, byte times, byte effect)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {

                    
MsgItemInfo _ExistingItem;
                    
Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(id, 0);
                    
//  if (Owner.Inventory.Contains(iteminfo.BaseInformation.ID, iteminfo.BaseInformation.StackSize, out _ExistingItem))
                    
if (GetStackContainer(infos.BaseInformation.ID, infos.BaseInformation.StackSize, 1, out _ExistingItem))
                    {
                        if (
_ExistingItem.StackSize == 0)
                            
_ExistingItem.StackSize = 1;
                        
ushort _StackCount = iteminfo.BaseInformation.StackSize;
                        
_StackCount -= (ushort)_ExistingItem.StackSize;
                        if (
_StackCount >= 1)
                            
_StackCount += 1;
                        
_ExistingItem.StackSize += 1;
                        
Database.ConquerItemTable.UpdateStack(_ExistingItem);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Update;
                        
_ExistingItem.Send(Owner);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Default;
                    }
                    else
                    {
                        if (
Count <= 39)
                        {
                            
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                            
item.ID = id;
                            
item.Plus = plus;
                            
item.Bless = bless;
                            
item.Enchant = 0;
                            if (
onesoc == 1)
                            {
                                
item.SocketOne = Game.Enums.Gem.EmptySocket;
                            }
                            if (
twosoc == 1)
                            {
                                
item.SocketTwo = Game.Enums.Gem.EmptySocket;
                            }
                            if (
effect == 1)
                            {
                                
item.Effect = Enums.ItemEffect.Poison;
                            }
                            
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                            
item.StackSize = 1;
                            
item.MaxStackSize = infos.BaseInformation.StackSize;
                            
Add(item, Enums.ItemUse.CreateAndAdd);
                        }
                    }
                    
times--;
                }
            }
            catch (
Exception exception)
            {
                
Server.SaveException(exception);
            }
            return 
true;
        }
        public 
bool Add15(uint id, byte plus, byte bless, byte enchant, byte onesoc, byte twosoc, byte times, byte effect)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {

                    
MsgItemInfo _ExistingItem;
                    
Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(id, 0);
                    
//  if (Owner.Inventory.Contains(iteminfo.BaseInformation.ID, iteminfo.BaseInformation.StackSize, out _ExistingItem))
                    
if (GetStackContainer(infos.BaseInformation.ID, infos.BaseInformation.StackSize, 1, out _ExistingItem))
                    {
                        if (
_ExistingItem.StackSize == 0)
                            
_ExistingItem.StackSize = 1;
                        
ushort _StackCount = iteminfo.BaseInformation.StackSize;
                        
_StackCount -= (ushort)_ExistingItem.StackSize;
                        if (
_StackCount >= 1)
                            
_StackCount += 1;
                        
_ExistingItem.StackSize += 1;
                        
Database.ConquerItemTable.UpdateStack(_ExistingItem);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Update;
                        
_ExistingItem.Send(Owner);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Default;
                    }
                    else
                    {
                        if (
Count <= 39)
                        {
                            
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                            
item.ID = id;
                            
item.Plus = plus;
                            
item.Bound = true;
                            
item.Bless = bless;
                            
item.Enchant = 0;
                            if (
onesoc == 1)
                            {
                                
item.SocketOne = Game.Enums.Gem.EmptySocket;
                            }
                            if (
twosoc == 1)
                            {
                                
item.SocketTwo = Game.Enums.Gem.EmptySocket;
                            }
                            if (
effect == 1)
                            {
                                
item.Effect = Enums.ItemEffect.Poison;
                            }
                            
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                            
item.StackSize = 1;
                            
item.MaxStackSize = infos.BaseInformation.StackSize;
                            
Add(item, Enums.ItemUse.CreateAndAdd);
                        }
                    }
                    
times--;
                }
            }
            catch (
Exception exception)
            {
                
Server.SaveException(exception);
            }
            return 
true;
        }
        public 
bool Contains(uint ID)
        {
            if (
ID == 0)
                return 
true;
            
ushort has = 0;
            foreach (
MsgItemInfo item in Objects)
                if (
item.ID == ID)
                {
                    
has++;
                }
            return 
has > 0;
        }
        public 
uint has(uint ID)
        {
            
            
ushort has = 0;
            foreach (
MsgItemInfo item in Objects)
                if (
item.ID == ID)
                {
                    
has++;
                }
            return 
has ;
        }
        public 
bool AddBound1(uint id, byte plus, byte bless, byte enchant, int onesoc, byte twosoc, byte times, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {

                    
MsgItemInfo _ExistingItem;
                    
Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(id, 0);
                    
//  if (Owner.Inventory.Contains(iteminfo.BaseInformation.ID, iteminfo.BaseInformation.StackSize, out _ExistingItem))
                    
if (GetStackContainer(infos.BaseInformation.ID, infos.BaseInformation.StackSize, 1, out _ExistingItem))
                    {
                        if (
_ExistingItem.StackSize == 0)
                            
_ExistingItem.StackSize = 1;
                        
ushort _StackCount = iteminfo.BaseInformation.StackSize;
                        
_StackCount -= (ushort)_ExistingItem.StackSize;
                        if (
_StackCount >= 1)
                            
_StackCount += 1;
                        
_ExistingItem.StackSize += 1;
                        
Database.ConquerItemTable.UpdateStack(_ExistingItem);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Update;
                        
_ExistingItem.Send(Owner);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Default;
                    }
                    else
                    {
                        if (
Count <= 39)
                        {
                            
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                            
item.ID = id;
                            
item.Plus = plus;
                            
item.Bless = bless;
                            
item.Bound = true;
                            
item.Enchant = 0;
                            if (
onesoc == 1)
                            {
                                
item.SocketOne = Game.Enums.Gem.EmptySocket;
                            }
                            if (
twosoc == 1)
                            {
                                
item.SocketTwo = Game.Enums.Gem.EmptySocket;
                            }
                            if (
id == 201009 && onesoc == 103 && twosoc == 103)
                            {
                                
item.SocketOne = Game.Enums.Gem.SuperThunderGem;
                                
item.SocketTwo = Game.Enums.Gem.SuperThunderGem;
                            }
                            if (
id == 202009 && onesoc == 123 && twosoc == 123)
                            {
                                
item.SocketOne = Game.Enums.Gem.SuperGloryGem;
                                
item.SocketTwo = Game.Enums.Gem.SuperGloryGem;
                            }
                            if (
id == 204009 && onesoc == 103 && twosoc == 123)
                            {
                                
item.SocketOne = Game.Enums.Gem.SuperThunderGem;
                                
item.SocketTwo = Game.Enums.Gem.SuperGloryGem;
                            }
                            
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                            
item.StackSize = 1;
                            
item.MaxStackSize = infos.BaseInformation.StackSize;
                            
item.Color = (Game.Enums.Color)Kernel.Random.Next(3, 9);
                            
Add(item, Enums.ItemUse.CreateAndAdd);
                        }
                    }
                    
times--;
                }
            }
            catch (
Exception exception)
            {
                
Server.SaveException(exception);
            }
            return 
true;
        }
        public 
bool Add(uint id, byte plus, byte bless, byte enchant, int onesoc, byte twosoc, byte times, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {

                    
MsgItemInfo _ExistingItem;
                    
Database.ConquerItemInformation iteminfo = new Database.ConquerItemInformation(id, 0);
                    
//  if (Owner.Inventory.Contains(iteminfo.BaseInformation.ID, iteminfo.BaseInformation.StackSize, out _ExistingItem))
                    
if (GetStackContainer(infos.BaseInformation.ID, infos.BaseInformation.StackSize, 1, out _ExistingItem))
                    {
                        if (
_ExistingItem.StackSize == 0)
                            
_ExistingItem.StackSize = 1;
                        
ushort _StackCount = iteminfo.BaseInformation.StackSize;
                        
_StackCount -= (ushort)_ExistingItem.StackSize;
                        if (
_StackCount >= 1)
                            
_StackCount += 1;
                        
_ExistingItem.StackSize += 1;
                        
Database.ConquerItemTable.UpdateStack(_ExistingItem);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Update;
                        
_ExistingItem.Send(Owner);
                        
_ExistingItem.Mode = Game.Enums.ItemMode.Default;
                    }
                    else
                    {
                        if (
Count <= 39)
                        {
                            
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                            
item.ID = id;
                            
item.Plus = plus;
                            
item.Bless = bless;
                            
item.Enchant = 0;
                            if (
onesoc == 1)
                            {
                                
item.SocketOne = Game.Enums.Gem.EmptySocket;
                            }
                            if (
twosoc == 1)
                            {
                                
item.SocketTwo = Game.Enums.Gem.EmptySocket;
                            }
                            if (
id == 201009 && onesoc == 103 && twosoc == 103)
                            {
                                
item.SocketOne = Game.Enums.Gem.SuperThunderGem;
                                
item.SocketTwo = Game.Enums.Gem.SuperThunderGem;
                            }
                            if (
id == 202009 && onesoc == 123 && twosoc == 123)
                            {
                                
item.SocketOne = Game.Enums.Gem.SuperGloryGem;
                                
item.SocketTwo = Game.Enums.Gem.SuperGloryGem;
                            }
                            if (
id == 204009 && onesoc == 103 && twosoc == 123)
                            {
                                
item.SocketOne = Game.Enums.Gem.SuperThunderGem;
                                
item.SocketTwo = Game.Enums.Gem.SuperGloryGem;
                            }
                            
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                            
item.StackSize = 1;
                            
item.MaxStackSize = infos.BaseInformation.StackSize;
                            
item.Color = (Game.Enums.Color)Kernel.Random.Next(3, 9);
                            
Add(item, Enums.ItemUse.CreateAndAdd);
                        }
                    }
                    
times--;
                }
            }
            catch (
Exception exception)
            {
                
Server.SaveException(exception);
            }
            return 
true;
        }
        public 
bool Remove(uint ID, ushort times)
        {
            if (
ID == 0)
                return 
true;
            List<
MsgItemInfo> items = new List<MsgItemInfo>();
            
byte has = 0;
            foreach (
MsgItemInfo item in Objects)
                if (
item.ID == ID)
                {
                    if (
item.StackSize > 1)
                    {
                        if (
item.StackSize >= times)
                        {
                            
item.StackSize -= times;
                            if (
item.StackSize != 0)
                            {
                                
Database.ConquerItemTable.UpdateStack(item);
                                
item.Mode = Enums.ItemMode.Update;
                                
item.Send(Owner);
                                
item.Mode = Enums.ItemMode.Default;
                                return 
true;
                            }
                            else
                            {
                                
Database.ConquerItemTable.DeleteItem(item.UID);
                                
inventory.Remove(item.UID);
                                
objects = inventory.Values.ToArray();
                                
Network.GamePackets.MsgItem iu = new Network.GamePackets.MsgItem(true);
                                
iu.UID = item.UID;
                                
iu.ID = Network.GamePackets.MsgItem.Mode.RemoveInventory;
                                
Owner.Send(iu.ToArray());
                                return 
true;
                            }
                        }
                        else
                        {
                            
has += (byte)item.StackSize; items.Add(item); if (has >= times) break;
                        }
                    }
                    else
                    {
                        
has++; items.Add(item); if (has >= times) break;
                    }
                }
            if (
has >= times)
                foreach (
MsgItemInfo item in items)
                    
Remove(item, Enums.ItemUse.Remove);
            return 
has >= times;
        }
        public 
bool AddTime33(uint id, uint seconds, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, 0);
                if (
Count <= 39)
                {
                    
MsgItemInfo item;
                    
item = new MsgItemInfo(true);
                    {

                        
item.ID = id;
                        
item.Plus = 0;
                        
item.Bless = 0;
                        
item.Enchant = 0;
                        
item.SocketOne = 0;
                        
item.SocketTwo = 0;
                        
item.Bound = bound;
                        
item.TimeStamp = DateTime.Now;
                        
item.Minutes = (seconds / 60);
                        
item.TimeLeftInMinutes = seconds;
                        
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                    };
                    
Add(item, Enums.ItemUse.CreateAndAdd);
                }
                else
                {
                    return 
false;
                }
            }
            catch (
Exception)
            {
            }
            return 
true;
        }
        public 
bool Add(uint id, byte plus, ushort times, bool bound = false)
        {
            try
            {
                
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, plus);
                while (
times > 0)
                {
                    if (
Count <= 39)
                    {
                        
MsgItemInfo _ExistingItem;
                        if (
GetStackContainer(infos.BaseInformation.ID, infos.BaseInformation.StackSize, 1, out _ExistingItem))
                        {
                            
_ExistingItem.StackSize++;
                            
Database.ConquerItemTable.UpdateStack(_ExistingItem);
                            
_ExistingItem.Mode = Game.Enums.ItemMode.Update;
                            
_ExistingItem.Send(Owner);
                        }
                        else
                        {
                            
MsgItemInfo item = new Network.GamePackets.MsgItemInfo(true);
                            
item = new MsgItemInfo(true);
                            
item.ID = id;
                            
item.Plus = plus;
                            
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
                            
item.Color = (Game.Enums.Color)3;
                            
item.MaxStackSize = infos.BaseInformation.StackSize;
                            
item.StackSize = 1;
                            
item.TimeLeftInMinutes = 0;
                            
item.Bound = bound;
                            
//    Owner.Send(Constants.DroppedItem2(times, Database.ConquerItemInformation.BaseInformations[item.ID].Name));
                            
Add(item, Game.Enums.ItemUse.CreateAndAdd);
                            
Database.ConquerItemTable.UpdateStack(item);
                        }
                    }
                    else
                    {
                        
Owner.Send(Constants.FullInventory);
                        return 
false;
                    }
                    
times--;
                }

            }
            catch (
Exception) { }
            return 
true;
        }
        
internal bool Remove(uint ID, uint times)
        {
            if (
ID == 0) return true;
            List<
MsgItemInfo> items = new List<MsgItemInfo>();
            
byte has = 0;
            foreach (
MsgItemInfo item in Objects)
                if (
item.ID == ID)
                {
                    if (
item.StackSize >= 1)
                    {
                        if (
item.StackSize >= (ushort)times)
                        {
                            
item.StackSize -= (ushort)times;
                            if (
item.StackSize != 0) 
                            {
                                
Database.ConquerItemTable.UpdateStack(item);
                                
item.Mode = Enums.ItemMode.Update;
                                
item.Send(Owner);
                                
item.Mode = Enums.ItemMode.Default;
                                return 
true;
                            }
                            else
                            {
                                
Database.ConquerItemTable.DeleteItem(item.UID);
                                
inventory.Remove(item.UID);
                                
objects = inventory.Values.ToArray();
                                
MsgItem iu = new MsgItem(true);
                                
iu.UID = item.UID;
                                
iu.ID = MsgItem.Mode.RemoveInventory;
                                
Owner.Send(iu.ToArray());
                                return 
true;
                            }
                        }
                        else
                        {
                            
has += (byte)item.StackSize; items.Add(item); if (has >= times) break;
                        }
                    }
                    else
                    {
                        
has++; items.Add(item); if (has >= times) break;
                    }
                }
            if (
has >= times)
                foreach (
MsgItemInfo item in items)
                    
Remove(item, Enums.ItemUse.Remove);
            return 
has >= times;
        }
        
#endregion
        
public bool GetStackContainer(uint ID, ushort maxStack, int amount, out MsgItemInfo Item)
        {
            
Item = null;
            if (
ID == 0) return false;
            foreach (
MsgItemInfo item in Objects)
            {
                if (
item.ID == ID)
                {
                    if (
item.StackSize + amount <= maxStack)
                    {
                        
Item = item;
                        return 
true;
                    }
                }
            }
            return 
false;
        }
        private const 
byte File_Size = 40;
        public 
bool HaveSpace(byte count)
        {
            return (
inventory.Count + count) <= File_Size;
        }
    }
} 



العلامات المرجعية



الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1)
 

الانتقال السريع

المواضيع المتشابهه للموضوع: حل مشكلا اختفاء الاصطفه يريت اي مساعده يا جماعه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
يريت حل المشكلة دى تومى مشكلات السيرفيرات كونكر الشخصيه 1 2020-10-07 12:40 AM
يريت حل المشكلة دى لو سمحتم تومى مشكلات السيرفيرات كونكر الشخصيه 3 2020-10-02 04:41 PM
طلب في فويد الخاص بي قلع الاسطفه ahmeddnasrr131 مشكلات السيرفيرات كونكر الشخصيه 4 2020-07-28 10:55 AM
عاوز حل لمشكله دي يا رجاله المشكله في الاصطفه peppo4 مشكلات السيرفيرات كونكر الشخصيه 7 2020-06-26 08:55 PM
الاسطفه مختفيه Peter مشكلات السيرفيرات كونكر الشخصيه 4 2019-08-30 06:14 PM


الساعة الآن 11:38 PM