|
|
|
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 |