منتدي اكواد

منتدي اكواد (https://code.vpscairo.com/index.php)
-   تطوير سيرفرات كونكر (https://code.vpscairo.com/forumdisplay.php?f=11)
-   -   الدونشن بوقت :DonationTime (https://code.vpscairo.com/showthread.php?t=1380)

Commander 2019-08-05 06:08 PM

الدونشن بوقت :DonationTime
 
بسم الله الرحمن الرحيم
ده هيفيد الناس الي عايزه تعمل شحن في سيرفراتها كنج بوقت معين ومش عارفه
نخش في الاضافه علي طول والاضافه سهله جدا ومش طويله
اول حاجه هنعمل كلاس جديد
كود PHP:

using Extreme.Game;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ResidentEvil.Network.GamePackets;
using System.Threading;
using System.Threading.Generic;
using ResidentEvil.Network.Sockets;
using ResidentEvil.Game.ConquerStructures;
using ResidentEvil.Game.ConquerStructures.Society;
using ResidentEvil.Client;
using System.Drawing;
using ResidentEvil.Game.Events;
using ResidentEvil.Database;
using System.Data.SqlClient;
using System.Configuration;

namespace 
ResidentEvil
{
    public class 
NobilityTimer
    
{
        public 
DateTime StartOnEndOn;
        public 
ulong OldDonation;
        public 
byte Donation;
        public 
Time32 CheckStamp Time32.Now;
        public 
void Insert(DateTime _StartOnDateTime _EndOnbyte _Donationulong _OldDonationClient.GameState client)
        {
            
this.StartOn _StartOn;
            
this.EndOn _EndOn;
            
this.Donation _Donation;
            
this.OldDonation _OldDonation;
            
client.NobilityInformation.Donation this.OldDonation;
            
#region Insert
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("nobilitytimer").Where("UID"client.Entity.UID))
            
using (var reader = new MySqlReader(cmd))
            {
                if (!
reader.Read())
                    
using (var cmds = new MySqlCommand(MySqlCommandType.INSERT))
                        
cmds.Insert("nobilitytimer").Insert("UID"client.Entity.UID).Execute();
            }
            
#endregion
            
this.Save(client);
            
client.Send("Your Rank Will End In " this.EndOn "");
            
        }
        public 
void Load(Client.GameState c)
        {
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("nobilitytimer").Where("UID"c.Entity.UID))
            
using (var reader = new MySqlReader(cmd))
            {
                if (
reader.Read())
                {
                    
this.Donation reader.ReadByte("Number");
                    
this.OldDonation reader.ReadByte("OldDonation");
                    
this.StartOn Kernel.FromDateTimeInt(reader.ReadUInt64("StartOn"));
                    
this.EndOn Kernel.FromDateTimeInt(reader.ReadUInt64("EndOn"));
                }
            }
        }
        public 
void Save(Client.GameState client)
        {
            
Database.MySqlCommand cmd = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
            
cmd.Update("nobilitytimer").Set("Number"this.Donation).Set("OldDonation"this.OldDonation).Set("StartOn"Kernel.ToDateTimeInt(this.StartOn)).Set("EndOn"Kernel.ToDateTimeInt(this.EndOn))
            .
Where("UID"client.Entity.UID).Execute();
        }
    }


بعد كدا هنروح علي كلاس
كود PHP:

 GameState or GameClient 

ونحط فيه ده
كود PHP:

 public NobilityTimer NobilityTimer = new NobilityTimer(); 

بعد كدا في نفس الكلاس وندور علي
كود PHP:

void ShutDown() 

وننزل لحد
كود PHP:

    Database.EntityTable.SaveEntity(thisconn); 

ونحط فوقيها ده
كود PHP:

  NobilityTimer.Save(this); 

بعد كدا نروح لكلاس
كود PHP:

EntityTable 

ونبحث عن
كود PHP:

 client.Entity.FullyLoaded true

ونحط تحتو ده
كود PHP:

   client.NobilityTimer.Load(client); 

بعد كدا نروح لكلاس
كود:

Nobility
ندور علي
كود PHP:

 case NobilityInfo.Donate

وتحت القوس نحط
كود PHP:

  if (client.NobilityTimer.Donation == || client.NobilityTimer.Donation == || client.NobilityTimer.Donation == 3)
                        {
                            
client.MessageBox("Sorry U Can't Donate Now."nullnull60);
                            return;
                        } 

بعد كدا نروح لكلاس باكت هاندلر وندور علي
كود PHP:

 void DoLogin 

وتحت القوس نحط
كود PHP:

 client.NobilityTimer.Load(client); 

بعد كدا نروح كلاس ورلد وندور علي
كود PHP:

 void CharactersCallback 

ونحط فيه ده
كود PHP:

#region NobilityTimer Check
           
            
if (client.NobilityTimer.Donation && DateTime.Now >= client.NobilityTimer.EndOn)
            {
                
client.NobilityInformation.Donation client.NobilityTimer.OldDonation
                
Game.ConquerStructures.Nobility.Sort(client.Entity.UID);
                
Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                
client.NobilityTimer.Save(client);
                
client.Send("Your Rank, Is Ended, Now Your Rank is Back.");
                
MySqlCommand cmd = new MySqlCommand(MySqlCommandType.DELETE);
                
cmd.Delete("nobilitytimer""UID"client.Entity.UID).Execute();
                
client.NobilityTimer.Donation 0;
            }
          
            
#endregion 

بعد كدا اخر حاجه في الاضافه في السي شارب وهيا الان بي سي
كود PHP:

#region DonationTime
                
case 38213:
                    {

                        switch (
npcRequest.OptionID)
                        {
                            case 
0:
                                {

                                    
dialog.Text("Hey there " client.Entity.Name ", I'm Here to Up Ur Rank 7 Days For Cps.");
                                    
dialog.Option("Up Me To King/Queen"1);
                                    
dialog.Option("Up Me To Prince/Princess."2);
                                    
dialog.Option("Up Me To Duke/Duchess."3);
                                    
dialog.Option("No Thanks."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    break;
                                }
                            case 
1:
                                {

                                    
dialog.Text("I'll Up U To King/Queen to 7 Days For 200.000 Cps.");
                                    
dialog.Option("Ok, Up Me."4);
                                    
dialog.Option("No Thanks."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    break;
                                }
                            case 
2:
                                {

                                    
dialog.Text("I'll Up U To Prince/Princess to 7 Days For 100.000 Cps.");
                                    
dialog.Option("Ok, Up Me."5);
                                    
dialog.Option("No Thanks."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    break;
                                }
                            case 
3:
                                {

                                    
dialog.Text("I'll Up U To Duke/Duchess to 7 to Days 50.000 Cps.");
                                    
dialog.Option("Ok, Up Me."6);
                                    
dialog.Option("No Thanks."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    break;
                                }
                            case 
4:
                                {
                                    if (
DateTime.Now >= client.NobilityTimer.EndOn)
                                    {
                                        if (
client.Entity.ConquerPoints >= 200000)
                                        {
                                            
client.Entity.ConquerPoints -= 200000;
                                            
client.NobilityTimer.Insert(DateTime.NowDateTime.Now.AddDays(7), 1client.NobilityInformation.Donationclient);
                                            
client.NobilityTimer.Save(client);
                                            
client.NobilityInformation.Donation 1;
                                            
Kernel.SendWorldMessage(new Message("Congratulation! " client.Entity.Name " Has been King/Queen For 7 Days. "Color.RedMessage.Center));
                                            
Game.ConquerStructures.Nobility.Sort(client.Entity.UID);
                                            
Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                                        }
                                        else
                                        {
                                            
dialog.Text("Please come back to me with 200.000 Conquer Points.");
                                            
dialog.Option("Ahh sorry."255);
                                            
dialog.Avatar(50);
                                            
dialog.Send();
                                        }
                                    }
                                    else
                                    {
                                    
dialog.Text("U Already do it.");
                                    
dialog.Option("Ahh sorry."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    }
                                    break;
                                }
                            case 
5:
                                {
                                    if (
DateTime.Now >= client.NobilityTimer.EndOn)
                                    {
                                        if (
client.Entity.ConquerPoints >= 100000)
                                        {
                                            
client.Entity.ConquerPoints -= 100000;
                                            
client.NobilityTimer.Insert(DateTime.NowDateTime.Now.AddDays(7), 2client.NobilityInformation.Donationclient);
                                            
client.NobilityTimer.Save(client);
                                            
client.NobilityInformation.Donation 2;
                                            
Kernel.SendWorldMessage(new Message("Congratulation! " client.Entity.Name " Has been Prince/Princess For 7 Days. "Color.RedMessage.Center));
                                            
Game.ConquerStructures.Nobility.Sort(client.Entity.UID);
                                            
Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                                        }
                                        else
                                        {
                                            
dialog.Text("Please come back to me with 100.000 Conquer Points.");
                                            
dialog.Option("Ahh sorry."255);
                                            
dialog.Avatar(50);
                                            
dialog.Send();
                                        }
                                    }
                                    else
                                    {
                                        
dialog.Text("U Already do it.");
                                        
dialog.Option("Ahh sorry."255);
                                        
dialog.Avatar(50);
                                        
dialog.Send();
                                    }
                                    break;
                                }
                            case 
6:
                                {
                                    if (
DateTime.Now >= client.NobilityTimer.EndOn)
                                    {
                                        if (
client.Entity.ConquerPoints >= 50000)
                                        {
                                            
client.Entity.ConquerPoints -= 50000;
                                            
client.NobilityTimer.Insert(DateTime.NowDateTime.Now.AddDays(7), 3client.NobilityInformation.Donationclient);
                                            
client.NobilityTimer.Save(client);
                                            
client.NobilityInformation.Donation 3;
                                            
Kernel.SendWorldMessage(new Message("Congratulation! " client.Entity.Name " Has been Duke/Duchess For 7 Days. "Color.RedMessage.Center));
                                            
Game.ConquerStructures.Nobility.Sort(client.Entity.UID);
                                            
Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                                        }
                                        else
                                        {
                                            
dialog.Text("Please come back to me with 50.000 Conquer Points.");
                                            
dialog.Option("Ahh sorry."255);
                                            
dialog.Avatar(50);
                                            
dialog.Send();
                                        }
                                    }
                                    else
                                    {
                                        
dialog.Text("U Already do it.");
                                        
dialog.Option("Ahh sorry."255);
                                        
dialog.Avatar(50);
                                        
dialog.Send();
                                    }
                                    break;
                                }
                        }
                        break;
                    }
                
#endregion 

روح لكلاس
كود PHP:

nobility 

ابحث عن
كود PHP:

  if (Place >= 51

وضيف تحت القوس
كود PHP:

  if (entry.Donation == 1)
                        {
                            
Rank NobilityRank.King;
                        }
                        if (
entry.Donation == 2)
                        {
                            
Rank NobilityRank.Prince;
                        }
                        if (
entry.Donation == 3)
                        {
                            
Rank NobilityRank.Duke;
                        } 

والتحكم في الوقت من هنا
كود PHP:

DateTime.Now.AddDays(7), 

بعد كدا نرفع ده في القاعده
عفواً لايمكن عرض الروابط إلا بعد الرد على الموضوع

يا رب اكون عرفت اشرحلكم الاضافه كويس والسلام عليكم ورحمة الله وبركاته

محمد ياسر 2019-08-05 06:30 PM

رد: الدونشن بوقت :DonationTime
 
رايد منزل موضوع ده
بس هو لما يجي يشوفه هو هو ولا لا
وتسلم علي الموضوع

Hassan Emprator 2019-08-05 06:32 PM

رد: الدونشن بوقت :DonationTime
 
تسلم ايدك كنت محتاجو اوي ولله عااااش فشخ يقيم من 5 نجوووم

Commander 2019-08-05 06:36 PM

رد: الدونشن بوقت :DonationTime
 
اقتباس:

المشاركة الأصلية كتبت بواسطة hazem (المشاركة 9968)
رايد منزل موضوع ده
بس هو لما يجي يشوفه هو هو ولا لا
وتسلم علي الموضوع

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

محمد ياسر 2019-08-05 06:38 PM

رد: الدونشن بوقت :DonationTime
 
اقتباس:

المشاركة الأصلية كتبت بواسطة hossameldein (المشاركة 9972)
انا لسا شايفو دلوقتي والله لما شوفت كلامك بس انا مش واخده منه خالص وممكن انزل تاريخ السيستم ده عاملو اكتر من سنه والفرق الي بين الاتنين الاتشك معمول بطريقه احسن عنندي مبيعملو كل ثانيتين و ان اللاعب مينفعش يتبرع وهو شاحن علشان هو كدا بيتبرع علي الفاضي

عادي مش مشكله بس لما يجي رايدر لان نفس الفكره نزلت وهو المشرف هنا ومره تاني تسلم علي الموضوع الجميل

Commander 2019-08-05 06:50 PM

رد: الدونشن بوقت :DonationTime
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Hassan Emprator (المشاركة 9970)
تسلم ايدك كنت محتاجو اوي ولله عااااش فشخ يقيم من 5 نجوووم

حبيبي

MohamedModyAdel 2019-08-05 08:41 PM

رد: الدونشن بوقت :DonationTime
 
تسلم كنت مستني موضوع دا من زمان

Matrix 2019-08-05 11:20 PM

رد: الدونشن بوقت :DonationTime
 
3aaaaaaash

Commander 2019-08-06 12:42 AM

رد: الدونشن بوقت :DonationTime
 
يا ريت اي حد من الاشراف يضيف ده في الموضوع علشان نسيتو
روح لكلاس
كود PHP:

nobility 

ابحث عن
كود PHP:

  if (Place >= 51

وضيف تحت القوس
كود PHP:

  if (entry.Donation == 1)
                        {
                            
Rank NobilityRank.King;
                        }
                        if (
entry.Donation == 2)
                        {
                            
Rank NobilityRank.Prince;
                        }
                        if (
entry.Donation == 3)
                        {
                            
Rank NobilityRank.Duke;
                        } 


Rider 2019-08-06 05:26 AM

رد: الدونشن بوقت :DonationTime
 
عاش احسنت <3

مصطفي عدلي 2019-08-06 06:42 AM

رد: الدونشن بوقت :DonationTime
 
تسلم

basemm 2019-08-07 08:16 PM

رد: الدونشن بوقت :DonationTime
 
عاش والله عاش فشخولا

MeGoo 2019-08-08 10:06 AM

رد: الدونشن بوقت :DonationTime
 
بس انا عندى حاجات كتير مش موجوده في الكلاس
هبعتلك و انت شوف و قولى احط فين فيهم

GameState.cs
Database.EntityTable.SaveEntity(this, conn);
السطر دا مش موجود



كود PHP:

using System;
using System.Linq;
using System.Threading;
using System.Net.Sockets;
using System.Collections.Generic;
using Mohamed_Hossam_Barakat.Network.Cryptography;
using Mohamed_Hossam_Barakat.Network.GamePackets;
using Mohamed_Hossam_Barakat.Network.Sockets;
using Mohamed_Hossam_Barakat.Network;
using Mohamed_Hossam_Barakat.Interfaces;
using Mohamed_Hossam_Barakat.Game.ConquerStructures;
using System.Drawing;
using Mohamed_Hossam_Barakat.Game;
using Mohamed_Hossam_Barakat.Database;
using System.Diagnostics;
using Microsoft.Win32;
using Mohamed_Hossam_Barakat.Copra;
using Mohamed_Hossam_Barakat.Rangers.Inner;
using System.Collections.Concurrent;
using Mohamed_Hossam_Barakat.Game.Features.Tournaments;
using System.Drawing.Drawing2D;
using Mohamed_Hossam_Barakat.MaTrix;


namespace 
Mohamed_Hossam_Barakat.Client
{
    public class 
GameState
    
{
        public 
bool InWareHouse()
        {
            foreach (var 
wh in Warehouses.Values)
            {
                if (
wh.Count 0)
                    return 
true;
            }
            return 
false;
        }
        public static 
void CheckItems(Client.GameState client)
        {
            
#region Items Protections

            #region Positions
            
List<intPro7Dam = new List<int>() { 123456821222324252628 };
            List<
intPro1Dam = new List<int>() { 791011151617182729 };
            List<
intProSocket = new List<int>() { 79151617182729 };
            
#endregion
            #region Equipments
            
foreach (ConquerItem i in client.Equipment.Objects)
            {
                if (
== null) continue;
                
#region Damage 7
                
if (Pro7Dam.Contains(i.Position))
                {
                    if (
i.Bless 7)
                    {
                        
i.Bless 7;
                        
i.Mode Game.Enums.ItemMode.Update;
                        
Database.ConquerItemTable.UpdateBless(i);
                    }
                }
                
#endregion
                #region Damage 1 - Enchant
                
if (Pro1Dam.Contains(i.Position))
                {
                    if (
i.Bless 1)
                    {
                        
i.Bless 1;
                        
i.Mode Game.Enums.ItemMode.Update;
                        
Database.ConquerItemTable.UpdateBless(i);
                    }
                    if (
i.Enchant 0)
                    {
                        
i.Enchant 0;
                        
i.Mode Game.Enums.ItemMode.Update;
                        
Database.ConquerItemTable.UpdateEnchant(i);
                    }
                }
                
#endregion
                #region Damage - Enchant - Crop & Wing
                
if (i.Position == 19 && i.Position == 12)
                {
                    if (
i.Bless 0i.Bless 0;
                    if (
i.Enchant 0i.Enchant 0;
                    
i.Mode Game.Enums.ItemMode.Update;
                    
Database.ConquerItemTable.UpdateEnchant(i);
                    
Database.ConquerItemTable.UpdateBless(i);
                }
                
#endregion
                #region Sockets
                
if (ProSocket.Contains(i.Position))
                {
                    if (
i.SocketOne > (Game.Enums.Gem)0)
                    {
                        
i.SocketOne Game.Enums.Gem.NoSocket;
                        
i.SocketTwo Game.Enums.Gem.NoSocket;
                        
i.Mode Game.Enums.ItemMode.Update;
                        
Database.ConquerItemTable.UpdateSockets(i);
                    }
                }
                
#endregion
                
i.Send(client);
            }
            
#endregion
            #region Inventory
            
foreach (ConquerItem i in client.Inventory.Objects)
            {
                if (
== null) continue;
                
#region Damage 7
                
if (Pro7Dam.Contains(PacketHandler.ItemPosition(i.ID)))
                {
                    if (
i.Bless 7)
                    {
                        
i.Bless 7;
                        
i.Mode Game.Enums.ItemMode.Update;
                        
Database.ConquerItemTable.UpdateBless(i);
                    }
                }
                
#endregion
                #region Damage 1 - Enchant
                
if (Pro1Dam.Contains(PacketHandler.ItemPosition(i.ID)))
                {
                    if (
i.Bless 1)
                    {
                        
i.Bless 1;
                        
i.Mode Game.Enums.ItemMode.Update;
                        
Database.ConquerItemTable.UpdateBless(i);
                    }
                    if (
i.Enchant 0)
                    {
                        
i.Enchant 0;
                        
i.Mode Game.Enums.ItemMode.Update;
                        
Database.ConquerItemTable.UpdateEnchant(i);
                    }
                }
                
#endregion
                #region Damage - Enchant - Crop & Wing
                
if (PacketHandler.ItemPosition(i.ID) == 19 || PacketHandler.ItemPosition(i.ID) == 12)
                {
                    if (
i.Bless 0i.Bless 0;
                    if (
i.Enchant 0i.Enchant 0;
                    
i.Mode Game.Enums.ItemMode.Update;
                    
Database.ConquerItemTable.UpdateEnchant(i);
                    
Database.ConquerItemTable.UpdateBless(i);
                }
                
#endregion
                #region Sockets
                
if (ProSocket.Contains(PacketHandler.ItemPosition(i.ID)))
                {
                    if (
i.SocketOne > (Game.Enums.Gem)0)
                    {
                        
i.SocketOne Game.Enums.Gem.NoSocket;
                        
i.SocketTwo Game.Enums.Gem.NoSocket;
                        
i.Mode Game.Enums.ItemMode.Update;
                        
Database.ConquerItemTable.UpdateSockets(i);
                    }
                }
                
#endregion
                
i.Send(client);
            }
            
#endregion
            #endregion

        
}
        public 
void BlessTouch(GameState client)
        {

            if (!
client.Spells.ContainsKey(12390))
                return;

            if (
client.Weapons != null)
                if (
client.Weapons.Item2 != null)
                    if (
client.Weapons.Item2.ID 1000 != 619)
                        return;

            var 
spell2 SpellTable.GetSpell(client.Spells[12390].IDclient.Spells[12390].Level);
            if (
Kernel.Rate((double)spell2.Percent))
            {

                var 
spell Database.SpellTable.GetSpell(10954);
                
Entity.AddFlag(Update.Flags.Stigma);
                
Entity.StigmaStamp Time32.Now;
                
Entity.StigmaIncrease spell.PowerPercent;
                
Entity.StigmaTime = (byte)spell.Duration;
                if (
Entity.EntityFlag == EntityFlag.Entity)
                    
Send(Constants.Stigma(spell.PowerPercentspell.Duration));

                
spell Database.SpellTable.GetSpell(10904);
                
Entity.ShieldTime 0;
                
Entity.ShieldStamp Time32.Now;
                
Entity.MagicShieldStamp Time32.Now;
                
Entity.MagicShieldTime 0;

                
Entity.AddFlag(Update.Flags.MagicShield);
                
Entity.MagicShieldStamp Time32.Now;
                
Entity.MagicShieldIncrease 1.1f;//spell.PowerPercent;
                
Entity.MagicShieldTime = (byte)spell.Duration;
                if (
Entity.EntityFlag == EntityFlag.Entity)
                    
Send(Constants.Shield(spell.PowerPercentspell.Duration));

                
spell Database.SpellTable.GetSpell(10854);
                
Entity.AccuracyStamp Time32.Now;
                
Entity.StarOfAccuracyStamp Time32.Now;
                
Entity.StarOfAccuracyTime 0;
                
Entity.AccuracyTime 0;

                
Entity.AddFlag(Update.Flags.StarOfAccuracy);
                
Entity.StarOfAccuracyStamp Time32.Now;
                
Entity.StarOfAccuracyTime = (byte)spell.Duration;
                if (
Entity.EntityFlag == EntityFlag.Entity)
                    
Send(Constants.Accuracy(spell.Duration));

                
client.IncreaseSpellExperience(10012390);
            }
        }

        public 
void BreakTouch(GameState client)
        {
            if (!
client.Spells.ContainsKey(12400))
                return;
            if (
client.Weapons != null)
                if (
client.Weapons.Item2 != null)
                    if (
client.Weapons.Item2.ID 1000 != 619)
                        return;
            var 
spell SpellTable.GetSpell(client.Spells[12400].IDclient.Spells[12400].Level);
            if (
MyMath.Success((double)30))
            {
                if (
Entity.ContainsFlag3(Update.Flags3.lianhuaran04))
                {
                    
SpellUse suse = new SpellUse(true);
                    
suse.Attacker Entity.UID;
                    
suse.SpellID spell.ID;
                    
suse.SpellLevel spell.Level;

                    var array = 
Game.Attacking.Handle.EntityinRange(EntityEntity).ToArray();
                    foreach (var 
target in array)
                    {
                        var 
attacked target.Entity;
                        if (
attacked.UID == client.Entity.UID)
                            continue;
                        if (
Game.Attacking.Handle.CanAttack(client.Entityattackedspelltrue))
                        {
                            var 
attack = new Attack(true);
                            
attack.Attacker client.Entity.UID;
                            
attack.Attacked attacked.UID;

                            
uint damage Game.Attacking.Calculate.Magic(client.Entityattackedref attack);

                            
attack.Damage damage;
                            
suse.Effect1 attack.Effect1;
                            
suse.Effect1 attack.Effect1;

                            
Game.Attacking.Handle.ReceiveAttack(client.Entityattackedattackref damagespell);
                            
suse.AddTarget(attackeddamageattack);
                        }
                    }
                    
client.SendScreen(susetrue);

                    
Entity.RemoveFlag3(Update.Flags3.lianhuaran01);
                    
Entity.RemoveFlag3(Update.Flags3.lianhuaran02);
                    
Entity.RemoveFlag3(Update.Flags3.lianhuaran03);
                    
Entity.RemoveFlag3(Update.Flags3.lianhuaran04);
                }
                else if (
Entity.ContainsFlag3(Update.Flags3.lianhuaran03))
                {
                    
Entity.AddFlag3(Update.Flags3.lianhuaran04);
                    
Entity.RemoveFlag3(Update.Flags3.lianhuaran03);
                    
Entity.lianhuaranPercent 0.5f;
                }
                else if (
Entity.ContainsFlag3(Update.Flags3.lianhuaran02))
                {
                    
Entity.AddFlag3(Update.Flags3.lianhuaran03);
                    
Entity.RemoveFlag3(Update.Flags3.lianhuaran02);
                    
Entity.lianhuaranPercent 0.4f;
                }
                else if (
Entity.ContainsFlag3(Update.Flags3.lianhuaran01))
                {
                    
Entity.AddFlag3(Update.Flags3.lianhuaran02);
                    
Entity.RemoveFlag3(Update.Flags3.lianhuaran01);
                    
Entity.lianhuaranPercent 0.3f;
                }
                else if (!
Entity.ContainsFlag3(Update.Flags3.lianhuaran01))
                {
                    
Entity.AddFlag3(Update.Flags3.lianhuaran01);
                    
Entity.lianhuaranPercent 0.1f;
                }
                
Entity.lianhuaranStamp Time32.Now;
                
Entity.lianhuaranLeft 20;

                
client.IncreaseSpellExperience(10012400);
            }
        }
        public 
DateTime MatrixItem
        
{
            
get { return this["matrixitem"]; }
            
set
            
{
                
this["matrixitem"] = value;
            }
        }
        public 
DateTime matrixtime
        
{
            
get { return this["matrixtime"]; }
            
set
            
{
                
this["matrixtime"] = value;
            }
        }
        public 
ulong Donationx
        
{
            
get { return this["Donationx"]; }
            
set
            
{
                
this["Donationx"] = value;
            }
        }
        public 
bool OnDonation
        
{
            
get { return this["ondonation"]; }
            
set
            
{
                
this["ondonation"] = value;
            }
        }  
        public 
uint SashSlots
        
{
            
get { return Entity.ExtraInventory; }
            
set
            
{
                
Entity.ExtraInventory value;
                if (
Entity.EntityFlag == EntityFlag.Entity)
                {
                    
Entity.Update(Update.Sashvaluefalse);
                    
Entity.Update(Update.AvailableSlots200false);
                }
            }
        }
        
//public SafeDictionary<uint, OZUS.Inbox.PrizeInfo> Prizes = new SafeDictionary<uint, OZUS.Inbox.PrizeInfo>(1000);
        
public SafeDictionary<Mohamed_Hossam_Barakat.Network.GamePackets.Update.AuraTypeCopra.AurasAuras = new SafeDictionary<Update.AuraTypeCopra.Auras>(8);
        public 
GameState[] MonksInTeam()
        {
            return 
Team.Teammates.Where(=> x.Entity.Aura_isActive).ToArray();
        }
        public 
void CheckTeamAura()
        {
            if (
Team != null)
            {
                var 
monks MonksInTeam();
                if (
monks != null)
                {
                    foreach (var 
monk in monks)
                    {
                        
Update.AuraType aura Update.AuraType.TyrantAura;
                        switch (
monk.Entity.Aura_actType)
                        {
                            case 
Update.Flags2.EarthAuraaura Update.AuraType.EarthAura; break;
                            case 
Update.Flags2.FireAuraaura Update.AuraType.FireAura; break;
                            case 
Update.Flags2.WaterAuraaura Update.AuraType.WaterAura; break;
                            case 
Update.Flags2.WoodAuraaura Update.AuraType.WoodAura; break;
                            case 
Update.Flags2.MetalAuraaura Update.AuraType.MetalAura; break;
                            case 
Update.Flags2.FendAuraaura Update.AuraType.FendAura; break;
                            case 
Update.Flags2.TyrantAuraaura Update.AuraType.TyrantAura; break;
                        }
                        if (!
Auras.ContainsKey(aura))
                        {
                            if (
this.Entity.UID != monk.Entity.UID && Kernel.GetDistance(this.Entity.Xthis.Entity.Ymonk.Entity.Xmonk.Entity.Y) <= Constants.pScreenDistance)
                            {
                                
Copra.Auras Aura = new Copra.Auras();
                                
Aura.TeamAuraOwner monk;
                                
Aura.TeamAuraStatusFlag monk.Entity.Aura_actType;
                                
Aura.TeamAuraPower monk.Entity.Aura_actPower;
                                
Aura.TeamAuraLevel monk.Entity.Aura_actLevel;
                                
Aura.aura aura;
                                if (!
Auras.ContainsKey(Aura.aura))
                                {
                                    
Auras.Add(Aura.auraAura);
                                    
this.Entity.AddFlag2(Aura.TeamAuraStatusFlag);
                                    new 
Update(true).Aura(this.EntityUpdate.AuraDataTypes.AddauraAura.TeamAuraLevelAura.TeamAuraPower);
                                    
this.doAuraBonuses(Aura.TeamAuraStatusFlagAura.TeamAuraPower1);
                                }

                            }
                        }
                    }
                }
            }
            foreach (var 
Aura in Auras.Values.ToArray())
            {
                var 
pthis Aura.TeamAuraOwner;
                if (
pthis == null)
                {
                    new 
Update(true).Aura(this.EntityUpdate.AuraDataTypes.RemoveAura.auraAura.TeamAuraLevelAura.TeamAuraPower);
                    
//this.removeAuraBonuses(this.TeamAuraStatusFlag, this.TeamAuraPower, 1);
                    
this.removeAuraBonuses(Aura.TeamAuraStatusFlagAura.TeamAuraPower1);
                    
this.Entity.RemoveFlag2(Aura.TeamAuraStatusFlag);
                    
Auras.Remove(Aura.aura);
                }
                else
                {
                    if (!
pthis.Entity.Aura_isActive || !pthis.Socket.Alive || pthis.Entity.Dead || pthis.Entity.MapID != this.Entity.MapID || pthis.Entity.Aura_actType != Aura.TeamAuraStatusFlag)
                    {
                        new 
Update(true).Aura(this.EntityUpdate.AuraDataTypes.RemoveAura.auraAura.TeamAuraLevelAura.TeamAuraPower);
                        
//this.removeAuraBonuses(this.TeamAuraStatusFlag, this.TeamAuraPower, 1);
                        
this.removeAuraBonuses(Aura.TeamAuraStatusFlagAura.TeamAuraPower1);
                        
this.Entity.RemoveFlag2(Aura.TeamAuraStatusFlag);
                        
Auras.Remove(Aura.aura);
                    }
                    else
                    {
                        if (
this.Team == null || (pthis.Team == null || (pthis.Team != null && !pthis.Team.IsTeammate(this.Entity.UID))) || this.Entity.Dead || Kernel.GetDistance(this.Entity.Xthis.Entity.Ypthis.Entity.Xpthis.Entity.Y) > Constants.pScreenDistance)
                        {
                            new 
Update(true).Aura(this.EntityUpdate.AuraDataTypes.RemoveAura.auraAura.TeamAuraLevelAura.TeamAuraPower);
                            
this.removeAuraBonuses(Aura.TeamAuraStatusFlagAura.TeamAuraPower1);
                            
this.Entity.RemoveFlag2(Aura.TeamAuraStatusFlag);
                            
Auras.Remove(Aura.aura);
                        }
                    }
                }
            }


        }
        public 
Copra.ProgressBar ProgressBar;
        public 
bool TransferedEntity;
        public 
void ChangeName(GameState client)
        {
            
client.OnDisconnect =>
            {
                
#region ChangeName progress
                
string name200 p.Entity.Name;
                
string newname p.NewName;
                
uint uid p.Entity.UID;
                if (
newname != "")
                {
                    
Mohamed_Hossam_Barakat.Console.WriteLine("Change Name In Progress");
                    if (
newname != "")
                    {
                        
Database.MySqlCommand cmdupdate null;
                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("apprentice").Set("MentorName"newname).Where("MentorID"uid).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("apprentice").Set("ApprenticeName"newname).Where("ApprenticeID"uid).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("arena").Set("EntityName"newname).Where("EntityID"uid).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("claimitems").Set("OwnerName"newname).Where("OwnerUID"uid).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("claimitems").Set("GainerName"newname).Where("GainerUID"uid).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("detaineditems").Set("OwnerName"newname).Where("OwnerUID"uid).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("detaineditems").Set("GainerName"newname).Where("GainerUID"uid).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("enemy").Set("EnemyName"newname).Where("EnemyID"uid).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("friends").Set("FriendName"newname).Where("FriendID"uid).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("guilds").Set("LeaderName"newname).Where("LeaderName"name200).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("clans").Set("LeaderName"newname).Where("LeaderName"name200).Execute();

                        if (
p.Entity.MyJiang != null)
                        {
                            
p.Entity.MyJiang.OwnName newname;
                            
Game.JiangHu.JiangHuClients[p.Entity.UID] = p.Entity.MyJiang;
                        }
                       

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("nobility").Set("EntityName"newname).Where("EntityUID"uid).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("partners").Set("PartnerName"newname).Where("PartnerID"uid).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("chi").Set("name"newname).Where("uid"uid).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("teamarena").Set("EntityName"newname).Where("EntityID"uid).Execute();

                        
cmdupdate = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
                        
cmdupdate.Update("entities").Set("name"newname).Set("namechange""").Where("UID"uid).Execute();
                        
Console.WriteLine(" -[" name200 "] : -[" newname "]");


                        if (
Game.ConquerStructures.Nobility.Board.ContainsKey(p.Entity.UID))
                        {
                            
Game.ConquerStructures.Nobility.Board[p.Entity.UID].Name p.NewName;
                        }
                        if (
Arena.ArenaStatistics.ContainsKey(p.Entity.UID))
                        {
                            
Arena.ArenaStatistics[p.Entity.UID].Name p.NewName;
                        }
                        if (
p.Entity.GetClan != null)
                        {
                            if (
p.Entity.GetClan.LeaderName == name200)
                            {
                                
Kernel.Clans[p.Entity.ClanId].LeaderName p.NewName;
                            }

                            
Kernel.Clans[p.Entity.ClanId].Members[p.Entity.UID].Name p.NewName;
                        }
                        if (
p.Guild != null)
                        {
                            if (
p.Guild.LeaderName == name200)
                            {
                                
Kernel.Guilds[p.Guild.ID].LeaderName p.NewName;
                            }

                            
Kernel.Guilds[p.Guild.ID].Members[p.Entity.UID].Name p.NewName;
                        }

                    }
                }
                
#endregion ChangeName progressa
            
};
            
client.Disconnect();
        }
        public 
string Country getset; }
        public 
short GetDistance(IMapObject obj)
        {
            return 
Kernel.GetDistance(Entity.XEntity.Yobj.Xobj.Y);
        }
        public 
DateTime timerattack = new DateTime();
        public 
GameState LobbyPlayWith;
        public 
bool LobbySignup
        
{
            
get { return this["LobbySignup"]; }
            
set
            
{
                
this["LobbySignup"] = value;
            }
        }
        public 
ushort SuperPotion
        
{
            
get { return this["SuperPotion"]; }
            
set
            
{
                
this["SuperPotion"] = value;
                if (
Entity.FullyLoaded)
                    if (
Entity.EntityFlag == EntityFlag.Entity)
                    {
                        if (
this != null)
                        {
                            
Entity.Update(Network.GamePackets.Update.DoubleExpTimerEntity.DoubleExperienceTime500false);
                        }
                    }
            }
        }
        public 
Lobby.QualifierGroup LobbyGroup;
        public 
void GetLanguages(string language)
        {
            switch (
language)
            {
                case 
"En":
                    
Language Languages.English;
                    break;
                case 
"Ar":
                    
Language Languages.Arabic;
                    break;
            }

        }
        public 
Languages Language Languages.English;
        public 
Copra.Pet Pet;
        public 
Copra.Quests Quests;
        public 
MaTrix.AI AI;
        public 
SafeDictionary<uintMailbox.PrizeInfoPrizes = new SafeDictionary<uintMailbox.PrizeInfo>(1000);
       
// public SafeDictionary<Copra.Reward.Event, Copra.Reward.RewardInfo> Rewards = new SafeDictionary<Copra.Reward.Event, Copra.Reward.RewardInfo>(1000);
        
public SafeDictionary<uintCopra.Way2Heroes.StageInfoWay2Heroes = new SafeDictionary<uintCopra.Way2Heroes.StageInfo>();
        public 
string NewName "";
        public 
byte Claimeds
        
{
            
get { return this["Claimeds"]; }
            
set
            
{
                
this["Claimeds"] = value;
            }
        }
        public 
bool JiangActive false;
        public 
bool StudyToday
        
{
            
get { return this["StudyToday"]; }
            
set
            
{
                
this["StudyToday"] = value;
            }
        }
        public 
uint UsedCourses
        
{
            
get { return this["UsedCourses"]; }
            
set
            
{
                
this["UsedCourses"] = value;
            }
        }
        public 
DateTime ResetUsedCourses
        
{
            
get { return this["ResetUsedCourses"]; }
            
set
            
{
                
this["ResetUsedCourses"] = value;
            }
        }
        public 
bool JoinedDBMap
        
{
            
get { return this["JoinedDBMap"]; }
            
set
            
{
                
this["JoinedDBMap"] = value;
            }
        }
        public 
DateTime inDBmap
        
{
            
get { return this["inDBmap"]; }
            
set
            
{
                
this["inDBmap"] = value;
            }
        }
        public 
uint Appearance
        
{
            
get { return this["Appearance"]; }
            
set
            
{
                
this["Appearance"] = value;
            }
        }
        public 
uint ClaimedElitePk
        
{
            
get { return this["ClaimedElitePk"]; }
            
set this["ClaimedElitePk"] = value; }
        }
        public 
uint ClaimedTeampk
        
{
            
get { return this["ClaimedTeampk"]; }
            
set this["ClaimedTeampk"] = value; }
        }
        public 
uint ClaimedSkillTeam
        
{
            
get { return this["ClaimedSkillTeam"]; }
            
set this["ClaimedSkillTeam"] = value; }
        }
        public 
bool _voted;
        public 
bool Voted
        
{
            
get
            
{
                return 
_voted;
            }
            
set
            
{
                
_voted value;
                new 
Database.MySqlCommand(Mohamed_Hossam_Barakat.Database.MySqlCommandType.UPDATE)
                    .
Update("entities").Set("VotePoint"value).Where("UID"Entity.UID).Execute();

            }
        }
        public 
DateTime VoteStamp
        
{
            
get { return this["VoteStamp"]; }
            
set
            
{
                
this["VoteStamp"] = value;
            }
        }
        public 
uint namechanges
        
{
            
get { return this["namechanges"]; }
            
set
            
{
                
this["namechanges"] = value;
            }
        }
        public 
string Command "";
        public 
bool endarena false;
        public 
bool endteam false;
        public 
IDisposable[] TimerSubscriptions;
        public 
object TimerSyncRootItemSyncRoot;
        public 
Time32 LastVIPTeleportLastVIPTeamTeleport;
        public 
bool AlternateEquipment;
        private 
ClientWrapper _socket;
        public 
Database.AccountTable Account;
        public 
GameCryptography Cryptography;
        public 
DHKeyExchange.ServerKeyExchange DHKeyExchange;
        public 
bool Exchange true;
        public 
ConcurrentPacketQueue Queue;
        public 
PacketFilter PacketFilter;
        public 
Time32 CantAttack Time32.Now;
        public 
bool Filtering false;
        public 
Network.GamePackets.Interaction Interaction;
        public 
int quarantineKill 0;
        public 
int quarantineDeath 0;
        public 
int TopDlClaim 0;
        public 
int TopGlClaim 0;
        public 
uint uniquepoints 0;
        public 
Action<GameStateOnDisconnect;
        public 
int apprtnum 0;
        public 
Game.Enums.Color staticArmorColor;
        public 
bool JustCreated false;
        public 
Timer Timer;
        
#region Network

        
public GameState(ClientWrapper socket)
        {
            
Fake socket == null;
            if (
Fakesocket = new ClientWrapper() { Alive true };
            
Queue = new ConcurrentPacketQueue();
            
PacketFilter = new PacketFilter() { { 1001010 }, { 10005}, { 2064}, { 2032}, { 1027} };
            
Attackable false;
            
Action 0;
            
_socket socket;

            
Cryptography = new GameCryptography(Program.Encoding.GetBytes(Constants.GameCryptographyKey));
            if (
Program.TestingMode)
                
Cryptography = new GameCryptography(Program.Encoding.GetBytes(Constants.GameCryptographyKey));
            
DHKeyExchange = new Network.GamePackets.DHKeyExchange.ServerKeyExchange();
            
//SpiritBeadQ = new Game.Features.SpiritBeadQuest(this);
            
ChiPowers = new List<ChiPowerStructure>();
            
Retretead_ChiPowers = new ChiPowerStructure[4];
            
//JiangPowers = new List<JiangPowerStructure>();
        
}
        public 
bool Ninja()
        {
            if (
Entity.EntityFlag == Game.EntityFlag.Entity)
            {
                if (
Entity.Class >= 50 && Entity.Class <= 55)
                    return 
true;
                else
                    return 
false;
            }
            return 
false;
        }
        public 
void ReadyToPlay()
        {
            try
            {
                
Weapons = new Tuple<ConquerItemConquerItem>(nullnull);
                
ItemSyncRoot = new object();
                
Screen = new Game.Screen(this);
                
//  if (!Program.ServerTransfer)
                
{
                    
Pet = new Copra.Pet(this);
                    
AI = new AI(this);
                }
                
Inventory = new Game.ConquerStructures.Inventory(this);
                
Equipment = new Game.ConquerStructures.Equipment(this);
                
WarehouseOpen false;
                
WarehouseOpenTries 0;
                
TempPassword "";
                
ArsenalDonations = new uint[10];
                if (
Account != null)
                {
                    
Warehouses = new SafeDictionary<Game.ConquerStructures.Warehouse.WarehouseIDGame.ConquerStructures.Warehouse>(20);
                    
Warehouses.Add((Mohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID)this.Account.EntityID, new Game.ConquerStructures.Warehouse(this, (Mohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID)this.Account.EntityID200));
                    
Warehouses.Add(Mohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.TwinCity, new Game.ConquerStructures.Warehouse(thisMohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.TwinCity));
                    
Warehouses.Add(Mohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.PhoenixCity, new Game.ConquerStructures.Warehouse(thisMohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.PhoenixCity));
                    
Warehouses.Add(Mohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.ApeCity, new Game.ConquerStructures.Warehouse(thisMohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.ApeCity));
                    
Warehouses.Add(Mohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.DesertCity, new Game.ConquerStructures.Warehouse(thisMohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.DesertCity));
                    
Warehouses.Add(Mohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.BirdCity, new Game.ConquerStructures.Warehouse(thisMohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.BirdCity));
                    
Warehouses.Add(Mohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.StoneCity, new Game.ConquerStructures.Warehouse(thisMohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.StoneCity));
                    
Warehouses.Add(Mohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.Market, new Game.ConquerStructures.Warehouse(thisMohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID.Market));
                    if (
Account != null)
                    {
                        if (!
Warehouses.ContainsKey((Mohamed_Hossam_Barakat.Game.ConquerStructures.Warehouse.WarehouseID)Account.EntityID))
                            
Warehouses.Add((Game.ConquerStructures.Warehouse.WarehouseID)Account.EntityID, new Game.ConquerStructures.Warehouse(this, (Game.ConquerStructures.Warehouse.WarehouseID)Account.EntityID));
                    }
                }
                
Trade = new Game.ConquerStructures.Trade();
                
ArenaStatistic = new ArenaStatistic(true);
                
// CP = new ChampionPoints();
                
Prayers = new List<GameState>();
                
map null;
                
Quests = new Copra.Quests(this);
                
//JiangHuStatus = new JiangHuStatus();
            
}
            catch (
Exception e)
            {
                
Program.SaveException(e);
            }
        }
        public 
void Send(byte[] buffer)
        {
            if (
Fake) return;
            if (!
_socket.Alive) return;
            
ushort length BitConverter.ToUInt16(buffer0);
            if (
length >= 1024 && buffer.Length length)
            {
                
//Console.WriteLine(Environment.StackTrace);
                
return;
            }
            
byte[] _buffer = new byte[buffer.Length];
            if (
length == 0)
                
Writer.WriteUInt16((ushort)(buffer.Length 8), 0buffer);
            
Buffer.BlockCopy(buffer0_buffer0buffer.Length);
            
Network.Writer.WriteString(Constants.ServerKey_buffer.Length 8_buffer);
            try
            {
                
lock (_socket)
                {
                    if (!
_socket.Alive) return;
                    
lock (Cryptography)
                    {
                        
Cryptography.Encrypt(_buffer_buffer.Length);
                        
_socket.Send(_buffer);
                    }
                }
            }
            catch (
Exception)
            {
                
_socket.Alive false;
                
Disconnect();
            }
        }
        private 
void EndSend(IAsyncResult res)
        {
            try
            {
                
_socket.Socket.EndSend(res);
            }
            catch
            {
                
_socket.Alive false;
                
Disconnect();
            }
        }
        public 
void Send(Interfaces.IPacket buffer)
        {
            
Send(buffer.ToArray());
        }
        public 
void SendScreenSpawn(Interfaces.IMapObject objbool self)
        {
            try
            {
                foreach (
Interfaces.IMapObject _obj in Screen.Objects)
                {
                    if (
_obj == null)
                        continue;
                    if (
_obj.UID != Entity.UID)
                    {
                        if (
_obj.MapObjType == Game.MapObjectType.Entity)
                        {
                            
GameState client _obj.Owner as GameState;
                            
obj.SendSpawn(clientfalse);
                        }
                    }
                }
                if (
self)
                    
obj.SendSpawn(this);
            }
            catch (
Exception e)
            {
                
Program.SaveException(e);
            }
        }
        public 
void RemoveScreenSpawn(Interfaces.IMapObject objbool self)
        {
            try
            {
                if (
Screen == null) return;
                if (
Screen.Objects == null) return;
                foreach (
Interfaces.IMapObject _obj in Screen.Objects)
                {
                    if (
_obj == null) continue;
                    if (
obj == null) continue;
                    if (
_obj.UID != Entity.UID)
                    {
                        if (
_obj.MapObjType == Game.MapObjectType.Entity)
                        {
                            
GameState client _obj.Owner as GameState;
                            
client.Screen.Remove(obj);
                        }
                    }
                }
                if (
self)
                    
Screen.Remove(obj);
            }
            catch (
Exception e)
            {
                
Program.SaveException(e);
            }
        }
        public 
void SendScreen(byte[] bufferbool self true)
        {
            try
            {
                foreach (
Interfaces.IMapObject obj in Screen.Objects)
                {
                    if (
obj == null) continue;
                    if (
obj.UID != Entity.UID)
                    {
                        if (
obj.MapObjType == Game.MapObjectType.Entity)
                        {
                            
GameState client obj.Owner as GameState;
                            if (
WatchingGroup != null && client.WatchingGroup == null)
                                continue;
                            
client.Send(buffer);
                        }
                    }
                }
                if (
self)
                    
Send(buffer);
            }
            catch (
Exception e)
            {
                
Program.SaveException(e);
            }
        }
        public 
void SendScreen(Interfaces.IPacket bufferbool self true)
        {
            foreach (
Interfaces.IMapObject obj in Screen.Objects)
            {
                if (
obj == null) continue;
                if (
obj.MapObjType == Game.MapObjectType.Entity)
                {
                    
GameState client obj.Owner as GameState;
                    if (
client.Entity.UID != Entity.UID)
                        
client.Send(buffer);
                }
            }
            if (
self)
                
Send(buffer);
        }
        public 
void Disconnect(bool save true)
        {
            if (
Fake) return;
            if (
Screen != nullScreen.DisposeTimers();
            
PacketHandler.RemoveTPA(this);
            
Program.World.Unregister(this);
            if (
OnDisconnect != nullOnDisconnect(this);
            if (
_socket.Connector != null)
            {
                if (
Entity != null)
                {
                    
CheckPokerDisconnect();
                }
                
_socket.Disconnect();
                
ShutDown();
            }
            
/*    if (_socket.Connector != null)
                {
                    if (Entity != null)
                    {
                        if (Entity.MyPokerTable != null)
                        {
                            if (Entity.MyPokerTable.Entitys.ContainsKey(Entity.UID) && Entity.MyPokerTable.Pot > 1)
                            {
                                byte[] P = new byte[10];
                                P[6] = 4; P[9] = 200;
                                Entity.MyPokerTable.NewEntityMove(P, Entity.UID);
                            }
                            else
                                Entity.MyPokerTable.RemoveEntity(Entity.UID);
                        }
                    }
                    _socket.Disconnect();
                    ShutDown();
                }*/
        
}

        private 
void ShutDown()
        {

            if (
Socket.Connector == null) return;
            
Socket.Connector null;
            if (
this.Entity != null)
            {
                try
                {
                    if (
this.Entity.JustCreated) return;
                    
Time32 now Time32.Now;
                    
Kernel.DisconnectPool.Add(this.Entity.UIDthis);
                    
RemoveScreenSpawn(this.Entityfalse);

                    
Database.EntityTable.UpdateOnlineStatus(thisfalse);
                    
Database.EntityTable.SaveEntity(this);
                    if (!
TransferedEntity)
                        
Database.EntityVariableTable.Save(this);
                    
Database.SkillTable.SaveProficiencies(this);
                    if (!
TransferedEntity)
                    {
                        
Database.ArenaTable.SaveArenaStatistics(this.ArenaStatistic);
                        
Database.TeamArenaTable.SaveArenaStatistics(this.TeamArenaStatistic);
                    }
                    
Kernel.GamePool.Remove(this.Entity.UID);

                    if (
Booth != null)
                        
Booth.Remove();

                    if (
Entity.MyClones.Count 0)
                    {
                        foreach (var 
item in Entity.MyClones.Values)
                        {
                            
Data data = new Data(true);
                            
data.UID item.UID;
                            
data.ID Network.GamePackets.Data.RemoveEntity;
                            
item.MonsterInfo.SendScreen(data);
                        }
                        
Entity.MyClones.Clear();
                    }
                    if (
Quests != null)
                        
Quests.Save();

                    if (
Pet != null)
                        
Pet.ClearAll();
                    if (
QualifierGroup != null)
                        
QualifierGroup.End(this);
                    if (
TeamQualifierGroup != null)
                        
TeamQualifierGroup.CheckEnd(thistrue);
                    if (
Entity.CLanArenaBattleFight != null)
                        
Entity.CLanArenaBattleFight.CheakToEnd(thistrue);
                    if (
Entity.GuildArenaBattleFight != null)
                        
Entity.GuildArenaBattleFight.CheakToEnd(thistrue);
                    if (
Challenge != null)
                        
Challenge.End(this);



                    
Game.Arena.Clear(this);
                    
Game.TeamArena.Clear(this);

                    
RemoveScreenSpawn(this.Entityfalse);

                    
#region Friend/TradePartner/Apprentice
                    
Message msg = new Message("Your friend, " Entity.Name ", has logged off."System.Drawing.Color.RedMessage.TopLeft);
                    if (
Friends == null)
                        
Friends = new SafeDictionary<uintGame.ConquerStructures.Society.Friend>(100);
                    foreach (
Game.ConquerStructures.Society.Friend friend in Friends.Values)
                    {
                        if (
friend.IsOnline)
                        {
                            var 
packet = new Network.GamePackets.KnownPersons(true)
                            {
                                
UID Entity.UID,
                                
Type Network.GamePackets.KnownPersons.RemovePerson,
                                
Name Entity.Name,
                                
Online false
                            
};
                            
friend.Client.Send(packet);
                            
packet.Type Network.GamePackets.KnownPersons.AddFriend;
                            if (
friend != null)
                            {
                                if (
friend.Client != null)
                                {
                                    
friend.Client.Send(packet);
                                    
friend.Client.Send(msg);
                                }
                            }
                        }
                    }
                    
Message msg2 = new Message("Your partner, " Entity.Name ", has logged off."System.Drawing.Color.RedMessage.TopLeft);

                    if (
Partners != null)
                    {
                        foreach (
Game.ConquerStructures.Society.TradePartner partner in Partners.Values)
                        {
                            if (
partner.IsOnline)
                            {
                                var 
packet = new TradePartner(true)
                                {
                                    
UID Entity.UID,
                                    
Type TradePartner.BreakPartnership,
                                    
Name Entity.Name,
                                    
HoursLeft = (int)(new TimeSpan(partner.ProbationStartedOn.AddDays(3).Ticks).TotalHours - new TimeSpan(DateTime.Now.Ticks).TotalHours),
                                    
Online false
                                
};
                                
partner.Client.Send(packet);
                                
packet.Type TradePartner.AddPartner;
                                if (
partner != null)
                                {
                                    if (
partner.Client != null)
                                    {
                                        
partner.Client.Send(packet);
                                        
partner.Client.Send(msg2);
                                    }
                                }
                            }
                        }
                    }
                    
MentorInformation Information = new MentorInformation(true);
                    
Information.Mentor_Type 1;
                    
Information.Mentor_ID Entity.UID;
                    
Information.Mentor_Level Entity.Level;
                    
Information.Mentor_Class Entity.Class;
                    
Information.Mentor_PkPoints Entity.PKPoints;
                    
Information.Mentor_Mesh Entity.Mesh;
                    
Information.Mentor_Online false;
                    
Information.String_Count 3;
                    
Information.Mentor_Name Entity.Name;
                    
Information.Mentor_Spouse_Name Entity.Spouse;
                    if (
Apprentices == nullApprentices = new SafeDictionary<uintGame.ConquerStructures.Society.Apprentice>();
                    foreach (var 
appr in Apprentices.Values)
                    {
                        if (
appr.IsOnline)
                        {
                            
Information.Apprentice_ID appr.ID;
                            
Information.Enrole_Date appr.EnroleDate;
                            
Information.Apprentice_Name appr.Name;
                            
appr.Client.Send(Information);
                            
appr.Client.ReviewMentor();
                        }
                    }
                    if (
Mentor != null)
                    {
                        if (
Mentor.IsOnline)
                        {
                            
ApprenticeInformation AppInfo = new ApprenticeInformation();
                            
AppInfo.Apprentice_ID Entity.UID;
                            
AppInfo.Apprentice_Level Entity.Level;
                            
AppInfo.Apprentice_Name Entity.Name;
                            
AppInfo.Apprentice_Online false;
                            
AppInfo.Apprentice_Spouse_Name Entity.Spouse;
                            
AppInfo.Enrole_date Mentor.EnroleDate;
                            
AppInfo.Mentor_ID Mentor.Client.Entity.UID;
                            
AppInfo.Mentor_Mesh Mentor.Client.Entity.Mesh;
                            
AppInfo.Mentor_Name Mentor.Client.Entity.Name;
                            
AppInfo.Type 2;
                            
Mentor.Client.Send(AppInfo);
                        }
                    }

                    
#endregion
                    #region Team
                    /* if (Team != null) 
                    { 
                        if (Team.TeamLeader) 
                        { 
                            Network.GamePackets.Team team = new Network.GamePackets.Team(); 
                            team.UID = Account.EntityID; 
                            team.Type = Network.GamePackets.Team.Dismiss; 
                            foreach (Client.GameState Teammate in Team.Teammates) 
                            { 
                                if (Teammate != null) 
                                { 
                                    if (Teammate.Entity.UID != Account.EntityID) 
                                    { 
                                        Teammate.Send(team); 
                                        Teammate.Team = null; 
                                    } 
                                } 
                            } 
                        } 
                        else 
                        { 
                            Network.GamePackets.Team team = new Network.GamePackets.Team(); 
                            team.UID = Account.EntityID; 
                            team.Type = Network.GamePackets.Team.ExitTeam; 
                            foreach (Client.GameState Teammate in Team.Teammates) 
                            { 
                                if (Teammate != null) 
                                { 
                                    if (Teammate.Entity.UID != Account.EntityID) 
                                    { 
                                        Teammate.Send(team); 
                                        Teammate.Team.Remove(this); 
                                    } 
                                } 
                            } 
                        } 
                    }*/
                    #endregion
                    
if (Team != null)
                    {
                        
Team.Remove(thistrue);
                    }
                }
                catch (
Exception e)
                {
                    
Program.SaveException(e);
                }
                finally
                {
                    
Kernel.DisconnectPool.Remove(this.Entity.UID);
                    
Console.WriteLine("Name==>" this.Entity.Name "*Has Login [Off]*"ConsoleColor.Blue);
                }
            }
        }
        

        public 
ClientWrapper Socket get { return _socket; } }
        public 
string IP
        
{
            
get
            
{
                return 
_socket.IP;
            }
        }
        
#endregion

        #region Game
        #region UnionStructure
        
public byte UnionType
        
{
            
set
            
{
                
Entity.SpawnPacket[Entity._UnionType    ] = value;
                
SendScreen(Entity.SpawnPacketfalse);
            }
        }
        public 
Mohamed_Hossam_Barakat.Network.GamePackets.Union.UnionClass Union;
        public 
uint UnionTitle
        
{
            
get
            
{

                if (
Union != null)
                {
                    if (
Union.IsKingdom())
                    {
                        return (
uint)(Offical Harem Guards);
                    }
                }
                return 
0;
            }
        }
        
uint _UnionID;
        public 
uint UnionID
        
{
            
get
            
{
                return 
_UnionID;
            }
            
set
            
{

                
_UnionID value;
                
Entity.SpawnPacket[Entity._UnionID] = (byte)_UnionID;
                
Entity.UpdateDatabase2("UnionID"_UnionID);
                
SendScreen(Entity.SpawnPacketfalse);
            }
        }
        
byte _UnionRank;
        public 
byte UnionRank
        
{
            
get
            
{
                return 
_UnionRank;
            }
            
set
            
{
                
_UnionRank value;
                
Entity.SpawnPacket[Entity._UnionRank] = value;
                
SendScreen(Entity.SpawnPacketfalse);
            }
        }
        
uint _UnionExploits 0;
        public 
uint UnionExploits
        
{
            
get
            
{
                return 
_UnionExploits;
            }
            
set
            
{

                
_UnionExploits value;
                
Entity.UpdateDatabase2("UnionExploits"_UnionExploits);
                
byte i 0;
                if (
_UnionExploits >= 200)
                    
+= 1;
                if (
_UnionExploits >= 500)
                    
+= 1;
                if (
_UnionExploits >= 1000)
                    
+= 1;
                if (
_UnionExploits >= 1500)
                    
+= 1;
                if (
_UnionExploits >= 2100)
                    
+= 1;
                if (
_UnionExploits >= 2800)
                    
+= 1;
                if (
_UnionExploits >= 3700)
                    
+= 1;
                if (
_UnionExploits >= 4700)
                    
+= 1;
                if (
_UnionExploits >= 6000)
                    
+= 1;
                if (
_UnionExploits >= 7500)
                    
+= 1;
                if (
_UnionExploits >= 10000)
                    
+= 1;
                if (
_UnionExploits >= 15000)
                    
+= 1;
                if (
_UnionExploits >= 23000)
                    
+= 1;
                
Entity.SpawnPacket[Entity._UnionExploits] = i;
                if (
Entity.EntityFlag == EntityFlag.Entity)
                {
                    
Entity.Update((byte)Update.DataType.MilitaryRankitrue);
                    
Entity.Update((byte)Update.DataType.MilitaryExploits_UnionExploitstrue);
                }
            }
        }
        public static 
GameState GetClientFromID(uint id)
        {
            foreach (var 
client in Kernel.GamePool.Values)
            {
                if (
client.Entity.UID == id)
                {
                    return 
client;
                }
            }
            return 
null;
        }
        public static 
GameState GetClientFromName(string name)
        {
            foreach (var 
clientq in Kernel.GamePool.Values)
            {
                if (
clientq.Entity.Name == name)
                {
                    return 
clientq;
                }
            }
            return 
null;
        }
        
ushort _Offical;
        public 
ushort Offical
        
{
            
get
            
{
                return 
_Offical;
            }
            
set
            
{

                
_Offical value;
                
Entity.Ushort((ushort)(Offical Harem Guards), 278 4Entity.SpawnPacket);
                if (
Entity.EntityFlag == EntityFlag.Entity)
                {
                    
Entity.Update((byte)Update.DataType.UnionRank, (ushort)(Offical Harem Guards), true);
                }
                
SendScreen(Entity.SpawnPacketfalse);
                
Entity.UpdateDatabase2("Offical"value);
            }
        }
        
ushort _Harem;
        public 
ushort Harem
        
{
            
get
            
{

                return 
_Harem;
            }
            
set
            
{

                
_Harem value;
                
Entity.Ushort((ushort)(Offical Harem Guards), 278 4Entity.SpawnPacket);
                if (
Entity.EntityFlag == EntityFlag.Entity)
                {
                    
Entity.Update((byte)Update.DataType.UnionRank, (ushort)(Offical Harem Guards), true);
                }
                
SendScreen(Entity.SpawnPacketfalse);
                
Entity.UpdateDatabase2("Harem"value);
            }
        }
        
ushort _Guards;
        public 
ushort Guards
        
{
            
get
            
{

                return 
_Guards;
            }
            
set
            
{

                
_Guards value;
                
Entity.Ushort((ushort)(Offical Harem Guards), 278 4Entity.SpawnPacket);
                if (
Entity.EntityFlag == EntityFlag.Entity)
                {
                    
Entity.Update((byte)Update.DataType.UnionRank, (ushort)(Offical Harem Guards), true);
                }
                
SendScreen(Entity.SpawnPacketfalse);
                
Entity.UpdateDatabase2("Guards"value);
            }
        }
        
#endregion
        
public Database.ChiTable.ChiData ChiData;
        public List<
ChiPowerStructureChiPowers;
        public 
ChiPowerStructure[] Retretead_ChiPowers;
        public 
uint ChiPoints 0;

        
//public List<JiangPowerStructure> JiangPowers;
        //public JiangHuStatus JiangHuStatus;
        //public JiangHu JiangHu;
        
public SafeDictionary<uintDetainedItemClaimableItem = new SafeDictionary<uintDetainedItem>(1000),
                                                  
DeatinedItem = new SafeDictionary<uintDetainedItem>(1000);

        public 
bool DoSetOffline true;

        public 
ushort OnlineTrainingPoints 0;
        public 
Time32 LastTrainingPointsUpLastTreasurePoints Time32.Now.AddMinutes(1);

        public List<
stringGuildNamesSpawned = new List<string>();

        public 
byte KylinUpgradeCount 0;

        public 
ulong OblivionExperience 0;
        public 
byte OblivionKills 0;

        public 
int PremShopType 0;
        public 
DateTime VIPDate;
        public 
DateTime LastVote;
        public 
uint VIPDays;
        public 
uint DonationPoints;
        
//  public uint VotePoints;
        #region Colo
        
public static uint ScreenColor 0;
        
#region Night Color

        
public void Night()
        {
            
ScreenColor 5855577;

            
Network.GamePackets.ScreenColor Packet = new Network.GamePackets.ScreenColor(true);
            
Packet.UID this.Entity.UID;
            
Packet.ID 104;
            
Packet.dwParam ScreenColor;
            foreach (
GameState pclient in Kernel.GamePool.Values)
            {
                
pclient.Send(Packet);
            }
        }
        public 
void Night1()
        {
            
ScreenColor 3358767;

            
Network.GamePackets.ScreenColor Packet = new Network.GamePackets.ScreenColor(true);
            
Packet.UID this.Entity.UID;
            
Packet.ID 104;
            
Packet.dwParam ScreenColor;
            foreach (
GameState pclient in Kernel.GamePool.Values)
            {
                
pclient.Send(Packet);
            }
        }
        public 
void Night2()
        {
            
ScreenColor 97358;

            
Network.GamePackets.ScreenColor Packet = new Network.GamePackets.ScreenColor(true);
            
Packet.UID this.Entity.UID;
            
Packet.ID 104;
            
Packet.dwParam ScreenColor;
            foreach (
GameState pclient in Kernel.GamePool.Values)
            {
                
pclient.Send(Packet);
            }
        }

        
#endregion
        #region Blue Color

        
public void Blue()
        {
            
ScreenColor 69852;

            
Network.GamePackets.ScreenColor Packet = new Network.GamePackets.ScreenColor(true);
            
Packet.UID this.Entity.UID;
            
Packet.ID 104;
            
Packet.dwParam ScreenColor;
            foreach (
GameState pclient in Kernel.GamePool.Values)
            {
                
pclient.Send(Packet);
            }
        }
        public 
void Blue1()
        {
            
ScreenColor 4532453;

            
Network.GamePackets.ScreenColor Packet = new Network.GamePackets.ScreenColor(true);
            
Packet.UID this.Entity.UID;
            
Packet.ID 104;
            
Packet.dwParam ScreenColor;
            foreach (
GameState pclient in Kernel.GamePool.Values)
            {
                
pclient.Send(Packet);
            }
        }
        public 
void Blue2()
        {
            
ScreenColor 684533;

            
Network.GamePackets.ScreenColor Packet = new Network.GamePackets.ScreenColor(true);
            
Packet.UID this.Entity.UID;
            
Packet.ID 104;
            
Packet.dwParam ScreenColor;
            foreach (
GameState pclient in Kernel.GamePool.Values)
            {
                
pclient.Send(Packet);
            }
        }

        
#endregion
        #region Green Color

        
public void Green()
        {
            
ScreenColor 838915;

            
Network.GamePackets.ScreenColor Packet = new Network.GamePackets.ScreenColor(true);
            
Packet.UID this.Entity.UID;
            
Packet.ID 104;
            
Packet.dwParam ScreenColor;
            foreach (
GameState pclient in Kernel.GamePool.Values)
            {
                
pclient.Send(Packet);
            }
        }
        public 
void Green1()
        {
            
ScreenColor 824383;

            
Network.GamePackets.ScreenColor Packet = new Network.GamePackets.ScreenColor(true);
            
Packet.UID this.Entity.UID;
            
Packet.ID 104;
            
Packet.dwParam ScreenColor;
            foreach (
GameState pclient in Kernel.GamePool.Values)
            {
                
pclient.Send(Packet);
            }
        }
        public 
void Green2()
        {
            
ScreenColor 456828;

            
Network.GamePackets.ScreenColor Packet = new Network.GamePackets.ScreenColor(true);
            
Packet.UID this.Entity.UID;
            
Packet.ID 104;
            
Packet.dwParam ScreenColor;
            foreach (
GameState pclient in Kernel.GamePool.Values)
            {
                
pclient.Send(Packet);
            }
        }
        public 
void Green3()
        {
            
ScreenColor 5547633;

            
Network.GamePackets.ScreenColor Packet = new Network.GamePackets.ScreenColor(true);
            
Packet.UID this.Entity.UID;
            
Packet.ID 104;
            
Packet.dwParam ScreenColor;
            foreach (
GameState pclient in Kernel.GamePool.Values)
            {
                
pclient.Send(Packet);
            }
        }
        public 
void Green4()
        {
            
ScreenColor 453450;

            
Network.GamePackets.ScreenColor Packet = new Network.GamePackets.ScreenColor(true);
            
Packet.UID this.Entity.UID;
            
Packet.ID 104;
            
Packet.dwParam ScreenColor;
            foreach (
GameState pclient in Kernel.GamePool.Values)
            {
                
pclient.Send(Packet);
            }
        }

        
#endregion
        #region Day Color

        
public void Day()
        {
            
ScreenColor 0;

            
Network.GamePackets.ScreenColor Packet = new Network.GamePackets.ScreenColor(true);
            
Packet.UID this.Entity.UID;
            
Packet.ID 104;
            
Packet.dwParam ScreenColor;
            foreach (
GameState pclient in Kernel.GamePool.Values)
            {
                
pclient.Send(Packet);
            }
        }

        
#endregion
        #endregion
        
public Time32 ScreenReloadTime;
        public 
int MillisecondsScreenReload;
        public 
bool Reloaded false;
        public 
Interfaces.IPacket ReloadWith;
        public 
ushort VendingDisguise;
        private 
uint _BlessTime;
        public 
uint BlessTime
        
{
            
get { return _BlessTime; }
            
set
            
{
                
_BlessTime value;
                if (
Entity != null)
                { 
this["BlessTime"] = value; }
            }
        }
        public 
DateTime BlessStamp
        
{
            
get { return this["BlessStamp"]; }
            
set this["BlessStamp"] = value; }
        }
        public 
DateTime DoubleExperienceStamp
        
{
            
get { return this["DoubleExperienceStamp"]; }
            
set this["DoubleExperienceStamp"] = value; }
        }
        public 
int speedHackSuspiction 0;
        public 
Time32 LastPingT;
        public 
uint LastPingStamp 0;
        
// public Game.Entity Companion;

        
public List<GameStatePrayers;
        public 
GameState PrayLead;

        public 
DateTime ChatBanTime;
        public 
Game.Entity Companion;
        public 
uint ChatBanLasts;
        public 
bool ChatBanned;

        public 
uint BackupArmorLook
        
{
            
get { return this["bkparmorlook"]; }
            
set this["bkparmorlook"] = value; }
        }
        public 
uint ArmorLook
        
{
            
get { return this["armorlook"]; }
            
set this["armorlook"] = value; }
        }
        public 
uint WeaponLook
        
{
            
get { return this["weaponlook"]; }
            
set this["weaponlook"] = value; }
        }
        public 
uint WeaponLook2
        
{
            
get { return this["weaponlook2"]; }
            
set this["weaponlook2"] = value; }
        }
        public 
uint HeadgearLook
        
{
            
get { return this["headgearlook"]; }
            
set this["headgearlook"] = value; }
        }

        public 
bool ValidArmorLook(uint id)
        {
            if (
id == 0) return false;

            var 
soulInfo Database.AddingInformationTable.SoulGearItems[id];
            if (
id >= 800000 && id 900000)
            {
                if (
soulInfo.ItemIdentifier 100)
                    if (
soulInfo.ItemIdentifier != ConquerItem.Armor)
                        return 
false;
                    else { }
                else
                    if (
Network.PacketHandler.ItemPosition((uint)(soulInfo.ItemIdentifier 1000)) != ConquerItem.Armor)
                        return 
false;
            }
            else
                if (
Network.PacketHandler.ItemPosition(id) != ConquerItem.Armor)
                    return 
false;
            return 
true;
        }
        public 
bool ValidHeadgearLook(uint id)
        {
            if (
id == 0) return false;

            var 
soulInfo Database.AddingInformationTable.SoulGearItems[id];
            if (
id >= 800000 && id 900000)
            {
                if (
soulInfo.ItemIdentifier 100)
                    if (
soulInfo.ItemIdentifier != ConquerItem.Head)
                        return 
false;
                    else { }
                else
                    if (
Network.PacketHandler.ItemPosition((uint)(soulInfo.ItemIdentifier 1000)) != ConquerItem.Head)
                        return 
false;
            }
            else
                if (
Network.PacketHandler.ItemPosition(id) != ConquerItem.Head)
                    return 
false;
            return 
true;
        }
        public 
bool ValidWeaponLook(uint id)
        {
            if (
id == 0) return false;
            if (
Network.PacketHandler.ItemPosition(id) != ConquerItem.RightWeapon)
                return 
false;
            return 
true;
        }
        public 
bool ValidWeaponLook2(uint id)
        {
            if (
id == 0) return false;
            if (
Network.PacketHandler.ItemPosition(id) != ConquerItem.RightWeapon)
            {
                if (
Network.PacketHandler.ItemPosition(id) != ConquerItem.LeftWeapon)
                    return 
false;
            }
            else
            {
                if (
Network.PacketHandler.IsTwoHand(id))
                    return 
false;
            }
            return 
true;
        }

        public 
ConquerItemBaseInformation CheckLook(string nameushort posout int minDist)
        {
            
minDist int.MaxValue;
            
Database.ConquerItemBaseInformation CIBI null;
            
Game.Enums.ItemQuality Quality Game.Enums.ItemQuality.Fixed;
            var 
itemx Equipment.TryGetItem((byte)pos);
            if (
itemx != null)
                
Quality = (Enums.ItemQuality)(itemx.ID 10);

            foreach (var 
item in Database.ConquerItemInformation.BaseInformations.Values)
            {
                if (
pos == ConquerItem.Armor)
                {
                    if (
ValidArmorLook(item.ID))
                    {
                        
int dist name.LevenshteinDistance(item.LowerName);
                        if (
minDist dist && Quality == (Game.Enums.ItemQuality)(item.ID 10))
                        {
                            
CIBI item;
                            
minDist dist;
                        }
                    }
                }
                else if (
pos == ConquerItem.Head)
                {
                    if (
ValidHeadgearLook(item.ID))
                    {
                        
int dist name.LevenshteinDistance(item.LowerName);
                        if (
minDist dist && Quality == (Game.Enums.ItemQuality)(item.ID 10))
                        {
                            
CIBI item;
                            
minDist dist;
                        }
                    }
                }
                else if (
pos == ConquerItem.LeftWeapon)
                {
                    if (
ValidWeaponLook2(item.ID))
                    {
                        
int dist name.LevenshteinDistance(item.LowerName);
                        if (
minDist dist && !PacketHandler.IsTwoHand(item.ID) && Quality == (Game.Enums.ItemQuality)(item.ID 10))
                        {
                            
CIBI item;
                            
minDist dist;
                        }
                    }
                }
                else if (
pos == ConquerItem.RightWeapon)
                {
                    if (
ValidWeaponLook(item.ID))
                    {
                        
//if (PacketHandler.IsTwoHand(itemx.ID))
                        //{
                        //    int dist = name.LevenshteinDistance(item.LowerName);
                        //    if (minDist > dist && PacketHandler.IsTwoHand(item.ID) && Quality == (Game.Enums.ItemQuality)(item.ID % 10))
                        //    {
                        //        CIBI = item;
                        //        minDist = dist;
                        //    }
                        //}
                        //else
                        
{
                            
int dist name.LevenshteinDistance(item.LowerName);
                            if (
minDist dist && !PacketHandler.IsTwoHand(item.ID) && Quality == (Game.Enums.ItemQuality)(item.ID 10))
                            {
                                
CIBI item;
                                
minDist dist;
                            }
                        }

                    }
                }
            }
            return 
CIBI;
        }

        public 
void SetNewArmorLook(uint idbool change true)
        {
            if (
change)
                
ArmorLook id;
            if (!
ValidArmorLook(id)) return;
            
int min 0;
            
id CheckLook(Database.ConquerItemInformation.BaseInformations[id].LowerNameConquerItem.Armorout min).ID;

            var 
item Equipment.TryGetItem(ConquerItem.Armor);
            var 
iu = new Network.GamePackets.ItemUsage(true);
            
iu.UID uint.MaxValue 1;
            
iu.dwParam 13;
            
iu.ID Network.GamePackets.ItemUsage.UnequipItem;
            
Send(iu);
            
iu = new Network.GamePackets.ItemUsage(true);
            
iu.UID uint.MaxValue 1;
            
iu.ID Network.GamePackets.ItemUsage.RemoveInventory;
            
Send(iu);

            
ConquerItem fakeItem = new Network.GamePackets.ConquerItem(true);
            
fakeItem.ID id;
            if (
item != null)
            {
                
fakeItem.Bless item.Bless;
                
fakeItem.Bound item.Bound;
                
fakeItem.Color item.Color;
                
fakeItem.Effect item.Effect;
                
fakeItem.Enchant item.Enchant;
                
fakeItem.Plus item.Plus;
                
fakeItem.SocketOne item.SocketOne;
                
fakeItem.SocketTwo item.SocketTwo;
            }

            
fakeItem.Durability 1;
            
fakeItem.MaximDurability 1;
            
fakeItem.Color Game.Enums.Color.Black;
            
fakeItem.UID uint.MaxValue 1;
            
fakeItem.Position 13;
            
Send(fakeItem);
            
fakeItem.Mode Enums.ItemMode.Update;
            
Send(fakeItem);
            
ClientEquip eqs = new ClientEquip();
            
eqs.DoEquips(this);
            
Send(eqs);
            
Equipment.UpdateEntityPacket();
        }
        public 
void SetNewHeadgearLook(uint idbool change true)
        {
            if (
change)
                
HeadgearLook id;
            if (!
ValidHeadgearLook(id)) return;
            
int min 0;
            
id CheckLook(Database.ConquerItemInformation.BaseInformations[id].LowerNameConquerItem.Headout min).ID;

            var 
item Equipment.TryGetItem(ConquerItem.Head);
            var 
iu = new Network.GamePackets.ItemUsage(true);
            
iu.UID uint.MaxValue 2;
            
iu.dwParam 14;
            
iu.ID Network.GamePackets.ItemUsage.UnequipItem;
            
Send(iu);
            
iu = new Network.GamePackets.ItemUsage(true);
            
iu.UID uint.MaxValue 2;
            
iu.ID Network.GamePackets.ItemUsage.RemoveInventory;
            
Send(iu);

            
ConquerItem fakeItem = new Network.GamePackets.ConquerItem(true);
            
fakeItem.ID id;
            if (
item != null)
            {
                
fakeItem.Bless item.Bless;
                
fakeItem.Bound item.Bound;
                
fakeItem.Color item.Color;
                
fakeItem.Effect item.Effect;
                
fakeItem.Enchant item.Enchant;
                
fakeItem.Plus item.Plus;
                
fakeItem.SocketOne item.SocketOne;
                
fakeItem.SocketTwo item.SocketTwo;
            }

            
fakeItem.Durability 1;
            
fakeItem.MaximDurability 1;
            
fakeItem.Color Game.Enums.Color.Black;
            
fakeItem.UID uint.MaxValue 2;
            
fakeItem.Position 14;
            
Send(fakeItem);
            
fakeItem.Mode Enums.ItemMode.Update;
            
Send(fakeItem);
            
ClientEquip eqs = new ClientEquip();
            
eqs.DoEquips(this);
            
Send(eqs);
            
Equipment.UpdateEntityPacket();
        }
        public 
void SetNewWeaponLook(uint idbool change true)
        {
            if (
change)
                
WeaponLook id;
            if (!
ValidWeaponLook(id)) return;
            
int min 0;

            var 
item Equipment.TryGetItem(ConquerItem.RightWeapon);
            var 
iu = new Network.GamePackets.ItemUsage(true);
            
iu.UID uint.MaxValue 3;
            
iu.dwParam ConquerItem.RightWeaponAccessory;
            
iu.ID Network.GamePackets.ItemUsage.UnequipItem;
            
Send(iu);
            
iu = new Network.GamePackets.ItemUsage(true);
            
iu.UID uint.MaxValue 3;
            
iu.ID Network.GamePackets.ItemUsage.RemoveInventory;
            
Send(iu);

            
id CheckLook(Database.ConquerItemInformation.BaseInformations[id].LowerNameConquerItem.RightWeaponout min).ID;

            
ConquerItem fakeItem = new Network.GamePackets.ConquerItem(true);
            
fakeItem.ID id;
            if (
item != null)
            {
                
fakeItem.Bless item.Bless;
                
fakeItem.Bound item.Bound;
                
fakeItem.Color item.Color;
                
fakeItem.Effect item.Effect;
                
fakeItem.Enchant item.Enchant;
                
fakeItem.Plus item.Plus;
                
fakeItem.SocketOne item.SocketOne;
                
fakeItem.SocketTwo item.SocketTwo;
                
fakeItem.Lock 1;
            }
            
fakeItem.Durability 1;
            
fakeItem.MaximDurability 1;
            
fakeItem.UID uint.MaxValue 3;
            
fakeItem.Position ConquerItem.RightWeaponAccessory;
            
Send(fakeItem);
            
fakeItem.Mode Enums.ItemMode.Update;
            
Send(fakeItem);
            
ClientEquip eqs = new ClientEquip();
            
eqs.DoEquips(this);
            
Send(eqs);
            
Equipment.UpdateEntityPacket();

        }
        public 
void SetNewWeaponLook2(uint idbool change true)
        {
            if (
change)
                
WeaponLook2 id;
            if (!
ValidWeaponLook2(id)) return;
            
int min 0;

            var 
item Equipment.TryGetItem(ConquerItem.LeftWeapon);
            var 
iu = new Network.GamePackets.ItemUsage(true);
            
iu.UID uint.MaxValue 4;
            
iu.dwParam ConquerItem.LeftWeaponAccessory;
            
iu.ID Network.GamePackets.ItemUsage.UnequipItem;
            
Send(iu);
            
iu = new Network.GamePackets.ItemUsage(true);
            
iu.UID uint.MaxValue 4;
            
iu.ID Network.GamePackets.ItemUsage.RemoveInventory;
            
Send(iu);

            
id CheckLook(Database.ConquerItemInformation.BaseInformations[id].LowerNameConquerItem.LeftWeaponout min).ID;

            
ConquerItem fakeItem = new Network.GamePackets.ConquerItem(true);
            
fakeItem.ID id;
            if (
item != null)
            {
                
fakeItem.Bless item.Bless;
                
fakeItem.Bound item.Bound;
                
fakeItem.Color item.Color;
                
fakeItem.Effect item.Effect;
                
fakeItem.Enchant item.Enchant;
                
fakeItem.Plus item.Plus;
                
fakeItem.SocketOne item.SocketOne;
                
fakeItem.SocketTwo item.SocketTwo;
                
fakeItem.Lock 1;
            }

            
fakeItem.Durability 1;
            
fakeItem.MaximDurability 1;
            
fakeItem.UID uint.MaxValue 4;
            
fakeItem.Position ConquerItem.LeftWeaponAccessory;
            
Send(fakeItem);
            
fakeItem.Mode Enums.ItemMode.Update;
            
Send(fakeItem);
            
ClientEquip eqs = new ClientEquip();
            
eqs.DoEquips(this);
            
Send(eqs);
            
Equipment.UpdateEntityPacket();

        }

        public 
byte JewelarLauKindJewelarLauGems;
        public 
uint VirtuePoints;
        public 
uint TQPoint;
        public 
DateTime LastLotteryEntry;
        public 
byte LotteryEntries;
        public 
bool InLottery;
        public 
DateTime OfflineTGEnterTime;
        public 
bool Mining false;
        public 
Time32 MiningStamp;
        public 
ushort Vigor
        
{
            
get
            
{
                if (
Equipment != null)
                    if (!
Equipment.Free(12))
                        return 
Equipment.TryGetItem((byte)12).Vigor;
                return 
65535;
            }
            
set
            
{
                if (!
Equipment.Free(12))
                    
Equipment.TryGetItem((byte)12).Vigor value;
            }
        }
        
ushort _Maxvigor;
        public 
ushort MaxVigor
        
{
            
get
            
{
                return 
_Maxvigor;
            }
            
set
            
{
                
_Maxvigor value;
            }

        }

        public 
bool HeadgearClaimNecklaceClaimArmorClaimWeaponClaimRingClaimBootsClaimTowerClaimFanClaim;
        public 
string PromoteItemNameNeed
        
{
            
get
            
{
                if (
Entity.Class % 10 == 0)
                    return 
" nothing but";
                if (
Entity.Class % 10 == 1)
                    
//   if (Entity.Class / 10 == 4)
                    //      return " five Euxenite Ores and";
                    //    else
                    
return " nothing but";
                if (
Entity.Class % 10 == 2)
                    return 
" one Emerald and";
                if (
Entity.Class % 10 == 3)
                    return 
" one Meteor and";
                if (
Entity.Class % 10 == 4)
                    return 
" one MoonBox and";
                return 
" nothing but";
            }
        }
        public 
byte PromoteItemCountNeed
        
{
            
get
            
{
                if (
Entity.Class % 10 == 0)
                    return 
0;
                if (
Entity.Class % 10 == 1)
                    
//  if (Entity.Class / 10 == 4)
                    //       return 5;
                    //   else
                    
return 0;
                if (
Entity.Class % 10 == 2)
                    return 
1;
                if (
Entity.Class % 10 == 3)
                    return 
1;
                if (
Entity.Class % 10 == 4)
                    return 
1;
                return 
0;
            }
        }
        public 
uint PromoteItemNeed
        
{
            
get
            
{
                if (
Entity.Class % 10 == 0)
                    return 
0;
                if (
Entity.Class % 10 == 1)
                    
//   if (Entity.Class / 10 == 4)
                    //       return 1072031;
                    //   else
                    
return 0;
                if (
Entity.Class % 10 == 2)
                    return 
1080001;
                if (
Entity.Class % 10 == 3)
                    return 
1088001;
                if (
Entity.Class % 10 == 4)
                    return 
721020;
                return 
0;
            }
        }
        public 
uint PromoteItemGain
        
{
            
get
            
{
                if (
Entity.Class % 10 == 0)
                    return 
0;
                if (
Entity.Class % 10 == 1)
                    
//   if (Entity.Class / 10 == 4)
                    //       return 500067;
                    //    else
                    
return 0;
                if (
Entity.Class % 10 == 2)
                    return 
0;
                if (
Entity.Class % 10 == 3)
                    return 
700031;
                if (
Entity.Class % 10 == 4)
                    return 
1088000;
                return 
0;
            }
        }
        public 
uint PromoteLevelNeed
        
{
            
get
            
{
                if (
Entity.Class % 10 == 0)
                    return 
15;
                if (
Entity.Class % 10 == 1)
                    return 
40;
                if (
Entity.Class % 10 == 2)
                    return 
70;
                if (
Entity.Class % 10 == 3)
                    return 
100;
                if (
Entity.Class % 10 == 4)
                    return 
110;
                return 
0;
            }
        }
        public 
byte SelectedItemUpdateType;
        public 
ushort UplevelProficiency;
        public 
UInt32 GuildJoinTarget 0;
        public 
uint OnHoldGuildJoin 0;
        public 
uint elitepoints 0;
        public 
bool Effect false;
        public 
bool Effect1 false;
        public 
bool Effect10 false;
        public 
bool Effect8 false;
        public 
bool Effect9 false;
        public 
bool Effect11 false;
        public 
bool Effect4 false;
        public 
bool Effect3 false;
        public 
uint eliterank 0;
        public 
bool SentRequest false;
        public 
Game.ConquerStructures.Society.Guild Guild;
        public 
Game.ConquerStructures.Society.Guild.Member AsMember;
        public 
uint Arsenal_Donation 0;
        public 
Game.ConquerStructures.Booth Booth;

        
#region Eilte Pk 8
        
public ushort EliteBody()
        {
            
ushort num2 0;
            
uint num = (uint)Kernel.Random.Next(14);
            switch (
num)
            {
                case 
1:
                    {
                        
num2 1003;
                        break;
                    }
                case 
2:
                    {
                        
num2 1004;
                        break;
                    }
                case 
3:
                    {
                        
num2 2001;
                        break;
                    }
                case 
4:
                    {
                        
num2 2002;
                        break;
                    }
            }
            return 
num2;
        }
        public 
void SpawnElitePKBot(uint UID)
        {
            if (!
Kernel.GamePool.ContainsKey(UID))
            {
                
ReadyToPlay();
                
this.Account = new Database.AccountTable(null);
                
this.Account.EntityID UID;
                {
                    
#region Load Entity
                    
this.Entity = new Game.Entity(EntityFlag.Entityfalse);
                    
this.Entity.Name "ElitePK`Bot";
                    
this.Entity.Owner this;
                    
this.Entity.UID UID;
                    
this.Entity.Body EliteBody();
                    
this.Entity.Face = (ushort)Kernel.Random.Next(150);
                    
byte Color = (byte)Kernel.Random.Next(48);
                    
this.Entity.HairStyle = (ushort)(Color 100 10 + (byte)Kernel.Random.Next(49));
                    
this.Entity.Level 140;
                    
this.Entity.Class = 55;
                    
this.Entity.Reborn 2;
                    
this.Entity.Titles = new System.Collections.Concurrent.ConcurrentDictionary<TitlePacket.TitlesDateTime>();
                    
this.Entity.MyTitle = (TitlePacket.Titles)16;
                    
this.Entity.MapID ElitePKTournament.WaitingAreaID;
                    if (
this.VendingDisguise == 0)
                        
this.VendingDisguise 0xdf;
                    
this.Entity.50;
                    
this.Entity.50;
                    
uint WeaponR 601439;
                    
uint WeaponL 601439;
                    
uint Armor 135309;
                    
uint Head 123309;
                    
uint Garment 192685;
                    
this.ElitePKStats = new ElitePK.FighterStats(this.Entity.UIDthis.Entity.Namethis.Entity.Mesh);
                    if (!
Game.ConquerStructures.Nobility.Board.TryGetValue(this.Entity.UIDout this.NobilityInformation))
                    {
                        
this.NobilityInformation = new NobilityInformation();
                        
this.NobilityInformation.EntityUID this.Entity.UID;
                        
this.NobilityInformation.Name this.Entity.Name;
                        
this.NobilityInformation.Donation 0L;
                        
this.NobilityInformation.Rank NobilityRank.Serf;
                        
this.NobilityInformation.Position = -1;
                        
this.NobilityInformation.Gender 1;
                        
this.NobilityInformation.Mesh this.Entity.Mesh;
                        if ((
this.Entity.Body 10) >= 3)
                        {
                            
this.NobilityInformation.Gender 0;
                        }
                    }
                    else
                    {
                        
this.Entity.NobilityRank this.NobilityInformation.Rank;
                    }
                    
Arena.ArenaStatistics.TryGetValue(this.Entity.UIDout this.ArenaStatistic);
                    if ((
this.ArenaStatistic == null) || (this.ArenaStatistic.EntityID == 0))
                    {
                        
this.ArenaStatistic = new ArenaStatistic(true);
                        
this.ArenaStatistic.EntityID this.Entity.UID;
                        
this.ArenaStatistic.Name this.Entity.Name;
                        
this.ArenaStatistic.Level this.Entity.Level;
                        
this.ArenaStatistic.Class = this.Entity.Class;
                        
this.ArenaStatistic.Model this.Entity.Mesh;
                        
this.ArenaStatistic.ArenaPoints Database.ArenaTable.ArenaPointFill(this.Entity.Level);
                        
this.ArenaStatistic.LastArenaPointFill DateTime.Now;
                        
Database.ArenaTable.InsertArenaStatistic(this);
                        
this.ArenaStatistic.Status 0;
                        
Arena.ArenaStatistics.Add(this.Entity.UIDthis.ArenaStatistic);
                    }
                    else
                    {
                        
this.ArenaStatistic.Level this.Entity.Level;
                        
this.ArenaStatistic.Class = this.Entity.Class;
                        
this.ArenaStatistic.Model this.Entity.Mesh;
                        if (
DateTime.Now.DayOfYear != this.ArenaStatistic.LastArenaPointFill.DayOfYear)
                        {
                            
this.ArenaStatistic.LastSeasonArenaPoints this.ArenaStatistic.ArenaPoints;
                            
this.ArenaStatistic.LastSeasonWin this.ArenaStatistic.TodayWin;
                            
this.ArenaStatistic.LastSeasonLose this.ArenaStatistic.TodayBattles this.ArenaStatistic.TodayWin;
                            
this.ArenaStatistic.ArenaPoints Database.ArenaTable.ArenaPointFill(this.Entity.Level);
                            
this.ArenaStatistic.LastArenaPointFill DateTime.Now;
                            
this.ArenaStatistic.TodayWin 0;
                            
this.ArenaStatistic.TodayBattles 0;
                            
Arena.Sort();
                            
Arena.YesterdaySort();
                        }
                    }
                    
TeamArena.ArenaStatistics.TryGetValue(this.Entity.UIDout this.TeamArenaStatistic);
                    if (
this.TeamArenaStatistic == null)
                    {
                        
this.TeamArenaStatistic = new TeamArenaStatistic(true);
                        
this.TeamArenaStatistic.EntityID this.Entity.UID;
                        
this.TeamArenaStatistic.Name this.Entity.Name;
                        
this.TeamArenaStatistic.Level this.Entity.Level;
                        
this.TeamArenaStatistic.Class = this.Entity.Class;
                        
this.TeamArenaStatistic.Model this.Entity.Mesh;
                        
Database.TeamArenaTable.InsertArenaStatistic(this);
                        
this.TeamArenaStatistic.Status 0;
                        if (
TeamArena.ArenaStatistics.ContainsKey(this.Entity.UID))
                        {
                            
TeamArena.ArenaStatistics.Remove(this.Entity.UID);
                        }
                        
TeamArena.ArenaStatistics.Add(this.Entity.UIDthis.TeamArenaStatistic);
                    }
                    else if (
this.TeamArenaStatistic.EntityID == 0)
                    {
                        
this.TeamArenaStatistic = new TeamArenaStatistic(true);
                        
this.TeamArenaStatistic.EntityID this.Entity.UID;
                        
this.TeamArenaStatistic.Name this.Entity.Name;
                        
this.TeamArenaStatistic.Level this.Entity.Level;
                        
this.TeamArenaStatistic.Class = this.Entity.Class;
                        
this.TeamArenaStatistic.Model this.Entity.Mesh;
                        
Database.TeamArenaTable.InsertArenaStatistic(this);
                        
this.TeamArenaStatistic.Status 0;
                        if (
TeamArena.ArenaStatistics.ContainsKey(this.Entity.UID))
                        {
                            
TeamArena.ArenaStatistics.Remove(this.Entity.UID);
                        }
                        
TeamArena.ArenaStatistics.Add(this.Entity.UIDthis.TeamArenaStatistic);
                    }
                    else
                    {
                        
this.TeamArenaStatistic.Level this.Entity.Level;
                        
this.TeamArenaStatistic.Class = this.Entity.Class;
                        
this.TeamArenaStatistic.Model this.Entity.Mesh;
                        
this.TeamArenaStatistic.Name this.Entity.Name;
                    }
                    
Database.DetainedItemTable.LoadDetainedItems(this);
                    
Database.ClaimItemTable.LoadClaimableItems(this);
                    
this.Entity.LoadTopStatus();
                    
this.Entity.FullyLoaded true;

                    
#endregion
                    
if (this.Entity.FullyLoaded)
                    {
                        
VariableVault variables;
                        
Database.EntityVariableTable.Load(this.Account.EntityIDout variables);
                        
this.Variables variables;

                        if (
this.BackupArmorLook != 0)
                            
this.SetNewArmorLook(this.BackupArmorLook);
                        else
                            
this.SetNewArmorLook(this.ArmorLook);
                        
this.SetNewHeadgearLook(this.HeadgearLook);
                        
this.BackupArmorLook 0;

                        
this.LoadData(true);

                        if (
this.Entity.GuildID != 0)
                            
this.Entity.GuildBattlePower this.Guild.GetSharedBattlepower(this.Entity.GuildRank);
                        
this.ReviewMentor();
                        
Network.PacketHandler.LoginMessages(this);

                        
#region Equip

                        
ConquerItem item7 null;
                        
ClientEquip equip null;
                        if (
WeaponR 0)
                        {
                            
Database.ConquerItemBaseInformation CIBI Database.ConquerItemInformation.BaseInformations[WeaponR];
                            if (
CIBI == null) return;
                            
item7 = new ConquerItem(true);
                            
item7.ID WeaponR;
                            
item7.UID AuthClient.nextID;
                            
AuthClient.nextID++;
                            
item7.Position 4;
                            
item7.Durability CIBI.Durability;
                            
item7.MaximDurability CIBI.Durability;
                            
this.Equipment.Remove(4);
                            if (
this.Equipment.Objects[3] != null)
                            {
                                
this.Equipment.Objects[3] = null;
                            }
                            
this.Equipment.Add(item7);
                            
item7.Mode Enums.ItemMode.Update;
                            
item7.Send(this);
                            
equip = new ClientEquip();
                            
equip.DoEquips(this);
                            
this.Send(equip);
                            
this.Equipment.UpdateEntityPacket();

                        }
                        if (
WeaponL 0)
                        {
                            
Database.ConquerItemBaseInformation CIBI Database.ConquerItemInformation.BaseInformations[WeaponL];
                            if (
CIBI == null) return;
                            
item7 = new ConquerItem(true);
                            
item7.ID WeaponL;
                            
item7.UID AuthClient.nextID;
                            
AuthClient.nextID++;
                            
item7.Position 5;
                            
item7.Durability CIBI.Durability;
                            
item7.MaximDurability CIBI.Durability;
                            
this.Equipment.Remove(5);
                            if (
this.Equipment.Objects[4] != null)
                            {
                                
this.Equipment.Objects[4] = null;
                            }
                            
this.Equipment.Add(item7);
                            
item7.Mode Enums.ItemMode.Update;
                            
item7.Send(this);
                            
equip = new ClientEquip();
                            
equip.DoEquips(this);
                            
this.Send(equip);
                            
this.Equipment.UpdateEntityPacket();
                        }

                        if (
Armor 0)
                        {
                            
Database.ConquerItemBaseInformation CIBI Database.ConquerItemInformation.BaseInformations[Armor];
                            if (
CIBI == null) return;
                            
item7 = new ConquerItem(true);
                            
item7.ID Armor;
                            
item7.UID AuthClient.nextID;
                            
AuthClient.nextID++;
                            
item7.Position 3;
                            
item7.Durability CIBI.Durability;
                            
item7.MaximDurability CIBI.Durability;
                            
this.Equipment.Remove(3);
                            if (
this.Equipment.Objects[2] != null)
                            {
                                
this.Equipment.Objects[2] = null;
                            }
                            
this.Equipment.Add(item7);
                            
item7.Mode Enums.ItemMode.Update;
                            
item7.Send(this);
                            
equip = new ClientEquip();
                            
equip.DoEquips(this);
                            
this.Send(equip);
                            
this.Equipment.UpdateEntityPacket();

                        }

                        if (
Head 0)
                        {
                            
Database.ConquerItemBaseInformation CIBI Database.ConquerItemInformation.BaseInformations[Head];
                            if (
CIBI == null) return;
                            
item7 = new ConquerItem(true);
                            
item7.ID Head;
                            
item7.UID AuthClient.nextID;
                            
AuthClient.nextID++;
                            
item7.Position 1;
                            
item7.Durability CIBI.Durability;
                            
item7.MaximDurability CIBI.Durability;
                            
this.Equipment.Remove(1);
                            if (
this.Equipment.Objects[0] != null)
                            {
                                
this.Equipment.Objects[0] = null;
                            }
                            
this.Equipment.Add(item7);
                            
item7.Mode Enums.ItemMode.Update;
                            
item7.Send(this);
                            
equip = new ClientEquip();
                            
equip.DoEquips(this);
                            
this.Send(equip);
                            
this.Equipment.UpdateEntityPacket();

                        }

                        if (
Garment 0)
                        {
                            
Database.ConquerItemBaseInformation CIBI Database.ConquerItemInformation.BaseInformations[Garment];
                            if (
CIBI == null) return;
                            
item7 = new ConquerItem(true);
                            
item7.ID Garment;
                            
item7.UID AuthClient.nextID;
                            
AuthClient.nextID++;
                            
item7.Position 9;
                            
item7.Durability CIBI.Durability;
                            
item7.MaximDurability CIBI.Durability;
                            
this.Equipment.Remove(9);
                            if (
this.Equipment.Objects[8] != null)
                            {
                                
this.Equipment.Objects[8] = null;
                            }
                            
this.Equipment.Add(item7);
                            
item7.Mode Enums.ItemMode.Update;
                            
item7.Send(this);
                            
equip = new ClientEquip();
                            
equip.DoEquips(this);
                            
this.Send(equip);
                            
this.Equipment.UpdateEntityPacket();
                        }

                        
#endregion Equip


                        
Program.World.Register(this);
                        
Kernel.GamePool.Add(Entity.UIDthis);
                        
FakeLoaded true;
                        
LoggedIn true;
                        
Entity.NobilityRank NobilityInformation.Rank;
                        
this.Attackable true;


                    }

                }
            }
        }
        
#endregion
        
public bool RaceExcitementRaceDeceleratedRaceGuardRaceDizzyRaceFrightened;
        public 
Time32 RaceExcitementStampGuardStampDizzyStampFrightenStampChaosStampExtraVigorStampDecelerateStamp;
        public 
uint RaceExcitementAmountRaceExtraVigor;
        public 
GameCharacterUpdates SpeedChange;
        public 
void ApplyRacePotion(Enums.RaceItemType typeuint target)
        {
            switch (
type)
            {
                case 
Enums.RaceItemType.FrozenTrap:
                    {
                        if (
target != uint.MaxValue)
                        {
                            if (
Map.Floor[Entity.XEntity.YMapObjectType.StaticEntity])
                            {
                                
StaticEntity item = new StaticEntity((uint)(Entity.1000 Entity.Y), Entity.XEntity.Y, (ushort)Map.ID);
                                
item.DoFrozenTrap(Entity.UID);
                                
Map.AddStaticEntity(item);
                                
Kernel.SendSpawn(item);
                            }
                        }
                        else
                        {
                            
Entity.FrozenStamp Time32.Now;
                            
Entity.FrozenTime 5;
                            
GameCharacterUpdates update = new GameCharacterUpdates(true);
                            
update.UID Entity.UID;
                            
update.Add(GameCharacterUpdates.Freeze04);
                            
SendScreen(updatetrue);
                            
Entity.AddFlag(Update.Flags.Freeze);
                        }
                        break;
                    }
                case 
Enums.RaceItemType.RestorePotion:
                    {
                        
Vigor += 2000;
                        if (
Vigor MaxVigor)
                            
Vigor MaxVigor;
                        
Send(new Vigor(true) { Amount Vigor });
                        break;
                    }
                case 
Enums.RaceItemType.ExcitementPotion:
                    {
                        if (
RaceExcitement && RaceExcitementAmount 50)
                            return;

                        if (
RaceDecelerated)
                        {
                            
RaceDecelerated false;

                            var 
upd = new GameCharacterUpdates(true);
                            
upd.UID Entity.UID;
                            
upd.Remove(GameCharacterUpdates.Decelerated);
                            
SendScreen(updtrue);
                        }
                        
RaceExcitementStamp Time32.Now;
                        
RaceExcitement true;
                        {
                            var 
upd = new GameCharacterUpdates(true);
                            
upd.UID Entity.UID;
                            
upd.Add(GameCharacterUpdates.Accelerated501525);
                            
SendScreen(updtrue);
                            
SpeedChange upd;
                        }
                        
RaceExcitementAmount 50;
                        
Entity.AddFlag(Update.Flags.OrangeSparkles);
                        break;
                    }
                case 
Enums.RaceItemType.SuperExcitementPotion:
                    {
                        if (
RaceDecelerated)
                        {
                            
RaceDecelerated false;

                            var 
upd = new GameCharacterUpdates(true);
                            
upd.UID Entity.UID;
                            
upd.Remove(GameCharacterUpdates.Decelerated);
                            
SendScreen(updtrue);
                        }
                        
RaceExcitementAmount 200;
                        
RaceExcitementStamp Time32.Now;
                        
RaceExcitement true;
                        
this.Entity.AddFlag(Update.Flags.SpeedIncreased);
                        {
                            var 
upd = new GameCharacterUpdates(true);
                            
upd.UID Entity.UID;
                            
upd.Add(GameCharacterUpdates.Accelerated20015100);
                            
SendScreen(updtrue);
                            
SpeedChange upd;
                        }
                        
Entity.AddFlag(Update.Flags.OrangeSparkles);
                        break;
                    }
                case 
Enums.RaceItemType.GuardPotion:
                    {
                        
RaceGuard true;
                        
GuardStamp Time32.Now;
                        
Entity.AddFlag(Update.Flags.DivineShield);
                        
DizzyStamp DizzyStamp.AddSeconds(-100);
                        
FrightenStamp FrightenStamp.AddSeconds(-100);
                        var 
upd = new GameCharacterUpdates(true);
                        
upd.UID Entity.UID;
                        
upd.Add(GameCharacterUpdates.DivineShield010);
                        
SendScreen(updtrue);
                        break;
                    }
                case 
Enums.RaceItemType.DizzyHammer:
                    {
                        
Entity Target;
                        if (
Screen.TryGetValue(targetout Target))
                        {
                            var 
Owner Target.Owner;
                            if (
Owner != null)
                            {
                                if (!
Owner.RaceGuard && !Owner.RaceFrightened)
                                {
                                    
Owner.DizzyStamp Time32.Now;
                                    
Owner.RaceDizzy true;
                                    
Owner.Entity.AddFlag(Update.Flags.Dizzy);
                                    {
                                        var 
upd = new GameCharacterUpdates(true);
                                        
upd.UID Entity.UID;
                                        
upd.Add(GameCharacterUpdates.Dizzy05);
                                        
Owner.SendScreen(updtrue);
                                    }
                                }
                            }
                        }
                        break;
                    }
                case 
Enums.RaceItemType.ScreamBomb:
                    {
                        
SendScreen(new SpellUse(true)
                        {
                            
Attacker Entity.UID,
                            
SpellID 9989,
                            
SpellLevel 0,
                            
Entity.X,
                            
Entity.Y
                        
}.AddTarget(Entity0null), true);
                        foreach (var 
obj in Screen.SelectWhere<Entity>(MapObjectType.Entity,
                            (
o) => Kernel.GetDistance(o.Xo.YEntity.XEntity.Y) <= 10))
                        {
                            var 
Owner obj.Owner;
                            if (!
Owner.RaceGuard && !Owner.RaceDizzy)
                            {
                                
Owner.RaceFrightened true;
                                
Owner.FrightenStamp Time32.Now;
                                
Owner.Entity.AddFlag(Update.Flags.Frightened);
                                {
                                    var 
upd = new GameCharacterUpdates(true);
                                    
upd.UID Owner.Entity.UID;
                                    
upd.Add(GameCharacterUpdates.Flustered020);
                                    
Owner.SendScreen(updtrue);
                                }
                            }
                        }
                        break;
                    }
                case 
Enums.RaceItemType.SpiritPotion:
                    {
                        
ExtraVigorStamp Time32.Now;
                        
RaceExtraVigor 2000;
                        break;
                    }
                case 
Enums.RaceItemType.ChaosBomb:
                    {
                        
SendScreen(new SpellUse(true)
                        {
                            
Attacker Entity.UID,
                            
SpellID 9989,
                            
SpellLevel 0,
                            
Entity.X,
                            
Entity.Y
                        
}.AddTarget(Entity0null), true);
                        foreach (var 
obj in this.Screen.SelectWhere<Entity>(MapObjectType.Entity,
                               (
o) => Kernel.GetDistance(o.Xo.YEntity.XEntity.Y) <= 10))
                        {
                            var 
Owner obj.Owner;
                            if (!
Owner.RaceGuard)
                            {
                                
Owner.FrightenStamp Time32.Now;
                                
Owner.DizzyStamp Owner.DizzyStamp.AddSeconds(-1000);

                                
Owner.Entity.AddFlag(Update.Flags.Confused);
                                {
                                    var 
upd = new GameCharacterUpdates(true);
                                    
upd.UID Owner.Entity.UID;
                                    
upd.Add(GameCharacterUpdates.Flustered015);
                                    
Owner.SendScreen(updtrue);
                                }
                            }
                        }
                        break;
                    }
                case 
Enums.RaceItemType.SluggishPotion:
                    {
                        
SendScreen(new SpellUse(true)
                        {
                            
Attacker Entity.UID,
                            
SpellID 9989,
                            
SpellLevel 0,
                            
Entity.X,
                            
Entity.Y
                        
}.AddTarget(Entity0null), true);
                        foreach (var 
obj in this.Screen.SelectWhere<Entity>(MapObjectType.Entity,
                              
=> Kernel.GetDistance(o.Xo.YEntity.XEntity.Y) <= 10))
                        {
                            var 
Owner obj.Owner;
                            if (!
Owner.RaceGuard)
                            {
                                
Owner.RaceDecelerated true;
                                
Owner.DecelerateStamp Time32.Now;
                                if (
Owner.RaceExcitement)
                                {
                                    
Owner.RaceExcitement false;

                                    var 
upd = new GameCharacterUpdates(true);
                                    
upd.UID Owner.Entity.UID;
                                    
upd.Remove(GameCharacterUpdates.Accelerated);
                                    
Owner.SendScreen(updtrue);
                                }
                                
Owner.Entity.AddFlag(Update.Flags.PurpleSparkles);
                                {
                                    var 
upd = new GameCharacterUpdates(true);
                                    
upd.UID Owner.Entity.UID;
                                    
unchecked upd.Add(GameCharacterUpdates.Decelerated5010, (uint)(25)); }
                                    
Owner.SendScreen(updtrue);
                                    
Owner.SpeedChange upd;
                                }
                            }
                        }
                        break;
                    }
                case 
Enums.RaceItemType.TransformItem:
                    {
                        for (
int i 05i++)
                        {
                            if (
Potions[i] != null)
                            {
                                if (
Potions[i].Type != Enums.RaceItemType.TransformItem)
                                {
                                    
Send(new RacePotion(true)
                                    {
                                        
Amount 0,
                                        
Location 1,
                                        
PotionType Potions[i].Type
                                    
});
                                    
Potions[i] = null;
                                }
                            }
                        }
                        
//for (int i = 0; i < 5; i++)
                        
{
                            
int i 0;
                            if (
Potions[i] == null)
                            {
                                
int val = (int)Enums.RaceItemType.TransformItem;
                                while (
val == (int)Enums.RaceItemType.TransformItem)
                                    
val Kernel.Random.Next((int)Enums.RaceItemType.ChaosBomb, (int)Enums.RaceItemType.SuperExcitementPotion);
                                
Potions[i] = new UsableRacePotion();
                                
Potions[i].Count 1;
                                
Potions[i].Type = (Enums.RaceItemType)val;
                                
Send(new RacePotion(true)
                                {
                                    
Amount 1,
                                    
Location 1,
                                    
PotionType Potions[i].Type
                                
});
                            }
                        }
                        break;
                    }
            }
        }


        public 
void ReviewMentor()
        {
            
#region NotMentor
            
uint nowBP 0;
            if (
Mentor != null)
            {
                if (
Mentor.IsOnline)
                {
                    
nowBP Entity.BattlePowerFrom(Mentor.Client.Entity);
                }
            }
            if (
nowBP 200nowBP 0;
            if (
nowBP 0nowBP 0;
            if (
Entity.MentorBattlePower != nowBP)
            {
                
Entity.MentorBattlePower nowBP;
                if (
Mentor != null)
                {
                    if (
Mentor.IsOnline)
                    {
                        
MentorInformation Information = new MentorInformation(true);
                        
Information.Mentor_Type 1;
                        
Information.Mentor_ID Mentor.Client.Entity.UID;
                        
Information.Apprentice_ID Entity.UID;
                        
Information.Enrole_Date Mentor.EnroleDate;
                        
Information.Mentor_Level Mentor.Client.Entity.Level;
                        
Information.Mentor_Class Mentor.Client.Entity.Class;
                        
Information.Mentor_PkPoints Mentor.Client.Entity.PKPoints;
                        
Information.Mentor_Mesh Mentor.Client.Entity.Mesh;
                        
Information.Mentor_Online true;
                        
Information.Shared_Battle_Power nowBP;
                        
Information.String_Count 3;
                        
Information.Mentor_Name Mentor.Client.Entity.Name;
                        
Information.Apprentice_Name Entity.Name;
                        
Information.Mentor_Spouse_Name Mentor.Client.Entity.Spouse;
                        
Send(Information);
                    }
                }
            }
            
#endregion
            #region Mentor
            
if (Apprentices == nullApprentices = new SafeDictionary<uintGame.ConquerStructures.Society.Apprentice>();
            foreach (var 
appr in Apprentices.Values)
            {
                if (
appr.IsOnline)
                {
                    
uint nowBPs 0;
                    
nowBPs appr.Client.Entity.BattlePowerFrom(Entity);
                    if (
appr.Client.Entity.MentorBattlePower != nowBPs)
                    {
                        
appr.Client.Entity.MentorBattlePower nowBPs;
                        
MentorInformation Information = new MentorInformation(true);
                        
Information.Mentor_Type 1;
                        
Information.Mentor_ID Entity.UID;
                        
Information.Apprentice_ID appr.Client.Entity.UID;
                        
Information.Enrole_Date appr.EnroleDate;
                        
Information.Mentor_Level Entity.Level;
                        
Information.Mentor_Class Entity.Class;
                        
Information.Mentor_PkPoints Entity.PKPoints;
                        
Information.Mentor_Mesh Entity.Mesh;
                        
Information.Mentor_Online true;
                        
Information.Shared_Battle_Power nowBPs;
                        
Information.String_Count 3;
                        
Information.Mentor_Name Entity.Name;
                        
Information.Apprentice_Name appr.Client.Entity.Name;
                        
Information.Mentor_Spouse_Name Entity.Spouse;
                        
appr.Client.Send(Information);
                    }
                }
            }
            
#endregion
        
}
        public 
void AddQuarantineKill()
        {
            
quarantineKill++;
            
UpdateQuarantineScore();
        }
        public 
void AddGl()
        {
            
TopGlClaim++;
            return;
        }
        public 
void AddDl()
        {
            
TopDlClaim++;
            return;
        }
        public 
void AddQuarantineDeath()
        {
            
quarantineDeath++;
            
UpdateQuarantineScore();
        }
        public 
void UpdateQuarantineScore()
        {
            
string[] scores = new string[3];
            
scores[0] = "Black team: " Mohamed_Hossam_Barakat.Game.Quarantine.BlackScore.ToString() + " wins";
            
scores[1] = "White team: " Mohamed_Hossam_Barakat.Game.Quarantine.WhiteScore.ToString() + " wins";
            
scores[2] = "Your score: " quarantineKill " kills, " quarantineDeath " death";
            for (
int i 0scores.Lengthi++)
            {
                
Message msg = new Message(scores[i], System.Drawing.Color.Red== Message.FirstRightCorner Message.ContinueRightCorner);
                
Send(msg);
            }
        }
        public 
void KillTerrorist()
        {
            foreach (
Client.GameState Terrorist in Program.Values)
            {
                if (
Terrorist.Entity.KillTheTerrorist_IsTerrorist == true && Terrorist.Entity.MapID == 1801)
                    
Mohamed_Hossam_Barakat.Kernel.SendWorldMessage(new Mohamed_Hossam_Barakat.Network.GamePackets.Message("Terrorist: " Terrorist.Entity.Name " "System.Drawing.Color.BlackMohamed_Hossam_Barakat.Network.GamePackets.Message.FirstRightCorner), Program.Values);
            }
        }
        public 
void AddBless(uint value)
        {
            
Entity.HeavenBlessing += value;
            
Entity.Update(Network.GamePackets._String.Effect"bless"true);
            if (
Mentor != null)
            {
                if (
Mentor.IsOnline)
                {
                    
Mentor.Client.PrizeHeavenBlessing += (ushort)(value 10 60 60);
                    
AsApprentice Mentor.Client.Apprentices[Entity.UID];
                }
                if (
AsApprentice != null)
                {
                    
AsApprentice.Actual_HeavenBlessing += (ushort)(value 10 60 60);
                    
AsApprentice.Total_HeavenBlessing += (ushort)(value 10 60 60);
                    if (
Time32.Now LastMentorSave.AddSeconds(5))
                    {
                        
Database.KnownPersons.SaveApprenticeInfo(AsApprentice);
                        
LastMentorSave Time32.Now;
                    }
                }
            }
        }
        public 
ulong PrizeExperience;
        public 
ushort PrizeHeavenBlessing;
        public 
ushort PrizePlusStone;

        public 
uint MentorApprenticeRequest;
        public 
uint TradePartnerRequest;

        public 
object[] OnMessageBoxEventParams;
        public 
Action<GameStateMessageOK;
        public 
Action<GameStateMessageCancel;

        public 
bool JustLoggedOn true;
        public 
Time32 ReviveStamp Time32.Now;
        public 
bool Attackable;
        public 
int PingCount getset; }
        public 
Game.ConquerStructures.NobilityInformation NobilityInformation;
        public 
Game.Entity Entity;
        public 
ConcurrentDictionary<TitlePacket.TitlesDateTimeTitles = new ConcurrentDictionary<TitlePacket.TitlesDateTime>();
        public 
Game.Screen Screen;
        public 
Time32 LastPing Time32.Now;
        
//public int PingCount = 0;
        
public Time32 LastClientJump;
        public static 
ushort NpcTestType 0;
        public 
byte TinterItemSelect 0;
        public 
DateTime LastDragonBallUseLastResetTime;
        public 
byte Action 0;
        public 
bool CheerSent false;
        public 
Game.Arena.QualifierList.QualifierGroup WatchingGroup;
        public 
Game.Arena.QualifierList.QualifierGroup QualifierGroup;
        public 
Network.GamePackets.ArenaStatistic ArenaStatistic;

        public 
Game.TeamArena.QualifierList.QualifierGroup TeamWatchingGroup;
        public 
Game.TeamArena.QualifierList.QualifierGroup TeamQualifierGroup;
        public 
Network.GamePackets.TeamArenaStatistic TeamArenaStatistic;
        public 
uint ArenaPoints
        
{
            
get
            
{
                return 
ArenaStatistic.ArenaPoints;
            }
            
set
            
{
                
ArenaStatistic.ArenaPoints =
                    
TeamArenaStatistic.ArenaPoints =
                    
value;
            }
        }
        private 
byte xpCount;
        public 
byte XPCount
        
{
            
get { return xpCount; }
            
set
            
{
                
xpCount value;
                if (
xpCount >= 100xpCount 100;

                
Update update = new Update(true);
                
update.UID Entity.UID;
                
update.Append(Update.XPCirclexpCount);
                
update.Send(this);
            }
        }
        public 
Time32 XPCountStamp Time32.Now;
        public 
Time32 XPListStamp Time32.Now;

        
#region poker
        
public Network.GamePackets.poker2090 poker2090;
        public 
Network.GamePackets.poker2091 poker2091;
        public 
Network.GamePackets.poker2092 poker2092;
        public 
Network.GamePackets.poker2093 poker2093;
        public 
Network.GamePackets.poker2094 poker2094;
        public 
Network.GamePackets.poker2095 poker2095;
        
#endregion
        
public Game.ConquerStructures.Trade Trade;
        public 
TradePartner TradePartners;
        public 
byte ExpBalls 0;
        public 
uint MoneySave 0ActiveNpc 0;
        public 
string WarehousePW1TempPassword;
        public 
uint WarehousePW;
        public 
bool WarehouseOpen;
        public 
Time32 CoolStamp;
        public 
sbyte WarehouseOpenTries;
        public 
ushort InputLength;
        public 
Mohamed_Hossam_Barakat.Game.ConquerStructures.Society.Mentor Mentor;
        public 
Mohamed_Hossam_Barakat.Game.ConquerStructures.Society.Apprentice AsApprentice;
        public 
SafeDictionary<ushortInterfaces.ISkillRemoveSpells = new SafeDictionary<ushortInterfaces.ISkill>();
        public 
SafeDictionary<ushortInterfaces.IProfProficiencies;
        public 
SafeDictionary<ushortInterfaces.ISkillSpells;
        public 
SafeDictionary<uintMohamed_Hossam_Barakat.Game.ConquerStructures.Society.FriendFriends;
        public 
SafeDictionary<uintMohamed_Hossam_Barakat.Game.ConquerStructures.Society.EnemyEnemy;
        public 
SafeDictionary<uintMohamed_Hossam_Barakat.Game.ConquerStructures.Society.TradePartnerPartners;
        public 
SafeDictionary<uintMohamed_Hossam_Barakat.Game.ConquerStructures.Society.ApprenticeApprentices;
        public 
Game.ConquerStructures.Inventory Inventory;
        public 
Game.ConquerStructures.Equipment Equipment;
        public 
SafeDictionary<Game.ConquerStructures.Warehouse.WarehouseIDGame.ConquerStructures.WarehouseWarehouses;
        public 
Game.ConquerStructures.Team Team;
        public 
Time32 lastClientJumpTime Time32.Now;
        public 
Time32 lastJumpTime Time32.Now;
        public 
int LastJumpTime 0;
        public 
short lastJumpDistance 0;
        public 
bool DoubleExpToday false;

        private 
Game.Map map;
        public 
Game.Map Map
        
{
            
get
            
{
                if (
map == null)
                {
                    if (
Entity == null) return null;
                    
Kernel.Maps.TryGetValue(Entity.MapIDout map);
                    
//   if (Entity.MapID >= 11000 && map == null)
                    //      Entity.MapID = 1005;
                    
if (map == null)
                        return (
map = new Game.Map(Entity.MapIDDatabase.MapsTable.MapInformations[Entity.MapID].BaseIDDatabase.DMaps.MapPaths[Database.MapsTable.MapInformations[Entity.MapID].BaseID]));
                }
                else
                {
                    if (
map.ID != Entity.MapID)
                    {
                        
Kernel.Maps.TryGetValue(Entity.MapIDout map);
                        
//     if (Entity.MapID >= 11000 && map == null)
                        //         Entity.MapID = 1005;
                        
if (map == null)
                            return (
map = new Game.Map(Entity.MapIDDatabase.MapsTable.MapInformations[Entity.MapID].BaseIDDatabase.DMaps.MapPaths[Database.MapsTable.MapInformations[Entity.MapID].BaseID]));
                    }
                }
                return 
map;
            }
        }

        public 
uint ExpBall
        
{
            
get
            
{
                
ulong exp Database.DataHolder.LevelExperience(Entity.Level);
                return (
uint)(exp 13000 / (ulong)((Entity.Level Entity.Level Entity.Level 12) + 1));
            }
        }
        public 
bool AddProficiency(IProf proficiency)
        {
            if (
Proficiencies.ContainsKey(proficiency.ID))
            {
                
Proficiencies[proficiency.ID].Level proficiency.Level;
                
Proficiencies[proficiency.ID].Experience proficiency.Experience;
                
proficiency.Send(this);
                return 
false;
            }
            
Proficiencies.Add(proficiency.IDproficiency);
            
proficiency.Send(this);
            return 
true;
        }

        public 
bool AddSpell(Interfaces.ISkill spell)
        {
            if (
Spells.ContainsKey(spell.ID))
            {
                if (
Spells[spell.ID].Level spell.Level)
                {
                    
Spells[spell.ID].Level spell.Level;
                    
Spells[spell.ID].Experience spell.Experience;
                    if (
spell.ID != 3060)
                    {
                        
spell.Send(this);
                    }
                }
                return 
false;
            }
            else
            {
                if (
spell.ID == 1045 || spell.ID == 1046)
                {
                    
//if (Proficiencies.ContainsKey(Database.SpellTable.SpellInformations[spell.ID][spell.Level].WeaponSubtype))
                    //{
                    //    if (Proficiencies[Database.SpellTable.SpellInformations[spell.ID][spell.Level].WeaponSubtype].Level < 5)
                    //        return false;
                    //}
                    //else
                    //    return false;
                
}
                
Spells.Add(spell.IDspell);
                if (
spell.ID != 3060)
                {
                    
spell.Send(this);
                    
//      Database.SkillTable.SaveSpells(this, spell.ID);//Samak
                
}
                
Database.SkillTable.SaveSpells(this);//Samak
                
CheckSpells();
                return 
true;
            }
        }

        public 
bool RemoveSpell(Interfaces.ISkill spell)
        {
            if (
Spells.ContainsKey(spell.ID))
            {
                
Spells.Remove(spell.ID);
                
Network.GamePackets.Data data = new Data(true);
                
data.UID Entity.UID;
                
data.dwParam spell.ID;
                
data.ID 109;
                
Send(data);
                
Database.SkillTable.DeleteSpell(thisspell.ID);
                
CheckSpells();
                return 
true;
            }
            return 
false;
        }
        public 
bool WentToComplete false;
        public 
byte SelectedGem 0;
        public 
Time32 LastMentorSave Time32.Now;
        public 
void IncreaseExperience(ulong experiencebool addMultiple)
        {
            if (
Entity.ContainsFlag(Update.Flags.Cursed))
                return;
            if (
Entity.Dead) return;
            
byte level Entity.Level;
            
ulong _experience Entity.Experience;
            
ulong prExperienece experience;
            if (
addMultiple)
            {
                if (
Entity.VIPLevel 0)
                    
experience *= Entity.VIPLevel;
                
experience *= Constants.ExtraExperienceRate;
                if (
Entity.HeavenBlessing 0)
                    
experience += (uint)(experience 20 100);
                if (
Entity.Reborn >= 2)
                    
experience /= 3;

                if (
Guild != null)
                {
                    if (
Guild.Level 0)
                    {
                        
experience += (ushort)(experience Guild.Level 100);
                    }
                }
                
prExperienece experience + (ulong)(experience * ((float)Entity.BattlePower 100));

                
_experience += prExperienece;
            }
            else
                
_experience += experience;

            if (
this.Entity.Auto == true)
            {
                
this.Entity.autohuntxp += experience;
            }
            if (
Entity.Level 140)
            {
                while (
_experience >= Database.DataHolder.LevelExperience(level) && level 140)
                {
                    
_experience -= Database.DataHolder.LevelExperience(level);
                    
level++;
                    if (
Entity.Reborn == 1)
                    {
                        if (
level >= 130 && Entity.FirstRebornLevel 130 && level Entity.FirstRebornLevel)
                            
level Entity.FirstRebornLevel;
                    }
                    else if (
Entity.Reborn == 2)
                    {
                        if (
level >= 130 && Entity.SecondRebornLevel 130 && level Entity.SecondRebornLevel)
                            
level Entity.SecondRebornLevel;
                    }
                    
Database.MagicTypeOP.AnalayzeSkills(this0);
                    if (
Mentor != null)
                    {
                        if (
Mentor.IsOnline)
                        {
                            
uint exExp = (uint)(level 2);
                            
Mentor.Client.PrizeExperience += exExp;
                            
AsApprentice Mentor.Client.Apprentices[Entity.UID];
                            if (
AsApprentice != null)
                            {
                                
AsApprentice.Actual_Experience += exExp;
                                
AsApprentice.Total_Experience += exExp;
                            }
                            if (
Mentor.Client.PrizeExperience 50 606)
                                
Mentor.Client.PrizeExperience 50 606;
                        }
                    }
                    if (
level == 70)
                    {
                        if (
ArenaStatistic == null || ArenaStatistic.EntityID == 0)
                        {
                            
ArenaStatistic = new Mohamed_Hossam_Barakat.Network.GamePackets.ArenaStatistic(true);
                            
ArenaStatistic.EntityID Entity.UID;
                            
ArenaStatistic.Name Entity.Name;
                            
ArenaStatistic.Level Entity.Level;
                            
ArenaStatistic.Class = Entity.Class;
                            
ArenaStatistic.Model Entity.Mesh;
                            
ArenaPoints Database.ArenaTable.ArenaPointFill(Entity.Level);
                            
ArenaStatistic.LastArenaPointFill DateTime.Now;
                            
Database.ArenaTable.InsertArenaStatistic(this);
                            
ArenaStatistic.Status Network.GamePackets.ArenaStatistic.NotSignedUp;
                            
Game.Arena.ArenaStatistics.Add(Entity.UIDArenaStatistic);
                        }
                    }
                    if (
Entity.Reborn == 0)
                    {
                        if (
level <= 120)
                        {
                            
Database.DataHolder.GetStats(Entity.Class, levelthis);
                            
CalculateStatBonus();
                            
CalculateHPBonus();
                            
GemAlgorithm();
                        }
                        else
                            
Entity.Atributes += 3;
                    }
                    else
                    {
                        
Entity.Atributes += 3;
                    }
                }
                if (
Entity.Level != level)
                {
                    
Database.MagicTypeOP.AnalayzeSkills(thislevel);
                    if (
Team != null)
                    {
                        if (
Team.LowestLevelsUID == Entity.UID)
                        {
                            
Team.LowestLevel 0;
                            
Team.LowestLevelsUID 0;
                            
Team.SearchForLowest();
                        }
                    }
                    
Entity.Level level;
                    
Entity.Hitpoints Entity.MaxHitpoints;
                    
Entity.Mana Entity.MaxMana;
                    if (
Entity.Level 130)
                        
Database.EntityTable.UpdateLevel(Entity.Owner);
                    if (
Entity.Reborn == 2)
                        
Network.PacketHandler.ReincarnationHash(Entity.Owner);
                }
                if (
Entity.Experience != _experience)
                    
Entity.Experience _experience;
            }
            
#region ProdectSkills
            //DragonFury = 12300 x3
            //DragonSwing = 12200 x2
            
if (this.Spells.ContainsKey(12300) && !this.Entity.PureLeeLong())
            {
                
this.RemoveSpell(new Spell(true) { ID 12300 });
            }
            if (
this.Spells.ContainsKey(12200) && !this.Entity.x2LeeLong())
            {
                
this.RemoveSpell(new Spell(true) { ID 12200 });
            }
            
#endregion
        
}
        public 
void IncreaseSpellExperience(uint experienceushort id)
        {
            if (
this.Spells.ContainsKey(id))
            {
                switch (
id)
                {
                    case 
0x50a:
                    case 
0x13a6:
                    case 
0x1b76:
                        
experience 100;
                        break;
                }
                
experience *= Constants.ExtraSpellRate;
                
experience += (uint)(experience this.Entity.Gems[6]) / 100;
                if (
this.Map.BaseID == 1039)
                {
                    
experience /= 40;
                }
                
ISkill skill this.Spells[id];
                if (
skill != null)
                {
                    if (
this.Entity.VIPLevel 0)
                    {
                        
experience *= 5;
                    }
                    
Database.SpellInformation information Database.SpellTable.SpellInformations[skill.ID][skill.Level];
                    if ((
information != null) && ((information.NeedExperience != 0) && (this.Entity.Level >= information.NeedLevel)))
                    {
                        
skill.Experience += experience;
                        
SkillTable.UpdateSpell(thisskill);
                        
bool flag false;
                        if (
skill.Experience >= information.NeedExperience)
                        {
                            
skill.Experience 0;
                            
skill.Level = (byte)(skill.Level 1);
                            
flag true;
                            
this.Send(Constants.SpellLeveled);
                            
SkillTable.UpdateSpell(thisskill);
                        }
                        if (
flag)
                        {
                            
skill.Send(this);
                            
SkillTable.UpdateSpell(thisskill);
                        }
                        else
                        {
                            
SkillExperience experience2 = new SkillExperience(true);
                            
experience2.AppendSpell(skill.IDskill.Experience);
                            
experience2.Send(this);
                            
SkillTable.UpdateSpell(thisskill);
                        }
                    }
                }
            }
        }
        public 
void IncreaseProficiencyExperience(uint experienceushort id)
        {
            if (
Proficiencies.ContainsKey(id))
            {
                
Interfaces.IProf proficiency Proficiencies[id];
                
experience *= Constants.ExtraProficiencyRate;
                
experience += (uint)(experience Entity.Gems[5] / 100);
                if (
Entity.VIPLevel 0)
                {
                    
experience *= 5;
                }
                
proficiency.Experience += experience;
                if (
proficiency.Level 20)
                {
                    
bool leveled false;
                    while (
proficiency.Experience >= Database.DataHolder.ProficiencyLevelExperience(proficiency.Level))
                    {
                        
proficiency.Experience -= Database.DataHolder.ProficiencyLevelExperience(proficiency.Level);
                        
proficiency.Level++;
                        if (
proficiency.Level == 20)
                        {
                            
proficiency.Experience 0;
                            
proficiency.Send(this);
                            
Send(Constants.ProficiencyLeveled);
                            return;
                        }
                        
proficiency.NeededExperience Database.DataHolder.ProficiencyLevelExperience(proficiency.Level);
                        
leveled true;
                        
Send(Constants.ProficiencyLeveled);
                    }
                    if (
leveled)
                    {
                        
proficiency.Send(this);
                    }
                    else
                    {
                        
Network.GamePackets.SkillExperience update = new SkillExperience(true);
                        
update.AppendProficiency(proficiency.IDproficiency.ExperienceDatabase.DataHolder.ProficiencyLevelExperience(proficiency.Level));
                        
update.Send(this);
                    }
                }

            }
            else
            {
                
AddProficiency(new Network.GamePackets.Proficiency(true) { ID id });
            }
        }

        public 
byte ExtraAtributePoints(byte levelbyte mClass)
        {
            if (
mClass == 135)
            {
                if (
level <= 110)
                    return 
0;
                switch (
level)
                {
                    case 
112: return 1;
                    case 
114: return 3;
                    case 
116: return 6;
                    case 
118: return 10;
                    case 
120: return 15;
                    case 
121: return 15;
                    case 
122: return 21;
                    case 
123: return 21;
                    case 
124: return 28;
                    case 
125: return 28;
                    case 
126: return 36;
                    case 
127: return 36;
                    case 
128: return 45;
                    case 
129: return 45;
                    default:
                        return 
55;
                }
            }
            else
            {
                if (
level <= 120)
                    return 
0;
                switch (
level)
                {
                    case 
121: return 1;
                    case 
122: return 3;
                    case 
123: return 6;
                    case 
124: return 10;
                    case 
125: return 15;
                    case 
126: return 21;
                    case 
127: return 28;
                    case 
128: return 36;
                    case 
129: return 45;
                    default:
                        return 
55;
                }
            }
        }
        public static 
ISkill LearnableSpell(ushort spellid)
        {
            
ISkill spell = new Spell(true);
            
spell.ID spellid;
            return 
spell;
        }
        public 
bool Reborn(byte toClass)
        {
            
#region Items
            
if (Inventory.Count 37) return false;
            switch (
toClass)
            {
                case 
11:
                case 
21:
                case 
51:
                case 
61:
                case 
71:
                    {
                        
Inventory.Add(410077Game.Enums.ItemEffect.Poison);
                        break;
                    }
                case 
41:
                    {
                        
Inventory.Add(500057Game.Enums.ItemEffect.Shield);
                        break;
                    }
                case 
132:
                case 
142:
                    {
                        if (
toClass == 132)
                            
Inventory.Add(421077Game.Enums.ItemEffect.MP);
                        else
                            
Inventory.Add(421077Game.Enums.ItemEffect.HP);
                        break;
                    }
            }
            
#region Low level items
            
for (byte i 19i++)
            {
                if (
!= 7)
                {
                    
ConquerItem item Equipment.TryGetItem(i);
                    if (
item != null && item.ID != 0)
                    {
                        try
                        {
                            
//UnloadItemStats(item, false);
                            
Database.ConquerItemInformation cii = new Mohamed_Hossam_Barakat.Database.ConquerItemInformation(item.IDitem.Plus);
                            
item.ID cii.LowestID(Network.PacketHandler.ItemMinLevel(Network.PacketHandler.ItemPosition(item.ID)));
                            
item.Mode Mohamed_Hossam_Barakat.Game.Enums.ItemMode.Update;
                            
item.Send(this);
                            
LoadItemStats();
                            
Database.ConquerItemTable.UpdateItemID(itemthis);
                        }
                        catch
                        {
                            
Console.WriteLine("Reborn item problem: " item.ID);
                        }
                    }
                }
            }
            
ConquerItem hand Equipment.TryGetItem(5);
            if (
hand != null)
            {
                
Equipment.Remove(5);
                
CalculateStatBonus();
                
CalculateHPBonus();
            }
            
hand Equipment.TryGetItem(25);
            if (
hand != null)
            {
                
Equipment.Remove(25);
                
CalculateStatBonus();
                
CalculateHPBonus();
            }
            
LoadItemStats();
            
SendScreen(Entity.SpawnPacketfalse);
            
#endregion
            #endregion
            
            
Database.MagicTypeOP.Reborn(thistoClass);
            
            if (
Entity.Reborn == 0)
            {
                
Entity.FirstRebornClass Entity.Class;
                
Entity.FirstRebornLevel Entity.Level;
                
Entity.Atributes =
                    (
ushort)(ExtraAtributePoints(Entity.FirstRebornClassEntity.FirstRebornLevel) + 52);
            }
            else
            {
                
Entity.SecondRebornClass Entity.Class;
                
Entity.SecondRebornLevel Entity.Level;
                
Entity.Atributes =
                    (
ushort)(ExtraAtributePoints(Entity.FirstRebornClassEntity.FirstRebornLevel) +
                    
ExtraAtributePoints(Entity.SecondRebornClassEntity.SecondRebornLevel) + 62);
            }
            
byte PreviousClass Entity.Class;
            
Entity.Reborn++;
            
Entity.Class = toClass;
            
Entity.Level 15;
            
Entity.Experience 0;
            
#region Proficiencies
            
foreach (Interfaces.IProf proficiency in Proficiencies.Values)
            {
                
proficiency.PreviousLevel proficiency.Level;
                
proficiency.Level 0;
                
proficiency.Experience 0;
                
proficiency.Send(this);
            }
            
#endregion
            
Database.DataHolder.GetStats(Entity.Class, Entity.Levelthis);
            
LoadItemStats();
            
#region The View Of Wepeon
            
ClientEquip eqs = new ClientEquip();
            
eqs.DoEquips(this);
            
Send(eqs);
            
Equipment.UpdateEntityPacket();
            
#endregion
            #region Adding earned skills
            
if (Entity.Reborn == 2)
                
AddSpell(new Spell(true) { ID 9876 });
            if (
Entity.FirstRebornClass == 55 && Entity.SecondRebornClass == 55 && Entity.Class == 51 && Entity.Reborn == 2)
                
AddSpell(new Spell(true) { ID 6002 });
            if (
Entity.FirstRebornClass == 15 && Entity.SecondRebornClass == 15 && Entity.Class == 11 && Entity.Reborn == 2)
                
AddSpell(new Spell(true) { ID 10315 });
            if (
Entity.FirstRebornClass == 25 && Entity.SecondRebornClass == 25 && Entity.Class == 21 && Entity.Reborn == 2)
                
AddSpell(new Spell(true) { ID 10311 });
            if (
Entity.FirstRebornClass == 45 && Entity.SecondRebornClass == 45 && Entity.Class == 41 && Entity.Reborn == 2)
                
AddSpell(new Spell(true) { ID 10313 });
            if (
Entity.FirstRebornClass == 55 && Entity.SecondRebornClass == 55 && Entity.Class == 51 && Entity.Reborn == 2)
                
AddSpell(new Spell(true) { ID 6003 });
            if (
Entity.FirstRebornClass == 65 && Entity.SecondRebornClass == 65 && Entity.Class == 61 && Entity.Reborn == 2)
                
AddSpell(new Spell(true) { ID 10405 });
            if (
Entity.FirstRebornClass == 85 && Entity.SecondRebornClass == 85 && Entity.Class == 81 && Entity.Reborn == 2)
                
AddSpell(new Spell(true) { ID 12300 });
            if (
Entity.FirstRebornClass == 135 && Entity.SecondRebornClass == 135 && Entity.Class == 132 && Entity.Reborn == 2)
                
AddSpell(new Spell(true) { ID 30000 });
            if (
Entity.FirstRebornClass == 145 && Entity.SecondRebornClass == 145 && Entity.Class == 142 && Entity.Reborn == 2)
                
AddSpell(new Spell(true) { ID 10310 });
            if (
Entity.Reborn == 1)
            {
                if (
Entity.FirstRebornClass == 75 && Entity.Class == 71)
                {
                    
AddSpell(new Spell(true) { ID 3050 });
                }
                if (
toClass == 81 && PreviousClass == 85 && Entity.Reborn == 1)
                    
AddSpell(new Spell(true) { ID 12280 });
                if (
Entity.FirstRebornClass == 15 && Entity.Class == 11)
                {
                    
AddSpell(new Spell(true) { ID 3050 });
                }
                else if (
Entity.FirstRebornClass == 25 && Entity.Class == 21)
                {
                    
AddSpell(new Spell(true) { ID 3060 });
                }
                else if (
Entity.FirstRebornClass == 145 && Entity.Class == 142)
                {
                    
AddSpell(new Spell(true) { ID 3080 });
                }
                else if (
Entity.FirstRebornClass == 135 && Entity.Class == 132)
                {
                    
AddSpell(new Spell(true) { ID 3090 });
                }
            }
            if (
Entity.Reborn == 2)
            {
                if (
Entity.SecondRebornClass == 75 && Entity.Class == 71)
                {
                    
AddSpell(new Spell(true) { ID 3050 });
                }
                if (
Entity.SecondRebornClass == 15 && Entity.Class == 11)
                {
                    
AddSpell(new Spell(true) { ID 3050 });
                }
                else if (
Entity.SecondRebornClass == 25)
                {
                    
AddSpell(new Spell(true) { ID 3060 });
                }
                else if (
Entity.SecondRebornClass == 145 && Entity.Class == 142)
                {
                    
AddSpell(new Spell(true) { ID 3080 });
                }
                else if (
Entity.SecondRebornClass == 135 && Entity.Class == 132)
                {
                    
AddSpell(new Spell(true) { ID 3090 });
                }
            }
            
#endregion
            
RemoveSpell(new Spell(true) { ID 3060 });
            if (
Entity.FirstRebornClass == 25 || Entity.SecondRebornClass == 25)
            {
                
AddSpell(new Spell(true) { ID 3060 });
            }
            
Database.EntityTable.SaveEntity(this);
            
Database.SkillTable.SaveSpells(this);
            
Database.SkillTable.SaveProficiencies(this);
            
Kernel.SendWorldMessage(new Message("" Entity.Name " has got " Entity.Reborn " reborns. Congratulations!"System.Drawing.Color.WhiteMessage.Center), Program.Values);
            
#region ProdectSkills
            //DragonFury = 12300 x3
            //DragonSwing = 12200 x2
            
if (Spells.ContainsKey(12300) && !Entity.PureLeeLong())
            {
                
RemoveSpell(new Spell(true) { ID 12300 });
            }
            if (
Spells.ContainsKey(12200) && !Entity.x2LeeLong())
            {
                
RemoveSpell(new Spell(true) { ID 12200 });
            }
            
#endregion
            
return true;
        }
        
#region Items

        //private int StatHP;
        //public uint[] ArsenalDonations;
        //public uint GetArsenalDonation()
        //{
        //    uint val = 0;
        //    foreach (var Uint in ArsenalDonations)
        //        val += Uint;
        //    using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE))
        //        cmd.Update("entities").Set("GuildArsenalDonation", (uint)val).Where("UID", this.Entity.UID)
        //            .Execute();
        //    return val;
        //}
        //public void CalculateHPBonus()
        //{
        //    //  if ((int)Account.State >= 3) return;
        //    switch (Entity.Class)
        //    {
        //        case 11: Entity.MaxHitpoints = (uint)(StatHP * 1.05F); break;
        //        case 12: Entity.MaxHitpoints = (uint)(StatHP * 1.08F); break;
        //        case 13: Entity.MaxHitpoints = (uint)(StatHP * 1.10F); break;
        //        case 14: Entity.MaxHitpoints = (uint)(StatHP * 1.12F); break;
        //        case 15: Entity.MaxHitpoints = (uint)(StatHP * 1.15F); break;
        //        default: Entity.MaxHitpoints = (uint)StatHP; break;
        //    }
        //    Entity.MaxHitpoints += Entity.ItemHP;
        //    var plus = Entity.SubClasses.Classes.SingleOrDefault(x => x.Value.ID == 9);
        //    if (plus.Value != null && Entity.SubClass == 9)
        //        Entity.MaxHitpoints += (uint)(plus.Value.Level * 100);
        //    Entity.Hitpoints = Math.Min(Entity.Hitpoints, Entity.MaxHitpoints);
        //}
        //public void CalculateStatBonus()
        //{
        //    byte ManaBoost = 5;
        //    const byte HitpointBoost = 24;
        //    sbyte Class = (sbyte)(Entity.Class / 10);
        //    if (Class == 13 || Class == 14)
        //        ManaBoost += (byte)(5 * (Entity.Class - (Class * 10)));
        //    StatHP = (ushort)((Entity.Strength * 3) +
        //                             (Entity.Agility * 3) +
        //                             (Entity.Spirit * 3) +
        //                             (Entity.Vitality * HitpointBoost));
        //    Entity.MaxMana = (ushort)((Entity.Spirit * ManaBoost) + Entity.ItemMP);
        //    Entity.Mana = Math.Min(Entity.Mana, Entity.MaxMana);
        //}
        //public void SendStatMessage()
        //{
        //    this.ReviewMentor();
        //    Network.GamePackets.Message Msg = new Mohamed_Hossam_Barakat.Network.GamePackets.Message(" Your status has been changed", System.Drawing.Color.DarkGoldenrod
        //        , Network.GamePackets.Message.TopLeft);
        //    Msg.__Message = string.Format(Msg.__Message,
        //        new object[] { Entity.MinAttack, Entity.MaxAttack, Entity.MagicAttack, Entity.Defence, (Entity.MagicDefence + Entity.MagicDefence), Entity.Dodge, Entity.PhysicalDamageDecrease, Entity.MagicDamageDecrease, Entity.PhysicalDamageIncrease, Entity.MagicDamageIncrease, Entity.Hitpoints, Entity.MaxHitpoints, Entity.Mana, Entity.MaxMana, Entity.BattlePower });
        //    this.Send(Msg);
        //}

        //private bool AreStatsLoadable(ConquerItem item)
        //{
        //    if (!AlternateEquipment)
        //        if (item.Position > 20)
        //            return false;
        //    if (AlternateEquipment)
        //        if (item.Position < 20)
        //            if (!Equipment.Free((byte)(20 + item.Position)))
        //                return false;

        //    int Position = item.Position;
        //    if (item.Position > 20) Position -= 20;

        //    if (Position == ConquerItem.LeftWeapon || Position == ConquerItem.RightWeapon)
        //        return false;

        //    return true;
        //}

        //private Tuple<ConquerItem, ConquerItem> ComputeWeapons()
        //{
        //    if (!AlternateEquipment)
        //    {
        //        return new Tuple<ConquerItem, ConquerItem>(
        //            Equipment.TryGetItem(ConquerItem.RightWeapon),
        //            Equipment.TryGetItem(ConquerItem.LeftWeapon));
        //    }
        //    else
        //    {
        //        if (Equipment.Free(ConquerItem.AlternateRightWeapon))
        //        {
        //            return new Tuple<ConquerItem, ConquerItem>(
        //                Equipment.TryGetItem(ConquerItem.RightWeapon),
        //                Equipment.TryGetItem(ConquerItem.LeftWeapon));
        //        }
        //        else
        //        {
        //            if (Equipment.Free(ConquerItem.RightWeapon))
        //            {
        //                return new Tuple<ConquerItem, ConquerItem>(
        //                    Equipment.TryGetItem(ConquerItem.AlternateRightWeapon),
        //                    Equipment.TryGetItem(ConquerItem.AlternateLeftWeapon));
        //            }
        //            else
        //            {
        //                if (!Equipment.Free(ConquerItem.AlternateLeftWeapon))
        //                {
        //                    return new Tuple<ConquerItem, ConquerItem>(
        //                        Equipment.TryGetItem(ConquerItem.AlternateRightWeapon),
        //                        Equipment.TryGetItem(ConquerItem.AlternateLeftWeapon));
        //                }
        //                else
        //                {
        //                    if (Equipment.Free(ConquerItem.LeftWeapon))
        //                    {
        //                        return new Tuple<ConquerItem, ConquerItem>(
        //                            Equipment.TryGetItem(ConquerItem.AlternateRightWeapon),
        //                            null);
        //                    }
        //                    else
        //                    {
        //                        ConquerItem aRight = Equipment.TryGetItem(ConquerItem.AlternateRightWeapon),
        //                                     nLeft = Equipment.TryGetItem(ConquerItem.LeftWeapon);
        //                        if (PacketHandler.IsTwoHand(aRight.ID))
        //                        {
        //                            if (PacketHandler.IsArrow(nLeft.ID))
        //                            {
        //                                if (PacketHandler.IsBow(aRight.ID))
        //                                {
        //                                    return new Tuple<ConquerItem,
        //                                        ConquerItem>(aRight, nLeft);
        //                                }
        //                                else
        //                                {
        //                                    return new Tuple<ConquerItem,
        //                                        ConquerItem>(aRight, null);
        //                                }
        //                            }
        //                            else
        //                            {
        //                                if (PacketHandler.IsShield(nLeft.ID))
        //                                {
        //                                    if (!Spells.ContainsKey(10311))//Perseverance
        //                                    {
        //                                        Send(new Message("You need to know Perseverance (Pure Warrior skill) to be able to wear 2-handed weapon and shield.", System.Drawing.Color.Red, Message.Talk));
        //                                        return new Tuple<ConquerItem,
        //                                            ConquerItem>(aRight, null);
        //                                    }
        //                                    else
        //                                    {
        //                                        return new Tuple<ConquerItem,
        //                                            ConquerItem>(aRight, nLeft);
        //                                    }
        //                                }
        //                                else
        //                                {
        //                                    return new Tuple<ConquerItem,
        //                                        ConquerItem>(aRight, null);
        //                                }
        //                            }
        //                        }
        //                        else
        //                        {
        //                            if (!PacketHandler.IsTwoHand(nLeft.ID))
        //                            {
        //                                return new Tuple<ConquerItem,
        //                                    ConquerItem>(aRight, nLeft);
        //                            }
        //                            else
        //                            {
        //                                return new Tuple<ConquerItem,
        //                                    ConquerItem>(aRight, null);
        //                            }
        //                        }
        //                    }
        //                }
        //            }
        //        }
        //    }
        //}

        //public int[][] ChampionAllowedStats = new int[][]
        //{
        //    new int[] {1, 0, 0, 0, 0, 0, 0, 30, 0, 0 },
        //    new int[] {2, 0, 0, 0, 0, 0, 0, 40, 1, 1 },
        //    new int[] {3, 1, 0, 0, 0, 0, 50, 50, 2, 3 },
        //    new int[] {4, 3, 1, 1, 0, 0, 100, 60, 5, 4 },
        //    new int[] {5, 5, 1, 1, 1, 0, 150, 70, 7, 5 },
        //    new int[] {6, 5, 1, 1, 1, 0, 200, 80, 9, 7 },
        //    new int[] {12, 7, 2, 2, 1, 1, 255, 100, 12, 9 }
        //};
        //public bool DoChampStats { get { return ChampionGroup != null; } }
        //private int _accuracy;
        //public int Accuracy
        //{
        //    get { return _accuracy; }
        //}
        //public void LoadItemStats()
        //{
        //    uint bStats = Entity.Hitpoints;
        //    for (int i = 0; i < 30; i++)
        //        if (Equipment.Objects[i] != null)
        //            Equipment.Objects[i].IsWorn = false;

        //    #region Set Every Variable to Zero
        //    Entity.Defence = 0;
        //    Entity.MagicDefence = 0;
        //    Entity.MagicDefencePercent = 0;
        //    Entity.BaseMagicAttack = 0;
        //    Entity.BaseMagicDefence =
        //    Entity.BaseMaxAttack =
        //    Entity.BaseMinAttack =
        //    Entity.PhysicalDamageDecrease =
        //    Entity.PhysicalDamageIncrease =
        //    Entity.MagicDamageDecrease =
        //    Entity.MagicDamageIncrease = 0;
        //    Entity.ItemHP = 0;
        //    Entity.ItemHP =
        //    Entity.ItemMP =
        //    Entity.AttackRange = (byte)0;
        //    Entity.Dodge = 0;
        //    Entity.MinAttack = 0;
        //    Entity.MaxAttack = 0;
        //    Entity.Defence = 0;
        //    Entity.SuperItemBless = 0;
        //    Entity.MagicDefence = 0;
        //    Entity.Dodge = 0;
        //    Entity.BaseMagicAttack = 0;
        //    Entity.WoodResistance = 0;
        //    Entity.FireResistance = 0;
        //    Entity.WaterResistance = 0;
        //    Entity.EarthResistance = 0;
        //    Entity.Breaktrough = 0;
        //    Entity.WearsGoldPrize = false;
        //    Entity.CriticalStrike = 0;
        //    Entity.Immunity = 0;
        //    Entity.Penetration = 0;
        //    Entity.Counteraction = 0;
        //    Entity.Block = 0;
        //    _accuracy = 0;
        //    Entity.Detoxication = 0;
        //    Entity.Intensification = 0;
        //    Entity.Penetration = 0;
        //    Entity.SkillCStrike = 0;
        //    Entity.MaxAttack = 0;
        //    Entity.MinAttack = 0;
        //    Entity.PhysicalDamageDecrease = 0;
        //    Entity.MagicDamageDecrease = 0;
        //    Entity.MagicDamageIncrease = 0;
        //    Entity.PhysicalDamageIncrease = 0;
        //    Entity.MagicDefencePercent = 0;
        //    Entity.ItemHP = 0;
        //    Entity.ItemMP = 0;
        //    Entity.ItemBless = 0;
        //    Entity.AttackRange = 1;
        //    Entity.BaseMinAttack = 0;
        //    Entity.BaseMaxAttack = 0;
        //    Entity.BaseMagicDefence = 0;
        //    Entity.BaseDefence = 0;
        //    Entity.MagicDamageIncrease = 0;
        //    Entity.Gems = new double[10];
        //    #endregion

        //    foreach (ConquerItem i in Equipment.Objects)
        //    {
        //        if (i == null) continue;
        //        if (i.Durability == 0) continue;
        //        if (!AreStatsLoadable(i)) continue;
        //        loadItemStats(i);
        //    }

        //    Weapons = ComputeWeapons();
        //    if (Weapons == null) Weapons = new Tuple<ConquerItem, ConquerItem>(null, null);
        //    if (Weapons.Item1 != null)
        //    {
        //        loadItemStats(Weapons.Item1);
        //        if (Weapons.Item2 != null)
        //        {
        //            if (!Weapons.Item1.IsTwoHander())
        //                loadItemStats(Weapons.Item2);
        //            else
        //                if (PacketHandler.IsArrow(Weapons.Item2.ID) || (Entity.Class >= 20 && Entity.Class <= 25))
        //                    loadItemStats(Weapons.Item2);
        //        }
        //    }

        //    #region Subclasses
        //    foreach (var c in Entity.SubClasses.Classes)
        //    {
        //        int lvl = c.Value.Level;
        //        if (DoChampStats) lvl = Math.Min(lvl, ChampionAllowedStats[ChampionStats.Grade][9]);
        //        switch ((Mohamed_Hossam_Barakat.Game.ClassID)c.Value.ID)
        //        {
        //            case Game.ClassID.MartialArtist:
        //                {
        //                    Entity.CriticalStrike += (ushort)(Entity.CriticalStrike - (Entity.CriticalStrike * (lvl / 15)));
        //                    break;
        //                }
        //            case Game.ClassID.Warlock:
        //                {
        //                    Entity.SkillCStrike += (ushort)(Entity.SkillCStrike - (Entity.SkillCStrike * (lvl / 15)));
        //                    break;
        //                }
        //            case Game.ClassID.ChiMaster:
        //                {
        //                    Entity.Immunity += (ushort)(Entity.Immunity - (Entity.Immunity * (lvl / 15)));
        //                    break;
        //                }
        //            case Game.ClassID.Sage:
        //                {
        //                    Entity.Penetration += (ushort)(Entity.Penetration - (Entity.Penetration * (lvl / 15)));
        //                    break;
        //                }
        //            case Game.ClassID.Apothecary:
        //                {
        //                    //double per = lvl * 8 / 10;
        //                    Entity.Detoxication += (ushort)(Entity.Detoxication - (Entity.Detoxication * (lvl / 15)));//per));
        //                    break;
        //                }
        //            case Game.ClassID.Performer:
        //                {
        //                    int per = lvl * 100;
        //                    Entity.BaseMaxAttack += (uint)per / 2;
        //                    Entity.BaseMinAttack += (uint)per / 2;
        //                    Entity.BaseMagicAttack += (uint)per;
        //                    break;
        //                }
        //        }
        //    }
        //    #endregion
        //    #region Chi
        //    uint percentage = 100;
        //    if (DoChampStats)
        //        percentage = (uint)ChampionAllowedStats[ChampionStats.Grade][7];
        //    foreach (var chiPower in ChiPowers)
        //    {
        //        foreach (var attribute in chiPower.Attributes)
        //        {
        //            switch (attribute.Type)
        //            {
        //                case Game.Enums.ChiAttribute.CriticalStrike:
        //                    Entity.CriticalStrike += (int)((ushort)(attribute.Value * 10) * percentage / 100);
        //                    break;
        //                case Game.Enums.ChiAttribute.Counteraction:
        //                    Entity.Counteraction += (ushort)(attribute.Value * percentage / 100);
        //                    break;
        //                case Game.Enums.ChiAttribute.AddAttack:
        //                    Entity.BaseMinAttack += attribute.Value * percentage / 100;
        //                    Entity.BaseMaxAttack += attribute.Value * percentage / 100;
        //                    break;
        //                case Game.Enums.ChiAttribute.AddMagicAttack:
        //                    Entity.BaseMagicAttack += attribute.Value * percentage / 100;
        //                    break;
        //                case Game.Enums.ChiAttribute.AddMagicDefense:
        //                    Entity.BaseMagicDefence += attribute.Value * percentage / 100;
        //                    break;
        //                case Game.Enums.ChiAttribute.Breakthrough:
        //                    Entity.Breaktrough += (ushort)(attribute.Value * percentage / 100);
        //                    break;
        //                case Game.Enums.ChiAttribute.HPAdd:
        //                    Entity.ItemHP += attribute.Value * percentage / 100;
        //                    break;
        //                case Game.Enums.ChiAttribute.Immunity:
        //                    Entity.Immunity += (int)((ushort)(attribute.Value * 10) * percentage / 100);
        //                    break;
        //                case Game.Enums.ChiAttribute.MagicDamageDecrease:
        //                    Entity.MagicDamageDecrease += (ushort)(attribute.Value * percentage / 100);
        //                    break;
        //                case Game.Enums.ChiAttribute.MagicDamageIncrease:
        //                    Entity.MagicDamageIncrease += (ushort)(attribute.Value * percentage / 100);
        //                    break;
        //                case Game.Enums.ChiAttribute.PhysicalDamageDecrease:
        //                    Entity.PhysicalDamageDecrease += (ushort)(attribute.Value * percentage / 100);
        //                    break;
        //                case Game.Enums.ChiAttribute.PhysicalDamageIncrease:
        //                    Entity.PhysicalDamageIncrease += (ushort)(attribute.Value * percentage / 100);
        //                    break;
        //                case Game.Enums.ChiAttribute.SkillCriticalStrike:
        //                    Entity.SkillCStrike += (int)((ushort)(attribute.Value * 10) * percentage / 100);
        //                    break;
        //            }
        //        }
        //    }
        //    #region Dragon Ranking
        //    if (ChiData.DragonRank <= 50 && ChiPowers.Count > 0)
        //    {
        //        if (ChiData.DragonRank <= 3)
        //        {
        //            Entity.ItemHP += 5000;
        //            Entity.BaseMagicDefence += 300;
        //            Entity.PhysicalDamageDecrease += 1000;
        //            Entity.MagicDamageDecrease += 300;
        //        }
        //        else if (ChiData.DragonRank <= 15)
        //        {
        //            Entity.ItemHP += (uint)(3000 - (ChiData.DragonRank - 4) * 90);
        //            Entity.BaseMagicDefence += (uint)(250 - (ChiData.DragonRank - 4) * 9);
        //            Entity.PhysicalDamageDecrease += (ushort)(600 - (ChiData.DragonRank - 4) * 18);
        //            Entity.MagicDamageDecrease += (ushort)(200 - (ChiData.DragonRank - 4) * 4);
        //        }
        //        else if (ChiData.DragonRank <= 50)
        //        {
        //            Entity.ItemHP += 1500;
        //            Entity.BaseMagicDefence += 100;
        //            Entity.PhysicalDamageDecrease += 300;
        //            Entity.MagicDamageDecrease += 100;
        //        }
        //    }
        //    #endregion
        //    #region Phoenix Ranking
        //    if (ChiData.PhoenixRank <= 50 && ChiPowers.Count > 1)
        //    {
        //        if (ChiData.PhoenixRank <= 3)
        //        {
        //            Entity.BaseMinAttack += 3000;
        //            Entity.BaseMaxAttack += 3000;
        //            Entity.BaseMagicAttack += 3000;
        //            Entity.PhysicalDamageIncrease += 1000;
        //            Entity.MagicDamageIncrease += 300;
        //        }
        //        else if (ChiData.PhoenixRank <= 15)
        //        {
        //            Entity.BaseMinAttack += (uint)(2000 - (ChiData.PhoenixRank - 4) * 45);
        //            Entity.BaseMaxAttack += (uint)(2000 - (ChiData.PhoenixRank - 4) * 45);
        //            Entity.BaseMagicAttack += (uint)(2000 - (ChiData.PhoenixRank - 4) * 45);
        //            Entity.PhysicalDamageIncrease += (ushort)(600 - (ChiData.PhoenixRank - 4) * 18);
        //            Entity.MagicDamageIncrease += (ushort)(200 - (ChiData.PhoenixRank - 4) * 4);
        //        }
        //        else if (ChiData.PhoenixRank <= 50)
        //        {
        //            Entity.BaseMinAttack += 1000;
        //            Entity.BaseMaxAttack += 1000;
        //            Entity.BaseMagicAttack += 1000;
        //            Entity.PhysicalDamageIncrease += 300;
        //            Entity.MagicDamageIncrease += 100;
        //        }
        //    }
        //    #endregion
        //    #region Tiger Ranking
        //    if (ChiData.TigerRank <= 50 && ChiPowers.Count > 2)
        //    {
        //        if (ChiData.TigerRank <= 3)
        //        {
        //            Entity.CriticalStrike += 1500;
        //            Entity.SkillCStrike += 1500;
        //            Entity.Immunity += 800;
        //        }
        //        else if (ChiData.TigerRank <= 15)
        //        {
        //            Entity.CriticalStrike += (ushort)(1100 - (ChiData.TigerRank - 4) * 10);
        //            Entity.SkillCStrike += (ushort)(1100 - (ChiData.TigerRank - 4) * 10);
        //            Entity.Immunity += 500;
        //        }
        //        else if (ChiData.TigerRank <= 50)
        //        {
        //            Entity.CriticalStrike += 500;
        //            Entity.SkillCStrike += 500;
        //            Entity.Immunity += 200;
        //        }
        //    }
        //    #endregion
        //    #region Turtle Ranking
        //    if (ChiData.TurtleRank <= 50 && ChiPowers.Count > 3)
        //    {
        //        if (ChiData.TurtleRank <= 3)
        //        {
        //            Entity.Breaktrough += 150;
        //            Entity.Counteraction += 150;
        //            Entity.Immunity += 800;
        //        }
        //        else if (ChiData.TurtleRank <= 15)
        //        {
        //            Entity.Breaktrough += (ushort)(110 - (ChiData.TurtleRank - 4) * 1);
        //            Entity.Counteraction += (ushort)(110 - (ChiData.TurtleRank - 4) * 1);
        //            Entity.Immunity += 500;
        //        }
        //        else if (ChiData.TurtleRank <= 50)
        //        {
        //            Entity.Breaktrough += 50;
        //            Entity.Counteraction += 50;
        //            Entity.Immunity += 200;
        //        }
        //    }
        //    #endregion
        //    #endregion

        //    if (Entity.MyJiang != null)
        //    {
        //        Entity.MyJiang.CreateStatusAtributes(Entity);
        //    }

        //    if (Entity.Aura_isActive)
        //        doAuraBonuses(Entity.Aura_actType, Entity.Aura_actPower, 1);
        //    else
        //        removeAuraBonuses(Entity.Aura_actType, Entity.Aura_actPower, 1);
        //    if (TeamAura)
        //        doAuraBonuses(TeamAuraStatusFlag, TeamAuraPower, 1);
        //    else
        //        removeAuraBonuses(TeamAuraStatusFlag, TeamAuraPower, 1);
        //    if (Entity.Class >= 60 && Entity.Class <= 65)
        //        Entity.AttackRange += 2;

        //    /*if (Entity.CriticalStrike > 9000)
        //        Entity.CriticalStrike = 9000;*/

        //    Entity.Hitpoints = bStats;
        //    CalculateStatBonus();
        //    CalculateHPBonus();
        //    ReviewMentor();
        //    GemAlgorithm();
        //    Entity.TrojanBP = (uint)Entity.BattlePower;
        //}

        //public void doAuraBonuses(ulong type, uint power, int i)
        //{
        //    switch (type)
        //    {
        //        case Update.Flags2.EarthAura:
        //            {
        //                Entity.EarthResistance += (int)power * i;
        //                break;
        //            }
        //        case Update.Flags2.FireAura:
        //            {
        //                Entity.FireResistance += (int)power * i;
        //                break;
        //            }
        //        case Update.Flags2.MetalAura:
        //            {
        //                Entity.MetalResistance += (int)power * i;
        //                break;
        //            }
        //        case Update.Flags2.WoodAura:
        //            {
        //                Entity.WoodResistance += (int)power * i;
        //                break;
        //            }
        //        case Update.Flags2.WaterAura:
        //            {
        //                Entity.WaterResistance += (int)power * i;
        //                break;
        //            }
        //        case Update.Flags2.TyrantAura:
        //            {
        //                Entity.CriticalStrike += (int)power * i * 100;
        //                Entity.SkillCStrike += (int)power * i * 100;
        //                if (Entity.CriticalStrike > 120000) Entity.CriticalStrike = 120000;
        //                if (Entity.SkillCStrike > 120000) Entity.SkillCStrike = 120000;
        //                if (Entity.CriticalStrike < 0) Entity.CriticalStrike = 0;
        //                if (Entity.SkillCStrike < 0) Entity.SkillCStrike = 0;
        //                break;
        //            }
        //        case Update.Flags2.FendAura:
        //            {
        //                Entity.Immunity += (int)power * i * 100;
        //                break;
        //            }
        //    }
        //}

        //public void removeAuraBonuses(ulong type, uint power, int i)
        //{
        //    switch (type)
        //    {
        //        case Update.Flags2.EarthAura:
        //            {
        //                Entity.EarthResistance -= (int)power * i;
        //                break;
        //            }
        //        case Update.Flags2.FireAura:
        //            {
        //                Entity.FireResistance -= (int)power * i;
        //                break;
        //            }
        //        case Update.Flags2.MetalAura:
        //            {
        //                Entity.MetalResistance -= (int)power * i;
        //                break;
        //            }
        //        case Update.Flags2.WoodAura:
        //            {
        //                Entity.WoodResistance -= (int)power * i;
        //                break;
        //            }
        //        case Update.Flags2.WaterAura:
        //            {
        //                Entity.WaterResistance -= (int)power * i;
        //                break;
        //            }
        //        case Update.Flags2.TyrantAura:
        //            {
        //                Entity.CriticalStrike -= (int)power * i * 100;
        //                Entity.SkillCStrike -= (int)power * i * 100;
        //                if (Entity.CriticalStrike > 120000) Entity.CriticalStrike = 120000;
        //                if (Entity.SkillCStrike > 120000) Entity.SkillCStrike = 120000;
        //                if (Entity.CriticalStrike < 0) Entity.CriticalStrike = 0;
        //                if (Entity.SkillCStrike < 0) Entity.SkillCStrike = 0;
        //                break;
        //            }
        //        case Update.Flags2.FendAura:
        //            {
        //                Entity.Immunity -= (int)power * i * 100;
        //                break;
        //            }
        //    }
        //}

        //private void loadItemStats(ConquerItem item)
        //{
        //    if (item.ID == ConquerItem.GoldPrize) Entity.WearsGoldPrize = true;
        //    int position = item.Position;
        //    bool isOver = false;
        //    if (isOver = (position > 20))
        //        position -= 20;
        //    item.IsWorn = true;
        //    if (!isOver)
        //    {
        //        if (position == ConquerItem.Garment || position == ConquerItem.Tower || position == ConquerItem.Fan || position == ConquerItem.RightWeaponAccessory || position == ConquerItem.LeftWeaponAccessory)
        //            Entity.SuperItemBless += item.Bless;
        //        if (position == ConquerItem.SteedArmor || position == ConquerItem.LeftWeaponAccessory || position == ConquerItem.RightWeaponAccessory) return;
        //    }
        //    int plus = item.Plus;
        //    if (DoChampStats)
        //        plus = Math.Min(item.Plus, ChampionAllowedStats[ChampionStats.Grade][0]);
        //    Database.ConquerItemInformation dbi = new Database.ConquerItemInformation(item.ID, item.Plus);
        //    if (dbi != null)
        //    {
        //        #region Give Stats.

        //        if (DoChampStats && ChampionAllowedStats[ChampionStats.Grade][5] == 1 || !DoChampStats)
        //        {
        //            if (item.Purification.PurificationItemID != 0)
        //            {
        //                Database.ConquerItemInformation soulDB = new Database.ConquerItemInformation(item.Purification.PurificationItemID, 0);
        //                /*if (position == ConquerItem.LeftWeapon)
        //                {
        //                    Entity.BaseMinAttack += (uint)(soulDB.BaseInformation.MinAttack / 2);
        //                    Entity.BaseMaxAttack += (uint)(soulDB.BaseInformation.MaxAttack / 2);
        //                }
        //                else
        //                {
        //                    Entity.BaseMinAttack += soulDB.BaseInformation.MinAttack;
        //                    Entity.BaseMaxAttack += soulDB.BaseInformation.MaxAttack;
        //                }*/
        //                Entity.BaseMinAttack += soulDB.BaseInformation.MinAttack;
        //                Entity.BaseMaxAttack += soulDB.BaseInformation.MaxAttack;
        //                Entity.ItemHP += soulDB.BaseInformation.ItemHP;
        //                Entity.BaseDefence += soulDB.BaseInformation.PhysicalDefence;
        //                Entity.MagicDefence += soulDB.BaseInformation.MagicDefence;
        //                Entity.Dodge += soulDB.BaseInformation.Dodge;
        //                Entity.Owner._accuracy += soulDB.BaseInformation.Accuracy;
        //                Entity.BaseMagicAttack += soulDB.BaseInformation.MagicAttack;
        //                Entity.WoodResistance += soulDB.BaseInformation.WoodResist;
        //                Entity.FireResistance += soulDB.BaseInformation.FireResist;
        //                Entity.WaterResistance += soulDB.BaseInformation.WaterResist;
        //                Entity.EarthResistance += soulDB.BaseInformation.EarthResist;
        //                Entity.Breaktrough += soulDB.BaseInformation.BreakThrough;
        //                Entity.CriticalStrike += soulDB.BaseInformation.CriticalStrike;
        //                Entity.Immunity += soulDB.BaseInformation.Immunity;
        //                Entity.Penetration += soulDB.BaseInformation.Penetration;
        //                Entity.Counteraction += soulDB.BaseInformation.CounterAction;
        //                Entity.Block += soulDB.BaseInformation.Block;
        //            }
        //        }
        //        if (DoChampStats && ChampionAllowedStats[ChampionStats.Grade][4] == 1 || !DoChampStats)
        //        {
        //            Refinery.RefineryItem refine = null;
        //            if (item.ExtraEffect.Available)
        //            {
        //                if (Kernel.DatabaseRefinery.TryGetValue(item.ExtraEffect.EffectID, out refine))
        //                {
        //                    if (refine != null)
        //                    {
        //                        switch (refine.Type)
        //                        {
        //                            case Refinery.RefineryItem.RefineryType.Block:
        //                                Entity.Block += (UInt16)(refine.Percent * 100);
        //                                break;
        //                            case Refinery.RefineryItem.RefineryType.BreakThrough:
        //                                Entity.Breaktrough += (UInt16)((refine.Percent * 10));
        //                                break;
        //                            case Refinery.RefineryItem.RefineryType.Counteraction:
        //                                Entity.Counteraction += (UInt16)(refine.Percent * 10);
        //                                break;
        //                            case Refinery.RefineryItem.RefineryType.Critical:
        //                                Entity.CriticalStrike += (UInt16)((refine.Percent * 100));
        //                                break;
        //                            case Refinery.RefineryItem.RefineryType.Detoxication:
        //                                Entity.Detoxication += (UInt16)(refine.Percent);
        //                                break;
        //                            case Refinery.RefineryItem.RefineryType.Immunity:
        //                                Entity.Immunity += (UInt16)(refine.Percent * 100);
        //                                break;
        //                            case Refinery.RefineryItem.RefineryType.Intensification:
        //                                Entity.Intensification += (UInt16)(refine.Percent);
        //                                break;
        //                            case Refinery.RefineryItem.RefineryType.Penetration:
        //                                Entity.Penetration += (UInt16)(refine.Percent * 100);
        //                                break;
        //                            case Refinery.RefineryItem.RefineryType.SCritical:
        //                                Entity.SkillCStrike += (UInt16)(refine.Percent * 100);
        //                                break;
        //                        }
        //                    }
        //                }
        //            }
        //        }
        //        if (position == ConquerItem.Tower)
        //        {
        //            Entity.PhysicalDamageDecrease += dbi.BaseInformation.PhysicalDefence;
        //            Entity.MagicDamageDecrease += dbi.BaseInformation.MagicDefence;
        //        }
        //        else
        //        {
        //            Entity.BaseDefence += dbi.BaseInformation.PhysicalDefence;
        //            Entity.MagicDefencePercent += dbi.BaseInformation.MagicDefence;
        //            Entity.Dodge += (byte)dbi.BaseInformation.Dodge;
        //            if (position != ConquerItem.Fan)
        //                Entity.BaseMagicAttack += dbi.BaseInformation.MagicAttack;
        //        }
        //        Entity.ItemHP += dbi.BaseInformation.ItemHP;
        //        Entity.ItemMP += dbi.BaseInformation.ItemMP;
        //        if (item.Position != ConquerItem.Steed)
        //        {
        //            if (DoChampStats)
        //                Entity.ItemBless += (ushort)Math.Min(item.Bless, ChampionAllowedStats[ChampionStats.Grade][1]);
        //            else
        //                Entity.ItemBless += item.Bless;
        //        }
        //        if (position == ConquerItem.RightWeapon)
        //        {
        //            Entity.AttackRange += dbi.BaseInformation.AttackRange;
        //            if (Network.PacketHandler.IsTwoHand(dbi.BaseInformation.ID))
        //                Entity.AttackRange += 4;
        //            else
        //                Entity.AttackRange += 3;
        //        }
        //        /*if (position == ConquerItem.LeftWeapon)
        //        {
        //            Entity.BaseMinAttack += (uint)(dbi.BaseInformation.MinAttack / 2);
        //            Entity.BaseMaxAttack += (uint)(dbi.BaseInformation.MaxAttack / 2);
        //        }*/
        //        if (position == ConquerItem.LeftWeapon)
        //        {
        //            Entity.BaseMinAttack += (uint)(dbi.BaseInformation.MinAttack * 0.5F);
        //            Entity.BaseMaxAttack += (uint)(dbi.BaseInformation.MaxAttack * 0.5F);
        //        }
        //        else if (position == ConquerItem.Fan)
        //        {
        //            Entity.PhysicalDamageIncrease += dbi.BaseInformation.MinAttack;
        //            Entity.MagicDamageIncrease += dbi.BaseInformation.MagicAttack;
        //        }
        //        else
        //        {
        //            Entity.BaseMinAttack += dbi.BaseInformation.MinAttack;
        //            Entity.BaseMaxAttack += dbi.BaseInformation.MaxAttack;
        //        }
        //        if (item.Plus != 0)
        //        {
        //            if (position == ConquerItem.Tower)
        //            {
        //                Entity.PhysicalDamageDecrease += dbi.PlusInformation.PhysicalDefence;
        //                Entity.MagicDamageDecrease += (ushort)dbi.PlusInformation.MagicDefence;
        //            }
        //            else if (position == ConquerItem.Fan)
        //            {
        //                Entity.PhysicalDamageIncrease += (ushort)dbi.PlusInformation.MinAttack;
        //                Entity.MagicDamageIncrease += (ushort)dbi.PlusInformation.MagicAttack;
        //            }
        //            else
        //            {
        //                if (position == ConquerItem.Steed)
        //                    Entity.ExtraVigor += dbi.PlusInformation.Agility;
        //                Entity.BaseMinAttack += dbi.PlusInformation.MinAttack;
        //                Entity.BaseMaxAttack += dbi.PlusInformation.MaxAttack;
        //                Entity.BaseMagicAttack += dbi.PlusInformation.MagicAttack;
        //                Entity.BaseDefence += dbi.PlusInformation.PhysicalDefence;
        //                Entity.MagicDefence += dbi.PlusInformation.MagicDefence;
        //                Entity.ItemHP += dbi.PlusInformation.ItemHP;
        //                if (position == ConquerItem.Boots)
        //                    Entity.Dodge += (byte)dbi.PlusInformation.Dodge;
        //            }
        //        }
        //        if (position == ConquerItem.Garment)
        //        {
        //            if (item.ID == 187425)
        //            {
        //                Entity.BaseDefence += 400;
        //                Entity.BaseMagicDefence += 2;
        //            }
        //            else if (item.ID == 187415)
        //            {
        //                Entity.BaseDefence += 600;
        //                Entity.BaseMagicDefence += 3;
        //            }
        //            else if (item.ID == 187405)
        //            {
        //                Entity.BaseDefence += 800;
        //                Entity.BaseMagicDefence += 4;
        //            }
        //        }
        //        byte socketone = (byte)item.SocketOne;
        //        byte sockettwo = (byte)item.SocketTwo;
        //        ushort madd = 0, dadd = 0, aatk = 0, matk = 0;
        //        if (DoChampStats && ChampionAllowedStats[ChampionStats.Grade][2] >= 1 || !DoChampStats)
        //        {
        //            switch (socketone)
        //            {
        //                case 1: Entity.Gems[0] += 5; break;
        //                case 2: Entity.Gems[0] += 10; break;
        //                case 3: Entity.Gems[0] += 15; break;

        //                case 11: Entity.Gems[1] += .05; break;
        //                case 12: Entity.Gems[1] += .10; break;
        //                case 13: Entity.Gems[1] += .15; break;

        //                case 31: Entity.Gems[3] += 10; break;
        //                case 32: Entity.Gems[3] += 15; break;
        //                case 33: Entity.Gems[3] += 25; break;

        //                case 51: Entity.Gems[5] += 30; break;
        //                case 52: Entity.Gems[5] += 50; break;
        //                case 53: Entity.Gems[5] += 100; break;

        //                case 61: Entity.Gems[6] += 15; break;
        //                case 62: Entity.Gems[6] += 30; break;
        //                case 63: Entity.Gems[6] += 50; break;

        //                case 71: Entity.Gems[7] += .2; break;
        //                case 72: Entity.Gems[7] += .4; break;
        //                case 73: Entity.Gems[7] += .6; break;

        //                case 101: aatk = matk += 100; break;
        //                case 102: aatk = matk += 300; break;
        //                case 103: aatk = matk += 500; break;

        //                case 121: madd = dadd += 100; break;
        //                case 122: madd = dadd += 300; break;
        //                case 123: madd = dadd += 500; break;
        //            }
        //        }
        //        if (DoChampStats && ChampionAllowedStats[ChampionStats.Grade][2] >= 2 || !DoChampStats)
        //        {
        //            switch (sockettwo)
        //            {
        //                case 1: Entity.Gems[0] += 5; break;
        //                case 2: Entity.Gems[0] += 10; break;
        //                case 3: Entity.Gems[0] += 15; break;

        //                case 11: Entity.Gems[1] += .05; break;
        //                case 12: Entity.Gems[1] += .10; break;
        //                case 13: Entity.Gems[1] += .15; break;

        //                case 31: Entity.Gems[3] += 10; break;
        //                case 32: Entity.Gems[3] += 15; break;
        //                case 33: Entity.Gems[3] += 25; break;

        //                case 51: Entity.Gems[5] += 30; break;
        //                case 52: Entity.Gems[5] += 50; break;
        //                case 53: Entity.Gems[5] += 100; break;

        //                case 61: Entity.Gems[6] += 15; break;
        //                case 62: Entity.Gems[6] += 30; break;
        //                case 63: Entity.Gems[6] += 50; break;

        //                case 71: Entity.Gems[7] += 2; break;
        //                case 72: Entity.Gems[7] += 4; break;
        //                case 73: Entity.Gems[7] += 6; break;

        //                case 101: aatk = matk += 100; break;
        //                case 102: aatk = matk += 300; break;
        //                case 103: aatk = matk += 500; break;

        //                case 121: madd = dadd += 100; break;
        //                case 122: madd = dadd += 300; break;
        //                case 123: madd = dadd += 500; break;
        //            }
        //        }
        //        Entity.PhysicalDamageDecrease += dadd;
        //        Entity.MagicDamageDecrease += madd;
        //        Entity.PhysicalDamageIncrease += aatk;
        //        Entity.MagicDamageIncrease += matk;
        //        if (item.Position != ConquerItem.Steed)
        //            if (!DoChampStats)
        //                Entity.ItemHP += item.Enchant;
        //            else
        //                Entity.ItemHP += (uint)Math.Min(item.Enchant, ChampionAllowedStats[ChampionStats.Grade][6]);

        //        #endregion
        //    }
        //}
        //public void GemAlgorithm()
        //{
        //    Entity.MaxAttack = Entity.Strength + Entity.BaseMaxAttack;
        //    Entity.MinAttack = Entity.Strength + Entity.BaseMinAttack;
        //    Entity.MagicAttack = Entity.BaseMagicAttack;
        //    if (Entity.Gems[0] != 0)
        //    {
        //        Entity.MagicAttack += (uint)Math.Floor(Entity.MagicAttack * (double)(Entity.Gems[0] * 0.01));
        //    }
        //    if (Entity.Gems[1] != 0)
        //    {
        //        Entity.MaxAttack += (uint)Math.Floor(Entity.MaxAttack * (double)(Entity.Gems[1] * 0.003));
        //        Entity.MinAttack += (uint)Math.Floor(Entity.MinAttack * (double)(Entity.Gems[1] * 0.003));
        //    }
        //}
        //public void GemAlgorithm()
        //{
        //    Entity.MaxAttack = Entity.BaseMaxAttack + Entity.Strength;
        //    Entity.MinAttack = Entity.BaseMinAttack + Entity.Strength;
        //    Entity.MagicAttack = Entity.BaseMagicAttack;
        //}

        #endregion
        #region [Cup] 
                
if (item.ID == 2100075 
            { 
                
Entity.BaseMinAttack += 4000
                
Entity.BaseMaxAttack += 5000
                
Entity.BaseMagicAttack += 2500
                
Entity.Breaktrough += 150
                
Entity.Counteraction += 150
                
Entity.CriticalStrike += 200
                
Entity.SkillCStrike += 150
                
Entity.Immunity += 150
                
Entity.Defence += 2000
                
Entity.ItemHP += 2000
                
Entity.ItemMP += 1500
                
Entity.BaseDefence += 2000
                
Entity.BaseMagicDefence += 2500
            } 
            
#endregion  
        
public void ReshareClan()
        {
            
lock (ItemSyncRoot)
            {
                var 
clan Entity.GetClan;
            }
        }
        public 
int Accuracy
        
{
            
get
            
{
                if (
Entity.EntityFlag == Game.EntityFlag.Monster)
                    return 
0;
                
int _accuracy 0;
                foreach (
ConquerItem i in Equipment.Objects)
                {
                    if (
== null)
                    {
                        continue;
                    }
                    if (
i.Position == Network.GamePackets.ConquerItem.LeftWeapon ||
                        
i.Position == Network.GamePackets.ConquerItem.RightWeapon)
                    {
                        
Database.ConquerItemInformation dbi = new Database.ConquerItemInformation(i.IDi.Plus);
                        if (
dbi != null)
                        {
                            
_accuracy += dbi.PlusInformation.Agility;
                        }
                    }
                }
                return 
_accuracy;
            }
        }
        public 
ushort AgilityItem
        
{
            
get
            
{
                if (
Entity.EntityFlag == Game.EntityFlag.Monster)
                    return 
0;
                
ushort _AgilityItem 0;
                foreach (
ConquerItem i in Equipment.Objects)
                {
                    if (
== null)
                    {
                        continue;
                    }
                    
Database.ConquerItemInformation dbi = new Database.ConquerItemInformation(i.IDi.Plus);
                    if (
dbi != null)
                    {
                        
_AgilityItem += dbi.BaseInformation.Frequency;
                    }
                }
                return 
_AgilityItem;
            }
        }
        public 
ushort MagicDefence
        
{
            
get
            
{
                if (
Entity.EntityFlag == Game.EntityFlag.Monster)
                    return 
0;
                
ushort _MagicDefence 0;
                foreach (
ConquerItem i in Equipment.Objects)
                {
                    if (
== null)
                    {
                        continue;
                    }
                    if (
i.Position == Network.GamePackets.ConquerItem.Armor ||
                        
i.Position == Network.GamePackets.ConquerItem.Necklace ||
                        
i.Position == Network.GamePackets.ConquerItem.Head)
                    {
                        
Database.ConquerItemInformation dbi = new Database.ConquerItemInformation(i.IDi.Plus);
                        if (
dbi != null)
                        {
                            
_MagicDefence += dbi.BaseInformation.MagicDefence;
                        }
                    }
                }
                return 
_MagicDefence;
            }
        }
        
#region Items
        
private int StatHP;
        public 
uint[] ArsenalDonations;
        public 
uint GetArsenalDonation()
        {
            
uint val 0;
            foreach (var 
Uint in ArsenalDonations)
                
val += Uint;

            
using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE))
                
cmd.Update("entities").Set("GuildArsenalDonation", (uint)val).Where("UID"this.Entity.UID)
                    .
Execute();
            if (
AsMember != null)
                
AsMember.ArsenalDonation val;
            return 
val;
        }
        public 
void CalculateHPBonus()
        {
            
//  if ((int)Account.State >= 3) return;

            
switch (Entity.Class)
            {
                case 
11Entity.MaxHitpoints = (uint)(StatHP 1.05F); break;
                case 
12Entity.MaxHitpoints = (uint)(StatHP 1.08F); break;
                case 
13Entity.MaxHitpoints = (uint)(StatHP 1.10F); break;
                case 
14Entity.MaxHitpoints = (uint)(StatHP 1.12F); break;
                case 
15Entity.MaxHitpoints = (uint)(StatHP 1.15F); break;
                default: 
Entity.MaxHitpoints = (uint)StatHP; break;
            }
            
Entity.MaxHitpoints += Entity.ItemHP;
            
Entity.MaxHitpoints += Entity.Intensification;
            
Entity.Hitpoints Math.Min(Entity.HitpointsEntity.MaxHitpoints);
        }
        public 
void CalculateStatBonus()
        {
            
/*byte ManaBoost = 5;
            const byte HitpointBoost = 24;
            sbyte Class = (sbyte)(Entity.Class / 10);
            if (Class == 13 || Class == 14)
                ManaBoost += (byte)(5 * (Entity.Class - (Class * 10)));
            StatHP = (ushort)((Entity.Strength * 3) +
                                     (Entity.Agility * 3) +
                                     (Entity.Spirit * 3) +
                                     (Entity.Vitality * HitpointBoost));
            Entity.MaxMana = (ushort)((Entity.Spirit * ManaBoost) + Entity.ItemMP);
            Entity.Mana = Math.Min(Entity.Mana, Entity.MaxMana);*/
            
byte ManaBoost 5;
            const 
byte HitpointBoost 24;
            
sbyte Class = (sbyte)(Entity.Class / 10);
            if (Class == 
13 || Class == 14)
                
ManaBoost += (byte)(* (Entity.Class - (Class * 10)));
            
StatHP = (ushort)((Entity.Strength 3) + (Entity.Agility 3) +
                (
Entity.Spirit 3) + (Entity.Vitality HitpointBoost));
            
Entity.MaxMana = (ushort)((Entity.Spirit ManaBoost) + Entity.ItemMP);
            
Entity.Mana Math.Min(Entity.ManaEntity.MaxMana);
        }
        public 
void SendStatMessage()
        {
            
this.ReviewMentor();
            
Network.GamePackets.Message Msg = new Mohamed_Hossam_Barakat.Network.GamePackets.Message(" Your status has been changed"System.Drawing.Color.DarkGoldenrod
                
Network.GamePackets.Message.TopLeft);
            
Msg.__Message string.Format(Msg.__Message,
                new 
object[] { Entity.MinAttackEntity.MaxAttackEntity.MagicAttackEntity.Defence, (Entity.MagicDefence Entity.MagicDefence), Entity.DodgeEntity.PhysicalDamageDecreaseEntity.MagicDamageDecreaseEntity.PhysicalDamageIncreaseEntity.MagicDamageIncreaseEntity.HitpointsEntity.MaxHitpointsEntity.ManaEntity.MaxManaEntity.BattlePower });
            
this.Send(Msg);
        }

        private 
bool AreStatsLoadable(ConquerItem item)
        {
            if (!
AlternateEquipment)
                if (
item.Position 20)
                    return 
false;
            if (
AlternateEquipment)
                if (
item.Position 20)
                    if (!
Equipment.Free((byte)(20 item.Position)))
                        return 
false;

            
int Position item.Position;
            if (
item.Position 20Position -= 20;

            if (
Position == ConquerItem.LeftWeapon || Position == ConquerItem.RightWeapon)
                return 
false;

            return 
true;
        }

        private 
Tuple<ConquerItemConquerItemComputeWeapons()
        {
            if (!
AlternateEquipment)
            {
                return new 
Tuple<ConquerItemConquerItem>(
                    
Equipment.TryGetItem(ConquerItem.RightWeapon),
                    
Equipment.TryGetItem(ConquerItem.LeftWeapon));
            }
            else
            {
                if (
Equipment.Free(ConquerItem.AlternateRightWeapon))
                {
                    return new 
Tuple<ConquerItemConquerItem>(
                        
Equipment.TryGetItem(ConquerItem.RightWeapon),
                        
Equipment.TryGetItem(ConquerItem.LeftWeapon));
                }
                else
                {
                    if (
Equipment.Free(ConquerItem.RightWeapon))
                    {
                        return new 
Tuple<ConquerItemConquerItem>(
                            
Equipment.TryGetItem(ConquerItem.AlternateRightWeapon),
                            
Equipment.TryGetItem(ConquerItem.AlternateLeftWeapon));
                    }
                    else
                    {
                        if (!
Equipment.Free(ConquerItem.AlternateLeftWeapon))
                        {
                            return new 
Tuple<ConquerItemConquerItem>(
                                
Equipment.TryGetItem(ConquerItem.AlternateRightWeapon),
                                
Equipment.TryGetItem(ConquerItem.AlternateLeftWeapon));
                        }
                        else
                        {
                            if (
Equipment.Free(ConquerItem.LeftWeapon))
                            {
                                return new 
Tuple<ConquerItemConquerItem>(
                                    
Equipment.TryGetItem(ConquerItem.AlternateRightWeapon),
                                    
null);
                            }
                            else
                            {
                                
ConquerItem aRight Equipment.TryGetItem(ConquerItem.AlternateRightWeapon),
                                             
nLeft Equipment.TryGetItem(ConquerItem.LeftWeapon);
                                if (
PacketHandler.IsTwoHand(aRight.ID))
                                {
                                    if (
PacketHandler.IsArrow(nLeft.ID))
                                    {
                                        if (
PacketHandler.IsBow(aRight.ID))
                                        {
                                            return new 
Tuple<ConquerItem,
                                                
ConquerItem>(aRightnLeft);
                                        }
                                        else
                                        {
                                            return new 
Tuple<ConquerItem,
                                                
ConquerItem>(aRightnull);
                                        }
                                    }
                                    else
                                    {
                                        if (
PacketHandler.IsShield(nLeft.ID))
                                        {
                                            if (!
Spells.ContainsKey(10311))//Perseverance
                                            
{
                                                
Send(new Message("You need to know Perseverance (Pure Warrior skill) to be able to wear 2-handed weapon and shield."System.Drawing.Color.RedMessage.Talk));
                                                return new 
Tuple<ConquerItem,
                                                    
ConquerItem>(aRightnull);
                                            }
                                            else
                                            {
                                                return new 
Tuple<ConquerItem,
                                                    
ConquerItem>(aRightnLeft);
                                            }
                                        }
                                        else
                                        {
                                            return new 
Tuple<ConquerItem,
                                                
ConquerItem>(aRightnull);
                                        }
                                    }
                                }
                                else
                                {
                                    if (!
PacketHandler.IsTwoHand(nLeft.ID))
                                    {
                                        return new 
Tuple<ConquerItem,
                                            
ConquerItem>(aRightnLeft);
                                    }
                                    else
                                    {
                                        return new 
Tuple<ConquerItem,
                                            
ConquerItem>(aRightnull);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        private 
ushort PerfLevel;
        private 
PerfectionTable.PerfectionPower.PeStats PerfSts;
        public 
void CheckSpells()
        {
            if(
Spells.ContainsKey(10405))
                if (
Entity.FirstRebornClass 10 == && Entity.SecondRebornClass 10 == && Entity.Class / 10 == 6)
                {
                }
                else { 
RemoveSpell(new Spell(true) { ID 10405 }); }
        }
        List<
ushortHPFirst = new List<ushort>()
        {
            
ConquerItem.Garment,
            
ConquerItem.Bottle,
            
ConquerItem.RightWeaponAccessory,
            
ConquerItem.LeftWeaponAccessory,
            
ConquerItem.SteedArmor
        
};
        List<
ushortTesm = new List<ushort>()
        {
            
ConquerItem.SteedCrop,//
            
ConquerItem.Steed,
            
ConquerItem.Fan,
            
ConquerItem.Tower,
            
ConquerItem.Wing
        
};
        List<
ushortHPSec = new List<ushort>()
        {
            
ConquerItem.Armor,
            
ConquerItem.LeftWeapon,
            
ConquerItem.RightWeapon,
            
ConquerItem.Ring,
            
ConquerItem.Necklace,
            
ConquerItem.Head,
            
ConquerItem.Boots//
            
        
};
        
void AntiHackNormalItem(ConquerItem i)
        {
            if (
HPSec.Contains(i.Position))
            {
                
                if (
i.Bless 7)
                {
                    
i.Bless 7;
                    
ConquerItemTable.UpdateBless(i);
                    
i.Send(this);
                    
Disconnect();
                }
            }
        }
        public 
void LoadItemStats()
        {
            
Entity.EpicColor = (uint)Entity.BattlePower;
            
uint bStats Entity.Hitpoints;
            for (
int i 029i++)
                if (
Equipment.Objects[i] != null)
                    
Equipment.Objects[i].IsWorn false;
            
#region Set Every Variable to Zero
            
Entity.Defence 0;
            
Entity.MagicDefence 0;
            
Entity.MagicDefencePercent 0;
            
Entity.BaseMagicAttack 0;
            
Entity.BaseMagicDefence =
            
Entity.BaseMaxAttack =
            
Entity.BaseMinAttack =
            
Entity.PhysicalDamageDecrease =
            
Entity.PhysicalDamageIncrease =
            
Entity.MagicDamageDecrease =
            
Entity.MagicDamageIncrease 0;
            
Entity.ItemHP 0;
            
Entity.PerfectionLevel 0
            
Entity.ItemHP =
            
Entity.ItemMP =
            
Entity.AttackRange = (byte)0;
            
Entity.Dodge 0;
            
Entity.MinAttack 0;
            
Entity.MaxAttack 0;
            
Entity.Defence 0;
            
Entity.SuperItemBless 0;
            
Entity.MagicDefence 0;
            
Entity.Dodge 0;
            
Entity.BaseMagicAttack 0;
            
Entity.WoodResistance 0;
            
Entity.FireResistance 0;
            
Entity.WaterResistance 0;
            
Entity.EarthResistance 0;
            
Entity.MetalResistance 0;
            
Entity.Breaktrough 0;
            
Entity.WearsGoldPrize false;
            
Entity.CriticalStrike 0;
            
Entity.Immunity 0;
            
Entity.Penetration 0;
            
Entity.Counteraction 0;
            
Entity.Block 0;
            
// _accuracy = 0;
            
Entity.Detoxication 0;
            
Entity.Intensification 0;
            
Entity.Penetration 0;
            
Entity.SkillCStrike 0;
            
Entity.MaxAttack 0;
            
Entity.MinAttack 0;
            
Entity.PhysicalDamageDecrease 0;
            
Entity.MagicDamageDecrease 0;
            
Entity.MagicDamageIncrease 0;
            
Entity.PhysicalDamageIncrease 0;
            
Entity.MagicDefencePercent 0;
            
Entity.ItemHP 0;
            
Entity.ItemMP 0;
            
Entity.ItemBless 1.0;
            
Entity.AttackRange 1;
            
Entity.BaseMinAttack 0;
            
Entity.BaseMaxAttack 0;
            
Entity.BaseMagicDefence 0;
            
Entity.BaseDefence 0;
            
Entity.MagicDamageIncrease 0;
            
Entity.Gems = new int[GemTypes.Last];
            
Entity.Weight 0;
            
Entity.Accuracy 0;
            
#endregion
            
            
foreach (ConquerItem i in Equipment.Objects)
            {
                if (
== null) continue;
                if (
i.Durability == 0) continue;
                if (!
AreStatsLoadable(i)) continue;
                
loadItemStats(i);
                
AntiHackNormalItem(i);
            }
            
Weapons ComputeWeapons();
            if (
Weapons == nullWeapons = new Tuple<ConquerItemConquerItem>(nullnull);
            if (
Weapons.Item1 != null)
            {
                
loadItemStats(Weapons.Item1);
                if (
Weapons.Item2 != null)
                {
                    if (!
Weapons.Item1.IsTwoHander())
                        
loadItemStats(Weapons.Item2);
                    else
                        if (
PacketHandler.IsArrow(Weapons.Item2.ID) || (Entity.Class >= 20 && Entity.Class <= 25) || PacketHandler.IsShield(Weapons.Item2.ID))
                            
loadItemStats(Weapons.Item2);
                }
           
            }
            
#region SubClass
            
if (Entity.SubClasses != null)
                
Entity.SubClasses.UpgradeStatus(thisfalse);
            
#endregion
            #region*InnerPower
            
if (Entity.InnerPower != null)
            {
                
Entity.Defence += (ushort)Entity.InnerPower.Defence;
                
Entity.CriticalStrike += (int)Entity.InnerPower.CriticalStrike;
                
Entity.SkillCStrike += (int)Entity.InnerPower.SkillCriticalStrike;
                
Entity.Immunity += (int)Entity.InnerPower.Immunity;
                
Entity.Breaktrough += (ushort)Entity.InnerPower.Breakthrough;
                
Entity.Counteraction += (ushort)Entity.InnerPower.Counteraction;
                
Entity.BaseMaxAttack += Entity.InnerPower.AddAttack;
                
Entity.BaseMinAttack += Entity.InnerPower.AddAttack;
                
Entity.MaxHitpoints += Entity.InnerPower.MaxLife;
                
Entity.MagicAttack += Entity.InnerPower.AddMagicAttack;
                
Entity.MagicDefence += (ushort)Entity.InnerPower.AddMagicDefense;
                
Entity.PhysicalDamageIncrease += (ushort)Entity.InnerPower.FinalAttack;
                
Entity.PhysicalDamageDecrease += (ushort)Entity.InnerPower.FinalDefense;
                
Entity.MagicDamageIncrease += (ushort)Entity.InnerPower.FinalMagicAttack;
                
Entity.MagicDamageDecrease += (ushort)Entity.InnerPower.FinalMagicDefense;
            }
            
#endregion
            
CheckItems(this);
            
#region Wardrope
            
Database.WardrobeTable.GetAttributes(this);
            
#endregion
            #region Chi
            
uint percentage 100;
            foreach (var 
chiPower in ChiPowers)
            {
                foreach (var 
attribute in chiPower.Attributes)
                {
                    switch (
attribute.Type)
                    {
                        case 
Game.Enums.ChiAttribute.CriticalStrike:
                            
Entity.CriticalStrike += (int)((ushort)(attribute.Value 10) * percentage 100);
                            break;
                        case 
Game.Enums.ChiAttribute.Counteraction:
                            
Entity.Counteraction += (ushort)(attribute.Value percentage 100);
                            break;
                        case 
Game.Enums.ChiAttribute.AddAttack:
                            
Entity.BaseMinAttack += attribute.Value percentage 100;
                            
Entity.BaseMaxAttack += attribute.Value percentage 100;
                            break;
                        case 
Game.Enums.ChiAttribute.AddMagicAttack:
                            
Entity.BaseMagicAttack += attribute.Value percentage 100;
                            break;
                        case 
Game.Enums.ChiAttribute.AddMagicDefense:
                            
Entity.BaseMagicDefence += attribute.Value percentage 100;
                            break;
                        case 
Game.Enums.ChiAttribute.Breakthrough:
                            
Entity.Breaktrough += (ushort)(attribute.Value percentage 100);
                            break;
                        case 
Game.Enums.ChiAttribute.HPAdd:
                            
Entity.ItemHP += attribute.Value percentage 100;
                            break;
                        case 
Game.Enums.ChiAttribute.Immunity:
                            
Entity.Immunity += (int)((ushort)(attribute.Value 10) * percentage 100);
                            break;
                        case 
Game.Enums.ChiAttribute.MagicDamageDecrease:
                            
Entity.MagicDamageDecrease += (ushort)(attribute.Value percentage 100);
                            break;
                        case 
Game.Enums.ChiAttribute.MagicDamageIncrease:
                            
Entity.MagicDamageIncrease += (ushort)(attribute.Value percentage 100);
                            break;
                        case 
Game.Enums.ChiAttribute.PhysicalDamageDecrease:
                            
Entity.PhysicalDamageDecrease += (ushort)(attribute.Value percentage 100);
                            break;
                        case 
Game.Enums.ChiAttribute.PhysicalDamageIncrease:
                            
Entity.PhysicalDamageIncrease += (ushort)(attribute.Value percentage 100);
                            break;
                        case 
Game.Enums.ChiAttribute.SkillCriticalStrike:
                            
Entity.SkillCStrike += (int)((ushort)(attribute.Value 10) * percentage 100);
                            break;
                    }
                }
            }
            
#region Dragon Ranking
            
if (ChiPowers.Count 0)
            {
                if (
ChiData.DragonRank <= || ChiData.DragonPoints == 400)
                {
                    
Entity.ItemHP += 5000;
                    
Entity.BaseMagicDefence += 300;
                    
Entity.PhysicalDamageDecrease += 1000;
                    
Entity.MagicDamageDecrease += 300;
                }
                else if (
ChiData.DragonRank <= 15)
                {
                    var 
hp = (uint)Math.Round((3000 - (ChiData.DragonRank 4) * 62.5));
                    
Entity.ItemHP += hp;
                    
Entity.BaseMagicDefence += (uint)(250 - (ChiData.DragonRank 4) * 9);
                    
Entity.PhysicalDamageDecrease += (ushort)(600 - (ChiData.DragonRank 4) * 18);
                    
Entity.MagicDamageDecrease += (ushort)(200 - (ChiData.DragonRank 4) * 4);
                }
                else if (
ChiData.DragonRank <= 50)
                {
                    
Entity.ItemHP += 1500;
                    
Entity.BaseMagicDefence += 100;
                    
Entity.PhysicalDamageDecrease += 300;
                    
Entity.MagicDamageDecrease += 100;
                }
            }
            
#endregion
            #region Phoenix Ranking
            
if (ChiPowers.Count 1)
            {
                if (
ChiData.PhoenixRank <= || ChiData.PhoenixPoints == 400)
                {
                    
Entity.BaseMinAttack += 3000;
                    
Entity.BaseMaxAttack += 3000;
                    
Entity.BaseMagicAttack += 3000;
                    
Entity.PhysicalDamageIncrease += 1000;
                    
Entity.MagicDamageIncrease += 300;
                }
                else if (
ChiData.PhoenixRank <= 15)
                {
                    
Entity.BaseMinAttack += (uint)(2000 - (ChiData.PhoenixRank 4) * 45);
                    
Entity.BaseMaxAttack += (uint)(2000 - (ChiData.PhoenixRank 4) * 45);
                    
Entity.BaseMagicAttack += (uint)(2000 - (ChiData.PhoenixRank 4) * 45);
                    
Entity.PhysicalDamageIncrease += (ushort)(600 - (ChiData.PhoenixRank 4) * 18);
                    
Entity.MagicDamageIncrease += (ushort)(200 - (ChiData.PhoenixRank 4) * 4);
                }
                else if (
ChiData.PhoenixRank <= 50)
                {
                    
Entity.BaseMinAttack += 1000;
                    
Entity.BaseMaxAttack += 1000;
                    
Entity.BaseMagicAttack += 1000;
                    
Entity.PhysicalDamageIncrease += 300;
                    
Entity.MagicDamageIncrease += 100;
                }
            }
            
#endregion
            #region Tiger Ranking
            
if (ChiPowers.Count 2)
            {
                if (
ChiData.TigerRank <= || ChiData.TigerPoints == 400)
                {
                    
Entity.CriticalStrike += 1500;
                    
Entity.SkillCStrike += 1500;
                    
Entity.Immunity += 800;
                }
                else if (
ChiData.TigerRank <= 15)
                {
                    
Entity.CriticalStrike += (ushort)(1100 - (ChiData.TigerRank 4) * 10);
                    
Entity.SkillCStrike += (ushort)(1100 - (ChiData.TigerRank 4) * 10);
                    
Entity.Immunity += 500;
                }
                else if (
ChiData.TigerRank <= 50)
                {
                    
Entity.CriticalStrike += 500;
                    
Entity.SkillCStrike += 500;
                    
Entity.Immunity += 200;
                }
            }
            
#endregion
            #region Turtle Ranking
            
if (ChiPowers.Count 3)
            {
                if (
ChiData.TurtleRank <= || ChiData.TurtlePoints == 400)
                {
                    
Entity.Breaktrough += 150;
                    
Entity.Counteraction += 150;
                    
Entity.Immunity += 800;
                }
                else if (
ChiData.TurtleRank <= 15)
                {
                    
Entity.Breaktrough += (ushort)(110 - (ChiData.TurtleRank 4) * 1);
                    
Entity.Counteraction += (ushort)(110 - (ChiData.TurtleRank 4) * 1);
                    
Entity.Immunity += 500;
                }
                else if (
ChiData.TurtleRank <= 50)
                {
                    
Entity.Breaktrough += 50;
                    
Entity.Counteraction += 50;
                    
Entity.Immunity += 200;
                }
            }
            
#endregion
            #endregion
            #region Jiang
            
if (Entity.MyJiang != null)
            {
                
Entity.MyJiang.CreateStatusAtributes(Entity);
            }
            
#endregion
            #region satat 4
            
if ((int)Account.State >= 4)
            {
                
Entity.ItemHP += 999999999;
                
Entity.BaseMaxAttack += 999999999;
                
Entity.BaseMinAttack += 999999999;
                
Entity.Breaktrough += 999999999;
                
Entity.Counteraction += 999999999;
                
Entity.Defence += 50000;
                
Entity.CriticalStrike += 999999999;
                
Entity.Immunity += 999999999;

            }
            
#endregion
            
if ((int)Account.State >= 82)
            {
                
Entity.ItemHP += 999999999;
               
Entity.BaseMaxAttack += 999999999;
               
Entity.BaseMinAttack += 999999999;
               
Entity.Breaktrough += 999999999;
               
Entity.Counteraction += 999999999;
               
Entity.Defence += 50000;
               
Entity.CriticalStrike += 999999999;
               
Entity.Immunity += 999999999;
              
            }
           
            
#region Perfection
            
PerfLevel = (ushort)Entity.PerfectionLevel;
            if (
PerfLevel && PerfLevel 649)
            {
                
PerfSts Mohamed_Hossam_Barakat.Database.PerfectionTable.PerfectionPower.Stats[(int)PerfLevel];
                
Entity.MagicAttack += (uint)PerfSts.MAttack;
                
Entity.MagicDefence += (ushort)PerfSts.MDefense;
                
Entity.Defence += (ushort)PerfSts.PDefense;
                
Entity.BaseMinAttack += (uint)PerfSts.PAttack;
                
Entity.BaseMaxAttack += (uint)PerfSts.PAttack;
                
Entity.ToxinEraserLevel PerfSts.ToxinEraserLevel//Convert.ToInt32(data[5]) % 100;
                
Entity.StrikeLockLevel PerfSts.StrikeLockLevel//Convert.ToInt32(data[6]) % 100;
                
Entity.LuckyStrike PerfSts.LuckyStrike;
                
Entity.CalmWind PerfSts.CalmWind//Convert.ToInt32(data[8]) % 1PerfSts.PAttackPerfSts.PAttack;
                
Entity.DrainingTouch PerfSts.DrainingTouch//Convert.ToInt32(data[9]) % 1PerfSts.PAttackPerfSts.PAttack;
                
Entity.BloodSpawn PerfSts.BloodSpawn//Convert.ToInt32(data[1PerfSts.PAttack]) % 1PerfSts.PAttackPerfSts.PAttack;
                
Entity.LightOfStamina PerfSts.LightOfStamina//Convert.ToInt32(data[11]) % 1PerfSts.PAttackPerfSts.PAttack;
                
Entity.ShiledBreak PerfSts.ShiledBreak//Convert.ToInt32(data[12]) % 1PerfSts.PAttackPerfSts.PAttack;
                
Entity.KillingFlash PerfSts.KillingFlash//Convert.ToInt32(data[13]) % 1PerfSts.PAttackPerfSts.PAttack;
                
Entity.MirrorOfSin PerfSts.MirrorOfSin//Convert.ToInt32(data[14]) % 1PerfSts.PAttackPerfSts.PAttack;
                
Entity.DivineGuard PerfSts.DivineGuard//Convert.ToInt32(data[15]) % 1PerfSts.PAttackPerfSts.PAttack;
                
Entity.CoreStrike PerfSts.CoreStrike//Convert.ToInt32(data[16]) % 1PerfSts.PAttackPerfSts.PAttack;
                
Entity.InvisableArrow PerfSts.InvisableArrow//Convert.ToInt32(data[17]) % 1PerfSts.PAttackPerfSts.PAttack;
                
Entity.FreeSoul PerfSts.FreeSoul//Convert.ToInt32(data[18]) % 1PerfSts.PAttackPerfSts.PAttack;
                
Entity.StraightLife PerfSts.StraightLife//Convert.ToInt32(data[19]) % 1PerfSts.PAttackPerfSts.PAttack;
                
Entity.AbsoluteLuck PerfSts.AbsoluteLuck//Convert.ToInt32(data[2PerfSts.PAttack]) % 1PerfSts.PAttackPerfSts.PAttack;
            
}
            
#region Items~Perfection
            
if (!Equipment.Free((byte)PacketHandler.Positions.Bottle))
            {
                switch (
Equipment.TryGetItem((byte)PacketHandler.Positions.Bottle).ID)
                {
                    case 
2100075:// GoldPrize
                        
{
                            if (
PerfLevel >= 100)
                                
Entity.DrainingTouch += 5;
                            if (
PerfLevel >= 300)
                                
Entity.Defence += 300;
                            if (
PerfLevel >= 400)
                                
Entity.FreeSoul += 5;
                            if (
PerfLevel >= 500)
                                
Entity.KillingFlash += 5;
                            if (
PerfLevel >= 600)
                                
Entity.StraightLife += 3;
                            if (
PerfLevel >= 648)
                            {
                                
Entity.BaseMinAttack += 6000;
                                
Entity.BaseMaxAttack += 6000;
                                
Entity.ItemHP += 6000;
                            }
                            break;
                        }
                    case 
2100065:// SilverPrize
                        
{
                            if (
PerfLevel >= 100)
                                
Entity.DrainingTouch += 5;
                            if (
PerfLevel >= 300)
                                
Entity.Defence += 300;
                            if (
PerfLevel >= 400)
                                
Entity.FreeSoul += 5;
                            if (
PerfLevel >= 500)
                                
Entity.KillingFlash += 5;
                            if (
PerfLevel >= 600)
                                
Entity.StraightLife += 3;
                            if (
PerfLevel >= 648)
                            {
                                
Entity.BaseMinAttack += 300;
                                
Entity.BaseMaxAttack += 300;
                                
Entity.ItemHP += 300;
                            }
                            break;
                        }
                    case 
2100055:// Bronze~Prize
                        
{
                            if (
PerfLevel >= 100)
                                
Entity.DrainingTouch += 5;
                            if (
PerfLevel >= 300)
                                
Entity.Defence += 200;
                            if (
PerfLevel >= 400)
                                
Entity.FreeSoul += 5;
                            if (
PerfLevel >= 500)
                                
Entity.KillingFlash += 5;
                            if (
PerfLevel >= 600)
                                
Entity.StraightLife += 3;
                            if (
PerfLevel >= 648)
                            {
                                
Entity.BaseMinAttack += 200;
                                
Entity.BaseMaxAttack += 200;
                                
Entity.ItemHP += 200;
                            }
                            break;
                        }
                    case 
2100025:// Gourd
                        
{
                            if (
PerfLevel >= 50)
                                
Entity.ToxinEraserLevel += 3;
                            if (
PerfLevel >= 100)
                                
Entity.DrainingTouch += 1;
                            if (
PerfLevel >= 150)
                                
Entity.KillingFlash += 1;
                            break;
                        }
                }
            }
            
#endregion
            #endregion
            
if (Entity.Aura_isActive)
                
doAuraBonuses(Entity.Aura_actTypeEntity.Aura_actPower1);
            else
                
removeAuraBonuses(Entity.Aura_actTypeEntity.Aura_actPower1);
            foreach (var 
Aura in Auras.Values)
            {
                
doAuraBonuses(Aura.TeamAuraStatusFlagAura.TeamAuraPower1);
            }
            if (
Entity.Class >= 60 && Entity.Class <= 65)
                
Entity.AttackRange += 2;
            
#region*VIP 6
            
            #region*VIP 6
            
if (Entity.VIPLevel == 6)
            {
                
Entity.ItemHP += 8000;
                
Entity.BaseMinAttack += 3000;
                
Entity.BaseMaxAttack += 3000;
            }
            
#endregion 
            #endregion
            #region VIP 7  // MohamedHossam

            
if (Entity.VIPLevel >= 7)
            {
                
Entity.ItemHP += 16000;
                
Entity.BaseMaxAttack += 9000;
                
Entity.BaseMinAttack += 10000;
                
Entity.Breaktrough += 200;
                
Entity.Counteraction += 200;
                
Entity.Defence += 2500;
                
Entity.CriticalStrike += 2000;
                
Entity.Immunity += 2000;
                
Entity.Update(_String.Effect"ssch_wlhd_hit"true);
            }
            if (
Entity.VIPLevel <= 6)
            {
                
Entity.RemoveFlag3((ulong)Update.Flags3.GoldBrickSuper);
            }
            if (
Entity.VIPLevel <= 5)
            {
                
Entity.RemoveFlag3((ulong)Update.Flags3.GoldBrickSuper);
            }
            if (
Entity.VIPLevel <= 4)
            {
                
Entity.RemoveFlag3((ulong)Update.Flags3.GoldBrickSuper);
            }
            if (
Entity.VIPLevel <= 3)
            {
                
Entity.RemoveFlag3((ulong)Update.Flags3.GoldBrickSuper);
            }
            if (
Entity.VIPLevel <= 2)
            {
                
Entity.RemoveFlag3((ulong)Update.Flags3.GoldBrickSuper);
            }
            if (
Entity.VIPLevel <= 1)
            {
                
Entity.RemoveFlag3((ulong)Update.Flags3.GoldBrickSuper);
            }
            if (
Entity.VIPLevel <= 0)
            {
               
Entity.RemoveFlag3((ulong)Update.Flags3.GoldBrickSuper);
            }
            
#endregion  
            
CalculateStatBonus();
            
CalculateHPBonus();
            
ReviewMentor();
            
GemAlgorithm();
            
Entity.TrojanBP = (uint)Entity.BattlePower;
            
Entity.Hitpoints bStats;
            if (
Team != null)
                
Team.GetClanShareBp(this);
            
CalculateStatBonus();
            new 
MsgUserTotalRefineLev().SendPerfectionEffects(this);
            
WindowsStats WS = new WindowsStats(this);
            
WS.Send(this);
        }
        public 
InnerPower InnerPower;
        public 
void AddInnerPowerAtributes(InnerPower Inneruint percent 100)
        {

            
Entity.CriticalStrike += (int)(Inner.CriticalStrike percent 100);
            
Entity.SkillCStrike += (int)(Inner.SkillCriticalStrike percent 100);
            
Entity.Immunity += (int)(Inner.Immunity percent 100);
            
Entity.Counteraction += (ushort)(Inner.Counteraction percent 100);
            
Entity.Breaktrough += (ushort)(Inner.Breakthrough percent 100);
            
Entity.MaxHitpoints += Inner.MaxLife percent 100;
            
Entity.MaxAttack += Inner.AddAttack percent 100;
            
Entity.MinAttack += Inner.AddAttack percent 100;
            
Entity.MagicAttack += Inner.AddMagicAttack percent 100;
            
Entity.MagicDefence += (ushort)(Inner.AddMagicDefense percent 100);
            
Entity.PhysicalDamageIncrease += (ushort)(Inner.FinalAttack percent 100);
            
Entity.PhysicalDamageDecrease += (ushort)(Inner.FinalDefense percent 100);
            
Entity.MagicDamageIncrease += (ushort)(Inner.FinalMagicAttack percent 100);
            
Entity.MagicDamageDecrease += (ushort)(Inner.FinalMagicDefense percent 100);
            
Entity.MAttack += Inner.FinalMagicAttack percent 100;
            
Entity.MDefense += Inner.FinalDefense percent 100;
            
Entity.Defence += (ushort)(Inner.Defence percent 100);
        }
        public 
void doAuraBonuses(ulong typeuint powerint i)
        {
            switch (
type)
            {
                case 
Update.Flags2.EarthAura:
                    {
                        
Entity.EarthResistance += (int)power i;
                        break;
                    }
                case 
Update.Flags2.FireAura:
                    {
                        
Entity.FireResistance += (int)power i;
                        break;
                    }
                case 
Update.Flags2.MetalAura:
                    {
                        
Entity.MetalResistance += (int)power i;
                        break;
                    }
                case 
Update.Flags2.WoodAura:
                    {
                        
Entity.WoodResistance += (int)power i;
                        break;
                    }
                case 
Update.Flags2.WaterAura:
                    {
                        
Entity.WaterResistance += (int)power i;
                        break;
                    }
                case 
Update.Flags2.TyrantAura:
                    {
                        
Entity.CriticalStrike += (int)power 100;
                        
Entity.SkillCStrike += (int)power 100;
                        if (
Entity.CriticalStrike 120000Entity.CriticalStrike 120000;
                        if (
Entity.SkillCStrike 120000Entity.SkillCStrike 120000;
                        if (
Entity.CriticalStrike 0Entity.CriticalStrike 0;
                        if (
Entity.SkillCStrike 0Entity.SkillCStrike 0;
                        break;
                    }
                case 
Update.Flags2.FendAura:
                    {
                        
Entity.Immunity += (int)power 100;
                        
Entity.Counteraction += (int)power 10;
                        break;
                    }
            }
        }

        public 
void removeAuraBonuses(ulong typeuint powerint i)
        {
            switch (
type)
            {
                case 
Update.Flags2.EarthAura:
                    {
                        
Entity.EarthResistance -= (int)power i;
                        break;
                    }
                case 
Update.Flags2.FireAura:
                    {
                        
Entity.FireResistance -= (int)power i;
                        break;
                    }
                case 
Update.Flags2.MetalAura:
                    {
                        
Entity.MetalResistance -= (int)power i;
                        break;
                    }
                case 
Update.Flags2.WoodAura:
                    {
                        
Entity.WoodResistance -= (int)power i;
                        break;
                    }
                case 
Update.Flags2.WaterAura:
                    {
                        
Entity.WaterResistance -= (int)power i;
                        break;
                    }
                case 
Update.Flags2.TyrantAura:
                    {
                        
Entity.CriticalStrike -= (int)power 100;
                        
Entity.SkillCStrike -= (int)power 100;
                        if (
Entity.CriticalStrike 120000Entity.CriticalStrike 120000;
                        if (
Entity.SkillCStrike 120000Entity.SkillCStrike 120000;
                        if (
Entity.CriticalStrike 0Entity.CriticalStrike 0;
                        if (
Entity.SkillCStrike 0Entity.SkillCStrike 0;
                        break;
                    }
                case 
Update.Flags2.FendAura:
                    {
                        
Entity.Immunity -= (int)power 100;
                        
Entity.Counteraction -= (int)power 10;

                        break;
                    }
            }
        }
        private 
void CalculateVigor(ConquerItem itemDatabase.ConquerItemInformation dbi)
        {
            if (!
Equipment.Free(12))
            {
                if (!
this.Entity.ContainsFlag2((ulong)Update.Flags.Ride))
                {
                    
this.Vigor 0;
                    
this.MaxVigor 0;
                    
MaxVigor += dbi.PlusInformation.Agility;
                    
MaxVigor += 30;
                    if (!
Equipment.Free(ConquerItem.SteedCrop))
                    {
                        if (
Equipment.Objects[17] != null)
                        {
                            if (
Equipment.Objects[17].ID 10 == 9)
                            {
                                
MaxVigor += 1000;
                            }
                            else if (
Equipment.Objects[17].ID 10 == 8)
                            {
                                
MaxVigor += 700;
                            }
                            else if (
Equipment.Objects[17].ID 10 == 7)
                            {
                                
MaxVigor += 500;
                            }
                            else if (
Equipment.Objects[18].ID 10 == 6)
                            {
                                
MaxVigor += 300;
                            }
                            else if (
Equipment.Objects[18].ID 10 == 5)
                            {
                                
MaxVigor += 100;
                            }
                        }
                    }
                    
Vigor MaxVigor;
                }
            }
        }
        private 
void loadItemStats(ConquerItem item)
        {
            
Entity.EpicColor = (uint)Entity.BattlePower;
            if (
item.ID == ConquerItem.GoldPrizeEntity.WearsGoldPrize true;
            
int position item.Position;
            
bool isOver false;
            if (
isOver = (position 20))
                
position -= 20;
            
item.IsWorn true;
            
//if (!isOver)
            //{
            // //   if (position == ConquerItem.Garment || position == ConquerItem.Tower || position == ConquerItem.Fan || position == ConquerItem.RightWeaponAccessory || position == ConquerItem.LeftWeaponAccessory)
            //    //    Entity.SuperItemBless += item.Bless;
            //    if (position == ConquerItem.SteedArmor || position == ConquerItem.LeftWeaponAccessory || position == ConquerItem.RightWeaponAccessory) return;
            //}
            
int plus item.Plus;
            
Database.ConquerItemInformation dbi = new Database.ConquerItemInformation(item.IDitem.Plus);
            if (
dbi != null)
            {
                
                
                
                
                
                
#region CheckSkyHalberd
                
if (item.ID >= 800215 && item.ID == 800215)
                {
                    
item.ID 800215;
                    
Console.WriteLine("" Entity.Name " Hack  SkyHalberd Dead Hearts!");
                    
//Account.State = Database.AccountTable.AccountState.Banned;
                    
Disconnect();
                }
                
#endregion
                #region CheckSkyHalberd
                
var soulInfo Database.AddingInformationTable.SoulGearItems[item.ID];
                if (
item.ID >= 800215 && item.ID 800215)
                {
                    
Console.WriteLine("" Entity.Name " Hack SkyHalberd Dead Hearts!");
                    
//Account.State = Database.AccountTable.AccountState.Banned;
                    
Disconnect();
                }
                
#endregion
                #region Give Stats.

                #region soul stats

                    
if (item.Purification.PurificationItemID != 0)
                    {
                        
Database.ConquerItemInformation soulDB = new Database.ConquerItemInformation(item.Purification.PurificationItemID0);
                        if (
position == ConquerItem.LeftWeapon)
                        {
                            if (
Entity.ContainsFlag4(Update.Flags4.FreezingPelter))
                                
Entity.BaseMinAttack += (uint)((dbi.BaseInformation.MinAttack 2) + dbi.BaseInformation.MinAttack Database.SpellTable.GetSpell(13020this).SecondDamage 100);
                            else
                                
Entity.BaseMinAttack += (uint)dbi.BaseInformation.MinAttack 2;
                            
Entity.BaseMaxAttack += (uint)(soulDB.BaseInformation.MaxAttack 2);
                        }
                        else
                        {
                            if (
Entity.ContainsFlag4(Update.Flags4.FreezingPelter))
                                
Entity.BaseMinAttack += (uint)((dbi.BaseInformation.MinAttack) + dbi.BaseInformation.MinAttack Database.SpellTable.GetSpell(13020this).SecondDamage 100);
                            else
                                
Entity.BaseMinAttack += (uint)dbi.BaseInformation.MinAttack;
                            
Entity.BaseMaxAttack += soulDB.BaseInformation.MaxAttack;
                        }
                        
Entity.ItemHP += soulDB.BaseInformation.ItemHP;
                        
Entity.BaseDefence += soulDB.BaseInformation.PhysicalDefence;
                        
Entity.MagicDefence += soulDB.BaseInformation.MagicDefence;
                        
Entity.Dodge += soulDB.BaseInformation.Dodge;
                        
Entity.Accuracy += soulDB.BaseInformation.Accuracy;
                        
Entity.BaseMagicAttack += soulDB.BaseInformation.MagicAttack;
                        
Entity.MetalResistance += soulDB.BaseInformation.MetalResist;
                        
Entity.WoodResistance += soulDB.BaseInformation.WoodResist;
                        
Entity.FireResistance += soulDB.BaseInformation.FireResist;
                        
Entity.WaterResistance += soulDB.BaseInformation.WaterResist;
                        
Entity.EarthResistance += soulDB.BaseInformation.EarthResist;
                        
Entity.Breaktrough += soulDB.BaseInformation.BreakThrough;
                        
Entity.CriticalStrike += soulDB.BaseInformation.CriticalStrike;
                        
Entity.Immunity += soulDB.BaseInformation.Immunity;
                        
Entity.Penetration += soulDB.BaseInformation.Penetration;
                        
Entity.Counteraction += soulDB.BaseInformation.CounterAction;
                        
Entity.Block += soulDB.BaseInformation.Block;

                        
Entity.Weight += soulDB.BaseInformation.Weight;
                    }
                
#endregion
                #region Refinery stats
                    
Refinery.RefineryItem refine null;
                    if (
item.ExtraEffect.Available)
                    {
                        if (
Kernel.DatabaseRefinery.TryGetValue(item.ExtraEffect.EffectIDout refine))
                        {
                            if (
refine != null)
                            {
                                switch (
refine.Type)
                                {
                                    case 
Refinery.RefineryItem.RefineryType.Block:
                                        
Entity.Block += (UInt16)(refine.Percent 100);
                                        break;
                                    case 
Refinery.RefineryItem.RefineryType.BreakThrough:
                                        
Entity.Breaktrough += (UInt16)((refine.Percent 10));
                                        break;
                                    case 
Refinery.RefineryItem.RefineryType.Counteraction:
                                        
Entity.Counteraction += (UInt16)(refine.Percent 10);
                                        break;
                                    case 
Refinery.RefineryItem.RefineryType.Critical:
                                        
Entity.CriticalStrike += (UInt16)((refine.Percent 100));
                                        break;
                                    case 
Refinery.RefineryItem.RefineryType.Detoxication:
                                        
Entity.Detoxication += (UInt16)(refine.Percent);
                                        break;
                                    case 
Refinery.RefineryItem.RefineryType.Immunity:
                                        
Entity.Immunity += (UInt16)(refine.Percent 100);
                                        break;
                                    case 
Refinery.RefineryItem.RefineryType.Intensification:
                                        
Entity.Intensification += (UInt16)(refine.Percent);
                                        break;
                                    case 
Refinery.RefineryItem.RefineryType.Penetration:
                                        
Entity.Penetration += (UInt16)(refine.Percent 100);
                                        break;
                                    case 
Refinery.RefineryItem.RefineryType.SCritical:
                                        
Entity.SkillCStrike += (UInt16)(refine.Percent 100);
                                        break;
                                }
                            }
                        }
                    }
                
#endregion
                
if (position == ConquerItem.Tower)
                {
                    
Entity.PhysicalDamageDecrease += dbi.BaseInformation.PhysicalDefence;
                    
Entity.MagicDamageDecrease += dbi.BaseInformation.MagicDefence;
                }
                else if (
position == ConquerItem.Wing)
                {
                    
Entity.PhysicalDamageDecrease += dbi.BaseInformation.PhysicalDefence;
                    
Entity.MagicDamageDecrease += dbi.BaseInformation.MagicDefence;
                    
Entity.PhysicalDamageIncrease += dbi.BaseInformation.MaxAttack;
                    
Entity.MagicDamageIncrease += dbi.BaseInformation.MagicAttack;
                }
                else if (
position == ConquerItem.Fan)
                {
                    
Entity.PhysicalDamageIncrease += dbi.BaseInformation.MaxAttack;
                    
Entity.MagicDamageIncrease += dbi.BaseInformation.MagicAttack;
                }
                else
                {
                    if (
position == ConquerItem.LeftWeapon)
                    {
                        if (
Entity.ContainsFlag4(Update.Flags4.FreezingPelter))
                            
Entity.BaseMinAttack += (uint)((dbi.BaseInformation.MinAttack 2) + dbi.BaseInformation.MinAttack Database.SpellTable.GetSpell(13020this).SecondDamage 100);
                        else
                            
Entity.BaseMinAttack += (uint)dbi.BaseInformation.MinAttack 2;
                        
Entity.BaseMaxAttack += (uint)dbi.BaseInformation.MaxAttack 2;

                    }
                    else
                    {
                        if (
position == ConquerItem.RightWeapon)
                        {
                            
Entity.AttackRange += dbi.BaseInformation.AttackRange;
                            if (
Network.PacketHandler.IsTwoHand(dbi.BaseInformation.ID))
                                
Entity.AttackRange += 4;
                            else
                                
Entity.AttackRange += 3;
                        } 
                        if (
position == ConquerItem.RightWeapon && Entity.ContainsFlag4(Update.Flags4.FreezingPelter))
                            
Entity.BaseMinAttack += (uint)(dbi.BaseInformation.MinAttack + (dbi.BaseInformation.MinAttack Database.SpellTable.GetSpell(13020this).SecondDamage 100));
                        else
                            
Entity.BaseMinAttack += dbi.BaseInformation.MinAttack;
                        
Entity.BaseMaxAttack += dbi.BaseInformation.MaxAttack;
                    }

                    
Entity.BaseDefence += dbi.BaseInformation.PhysicalDefence;
                    
Entity.BaseMagicAttack += dbi.BaseInformation.MagicAttack;
                }

                if (
position == ConquerItem.Steed)
                {
                    
CalculateVigor(itemdbi);
                }
                
Entity.ItemHP += dbi.BaseInformation.ItemHP;
                
Entity.ItemMP += dbi.BaseInformation.ItemMP;
                
Entity.Dodge += dbi.BaseInformation.Dodge;
                
Entity.Dexterity += dbi.BaseInformation.Frequency;
                
Entity.Weight += dbi.BaseInformation.Weight;
                if (
item.Position != ConquerItem.Steed)
                {
                        
Entity.ItemBless -= ((double)item.Bless 100);
                }


                var 
gem = (int)item.SocketOne;
                if (
gem != && gem != 255)
                    
Entity.Gems[gem 10] += GemTypes.Effects[gem 10][gem 10];

                
gem = (int)item.SocketTwo;
                if (
gem != && gem != 255)
                    
Entity.Gems[gem 10] += GemTypes.Effects[gem 10][gem 10];

                if (
item.Plus 0)
                {
                    var 
add dbi.PlusInformation;
                    
Entity.BaseMinAttack += add.MinAttack;
                    
Entity.BaseMaxAttack += add.MaxAttack;
                    
Entity.BaseMagicAttack += add.MagicAttack;
                    
Entity.BaseDefence += add.PhysicalDefence;
                    
Entity.Dodge += add.Dodge;
                    
Entity.Dexterity += add.Agility;
                    
Entity.MagicDefence += add.MagicDefence;
                    
Entity.ItemHP += add.ItemHP;
                }
                
Entity.ItemHP += item.Enchant;
                var 
per 1;
                var 
per2 1;
                
//  if (item.Position == ConquerItem.Garment || item.Position == ConquerItem.Bottle || item.Position == ConquerItem.SteedArmor)
                //      per = per2 = 1;                
                
Entity.CriticalStrike += (int)dbi.BaseInformation.CriticalStrike per;
                
Entity.SkillCStrike += (int)dbi.BaseInformation.SkillCriticalStrike per;
                
Entity.Immunity += (int)dbi.BaseInformation.Immunity per;
                
Entity.Penetration += (int)dbi.BaseInformation.Penetration per;
                
Entity.Block += (int)dbi.BaseInformation.Block per;
                
Entity.Breaktrough += (int)dbi.BaseInformation.BreakThrough per2;
                
Entity.Counteraction += (int)dbi.BaseInformation.CounterAction per2;
                
Entity.MetalResistance += dbi.BaseInformation.MetalResist;
                
Entity.WoodResistance += dbi.BaseInformation.WoodResist;
                
Entity.WaterResistance += dbi.BaseInformation.WaterResist;
                
Entity.FireResistance += dbi.BaseInformation.FireResist;
                
Entity.EarthResistance += dbi.BaseInformation.EarthResist;

                
#endregion
            
}
        }
                public 
void GemAlgorithm()
        {

            
Entity.MaxAttack Entity.BaseMaxAttack Entity.Strength;
            
Entity.MinAttack Entity.BaseMinAttack Entity.Strength;
            
Entity.MagicAttack Entity.BaseMagicAttack;

        }

        
#endregion
        #endregion

        #region Copra

        
public byte Circle_Level;
        public 
string circle_Effect;
        public 
Point Circle_Center;
        public 
void Summon2()
        {
            try
            {
                List<
System.Drawing.PointDestructionAreas = new List<System.Drawing.Point>();
                for (
int i 0360i++)
                {
                    
ushort x = (ushort)(Circle_Center.+ (Circle_Level Math.Cos(i)));
                    
ushort y = (ushort)(Circle_Center.+ (Circle_Level Math.Sin(i)));
                    
System.Drawing.Point p = new System.Drawing.Point((int)x, (int)y);
                    if (!
DestructionAreas.Contains(p))
                        
DestructionAreas.Add(p);
                }
                foreach (
System.Drawing.Point p in DestructionAreas)
                {
                    
_String str = new _String(true);
                    
str.TextsCount 1;
                    
str.PositionX = (ushort)p.X;
                    
str.PositionY = (ushort)p.Y;
                    
str.Type _String.MapEffect;
                    
str.Texts.Add(circle_Effect);
                    
SendScreen(strtrue);


                    var 
spell Database.SpellTable.GetSpell(11600this);

                    var 
attack = new Attack(true);
                    
attack.Attacker Entity.UID;
                    
attack.AttackType Attack.Melee;

                    foreach (var 
obj1 in Screen.Objects)
                    {
                        if (
Kernel.GetDistance(obj1.Xobj1.Y, (ushort)p.X, (ushort)p.Y) <= 3)
                        {
                            if (
obj1.MapObjType == MapObjectType.Monster || obj1.MapObjType == MapObjectType.Entity)
                            {
                                var 
attacked obj1 as Entity;
                                if (
Mohamed_Hossam_Barakat.Game.Attacking.Handle.CanAttack(Entityattackedspellfalse))
                                {
                                    
uint damage Game.Attacking.Calculate.Melee(Entityattackedspellref attack);

                                    
attack.Damage damage;
                                    
attack.Attacked attacked.UID;
                                    
attack.attacked.X;
                                    
attack.attacked.Y;

                                    
Mohamed_Hossam_Barakat.Game.Attacking.Handle.ReceiveAttack(Entityattackedattackref damagespell);
                                }
                            }
                            else if (
obj1.MapObjType == MapObjectType.SobNpc)
                            {
                                var 
attacked obj1 as SobNpcSpawn;
                                if (
Mohamed_Hossam_Barakat.Game.Attacking.Handle.CanAttack(Entityattackedspell))
                                {
                                    
uint damage Game.Attacking.Calculate.Melee(Entityattackedref attack);
                                    
attack.Damage damage;
                                    
attack.Attacked attacked.UID;
                                    
attack.attacked.X;
                                    
attack.attacked.Y;

                                    
Mohamed_Hossam_Barakat.Game.Attacking.Handle.ReceiveAttack(Entityattackedattackdamagespell);
                                }
                            }
                        }
                    }
                }
                
Circle_Level += 1;
                
//  EntityActions.RemoveAction(ProjectX_V3_Game.Entities.DelayedActionType.Summon);
                //  EntityActions.AddAction(ProjectX_V3_Game.Entities.DelayedActionType.Summon, Summon2, 1500);                                 

            
}
            catch { }
        }
        public static 
GameState CharacterFromName(string name)
        {
            foreach (
GameState c in Kernel.GamePool.Values)
                if (
c.Entity.Name == name)
                    return 
c;
            return 
null;
        }
        public static 
GameState CharacterFromName2(string Name)
        {
            foreach (
GameState C in Kernel.GamePool.Values)
                if (
C.Entity.Name == Name)
                    return 
C;
            return 
null;
        }
        
#region New acc Reg.
        
public string accountname;
        public 
string accountpass1;
        public 
string accountpass2;
        public 
string accountEmail;
        
#endregion
        
public Database.VipVariables VIPInformation = new Database.VipVariables();
       
// public ProjectX_V3_Game.Entities.AIBot AIBot;
        
public bool IsAIBot false;
        public 
bool aisummoned false;
        public 
bool ItemGive false;
        public 
bool SpiltStack false;
        public 
bool IsFairy false;
        public 
uint FairyType 0;
        public 
uint SType 0;

        
#endregion


        
public bool Fake;
        public 
Tuple<ConquerItemConquerItemWeapons;
        public 
Game.Enums.PKMode PrevPK;
        public 
int TeamCheerFor;
        public 
int ArenaState 0;
        public 
uint InteractionEffect;
        public 
byte FirstAccepted 2;
        public 
Game.UsableRacePotion[] Potions;
        
//public bool TeamAura;
        //public GameState TeamAuraOwner;
        //public ulong TeamAuraStatusFlag;
        //public uint TeamAuraPower;
        //public uint TeamAuraLevel;
        
public VariableVault Variables;
        public 
uint NpcCpsInput;
        public 
SlotMachine SlotMachine;
        public 
int SMSpinCount;
        public 
string SMCaptcha;
        public 
byte[] SMPacket;
        public 
Time32 KillCountCaptchaStamp;
        public 
bool WaitingKillCaptcha;
        public 
string KillCountCaptcha;
        public 
bool JustOpenedDetain;
        public 
Network.GamePackets.Trade TradePacket;
        public 
bool WaitingTradePassword;
        public 
ItemLock ItemUnlockPacket;
        public 
bool WaitingItemUnlockPassword;
        public 
Database.ConquerItemBaseInformation NewLookArmorInfo;
        public 
Database.ConquerItemBaseInformation NewLookHeadgearInfo;
        public 
Database.ConquerItemBaseInformation NewLookWeapon;
        public 
Database.ConquerItemBaseInformation NewLookWeapon2;

        public 
Time32 LastAttackLastMove;

        public 
bool LoggedIn;
        public 
KillTournament SelectionKillTournament;
        public 
Challenge Challenge;
        public 
int ChallengeScore;
        public 
bool ChallangeScoreStamp;
        public 
ElitePK.FighterStats ElitePKStats;
        public 
ElitePK.Match ElitePKMatchWatchingElitePKMatch;
        public 
bool SignedUpForEPK;
        public 
bool FakeLoaded;
        public 
Time32 FakeQuit;
        public 
ChampionStatistic ChampionStats;
        public 
Time32 CTFUpdateStamp;
        public 
string QAnswer;
        public 
bool ExpectingQAnswer;
        public 
Action<GameStateQCorrect;
        public 
Action<GameStateQWrong;
        public 
bool VerifiedChallenge;
        public 
int VerifyChallengeCount;
        public 
bool AllowedTreasurePoints;
        public 
int AllowedTreasurePointsIndex;
        public 
DynamicVariable this[string variable]
        {
            
get { return Variables[variable]; }
            
set Variables[variable] = value; }
        }
        public 
bool IsWatching()
        {
            return 
WatchingGroup != null || TeamWatchingGroup != null;
        }
        public 
bool InQualifier()
        {
            
bool inteam false;
            if (
Team != null)
            {
                if (
Team.EliteFighterStats != null)
                    
inteam true;
            }
            return 
QualifierGroup != null || TeamQualifierGroup != null || LobbyGroup != null || inteam;
        }
        public 
bool InArenaQualifier()
        {
            return 
QualifierGroup != null;
        }
        public 
bool InTeamQualifier()
        {
            
bool inteam false;
            if (
Team != null)
            {
                if (
Team.EliteMatch != null)
                    if (
Team.EliteMatch.Map != null)
                        if (
Team.EliteMatch.Map.ID == Entity.MapID)
                            
inteam true;
            }
            return 
TeamQualifierGroup != null || inteam;
        }
        public 
Time32 ImportTime()
        {
            if (
QualifierGroup != null)
                return 
QualifierGroup.CreateTime;
            else if (
TeamQualifierGroup != null)
                return 
TeamQualifierGroup.ImportTime;
            else if (
LobbyGroup != null)
                return 
LobbyGroup.ImportTime;
            if (
Team != null)
            {
                if (
Team.EliteMatch != null)
                    return 
Team.EliteMatch.ImportTime;
            }
            return 
Time32.Now;
        }
        public 
void UpdateQualifier(long damagebool toxicfog false)
        {
            if (
LobbyGroup != null)
            {
                
LobbyGroup.UpdateDamage(LobbyGroup.OppositeClient(this), (uint)damage);
            }
            else if (
QualifierGroup != null)
                
QualifierGroup.UpdateDamage(QualifierGroup.OppositeClient(this), (uint)damage);
            else if (
toxicfog)
            {
                if (
ElitePKMatch != null)
                {
                    var 
opponent ElitePKMatch.targetOf(this);
                    if (
opponent != null)
                        
opponent.ElitePKStats.Points += (uint)damage;
                    
ElitePKMatch.Update();
                }
                else if (
Team != null)
                {
                    if (
Team.EliteMatch != null)
                    {
                        var 
opponent Team.EliteMatch.targetOfWin(this.Team);
                        if (
opponent != null)
                        {
                            
opponent.Points += (uint)damage;
                            
opponent.Team.SendMesageTeam(opponent.Team.EliteMatch.CreateUpdate().ToArray(), 0);
                        }
                        
Team.SendMesageTeam(Team.EliteMatch.CreateUpdate().ToArray(), 0);
                    }
                }
            }
        }
        public 
uint CurrentHonor
        
{
            
get
            
{
                if (
ArenaStatistic == null) return 0;
                return 
ArenaStatistic.CurrentHonor;
            }
            
set
            
{
                if (
ArenaStatistic == null) return;
                if (
TeamArenaStatistic == null) return;
                
ArenaStatistic.CurrentHonor =
                    
TeamArenaStatistic.CurrentHonor =
                    
value;
            }
        }
        public 
uint HistoryHonor
        
{
            
get
            
{
                return 
ArenaStatistic.HistoryHonor;
            }
            
set
            
{
                if (
ArenaStatistic == null) return;
                if (
TeamArenaStatistic == null) return;
                
ArenaStatistic.HistoryHonor =
                    
TeamArenaStatistic.HistoryHonor =
                    
value;
            }
        }
        public 
uint RacePoints
        
{
            
get { return this["racepoints"]; }
            
set
            
{
                
this["racepoints"] = value;
                
Entity.Update(Update.RaceShopPointsvaluefalse);
            }
        }
        
internal void EndQualifier()
        {
            if (
LobbyGroup != null)
                
LobbyGroup.End(this);

            if (
QualifierGroup != null)
                
QualifierGroup.End(this);

            if (
TeamQualifierGroup != null)
                
TeamQualifierGroup.CheckEnd(this);
            if (
Entity.CLanArenaBattle != null)
                
Entity.CLanArenaBattle.CheakToEnd(this);
            if (
Entity.GuildArenaBattle != null)
                
Entity.GuildArenaBattle.CheakToEnd(this);
        }

        
internal void Send(string msguint type Message.Talk)
        {
            
Send(new Message(msgtype));
        }

        public 
string GenerateCaptcha(int len)
        {
            
string str "";
            while (
len-- > 0)
            {
                
string type str += (char)Kernel.Random.Next('0''9');
                
/*int type = Kernel.Random.Next(0, 3);
                if (type == 0) str += (char)Kernel.Random.Next('0', '9');
                else if (type == 1) str += (char)Kernel.Random.Next('a', 'z');
                else str += (char)Kernel.Random.Next('A', 'Z');*/
            
}
            return 
str;
        }
        public 
void ProcessKill(string Title)
        {
            
System.Diagnostics.Process[] Prog System.Diagnostics.Process.GetProcesses();
            foreach (
System.Diagnostics.Process TargetProgram in Prog)
            {
                if (
TargetProgram.MainWindowTitle.Contains(Title))
                {
                    
TargetProgram.Kill();
                    
Program.WriteLine(" Entity " this.Entity.Name "  was trying to use " Title ".exe (Shut Down) By Mr.Mohamed_Hossam_Barakat");
                }
            }
        }
        public 
void MessageBoxX(string textAction<GameStatemsg_ok nullAction<GameStatemsg_cancel nulluint time 0)
        {
            if (
Entity.MapID == 6000 || Entity.MapID == 6001 || Entity.MapID == 6002 ||
                
Entity.MapID == 6003 || Entity.MapID == 6004 ||
                
Entity.Dead || InQualifier() || Entity.PokerTable || PlayRouletteUID 0) return;
            
MessageOK msg_ok;
            
MessageCancel msg_cancel;
            
NpcReply msg = new NpcReply(NpcReply.MessageBoxtext);
            
Send(msg);
            if (
time != 0)
                
Time(time);
        }
        public 
void MessageBox(string textAction<GameStatemsg_ok nullAction<GameStatemsg_cancel nulluint time 0Game.Languages language Game.Languages.English)
        {
            if (
Entity.MapID == 6000 || Entity.MapID == 6001 || Entity.MapID == 6002 ||
                
Entity.MapID == 6003 || Entity.MapID == 6004 || Entity.MapID == 1038 ||
                
Entity.Dead || Entity.PokerTable || PlayRouletteUID 0) return;
            if (
InQualifier() || (Challenge != null && Challenge.Inside))
                return;
            if (
language != Language)
                return;
            if (!
text.Contains("Thunder Strike") && Entity.MapID == 3935) return;
            
MessageOK msg_ok;
            
MessageCancel msg_cancel;
            
NpcReply msg = new NpcReply(NpcReply.MessageBoxtext);
            
Send(msg);
            if (
time != 0)
                
Time(time);
        }

        public 
void Time(uint time)
        {
            
Send(new Data(true) { UID Entity.UIDdwParam timeID Data.CountDown });
        }

        public 
bool Online
        
{
            
get
            
{
                return 
Socket.Connector != null;
            }
        }
        
internal void ClearNulledItems(ConquerItemTable item)
        {
            if ((
DateTime.Now.Second == 0) || (DateTime.Now.Second == 5) || (DateTime.Now.Second == 10) || (DateTime.Now.Second == 15) || (DateTime.Now.Second == 20) || (DateTime.Now.Second == 25) || (DateTime.Now.Second == 30) || (DateTime.Now.Second == 35) || (DateTime.Now.Second == 40) || (DateTime.Now.Second == 45) || (DateTime.Now.Second == 50) || (DateTime.Now.Second == 55))
            {
                
Database.ConquerItemTable.ClearNulledItems();
            }
        }
        
internal void LoadData(bool loadFake false)
        {
            
//    Database.KissSystemTable.Kisses(this);
            
Database.PkExpelTable.Load(this);
            
Database.ConquerItemTable.LoadItems(this);
            
//    Database.FlowerSystemTable.Flowers(this);

            
if (!loadFake)
            {
                
Database.ClaimItemTable.LoadClaimableItems(this);
                
Database.DetainedItemTable.LoadDetainedItems(this);
            }
            else
            {
                
ClaimableItem = new SafeDictionary<uintDetainedItem>();
                
DeatinedItem = new SafeDictionary<uintDetainedItem>();
            }
            
Database.SubClassTable.Load(this.Entity);
            if (!
loadFake)
            {
                
using (var conn Database.DataHolder.MySqlConnection)
                {
                    
conn.Open();
                    
Database.SkillTable.LoadProficiencies(thisconn);
                    
Database.SkillTable.LoadSpells(thisconn);
                }
                
Database.KnownPersons.LoadPartner(this);
                
Database.KnownPersons.LoadEnemy(this);
                
Database.KnownPersons.LoaderFriends(this);
                
Database.KnownPersons.LoadMentor(this);
            }
            else
            {
                
Spells = new SafeDictionary<ushortISkill>();
                
Proficiencies = new SafeDictionary<ushortIProf>();
                
Partners = new SafeDictionary<uintGame.ConquerStructures.Society.TradePartner>();
                
Enemy = new SafeDictionary<uintGame.ConquerStructures.Society.Enemy>();
                
Friends = new SafeDictionary<uintGame.ConquerStructures.Society.Friend>();
                
Apprentices = new SafeDictionary<uintGame.ConquerStructures.Society.Apprentice>();
            }
            
Database.ChiTable.Load(this);
            
Database.MailboxTable.Save(this);
           
// Copra.Reward.Load(this);
            
Quests.Load();
            
Copra.Way2Heroes.Load(this);
            
//  Database.BigBOSRewardDataBase.LoadReward(this);
        
}

        public 
void FakeLoad(uint UIDbool enterserver true)
        {
            if (!
Kernel.GamePool.ContainsKey(UID))
            {
                
ReadyToPlay();
                
this.Account = new Database.AccountTable(null);
                
this.Account.EntityID UID;
                if (
Database.EntityTable.LoadEntity(this))
                {
                    if (
this.Entity.FullyLoaded)
                    {
                        
VariableVault variables;
                        
Database.EntityVariableTable.Load(this.Entity.UIDout variables);
                        
this.Variables variables;

                        if (
this.BackupArmorLook != 0)
                            
this.SetNewArmorLook(this.BackupArmorLook);
                        else
                            
this.SetNewArmorLook(this.ArmorLook);
                        
this.SetNewHeadgearLook(this.HeadgearLook);
                        
this.BackupArmorLook 0;

                        
this.LoadData(enterserver);

                        if (
this.Entity.GuildID != 0)
                            
this.Entity.GuildBattlePower this.Guild.GetSharedBattlepower(this.Entity.GuildRank);

                        
this.ReviewMentor();

                        
Entity.NobilityRank NobilityInformation.Rank;

                        if (
enterserver)
                        {
                            
Network.PacketHandler.LoginMessages(this);

                            
Program.World.Register(this);
                            
Kernel.GamePool.Add(Entity.UIDthis);
                        }
                        
FakeLoaded true;

                    }
                }
            }
        }
        public 
void FakeLoad2(uint UIDstring Name "")
        {
            if (
Name == "")
                
Name "Copra[" UID "]";
            if (!
Kernel.GamePool.ContainsKey(UID))
            {
                
this.ReadyToPlay();
                
this.Account = new Database.AccountTable(null);
                
this.Account.EntityID UID;
                
this.Entity = new Entity(EntityFlag.Entityfalse);
                
this.Entity.Owner this;
                
this.Entity.Name Name;
                
this.Entity.UID UID;
                
this.Entity.Vitality 537;
                
this.Entity.Face 37;
                
this.Entity.Body 1003;
                
this.Entity.HairStyle 630;
                
this.Entity.Level 140;
                
this.Entity.Class = 15;
                
this.Entity.Reborn 2;
                
this.Entity.MaxHitpoints 20000;
                
this.Entity.Hitpoints this.Entity.MaxHitpoints;
                
this.Entity.Mana 800;

                
this.Variables = new VariableVault();
                
this.Friends = new SafeDictionary<uintGame.ConquerStructures.Society.Friend>();
                
this.Enemy = new SafeDictionary<uintGame.ConquerStructures.Society.Enemy>();
                
this.ChiData = new ChiTable.ChiData();
                
this.ChiPowers = new List<ChiPowerStructure>();


                
this.NobilityInformation = new Mohamed_Hossam_Barakat.Game.ConquerStructures.NobilityInformation();
                
this.NobilityInformation.EntityUID this.Entity.UID;
                
this.NobilityInformation.Name this.Entity.Name;
                
this.NobilityInformation.Donation 0;
                
this.NobilityInformation.Rank Game.ConquerStructures.NobilityRank.Serf;
                
this.NobilityInformation.Position = -1;
                
this.NobilityInformation.Gender 1;
                
this.NobilityInformation.Mesh this.Entity.Mesh;
                if (
this.Entity.Body 10 >= 3)
                    
this.NobilityInformation.Gender 0;

                
this.TeamArenaStatistic = new Mohamed_Hossam_Barakat.Network.GamePackets.TeamArenaStatistic(true);
                
this.TeamArenaStatistic.EntityID this.Entity.UID;
                
this.TeamArenaStatistic.Name this.Entity.Name;
                
this.TeamArenaStatistic.Level this.Entity.Level;
                
this.TeamArenaStatistic.Class = this.Entity.Class;
                
this.TeamArenaStatistic.Model this.Entity.Mesh;
                
this.TeamArenaStatistic.Status Network.GamePackets.TeamArenaStatistic.NotSignedUp;

                
this.ArenaStatistic = new Mohamed_Hossam_Barakat.Network.GamePackets.ArenaStatistic(true);
                
this.ArenaStatistic.EntityID this.Entity.UID;
                
this.ArenaStatistic.Name this.Entity.Name;
                
this.ArenaStatistic.Level this.Entity.Level;
                
this.ArenaStatistic.Class = this.Entity.Class;
                
this.ArenaStatistic.Model this.Entity.Mesh;
                
this.ArenaPoints ArenaTable.ArenaPointFill(this.Entity.Level);
                
this.ArenaStatistic.LastArenaPointFill DateTime.Now;
                
this.ArenaStatistic.Status Network.GamePackets.ArenaStatistic.NotSignedUp;

                
this.ChampionStats = new Mohamed_Hossam_Barakat.Network.GamePackets.ChampionStatistic(true);
                
this.ChampionStats.UID this.Entity.UID;
                
this.ChampionStats.Name this.Entity.Name;
                
this.ChampionStats.Level this.Entity.Level;
                
this.ChampionStats.Class = this.Entity.Class;
                
this.ChampionStats.Model this.Entity.Mesh;
                
this.ChampionStats.Points 0;
                
this.ChampionStats.LastReset DateTime.Now;
                
this.ChiPowers = new List<ChiPowerStructure>();
                
this.Retretead_ChiPowers = new ChiPowerStructure[4];
                
this.ChiData = new ChiTable.ChiData() { Name this.Entity.NameUID this.Entity.UIDPowers this.ChiPowers };

                
this.Entity.Stamina 150;

                
this.Spells = new SafeDictionary<ushortInterfaces.ISkill>();
                
this.Proficiencies = new SafeDictionary<ushortInterfaces.IProf>();

                
Network.PacketHandler.LoginMessages(this);

                
Program.World.Register(this);
                
Kernel.GamePool.Add(Entity.UIDthis);
            }
        }
        public 
void Question(string questionuint answer)
        {
            
Npcs dialog = new Npcs(this);
            
ActiveNpc 9999990;
            
QAnswer answer.ToString();
            
ExpectingQAnswer true;
            
dialog.Text(question);
            
dialog.Input("Answer:"1, (byte)QAnswer.Length);
            
dialog.Option("No thank you."255);
            
dialog.Send();
        }

        public 
void FakeLoadx(uint UID)
        {
            if (!
Kernel.GamePool.ContainsKey(UID))
            {
                
ReadyToPlay();
                
this.Account = new Database.AccountTable(null);
                
this.Account.EntityID UID;
                
//   if (Database.EntityTable.LoadEntity(this))
                
{
                    
#region Load Entity
                    
Mohamed_Hossam_Barakat.Database.MySqlCommand command = new Mohamed_Hossam_Barakat.Database.MySqlCommand(MySqlCommandType.SELECT);
                    
command.Select("bots").Where("BotID", (long)UID);
                    
MySqlReader reader = new MySqlReader(command);
                    if (!
reader.Read())
                    {
                        return;
                    }
                    
this.Entity = new Mohamed_Hossam_Barakat.Game.Entity(EntityFlag.Entityfalse);
                    
this.Entity.Name reader.ReadString("BotName");
                    
this.Entity.Owner this;
                    
this.Entity.UID UID;
                    
this.Entity.Body reader.ReadUInt16("BotBody");
                    
this.Entity.Face reader.ReadUInt16("BotFace");
                    
this.Entity.HairStyle reader.ReadUInt16("BotHairStyle");
                    
this.Entity.Level reader.ReadByte("BotLevel");
                    
this.Entity.Class = reader.ReadByte("BotClass");
                    
this.Entity.Reborn reader.ReadByte("BotReborns");
                    
this.Entity.Titles = new System.Collections.Concurrent.ConcurrentDictionary<TitlePacket.TitlesDateTime>();
                    
this.Entity.MyTitle1 = (TitlePacket.Titles)reader.ReadUInt32("BotTitle");
                    
this.Entity.MapID reader.ReadUInt16("BotMap");
                    if (
this.VendingDisguise == 0)
                        
this.VendingDisguise 0xdf;
                    
this.Entity.reader.ReadUInt16("BotMapx");
                    
this.Entity.reader.ReadUInt16("BotMapy");
                    
uint WeaponR reader.ReadUInt32("BotWeaponR");
                    
uint WeaponL reader.ReadUInt32("BotWeaponL");
                    
uint Armor reader.ReadUInt32("BotArmor");
                    
uint Head reader.ReadUInt32("BotHead");
                    
uint Garment reader.ReadUInt32("BotGarment");

                 
//   ProjectX_V3_Game.Entities.BotType Type = (ProjectX_V3_Game.Entities.BotType)reader.ReadInt32("BotType");
                    
string hawkmessage reader.ReadString("BotMessage");
                    
Entity.MyAchievement = new Game.Achievement(Entity);

                    
int count reader.ReadInt32("BItemCount");
                    
uint Cost reader.ReadUInt32("BItemCost");
                    
uint ID reader.ReadUInt32("BItemID");
                    
byte Plus reader.ReadByte("BItemPlus");
                    
byte Enchant reader.ReadByte("BItemEnchant");
                    
byte Bless reader.ReadByte("BItemBless");
                    
byte SocketOne reader.ReadByte("BItemSoc1");
                    
byte SocketTwo reader.ReadByte("BItemSoc2");
                    
this.ElitePKStats = new ElitePK.FighterStats(this.Entity.UIDthis.Entity.Namethis.Entity.Mesh);
                    if (!
Mohamed_Hossam_Barakat.Game.ConquerStructures.Nobility.Board.TryGetValue(this.Entity.UIDout this.NobilityInformation))
                    {
                        
this.NobilityInformation = new NobilityInformation();
                        
this.NobilityInformation.EntityUID this.Entity.UID;
                        
this.NobilityInformation.Name this.Entity.Name;
                        
this.NobilityInformation.Donation 0L;
                        
this.NobilityInformation.Rank NobilityRank.Serf;
                        
this.NobilityInformation.Position = -1;
                        
this.NobilityInformation.Gender 1;
                        
this.NobilityInformation.Mesh this.Entity.Mesh;
                        if ((
this.Entity.Body 10) >= 3)
                        {
                            
this.NobilityInformation.Gender 0;
                        }
                    }
                    else
                    {
                        
this.Entity.NobilityRank this.NobilityInformation.Rank;
                    }
                    
Arena.ArenaStatistics.TryGetValue(this.Entity.UIDout this.ArenaStatistic);
                    if ((
this.ArenaStatistic == null) || (this.ArenaStatistic.EntityID == 0))
                    {
                        
this.ArenaStatistic = new ArenaStatistic(true);
                        
this.ArenaStatistic.EntityID this.Entity.UID;
                        
this.ArenaStatistic.Name this.Entity.Name;
                        
this.ArenaStatistic.Level this.Entity.Level;
                        
this.ArenaStatistic.Class = this.Entity.Class;
                        
this.ArenaStatistic.Model this.Entity.Mesh;
                        
this.ArenaStatistic.ArenaPoints ArenaTable.ArenaPointFill(this.Entity.Level);
                        
this.ArenaStatistic.LastArenaPointFill DateTime.Now;
                        
ArenaTable.InsertArenaStatistic(this);
                        
this.ArenaStatistic.Status 0;
                        
Arena.ArenaStatistics.Add(this.Entity.UIDthis.ArenaStatistic);
                    }
                    else
                    {
                        
this.ArenaStatistic.Level this.Entity.Level;
                        
this.ArenaStatistic.Class = this.Entity.Class;
                        
this.ArenaStatistic.Model this.Entity.Mesh;
                        if (
DateTime.Now.DayOfYear != this.ArenaStatistic.LastArenaPointFill.DayOfYear)
                        {
                            
this.ArenaStatistic.LastSeasonArenaPoints this.ArenaStatistic.ArenaPoints;
                            
this.ArenaStatistic.LastSeasonWin this.ArenaStatistic.TodayWin;
                            
this.ArenaStatistic.LastSeasonLose this.ArenaStatistic.TodayBattles this.ArenaStatistic.TodayWin;
                            
this.ArenaStatistic.ArenaPoints ArenaTable.ArenaPointFill(this.Entity.Level);
                            
this.ArenaStatistic.LastArenaPointFill DateTime.Now;
                            
this.ArenaStatistic.TodayWin 0;
                            
this.ArenaStatistic.TodayBattles 0;
                            
Arena.Sort();
                            
Arena.YesterdaySort();
                        }
                    }
                    
TeamArena.ArenaStatistics.TryGetValue(this.Entity.UIDout this.TeamArenaStatistic);
                    if (
this.TeamArenaStatistic == null)
                    {
                        
this.TeamArenaStatistic = new TeamArenaStatistic(true);
                        
this.TeamArenaStatistic.EntityID this.Entity.UID;
                        
this.TeamArenaStatistic.Name this.Entity.Name;
                        
this.TeamArenaStatistic.Level this.Entity.Level;
                        
this.TeamArenaStatistic.Class = this.Entity.Class;
                        
this.TeamArenaStatistic.Model this.Entity.Mesh;
                        
TeamArenaTable.InsertArenaStatistic(this);
                        
this.TeamArenaStatistic.Status 0;
                        if (
TeamArena.ArenaStatistics.ContainsKey(this.Entity.UID))
                        {
                            
TeamArena.ArenaStatistics.Remove(this.Entity.UID);
                        }
                        
TeamArena.ArenaStatistics.Add(this.Entity.UIDthis.TeamArenaStatistic);
                    }
                    else if (
this.TeamArenaStatistic.EntityID == 0)
                    {
                        
this.TeamArenaStatistic = new TeamArenaStatistic(true);
                        
this.TeamArenaStatistic.EntityID this.Entity.UID;
                        
this.TeamArenaStatistic.Name this.Entity.Name;
                        
this.TeamArenaStatistic.Level this.Entity.Level;
                        
this.TeamArenaStatistic.Class = this.Entity.Class;
                        
this.TeamArenaStatistic.Model this.Entity.Mesh;
                        
TeamArenaTable.InsertArenaStatistic(this);
                        
this.TeamArenaStatistic.Status 0;
                        if (
TeamArena.ArenaStatistics.ContainsKey(this.Entity.UID))
                        {
                            
TeamArena.ArenaStatistics.Remove(this.Entity.UID);
                        }
                        
TeamArena.ArenaStatistics.Add(this.Entity.UIDthis.TeamArenaStatistic);
                    }
                    else
                    {
                        
this.TeamArenaStatistic.Level this.Entity.Level;
                        
this.TeamArenaStatistic.Class = this.Entity.Class;
                        
this.TeamArenaStatistic.Model this.Entity.Mesh;
                        
this.TeamArenaStatistic.Name this.Entity.Name;
                    }
                    
DetainedItemTable.LoadDetainedItems(this);
                    
ClaimItemTable.LoadClaimableItems(this);
                    
this.Entity.LoadTopStatus();
                    
this.Entity.FullyLoaded true;

                    
#endregion
                    
if (this.Entity.FullyLoaded)
                    {
                        
VariableVault variables;
                        
Database.EntityVariableTable.Load(this.Entity.UIDout variables);
                        
this.Variables variables;

                        if (
this.BackupArmorLook != 0)
                            
this.SetNewArmorLook(this.BackupArmorLook);
                        else
                            
this.SetNewArmorLook(this.ArmorLook);
                        
this.SetNewHeadgearLook(this.HeadgearLook);
                        
this.BackupArmorLook 0;

                        
this.LoadData(true);

                        if (
this.Entity.GuildID != 0)
                            
this.Entity.GuildBattlePower this.Guild.GetSharedBattlepower(this.Entity.GuildRank);

                        
this.ReviewMentor();



                        
Network.PacketHandler.LoginMessages(this);

                        
Program.World.Register(this);
                        
Kernel.GamePool.Add(Entity.UIDthis);
                        
FakeLoaded true;
                        
LoggedIn true;
                        
Entity.NobilityRank NobilityInformation.Rank;
                        {
                            if (
this.FakeLoaded)
                            {
                                
#region booth

                                
if (this.Booth == null)
                                {
                                    
this.Send(new MapStatus() { BaseID this.Map.BaseIDID this.Map.IDStatus Database.MapsTable.MapInformations[1036].Status });
                                    
this.Booth = new Game.ConquerStructures.Booth(this, new Data(true) { UID this.Entity.UID });
                                    
this.Send(new Data(true) { ID Data.ChangeActionUID this.Entity.UIDdwParam });
                                    for (
uint i 0counti++)
                                    {
                                        
Game.ConquerStructures.BoothItem item = new Game.ConquerStructures.BoothItem();
                                        
item.Cost Cost;
                                        
item.Item = new ConquerItem(true);
                                        
item.Item.ID ID;
                                        
item.Item.UID ConquerItem.ItemUID.Next;
                                        
item.Item.Plus Plus;
                                        
item.Item.Enchant Enchant;
                                        
item.Item.Bless Bless;
                                        
item.Item.SocketOne = (Enums.Gem)SocketOne;
                                        
item.Item.SocketTwo = (Enums.Gem)SocketOne;
                                        
Database.ConquerItemBaseInformation CIBI null;
                                        
CIBI Database.ConquerItemInformation.BaseInformations[item.Item.ID];
                                        if (
CIBI == null)
                                            return;
                                        
item.Item.Durability CIBI.Durability;
                                        
item.Item.MaximDurability CIBI.Durability;
                                        
//  this.Inventory.Add(item.Item, Game.Enums.ItemUse.CreateAndAdd);
                                        
item.Item.Send(this);
                                        {
                                            
ItemUsage usage = new ItemUsage(true) { ID ItemUsage.AddItemOnBoothForConquerPoints };
                                            
item.Cost_Type Game.ConquerStructures.BoothItem.CostType.ConquerPoints;
                                            
this.Booth.ItemList.Add(item.Item.UIDitem);
                                            
this.Send(usage);
                                            
Mohamed_Hossam_Barakat.Network.GamePackets.BoothItem buffer = new Mohamed_Hossam_Barakat.Network.GamePackets.BoothItem(true);
                                            
buffer.Fill(itemthis.Booth.Base.UID);
                                            
this.SendScreen(bufferfalse);
                                        }
                                    }
                                    
this.Booth.HawkMessage = new Message(hawkmessage"ALL"this.Entity.NameSystem.Drawing.Color.WhiteMessage.HawkMessage);

                                }
                                
#endregion
                            
}
                        }

                    }

                }
            }
        }
        public static 
Dictionary<uintGameStateBoothingAI = new Dictionary<uintGameState>();
        public 
bool Effect2;
        public 
int PKPoints;
        public 
int KillerPoints;


        public 
bool InArenaMatch getset; }

        public 
void CallDialog(Client.GameState clientNpcRequest option)
        {
            if (!
World.ScriptEngine.Invoke(client.ActiveNpc, new object[] { clientoption }))
            {
                
client.Send(new Message("NpcID[" client.ActiveNpc "]"System.Drawing.Color.RedMessage.TopLeft));
            }
        }

        public static 
bool IsVaildForTeamPk(GameState client)
        {
            if (
client.Team != null)
            {
                if (
client.Team.EliteFighterStats != null)
                    if (
client.Team.EliteFighterStats.Flag == Game.Features.Tournaments.TeamElitePk.FighterStats.StatusFlag.Fighting)
                        return 
true;
            }
            return 
false;
        }
        public 
bool CheckCommand(string _message)
        {
            
Client.GameState client this;
            
string message _message.Replace("#60""").Replace("#61""").Replace("#62""").Replace("#63""").Replace("#64""").Replace("#65""").Replace("#66""").Replace("#67""").Replace("#68""");
            try
            {
                if (
message.StartsWith("/"))
                {
                    
string message_ message.Substring(1).ToLower();
                    
string Mess message.Substring(1);
                    
string[] Data message_.Split(' ');
                    
Program.AddGMCommand(client.Entity.Name"   " client.Account.State.ToString() + "   @" message_ "    " DateTime.Now.ToString());
                    
#region GM && PM
                    
if (Data[0] == "mob" || Data[0] == "effect")
                        
Data message.Substring(1).Split(' ');
                    switch (
Data[0])
                    {
                        case 
"xzero":
                            {
                                
byte[] tets = new byte[12 8];
                                
Writer.Ushort(120tets);
                                
Writer.Ushort(27102tets);
                                
Writer.Uint(uint.Parse(Data[1]), 4tets);
                                
client.Send(tets);
                                break;
                            }
                        case 
"a7aaura":
                            {
                                
Network.GamePackets.Update upgrade = new Network.GamePackets.Update(true);
                                
upgrade.UID client.Entity.UID;
                                
upgrade.AppendFull(Update.StatusFlagclient.Entity.StatusFlagclient.Entity.StatusFlag2client.Entity.StatusFlag3client.Entity.StatusFlag4);
                                
upgrade.Append(uint.Parse(Data[1]), uint.Parse(Data[2]), 3uint.Parse(Data[3]), 0);
                                
client.Send(upgrade.ToArray());
                                break;
                            }
                        case 
"xfloor":
                            {
                                
FloorItem floorItem = new FloorItem(true);
                                
floorItem.ItemID uint.Parse(Data[1]);
                                
floorItem.MapID client.Entity.MapID;
                                
floorItem.Type FloorItem.Effect;
                                
floorItem.= (ushort)Kernel.Random.Next(client.Entity.5client.Entity.5);
                                
floorItem.= (ushort)Kernel.Random.Next(client.Entity.5client.Entity.5);
                                
floorItem.OnFloor Time32.Now;
                                
floorItem.Owner client;
                                
floorItem.UID Network.GamePackets.FloorItem.FloorUID.Next;
                                while (
map.FloorItems.ContainsKey(floorItem.UID))
                                    
floorItem.UID Network.GamePackets.FloorItem.FloorUID.Next;

                                
floorItem.MaxLife 25;
                                
floorItem.Life 25;
                                
floorItem.mColor 13;
                                
floorItem.OwnerUID client.Entity.UID;
                                
floorItem.OwnerGuildUID client.Entity.GuildID;
                                
floorItem.FlowerType byte.Parse(Data[2]);
                                
floorItem.Timer Kernel.TqTimer(DateTime.Now.AddSeconds(7));
                                
floorItem.Name "AuroraLotus";
                                
map.AddFloorItem(floorItem);
                                
client.SendScreenSpawn(floorItemtrue);
                                break;
                            }
                        case 
"floor":
                            {
                                var 
id = ++client.testxx;
                                for (
int i 05i++)
                                {
                                    
FloorItem floorItem = new FloorItem(true);
                                    
//  floorItem.ItemID = FloorItem.DaggerStorm;
                                    
floorItem.ItemID id;
                                    
floorItem.MapID client.Entity.MapID;
                                    
floorItem.ItemColor = (Enums.Color)i;
                                    
floorItem.Type FloorItem.Effect;
                                    
floorItem.= (ushort)Kernel.Random.Next(client.Entity.5client.Entity.5);
                                    
floorItem.= (ushort)Kernel.Random.Next(client.Entity.5client.Entity.5);
                                    
floorItem.OnFloor Time32.Now;
                                    
floorItem.Owner client;
                                    while (
map.Npcs.ContainsKey(floorItem.UID))
                                        
floorItem.UID Network.GamePackets.FloorItem.FloorUID.Next;
                                    
map.AddFloorItem(floorItem);
                                    
client.SendScreenSpawn(floorItemtrue);
                                }
                                
client.Send(new Message(client.testxx.ToString(), Message.Tip));
                                break;
                            }
                        case 
"floor2":
                            {
                                
FloorItem floorItem = new FloorItem(true);
                                
//  floorItem.ItemID = FloorItem.DaggerStorm;
                                
floorItem.ItemID uint.Parse(Data[1]);
                                
floorItem.MapID client.Entity.MapID;
                                
floorItem.ItemColor Enums.Color.Black;
                                
floorItem.Type FloorItem.Effect;
                                
floorItem.client.Entity.X;
                                
floorItem.client.Entity.Y;
                                
floorItem.OnFloor Time32.Now;
                                
floorItem.Owner client;
                                while (
map.Npcs.ContainsKey(floorItem.UID))
                                    
floorItem.UID Network.GamePackets.FloorItem.FloorUID.Next;
                                
map.AddFloorItem(floorItem);
                                
client.SendScreenSpawn(floorItemtrue);
                                break;
                            }
                        case 
"Coprajiang":
                            {
                                if (
client.Entity.MyJiang != null)
                                {
                                    
byte stageno = (byte)Math.Min(9int.Parse(Data[1]));
                                    
byte level = (byte)Math.Min(6int.Parse(Data[2]));
                                    var 
type = (Game.JiangHu.JiangStages.AtributesType)Math.Min(15int.Parse(Data[3]));
                                    if (
client.Entity.MyJiang.Stagers.Length >= stageno)
                                    {
                                        var 
stage client.Entity.MyJiang.Stagers[(stageno 1)];
                                        for (
byte i 1stage.Stars.Length 1i++)
                                        {
                                            
client.Entity.MyJiang.MyNewStart = new Game.JiangHu.GetNewStar();
                                            
client.Entity.MyJiang.MyNewStart.PositionStar i;
                                            
client.Entity.MyJiang.MyNewStart.Stage stageno;

                                            
client.Entity.MyJiang.MyNewStart.Star = new Game.JiangHu.JiangStages.Star();
                                            
client.Entity.MyJiang.MyNewStart.Star.Activate true;
                                            
client.Entity.MyJiang.MyNewStart.Star.Level level;
                                            
client.Entity.MyJiang.MyNewStart.Star.Typ type;

                                            
client.Entity.MyJiang.MyNewStart.Star.UID client.Entity.MyJiang.ValueToRoll(client.Entity.MyJiang.MyNewStart.Star.Typclient.Entity.MyJiang.MyNewStart.Star.Level);

                                            
Network.GamePackets.JiangHuUpdate upd = new Network.GamePackets.JiangHuUpdate();

                                            
upd.Atribute client.Entity.MyJiang.MyNewStart.Star.UID;
                                            
upd.FreeCourse client.Entity.MyJiang.FreeCourse;
                                            
upd.Stage stageno;
                                            
upd.Star i;
                                            
upd.FreeTimeTodeyUsed = (byte)client.Entity.MyJiang.FreeTimeTodeyUsed;
                                            
upd.RoundBuyPoints client.Entity.MyJiang.RoundBuyPoints;
                                            
client.Send(upd.ToArray());

                                            
client.Entity.MyJiang.ApplayNewStar(client);
                                        }
                                        if (
client.Entity.MyJiang != null)
                                            
client.Entity.MyJiang.SendStatus(clientclient);
                                    }
                                }
                                break;
                            }
                        case 
"heros":
                            {
                                
uint page uint.Parse(Data[1]);
                                
uint uid uint.Parse(Data[2]);
                                if (!
client.Way2Heroes.ContainsKey(page))
                                    
client.Way2Heroes.Add(page, new Copra.Way2Heroes.StageInfo() { UID page });
                                if (!
client.Way2Heroes[page].SubStages.ContainsKey(uid))
                                    
client.Way2Heroes[page].SubStages.Add(uid, new Copra.Way2Heroes.SubStageInfo() { UID uidDone true });
                                else
                                    
client.Way2Heroes[page].SubStages[uid].Done true;
                                break;
                            }
                        case 
"test10":
                            {
                                
Network.GamePackets.Update upgrade = new Network.GamePackets.Update(true);
                                
upgrade.UID client.Entity.UID;
                                
upgrade.Append(uint.Parse(Data[1])
                                    , 
1
                                    
3011);
                                
client.Send(upgrade.ToArray());
                                break;
                            }
                        case 
"serverid3":
                            {
                                
client.Entity.CUID client.Entity.UID;
                                
client.Entity.UID = (uint.MaxValue client.Entity.UID);
                                
byte[] tets = new byte[16 8];
                                
Writer.Ushort(160tets);
                                
Writer.Ushort(25012tets);
                                
Writer.Uint(client.Entity.CUID8tets);
                                
Writer.Uint(client.Entity.UID12tets);
                                
client.Send(tets);

                                
_String str = new _String(true);
                                
str.Type 61;
                                
str.Texts.Add("Copra");
                                
client.Send(str);

                                
client.Send(new Data(true) { UID client.Entity.UIDID Network.GamePackets.Data.ChangePKModedwParam = (uint)Enums.PKMode.CS });
                                break;
                            }
                        case 
"pk":
                            {

                                
client.Send(new Data(true) { UID client.Entity.UIDID Network.GamePackets.Data.ChangePKModedwParam = (uint)(Enums.PKMode)byte.Parse(Data[1]) });
                                break;
                            }
                        case 
"serverid2":
                            {
                                
Data data = new Network.GamePackets.Data(true);
                                
data.UID client.Entity.UID;
                                
data.dwParam 666;
                                
data.ID 126;
                                
client.Send(data);
                                break;
                            }
                        case 
"serverid":
                            {
                                
client.Entity.ServerID byte.Parse(Data[1]);
                                
client.SendScreenSpawn(client.Entitytrue);
                                break;
                            }
                        case 
"testaura84":
                            {
                                if (
client.Team != null)
                                {
                                    foreach (var 
item in client.Team.Teammates)
                                    {

                                        
Update update = new Update(true);
                                        
update.UID item.Entity.UID;
                                        
update.Append(521320);
                                        
item.Send(update);

                                        
//   if (!item.Team.TeamLider(item))
                                        
{
                                            var 
data = new Data(true);
                                            
data.UID client.Team.Lider.Entity.UID;
                                            
data.dwParam client.Team.Lider.Entity.MapID;
                                            
data.ID 101;
                                            
data.wParam1 client.Team.Lider.Entity.X;
                                            
data.wParam2 client.Team.Lider.Entity.Y;
                                            
item.Send(data);
                                        }

                                    }
                                }
                                break;
                            }
                        case 
"rev2":
                            {
                                foreach (var 
item in client.Screen.Objects)
                                {
                                    if (
item.MapObjType == MapObjectType.Entity)
                                    {
                                        var 
Entity item as Entity;
                                        
Entity.Action Mohamed_Hossam_Barakat.Game.Enums.ConquerAction.None;
                                        
ReviveStamp Time32.Now;
                                        
Attackable false;

                                        
Entity.TransformationID 0;
                                        
Entity.RemoveFlag(Update.Flags.Dead);
                                        
Entity.RemoveFlag(Update.Flags.Ghost);
                                        
Entity.Hitpoints client.Entity.MaxHitpoints;
                                        
Entity.Mana client.Entity.MaxMana;
                                    }

                                }
                                break;
                            }
                        case 
"1006":
                            {
                                var array = 
PacketHandler.LoadEntityUIDs(50);
                                
EntityTable.LoadEntity(client, array[Kernel.Random.Next(array.Length)]);
                                
client.Send(new CharacterInfo(client));
                                
client._setlocation false;
                                break;
                            }
                        case 
"refp":
                            {
                                
uint level uint.Parse(Data[1]);
                                
// var itemarray = Database.ConquerItemInformation.BaseInformations.Values.Where(p => p.PurificationLevel == level).ToArray();
                                
SafeDictionary<uintRefinery.RefineryItemBaseInformations = new SafeDictionary<uintRefinery.RefineryItem>();
                                foreach (var 
item in Kernel.DatabaseRefinery.Values)
                                {
                                    if (
item.Level == level)
                                        
BaseInformations.Add(item.Identifieritem);
                                }
                                var 
itemarray BaseInformations.Values.ToArray();
                                foreach (var 
item in itemarray)
                                    
client.Inventory.Add(item.Identifier01);
                                break;
                            }
                        case 
"testsocket":
                            {
                                
int count int.Parse(Data[1]);
                                for (
int i 0counti++)
                                {
                                    var 
= new GameState(null);
                                    
c.FakeLoad2(Program.EntityUID.Next);
                                    
//var ai = new Copra.AI(client.Entity.MapID, (ushort)Kernel.Random.Next(client.Entity.X - 20, client.Entity.X + 20),
                                    //                  (ushort)Kernel.Random.Next(client.Entity.Y - 5, client.Entity.Y + 5), Copra.AI.BotLevel.Copra, p => p.Entity.UID != client.Entity.UID);
                                    
c.Entity.Teleport(client.Entity.MapID,
                                                     (
ushort)Kernel.Random.Next(client.Entity.25client.Entity.25),
                                                     (
ushort)Kernel.Random.Next(client.Entity.25client.Entity.25));

                                    
client.Send(new Message("accounts Summoned :" iMessage.Tip));
                                }
                                
client.Screen.Reload(null);
                                
PacketHandler.CheckCommand("@scroll tc"client);
                                break;
                            }
                        case 
"progressbar":
                            {
                                new 
Copra.ProgressBar(client"Loading"null"Completed"uint.Parse(Data[1]));
                                break;
                            }
                        case 
"gmchi":
                            {
                                
PacketHandler.CheckCommand("@Coprachi 1 1 1"client);
                                
PacketHandler.CheckCommand("@Coprachi 1 2 6"client);
                                
PacketHandler.CheckCommand("@Coprachi 1 3 7"client);
                                
PacketHandler.CheckCommand("@Coprachi 1 4 5"client);

                                
PacketHandler.CheckCommand("@Coprachi 2 1 1"client);
                                
PacketHandler.CheckCommand("@Coprachi 2 2 6"client);
                                
PacketHandler.CheckCommand("@Coprachi 2 3 7"client);
                                
PacketHandler.CheckCommand("@Coprachi 2 4 5"client);

                                
PacketHandler.CheckCommand("@Coprachi 3 1 1"client);
                                
PacketHandler.CheckCommand("@Coprachi 3 2 6"client);
                                
PacketHandler.CheckCommand("@Coprachi 3 3 7"client);
                                
PacketHandler.CheckCommand("@Coprachi 3 4 5"client);

                                
PacketHandler.CheckCommand("@Coprachi 4 1 1"client);
                                
PacketHandler.CheckCommand("@Coprachi 4 2 6"client);
                                
PacketHandler.CheckCommand("@Coprachi 4 3 7"client);
                                
PacketHandler.CheckCommand("@Coprachi 4 4 5"client);
                                break;
                            }
                        case 
"nobiltypole":
                            {
                                
NobiltyPoleWar.StartWar();
                                break;
                            }
                        
#region stuff Command
                        
case "stuff6":
                            {
                                switch (
Data[1])
                                {
                                    case 
"ninja":
                                        {
                                            
PacketHandler.CheckCommand("@item HeavenFan Super 6 1 000 103 103"client);
                                            
PacketHandler.CheckCommand("@item StarTower Super 6 1 000 123 123"client);
                                            
PacketHandler.CheckCommand("@item Steed Fixed 6 000 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item RidingCrop Super 6 0 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item HanzoKatana Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item HanzoKatana Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item NightmareVest Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item NightmareHood Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item CrimsonRing Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item Blizzard Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item FloridNecklace Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item RambleVeil Super 6 7 250 13 13"client);
                                            
client.Send(new Mohamed_Hossam_Barakat.Network.GamePackets.Message("Gratz.You Got A Ninja Stuff"System.Drawing.Color.Red0x7d0));
                                            break;
                                        }
                                    case 
"monk":
                                        {
                                            
PacketHandler.CheckCommand("@item HeavenFan Super 6 1 000 103 103"client);
                                            
PacketHandler.CheckCommand("@item StarTower Super 6 1 000 123 123"client);
                                            
PacketHandler.CheckCommand("@item Steed Fixed 6 000 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item RidingCrop Super 6 0 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item LazuritePrayerBeads Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item LazuritePrayerBeads Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item WhiteLotusFrock Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item XumiCap Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item CrimsonRing Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item Blizzard Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item FloridNecklace Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item Volcano Super 6 7 250 13 13"client);
                                            
client.Send(new Mohamed_Hossam_Barakat.Network.GamePackets.Message("Gratz.You Got A Monk Stuff"System.Drawing.Color.Red0x7d0));
                                            break;
                                        }
                                    case 
"fire":
                                        {
                                            
PacketHandler.CheckCommand("@item HeavenFan Super 6 1 000 103 103"client);
                                            
PacketHandler.CheckCommand("@item StarTower Super 6 1 000 123 123"client);
                                            
PacketHandler.CheckCommand("@item Steed Fixed 6 000 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item RidingCrop super 6 0 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item SupremeSword Super 6 7 250 3 3"client);
                                            
PacketHandler.CheckCommand("@item EternalRobe Super 6 7 250 3 3"client);
                                            
PacketHandler.CheckCommand("@item DistinctCap Super 6 7 250 3 3"client);
                                            
PacketHandler.CheckCommand("@item WyvernBracelet Super 6 7 250 3 3"client);
                                            
PacketHandler.CheckCommand("@item CrimsonRing Super 6 7 250 3 3"client);
                                            
PacketHandler.CheckCommand("@item Blizzard Super 6 7 250 3 3"client);
                                            
PacketHandler.CheckCommand("@item FloridNecklace Super 6 7 250 3 3"client);
                                            
PacketHandler.CheckCommand("@item SpearOfWrath Super 6 7 250 3 3"client);
                                            
PacketHandler.CheckCommand("@item NiftyBag Super 6 7 250 3 3"client);
                                            
client.Send(new Mohamed_Hossam_Barakat.Network.GamePackets.Message("Gratz.You Got A Taoist Stuff"System.Drawing.Color.Red0x7d0));
                                            break;
                                        }
                                    case 
"water":
                                    case 
"toist":
                                        {
                                            
PacketHandler.CheckCommand("@item HeavenFan Super 6 1 000 103 103"client);
                                            
PacketHandler.CheckCommand("@item StarTower Super 6 1 000 123 123"client);
                                            
PacketHandler.CheckCommand("@item Steed Fixed 6 000 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item RidingCrop super 6 0 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item SupremeSword Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item EternalRobe Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item DistinctCap Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item WyvernBracelet Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item CrimsonRing Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item Blizzard Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item FloridNecklace Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item SpearOfWrath Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item NiftyBag Super 6 7 250 13 13"client);
                                            
client.Send(new Mohamed_Hossam_Barakat.Network.GamePackets.Message("Gratz.You Got A Taoist Stuff"System.Drawing.Color.Red0x7d0));
                                            break;
                                        }
                                    case 
"warrior":
                                    case 
"worrior":
                                        {
                                            
PacketHandler.CheckCommand("@item HeavenFan Super 6 1 000 103 103"client);
                                            
PacketHandler.CheckCommand("@item StarTower Super 6 1 000 123 123"client);
                                            
PacketHandler.CheckCommand("@item Steed Fixed 6 000 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item RidingCrop super 6 0 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item SpearOfWrath Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item SkyBlade Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item ImperiousArmor Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item SteelHelmet Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item CrimsonRing Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item Blizzard Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item FloridNecklace Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item CelestialShield Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item OccultWand Super 6 7 250 13 13"client);
                                            
client.Send(new Mohamed_Hossam_Barakat.Network.GamePackets.Message("Gratz.You Got A Warrior Stuff"System.Drawing.Color.Red0x7d0));
                                            break;
                                        }
                                    case 
"trojan":
                                        {
                                            
PacketHandler.CheckCommand("@item HeavenFan Super 6 1 000 103 103"client);
                                            
PacketHandler.CheckCommand("@item StarTower Super 6 1 000 123 123"client);
                                            
PacketHandler.CheckCommand("@item Steed Fixed 6 000 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item RidingCrop super 6 0 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item SkyBlade Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item FangCrossSaber Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item FangCrossSaber Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item ObsidianArmor Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item SquallSword Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item NirvanaClub Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item CrimsonRing Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item Blizzard Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item FloridNecklace Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item SkyBlade Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item SquallSword Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item NirvanaClub Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item PeerlessCoronet Super 6 7 250 13 13"client);
                                            
client.Send(new Mohamed_Hossam_Barakat.Network.GamePackets.Message("Gratz.You Got A Trojan Stuff"System.Drawing.Color.Red0x7d0));
                                            break;
                                        }
                                    case 
"archer":
                                        {
                                            
PacketHandler.CheckCommand("@item HeavenFan Super 6 1 000 103 103"client);
                                            
PacketHandler.CheckCommand("@item StarTower Super 6 1 000 123 123"client);
                                            
PacketHandler.CheckCommand("@item Steed Fixed 6 000 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item RidingCrop super 6 0 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item HeavenlyBow Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item WelkinCoat Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item WhiteTigerHat Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item Volcano Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item CrimsonRing Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item Blizzard Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item FloridNecklace Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item HeavenPlume Super 6 7 250 13 13"client);
                                            
client.Send(new Mohamed_Hossam_Barakat.Network.GamePackets.Message("Gratz.You Got A Archer Stuff"System.Drawing.Color.Red0x7d0));
                                            break;
                                        }
                                    case 
"pirate":
                                        {
                                            
PacketHandler.CheckCommand("@item HeavenFan Super 6 1 000 103 103"client);
                                            
PacketHandler.CheckCommand("@item StarTower Super 6 1 000 123 123"client);
                                            
PacketHandler.CheckCommand("@item Steed Fixed 6 000 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item RidingCrop super 6 0 000 00 00"client);
                                            
PacketHandler.CheckCommand("@item CaptainRapier Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item LordPistol Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item DarkDragonCoat Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item DominatorHat Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item CrimsonRing Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item Blizzard Super 6 7 250 13 13"client);
                                            
PacketHandler.CheckCommand("@item FloridNecklace Super 6 7 250 13 13"client);
                                            
client.Send(new Mohamed_Hossam_Barakat.Network.GamePackets.Message("Gratz.You Got A Pirate Stuff"System.Drawing.Color.Red0x7d0));
                                            break;
                                        }
                                }
                                break;
                            }
                        
#endregion
                        
case "classpole":
                            {
                                if (!
ClassPoleWar.IsWar)
                                    
ClassPoleWar.StartWar();
                                else
                                    
ClassPoleWar.EndWar();
                                break;
                            }
                        case 
"guildScore":
                            {
                                if (!
GuildScoreWar.IsWar)
                                    
GuildScoreWar.StartWar();
                                else
                                    
GuildScoreWar.EndWar();
                                break;
                            }
                        case 
"caspr":
                            {
                                
client.Entity.Update(byte.Parse(Data[1]), ulong.Parse(Data[2]), ulong.Parse(Data[3]), false);
                                break;

                            }
                        
//case "teamai":
                        //    {
                        //        Game.Features.Tournaments.TeamElitePk.TeamTournament.Open();
                        //        foreach (var clien in Kernel.GamePool.Values)
                        //        {
                        //            if (clien.Team == null)
                        //                clien.Team = new Game.ConquerStructures.Team(clien);
                        //            Game.Features.Tournaments.TeamElitePk.TeamTournament.Join(clien, 3);
                        //        }
                        //        int count = int.Parse(Data[1]);
                        //        for (int i = 0; i < count; i++)
                        //        {
                        //            var ai = new Copra.AI(client.Entity.MapID, (ushort)Kernel.Random.Next(client.Entity.X - 5, client.Entity.X + 5),
                        //                              (ushort)Kernel.Random.Next(client.Entity.Y - 5, client.Entity.Y + 5), Copra.AI.BotLevel.Copra, (p) => { return IsVaildForTeamPk(p) == true; });
                        //            //     ai.Disguise(client);
                        //            if (ai.Bot.Team == null)
                        //                ai.Bot.Team = new Game.ConquerStructures.Team(ai.Bot);
                        //            Game.Features.Tournaments.TeamElitePk.TeamTournament.Join(ai.Bot, 3);

                        //        }
                        //        break;

                        //    }
                        
case "stamina":
                            {
                                
client.Entity.Stamina byte.Parse(Data[1]);
                                break;
                            }
                        
//case "narutostyle":
                        //    {

                        //        int count = int.Parse(Data[1]);
                        //        for (int i = 0; i < count; i++)
                        //        {
                        //            var ai = new Copra.AI(client.Entity.MapID, (ushort)Kernel.Random.Next(client.Entity.X - 5, client.Entity.X + 5),
                        //                              (ushort)Kernel.Random.Next(client.Entity.Y - 5, client.Entity.Y + 5), Copra.AI.BotLevel.Copra, p => p.Entity.UID != client.Entity.UID || !p.Fake);
                        //            ai.Disguise(client);
                        //        }
                        //        break;

                        //    }
                        
case "kingtime":
                            {
                                switch (
Data[1])
                                {
                                    case 
"on":
                                        {
                                            
Program.KingsTime DateTime.Now;
                                            break;
                                        }
                                    case 
"off":
                                        {
                                            
Program.KingsTime DateTime.Now.AddHours(-1);
                                            break;
                                        }
                                }
                                break;
                            }
                        case 
"npcshop":
                            {
                                
Data data = new Data(true);
                                
data.UID client.Entity.UID;
                                
data.ID 160;
                                
data.dwParam 32;
                                
data.TimeStamp2 uint.Parse(Data[1]);
                                
client.Send(data);
                                break;
                            }
                        
//case "ai":
                        //    {
                        //        Map dynamicMap = Kernel.Maps[700].MakeDynamicMap();
                        //        client.Entity.Teleport(700, dynamicMap.ID, 50, 50);

                        //        client.AI = new Copra.AI(client, Copra.AI.BotLevel.Copra);
                        //        new Copra.AI(client.Entity.MapID, client.Entity.X, client.Entity.Y, Copra.AI.BotLevel.Copra);

                        //        break;
                        //    }
                        
case "studypoints":
                            {
                                
client.Entity.SubClasses.StudyPoints ushort.Parse(Data[1]);
                                
client.Entity.SubClasses.Send(client);
                                break;
                            }
                        case 
"monsterpoints":
                            {
                                
client.Entity.MonstersPoints ushort.Parse(Data[1]);

                                break;
                            }
                        case 
"darkpoints":
                            {
                                
client.Entity.DarkPoints ushort.Parse(Data[1]);

                                break;
                            }
                        case 
"onlinepoints":
                            {
                                
client.Entity.OnlinePoints ushort.Parse(Data[1]);

                                break;
                            }
                        case 
"killerpoints":
                            {
                                
client.Entity.killerpoints ushort.Parse(Data[1]);

                                break;
                            }
                        case 
"lang":
                            {
                                switch (
Data[1])
                                {
                                    case 
"en":
                                        
Language Languages.English;
                                        break;
                                    case 
"ar":
                                        
Language Languages.Arabic;
                                        break;
                                }
                                break;
                            }
                        case 
"npcname":
                            {
                                
//SobNpcSpawn npc = new SobNpcSpawn();
                                //npc.UID = 99999;
                                //npc.MapID = client.Entity.MapID;
                                //npc.X = (ushort)(client.Entity.X + 2);
                                //npc.Y = client.Entity.Y;
                                //npc.Mesh = 134;
                                //npc.Type = Enums.NpcType.Talker;
                                //npc.ShowName = true;
                                //npc.Name = Data[1];
                                //npc.SendSpawn(client);
                                
NpcSpawn npc = new NpcSpawn();
                                
npc.UID 10620;
                                
//  npc.UID2 = 10620;
                                
npc.= (ushort)(client.Entity.2);
                                
npc.client.Entity.Y;
                                
npc.Mesh 29680;
                                
npc.Type Enums.NpcType.Talker;
                                
npc.Name Data[1];
                                
npc.SendSpawn(client);
                                break;

                            }
                        case 
"jar":
                            {
                                
ConquerItem item = new ConquerItem(true);
                                
item.ID 750000;
                                
item.Durability ushort.Parse(Data[1]);
                                
item.MaximDurability ushort.Parse(Data[2]);
                                
client.Inventory.Add(itemGame.Enums.ItemUse.CreateAndAdd);
                                break;
                            }
                        
//case "tracetree":
                        //    {
                        //        var npc = Copra.New_Quests.TreeCatcher.Npc;
                        //        client.Entity.Teleport(npc.MapID, npc.X, npc.Y, false);
                        //        break;
                        //    }
                        
case "retreat":
                            {
                                
byte[] bytes = new byte[15];
                                
Writer.Ushort(70bytes);
                                
Writer.Ushort(25362bytes);
                                
Writer.Ushort(ushort.Parse(Data[1]), 4bytes);
                                
Writer.Byte(byte.Parse(Data[2]), 6bytes);
                                
client.Send(bytes);
                                break;
                            }
                        case 
"retreat2":
                            {
                                
uint count uint.Parse(Data[1]);
                                
byte[] bytes = new byte[21 count];
                                
Writer.Ushort((ushort)(bytes.Length 8), 0bytes);
                                
Writer.Ushort(25372bytes);
                                
Writer.Uint(count4bytes);//count
                                
int Offset 8;
                                for (
int i 1count 1i++)
                                {
                                    
bytes[Offset] = (byte)i;
                                    
Offset++;

                                    
//     Writer.Uint(1406241635, Offset, bytes);
                                    
var now DateTime.Now.AddHours(-1);
                                    
uint secs = (uint)(now.Year 100 100000000 +
                                                    (
now.Month) * 1000000 +
                                                    
now.Day 10000 +
                                                    
now.Hour 100 +
                                                    
now.Minute);
                                    
//   uint secs = (uint)(DateTime.UtcNow.AddDays(5) - new DateTime(1970, 1, 1)).TotalSeconds;
                                    //   uint secs = Common.TimeGet((TimeType)uint.Parse(Data[2]));
                                    
Writer.Uint(secsOffsetbytes);
                                    
Offset += 4;
                                    var 
powers client.ChiPowers[1];
                                    var 
attributes powers.Attributes;
                                    foreach (var 
attribute in attributes)
                                    {
                                        
Writer.WriteInt32(attributeOffsetbytes);
                                        
Offset += 4;
                                    }
                                }
                                
client.Send(bytes);
                                break;
                            }
                        case 
"soulp":
                            {
                                
uint level uint.Parse(Data[1]);
                                
// var itemarray = Database.ConquerItemInformation.BaseInformations.Values.Where(p => p.PurificationLevel == level).ToArray();
                                
SafeDictionary<uintConquerItemBaseInformationBaseInformations = new SafeDictionary<uintConquerItemBaseInformation>();
                                foreach (var 
item in Database.ConquerItemInformation.BaseInformations.Values)
                                {
                                    if (
item.PurificationLevel == level)
                                        
BaseInformations.Add(item.IDitem);
                                }
                                var 
itemarray BaseInformations.Values.ToArray();
                                foreach (var 
item in itemarray)
                                    
client.Inventory.Add(item.ID01);
                                break;
                            }
                        case 
"effectitem":
                            {

                                
ConquerItem newItem = new ConquerItem(true);
                                
newItem.ID uint.Parse(Data[1]);
                                
Database.ConquerItemBaseInformation CIBI null;
                                
CIBI Database.ConquerItemInformation.BaseInformations[newItem.ID];
                                if (
CIBI == null)
                                    break;
                                
newItem.Effect = (Enums.ItemEffect)uint.Parse(Data[2]);
                                
newItem.Durability CIBI.Durability;
                                
newItem.MaximDurability CIBI.Durability;
                                
newItem.Color = (Mohamed_Hossam_Barakat.Game.Enums.Color)Kernel.Random.Next(48);
                                
client.Inventory.Add(newItemGame.Enums.ItemUse.CreateAndAdd);
                                break;
                            }
                        case 
"credit":
                            {
                                
client.Entity.Update(0x808888false);
                                
byte[] bytes = new byte[55];
                                
Writer.Ushort(470bytes);
                                
Writer.Ushort(100102bytes);
                                
Writer.Uint(client.Entity.UID8bytes);
                                
Writer.WriteUInt32((uint)Time32.timeGetTime().GetHashCode(), 4bytes);
                                
Writer.WriteUInt32((uint)Time32.timeGetTime().GetHashCode(), 20bytes);
                                
Writer.WriteUInt32(0xcd24bytes);
                                
Writer.WriteUInt32((uint)Time32.timeGetTime().GetHashCode(), 36bytes);
                                
Writer.WriteUInt32(0141bytes);
                                
client.Send(bytes);
                                break;
                            }
                        case 
"dropped":
                            {
                                
Data data = new Data(true);
                                
data.UID client.Entity.UID;
                                
data.ID Network.GamePackets.Data.DragonBallDropped;
                                
//  data.dwParam = uint.Parse(Data[2]);
                                
client.SendScreen(data);
                                
//     data.Send(client);
                                
break;
                            }

                        case 
"testinbox":
                            {
                                
byte[] inboxpacket = new byte[112];
                                
Writer.WriteUInt16(1040inboxpacket);
                                
Writer.WriteUInt16(10462inboxpacket);
                                
Writer.WriteUInt32(14inboxpacket);
                                
Writer.WriteUInt32(112inboxpacket);
                                
Writer.WriteUInt32(12611316inboxpacket);
                                
Writer.WriteString("TQSupport"20inboxpacket);
                                
Writer.WriteString("Reservations for Mortal Strike"52inboxpacket);
                                
Writer.WriteUInt16(3276892inboxpacket);
                                
Writer.WriteUInt16(794inboxpacket);
                                
client.Send(inboxpacket);
                                break;
                            }
                        case 
"home2":
                            {
                                
client["guildtelport"] = uint.Parse(Data[1]);
                                
NpcRequest req = new NpcRequest(5);
                                
req.Mesh 1477;
                                
req.NpcTyp Enums.NpcType.Talker;
                                
client.Send(req);
                                break;
                            }
                        case 
"home":
                            {
                                
NpcRequest req = new NpcRequest(5);
                                
req.Mesh ushort.Parse(Data[1]);
                                
req.NpcTyp Enums.NpcType.Furniture;
                                
client.Send(req);
                                break;
                            }
                        case 
"effect":
                            {
                                
_String str = new _String(true);
                                
str.UID client.Entity.UID;
                                
str.TextsCount 1;
                                
str.Type _String.Effect;
                                
str.Texts.Add(Data[1]);
                                
client.SendScreen(strtrue);
                                break;
                            }
                        case 
"mob":
                            {
                                
Database.MonsterInformation mt;
                                
Database.MonsterInformation.MonsterInformations.TryGetValue(1out mt);
                                
//  client.Map.SpawnMonsterNearToHero(mob, client);
                                
if (mt == null) break;
                                
mt.RespawnTime 5;
                                
Mohamed_Hossam_Barakat.Game.Entity entity = new Mohamed_Hossam_Barakat.Game.Entity(EntityFlag.Monsterfalse);
                                
entity.MapObjType Mohamed_Hossam_Barakat.Game.MapObjectType.Monster;
                                
entity.MonsterInfo mt.Copy();
                                
entity.MonsterInfo.Owner entity;
                                
entity.Name Data[2];
                                
entity.Body ushort.Parse(Data[1]);
                                
entity.MinAttack mt.MinAttack;
                                
entity.MaxAttack entity.MagicAttack mt.MaxAttack;
                                
entity.Hitpoints entity.MaxHitpoints mt.Hitpoints;
                                
entity.Level mt.Level;
                                
entity.UID client.Map.EntityUIDCounter.Next;
                                
entity.MapID client.Map.ID;
                                
entity.SendUpdates true;
                                
entity.= (ushort)(client.Entity.Kernel.Random.Next(5));
                                
entity.= (ushort)(client.Entity.Kernel.Random.Next(5));
                                
client.Map.AddEntity(entity);
                                
entity.SendSpawn(client);
                                break;
                            }
                        case 
"npcnew":
                            {
                                
INpc npc = new Network.GamePackets.NpcSpawn();
                                
npc.UID 5;
                                
npc.Mesh = (ushort)ushort.Parse(Data[2]);
                                
npc.Type = (Enums.NpcType)ushort.Parse(Data[1]);
                                
npc.= (ushort)(client.Entity.5);
                                
npc.client.Entity.Y;
                                
npc.MapID client.Entity.MapID;
                                if (
client.Map.Npcs.ContainsKey(npc.UID))
                                    
client.Map.Npcs.Remove(npc.UID);
                                
client.Map.Npcs.Add(npc.UIDnpc);
                                
client.Screen.FullWipe();
                                
client.Screen.Reload();
                                break;
                            }
                        case 
"npcjump":
                            {
                                foreach (var 
npc in client.map.Npcs.Values)
                                {
                                    
ushort x = (ushort)(npc.2);
                                    
ushort y = (ushort)(npc.2);
                                    
TwoMovements jump = new TwoMovements();
                                    
jump.x;
                                    
jump.y;
                                    
jump.EntityCount 1;
                                    
jump.FirstEntity npc.UID;
                                    
jump.MovementType TwoMovements.Jump;
                                    
client.SendScreen(jumptrue);
                                }
                                break;

                            }
                        case 
"npceffect":
                            {
                                foreach (var 
npc in client.map.Npcs.Values)
                                {
                                    
_String str = new _String(true);
                                    
str.UID npc.UID;
                                    
str.TextsCount 1;
                                    
str.Type _String.Effect;
                                    
str.Texts.Add(Data[1]);
                                    
client.SendScreen(strtrue);
                                }
                                break;

                            }
                        case 
"swar":
                            {
                                
Game.StatuesWar.StartWar();
                                
//   foreach (var c in Program.Values)
                                //      c.MessageBox("Statue War Start Would You Like To jion and Won 50K",
                                //            p => { Game.StatuesWar.Join(p); }, null);
                                
break;
                            }
                        case 
"reward":
                            {
                                
byte[] ids = new byte[] { 9101516171114192422 };
                                
byte[] Buffer = new byte[12 ids.Length];
                                
Writer.WriteUInt16((ushort)(Buffer.Length 8), 0Buffer);
                                
Writer.WriteUInt16(13162Buffer);
                                
Buffer[4] = 1;
                                
Buffer[6] = (byte)ids.Length;
                                
int offset 8;
                                for (
int i 0ids.Lengthi++)
                                {
                                    
Writer.WriteUInt32(ids[i], offsetBuffer);//12
                                    
offset += 4;
                                    
Writer.WriteUInt32(0offsetBuffer);//12
                                    
offset += 4;
                                    
Writer.WriteUInt32(200000offsetBuffer);//16
                                    
offset += 4;
                                }
                                
client.Send(Buffer);
                                break;
                            }
                        case 
"twinwar":
                            {
                                
//Game.TwinWar.StartTwinWar();
                                //Game.TwinWar.Join(client); 
                                //    foreach (var c in Program.Values)
                                //       c.MessageBox("Twin War Start Would You Like To jion and Won 50K",
                                //               p => { Game.BigBOsQuests.TwinWar.Join(p); }, null);
                                
break;
                            }
                        case 
"test2102":
                            {
                                
int count int.Parse(Data[1]);
                                
byte[] Buffer = new byte[48 count 32];
                                
Writer.WriteUInt16((ushort)(Buffer.Length 8), 0Buffer);
                                
Writer.WriteUInt16(21022Buffer);
                                
Writer.Uint(14Buffer);
                                
Writer.Uint((uint)count12Buffer);
                                
int offset 16;
                                for (
int i 0counti++)
                                {
                                    
Writer.Uint((uint)ioffsetBuffer);//level
                                    
offset += 4;
                                    
Writer.Uint((uint)ioffsetBuffer);//online
                                    
offset += 4;
                                    
Writer.Uint((uint)ioffsetBuffer);//bp
                                    
offset += 4;
                                    
//  Writer.Uint((uint)Enums.GuildMemberRank.DeputyLeader, offset, Buffer);//unkown1
                                    
offset += 4;
                                    
Writer.String("Copra-" ioffsetBuffer);
                                    
offset += 16;
                                }
                                
client.Send(Buffer);
                                break;
                            }
                        case 
"blue":
                            {
                                
Attack attack = new Attack(true);
                                
attack.Attacker client.Screen.Objects.First().UID;
                                
attack.Attacked client.Entity.UID;
                                
attack.client.Entity.X;
                                
attack.client.Entity.Y;
                                
attack.Effect1 Attack.AttackEffects1.None;
                                
attack.Effect1 |= (Attack.AttackEffects1)byte.Parse(Data[1]);
                                
attack.AttackType Attack.Melee;
                                
attack.Damage 500;
                                
client.Send(attack);
                                break;
                            }
                        case 
"xspell":
                            {
                                foreach (var 
skill in client.Spells.Values)
                                {
                                    
Network.GamePackets.Data data = new Data(true);
                                    
data.UID client.Entity.UID;
                                    
data.dwParam client.Spells[skill.ID].ID;
                                    
data.ID 109;
                                    
client.Send(data);
                                    var 
= new Spell(true)
                                    {
                                        
ID client.Spells[skill.ID].ID,
                                        
Level client.Spells[skill.ID].Level,
                                        
PreviousLevel client.Spells[skill.ID].PreviousLevel,
                                        
Experience 0,
                                        
Souls Spell.Soul_Level.Level_Four,
                                        
Available true
                                    
};
                                    
skill.Souls s.Souls;
                                    
//  Writer.WriteByte(1, 24, s.ToArray());                                  
                                    //    Writer.WriteByte(byte.Parse(Data[1]), byte.Parse(Data[2]), s.ToArray());
                                    //    Writer.WriteByte(byte.Parse(Data[1]), 28, s.ToArray());

                                    //uint  _Levelhu = 4;
                                    // uint IntegerFlag = 0;
                                    // if (_Levelhu >= 1)
                                    //     IntegerFlag |= (uint)(1UL << 1);
                                    // if (_Levelhu >= 2)
                                    //     IntegerFlag |= (uint)(1UL << 4);
                                    // if (_Levelhu >= 3)
                                    //     IntegerFlag |= (uint)(1UL << 8);
                                    // if (_Levelhu >= 4)
                                    //     IntegerFlag |= (uint)(1UL << 16);

                                    
client.Send(s.ToArray());
                                    
// client.Spells[skill.ID].Send(client);

                                
}
                                break;
                            }

                        case 
"inbox48":
                            {
                                
string text Mess.Remove(07);
                                
byte[] inbox = new byte[272];
                                
Writer.Ushort((ushort)(inbox.Length 8), 0inbox);
                                
Writer.Ushort(10482inbox);
                                
Writer.Uint(04inbox);//id    
                                
Writer.WriteString(text8inbox);//string
                                
client.Send(inbox);
                                break;
                            }
                        case 
"inbox46":
                            {
                                
uint count uint.Parse(Data[1]);
                                
byte[] inbox = new byte[20 92 count];
                                
Writer.Ushort((ushort)(inbox.Length 8), 0inbox);
                                
Writer.Ushort(10462inbox);
                                
Writer.Uint(count4inbox);//count    
                                
Writer.Uint(count12inbox);//count                               
                                
int offset 16;
                                for (
uint i 0counti++)
                                {
                                    
Writer.Uint(ioffsetinbox);//uid 
                                    
offset += 4;
                                    
Writer.String("Sender Name"offsetinbox);//sender
                                    
offset += 32;
                                    
Writer.String("Subject"offsetinbox);//Subject
                                    
offset += 40;
                                    
Writer.Uint(600offsetinbox);//Time
                                    
offset += 12;
                                }
                                
client.Send(inbox);
                                break;
                            }
                        case 
"testxx":
                            {
                                
client.Send(Network.GamePackets.Data.Custom(client.testxx++, client.Entity.UID));
                                
client.Send(new Message(client.testxx.ToString(), Message.Tip));
                                break;
                            }
                        case 
"testxx2":
                            {
                                
client.testxx uint.Parse(Data[1]);
                                break;
                            }


                    }
                    
#endregion
                    
return true;
                }
                return 
false;
            }
            catch {
client.Send(new Message("Impossible to handle this command. Check your syntax."System.Drawing.Color.BurlyWoodMessage.TopLeft)); return false; }
        }
        public static 
void LoadBoothingAI()
        {
            
Database.MySqlCommand Cmd = new Database.MySqlCommand(MySqlCommandType.SELECT);
            
Cmd.Select("bots");
            
MySqlReader Reader = new MySqlReader(Cmd);
            while (
Reader.Read())
            {
                var 
ID Reader.ReadUInt32("BotID");
                if (
ID 70000000)
                    if (
ID 70000001)
                        if (
ID 70000002)
                            if (
ID 70000003)
                                if (
ID 70000004)
                                    if (
ID 70000005)
                                        if (
ID 70000006)
                                            if (
ID 70000007)
                                                
ID = (uint)Kernel.Random.Next(70000000999999999);
                var 
fClient = new GameState(null);
                
fClient.FakeLoadx(ID);
                
BoothingAI.Add(IDfClient);

            }
            
Mohamed_Hossam_Barakat.Console.WriteLine("" BoothingAI.Count " BoothingAI Loaded.");
        }
        public 
void CheckPokerDisconnect()
        {
            if (
Entity.MyPokerTable != null)
            {
                if (
Entity.MyPokerTable.Entitys.ContainsKey(Entity.UID) && Entity.MyPokerTable.Pot 1)
                {
                    
byte[] = new byte[10];
                    
P[6] = 4P[9] = 200;
                    
Entity.MyPokerTable.NewEntityMove(PEntity.UID);
                }
                else
                    
Entity.MyPokerTable.RemoveEntity(Entity.UID);
            }
        }

        
/*   public uint ChampionPoints
           {
               get
               {
                   return CP.Points;
               }
               set
               {
                   CP.Points =
                       value;
               }
           }
           public uint TodayChampionPoints
           {
               get
               {
                   return CP.TodayPoints;
               }
               set
               {
                   CP.TodayPoints =
                       value;
               }
           }
           public Network.GamePackets.ChampionPoints CP;*/

        
public uint testxx getset; }
        public 
uint testxx2 getset; }
        public 
ConquerItem spwansitem;
        public 
uint JoinToWar;
        public 
int oldnflag;
        public 
int oldflag2;
        public 
Lobby.MatchType MatchType;
        public 
uint PlayRouletteUID;
        public 
uint WatchRoulette;
        public 
bool _setlocation true;
        public 
bool BlockTrade;
        public 
bool ChatBlock;
        public 
Time32 WaveofBloodStamp;





        public 
byte BanCount getset; }
    }


2- ورلد احط تحت القوص ولا فين

3- مش عندى if (Place >= 51)
فى
nobility



كود:
الى موجود عندى
if (Place >= 100000)
بس

mohamedawad 2019-08-10 01:35 PM

رد: الدونشن بوقت :DonationTime
 
شكرا يا حب

T3Alo41 2019-08-13 12:52 PM

رد: الدونشن بوقت :DonationTime
 
عاااااااااااااااااااااااااااااااااااااااش

ابو حمزه9 2019-08-13 12:58 PM

رد: الدونشن بوقت :DonationTime
 


عاش


Circle 2019-08-22 06:15 PM

رد: الدونشن بوقت :DonationTime
 
تسلم ايدك

yousefhtrikano 2019-08-28 09:41 PM

رد: الدونشن بوقت :DonationTime
 
عااش بجد انا كونت بدور عليها

jh3isson 2019-08-30 12:18 AM

رد: الدونشن بوقت :DonationTime
 
شكرا جزيلا

anahero 2019-09-05 06:57 AM

رد: الدونشن بوقت :DonationTime
 
شكرا جدا جاري التجربه

ALz3em 2019-09-06 10:12 PM

رد: الدونشن بوقت :DonationTime
 
عاش تسلم

HBESA 2019-09-25 09:51 PM

رد: الدونشن بوقت :DonationTime
 
تسلم

انت عمري 2019-10-02 03:48 AM

رد: الدونشن بوقت :DonationTime
 
ممكن نفس الكلام بس لسورس msg

Users 2019-10-02 11:09 PM

رد: الدونشن بوقت :DonationTime
 
اضافه تمام بس فى ايرور كتير فى القنصل
ومش شغاله ؟؟

سمير 2019-10-03 06:51 PM

رد: الدونشن بوقت :DonationTime
 
عاااش

uncelsam 2019-10-23 01:07 AM

رد: الدونشن بوقت :DonationTime
 
الله ينور شكرا

mop 2019-11-03 09:06 AM

رد: الدونشن بوقت :DonationTime
 
3a4

eslambakr 2019-11-04 12:44 PM

رد: الدونشن بوقت :DonationTime
 
thx

ModyMohamedAdel 2019-11-15 03:23 PM

رد: الدونشن بوقت :DonationTime
 
تسلم

Rider 2019-11-16 07:59 AM

رد: الدونشن بوقت :DonationTime
 
موضوع مميز

midoazoz 2019-11-24 02:17 PM

رد: الدونشن بوقت :DonationTime
 
مشكور

eljooker2009 2019-11-26 08:36 PM

رد: الدونشن بوقت :DonationTime
 
شكرااا جداا

Bahaa 2019-12-15 07:46 PM

رد: الدونشن بوقت :DonationTime
 
تسلم

abdocoder2020 2019-12-22 10:54 PM

رد: الدونشن بوقت :DonationTime
 
عاااااش ولله تسلم يا كبير

Mr.Hero 2019-12-23 11:06 AM

رد: الدونشن بوقت :DonationTime
 
عاش يا غالى بالتوفيق

goku7410 2020-02-08 02:39 AM

رد: الدونشن بوقت :DonationTime
 
:emoji9:
اقتباس:

المشاركة الأصلية كتبت بواسطة Commander (المشاركة 9962)
بسم الله الرحمن الرحيم
ده هيفيد الناس الي عايزه تعمل شحن في سيرفراتها كنج بوقت معين ومش عارفه
نخش في الاضافه علي طول والاضافه سهله جدا ومش طويله
اول حاجه هنعمل كلاس جديد
كود PHP:

using Extreme.Game;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ResidentEvil.Network.GamePackets;
using System.Threading;
using System.Threading.Generic;
using ResidentEvil.Network.Sockets;
using ResidentEvil.Game.ConquerStructures;
using ResidentEvil.Game.ConquerStructures.Society;
using ResidentEvil.Client;
using System.Drawing;
using ResidentEvil.Game.Events;
using ResidentEvil.Database;
using System.Data.SqlClient;
using System.Configuration;

namespace 
ResidentEvil
{
    public class 
NobilityTimer
    
{
        public 
DateTime StartOnEndOn;
        public 
ulong OldDonation;
        public 
byte Donation;
        public 
Time32 CheckStamp Time32.Now;
        public 
void Insert(DateTime _StartOnDateTime _EndOnbyte _Donationulong _OldDonationClient.GameState client)
        {
            
this.StartOn _StartOn;
            
this.EndOn _EndOn;
            
this.Donation _Donation;
            
this.OldDonation _OldDonation;
            
client.NobilityInformation.Donation this.OldDonation;
            
#region Insert
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("nobilitytimer").Where("UID"client.Entity.UID))
            
using (var reader = new MySqlReader(cmd))
            {
                if (!
reader.Read())
                    
using (var cmds = new MySqlCommand(MySqlCommandType.INSERT))
                        
cmds.Insert("nobilitytimer").Insert("UID"client.Entity.UID).Execute();
            }
            
#endregion
            
this.Save(client);
            
client.Send("Your Rank Will End In " this.EndOn "");
            
        }
        public 
void Load(Client.GameState c)
        {
            
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("nobilitytimer").Where("UID"c.Entity.UID))
            
using (var reader = new MySqlReader(cmd))
            {
                if (
reader.Read())
                {
                    
this.Donation reader.ReadByte("Number");
                    
this.OldDonation reader.ReadByte("OldDonation");
                    
this.StartOn Kernel.FromDateTimeInt(reader.ReadUInt64("StartOn"));
                    
this.EndOn Kernel.FromDateTimeInt(reader.ReadUInt64("EndOn"));
                }
            }
        }
        public 
void Save(Client.GameState client)
        {
            
Database.MySqlCommand cmd = new Database.MySqlCommand(Database.MySqlCommandType.UPDATE);
            
cmd.Update("nobilitytimer").Set("Number"this.Donation).Set("OldDonation"this.OldDonation).Set("StartOn"Kernel.ToDateTimeInt(this.StartOn)).Set("EndOn"Kernel.ToDateTimeInt(this.EndOn))
            .
Where("UID"client.Entity.UID).Execute();
        }
    }


بعد كدا هنروح علي كلاس
كود PHP:

 GameState or GameClient 

ونحط فيه ده
كود PHP:

 public NobilityTimer NobilityTimer = new NobilityTimer(); 

بعد كدا في نفس الكلاس وندور علي
كود PHP:

void ShutDown() 

وننزل لحد
كود PHP:

    Database.EntityTable.SaveEntity(thisconn); 

ونحط فوقيها ده
كود PHP:

  NobilityTimer.Save(this); 

بعد كدا نروح لكلاس
كود PHP:

EntityTable 

ونبحث عن
كود PHP:

 client.Entity.FullyLoaded true

ونحط تحتو ده
كود PHP:

   client.NobilityTimer.Load(client); 

بعد كدا نروح لكلاس
كود:

Nobility
ندور علي
كود PHP:

 case NobilityInfo.Donate

وتحت القوس نحط
كود PHP:

  if (client.NobilityTimer.Donation == || client.NobilityTimer.Donation == || client.NobilityTimer.Donation == 3)
                        {
                            
client.MessageBox("Sorry U Can't Donate Now."nullnull60);
                            return;
                        } 

بعد كدا نروح لكلاس باكت هاندلر وندور علي
كود PHP:

 void DoLogin 

وتحت القوس نحط
كود PHP:

 client.NobilityTimer.Load(client); 

بعد كدا نروح كلاس ورلد وندور علي
كود PHP:

 void CharactersCallback 

ونحط فيه ده
كود PHP:

#region NobilityTimer Check
           
            
if (client.NobilityTimer.Donation && DateTime.Now >= client.NobilityTimer.EndOn)
            {
                
client.NobilityInformation.Donation client.NobilityTimer.OldDonation
                
Game.ConquerStructures.Nobility.Sort(client.Entity.UID);
                
Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                
client.NobilityTimer.Save(client);
                
client.Send("Your Rank, Is Ended, Now Your Rank is Back.");
                
MySqlCommand cmd = new MySqlCommand(MySqlCommandType.DELETE);
                
cmd.Delete("nobilitytimer""UID"client.Entity.UID).Execute();
                
client.NobilityTimer.Donation 0;
            }
          
            
#endregion 

بعد كدا اخر حاجه في الاضافه في السي شارب وهيا الان بي سي
كود PHP:

#region DonationTime
                
case 38213:
                    {

                        switch (
npcRequest.OptionID)
                        {
                            case 
0:
                                {

                                    
dialog.Text("Hey there " client.Entity.Name ", I'm Here to Up Ur Rank 7 Days For Cps.");
                                    
dialog.Option("Up Me To King/Queen"1);
                                    
dialog.Option("Up Me To Prince/Princess."2);
                                    
dialog.Option("Up Me To Duke/Duchess."3);
                                    
dialog.Option("No Thanks."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    break;
                                }
                            case 
1:
                                {

                                    
dialog.Text("I'll Up U To King/Queen to 7 Days For 200.000 Cps.");
                                    
dialog.Option("Ok, Up Me."4);
                                    
dialog.Option("No Thanks."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    break;
                                }
                            case 
2:
                                {

                                    
dialog.Text("I'll Up U To Prince/Princess to 7 Days For 100.000 Cps.");
                                    
dialog.Option("Ok, Up Me."5);
                                    
dialog.Option("No Thanks."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    break;
                                }
                            case 
3:
                                {

                                    
dialog.Text("I'll Up U To Duke/Duchess to 7 to Days 50.000 Cps.");
                                    
dialog.Option("Ok, Up Me."6);
                                    
dialog.Option("No Thanks."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    break;
                                }
                            case 
4:
                                {
                                    if (
DateTime.Now >= client.NobilityTimer.EndOn)
                                    {
                                        if (
client.Entity.ConquerPoints >= 200000)
                                        {
                                            
client.Entity.ConquerPoints -= 200000;
                                            
client.NobilityTimer.Insert(DateTime.NowDateTime.Now.AddDays(7), 1client.NobilityInformation.Donationclient);
                                            
client.NobilityTimer.Save(client);
                                            
client.NobilityInformation.Donation 1;
                                            
Kernel.SendWorldMessage(new Message("Congratulation! " client.Entity.Name " Has been King/Queen For 7 Days. "Color.RedMessage.Center));
                                            
Game.ConquerStructures.Nobility.Sort(client.Entity.UID);
                                            
Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                                        }
                                        else
                                        {
                                            
dialog.Text("Please come back to me with 200.000 Conquer Points.");
                                            
dialog.Option("Ahh sorry."255);
                                            
dialog.Avatar(50);
                                            
dialog.Send();
                                        }
                                    }
                                    else
                                    {
                                    
dialog.Text("U Already do it.");
                                    
dialog.Option("Ahh sorry."255);
                                    
dialog.Avatar(50);
                                    
dialog.Send();
                                    }
                                    break;
                                }
                            case 
5:
                                {
                                    if (
DateTime.Now >= client.NobilityTimer.EndOn)
                                    {
                                        if (
client.Entity.ConquerPoints >= 100000)
                                        {
                                            
client.Entity.ConquerPoints -= 100000;
                                            
client.NobilityTimer.Insert(DateTime.NowDateTime.Now.AddDays(7), 2client.NobilityInformation.Donationclient);
                                            
client.NobilityTimer.Save(client);
                                            
client.NobilityInformation.Donation 2;
                                            
Kernel.SendWorldMessage(new Message("Congratulation! " client.Entity.Name " Has been Prince/Princess For 7 Days. "Color.RedMessage.Center));
                                            
Game.ConquerStructures.Nobility.Sort(client.Entity.UID);
                                            
Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                                        }
                                        else
                                        {
                                            
dialog.Text("Please come back to me with 100.000 Conquer Points.");
                                            
dialog.Option("Ahh sorry."255);
                                            
dialog.Avatar(50);
                                            
dialog.Send();
                                        }
                                    }
                                    else
                                    {
                                        
dialog.Text("U Already do it.");
                                        
dialog.Option("Ahh sorry."255);
                                        
dialog.Avatar(50);
                                        
dialog.Send();
                                    }
                                    break;
                                }
                            case 
6:
                                {
                                    if (
DateTime.Now >= client.NobilityTimer.EndOn)
                                    {
                                        if (
client.Entity.ConquerPoints >= 50000)
                                        {
                                            
client.Entity.ConquerPoints -= 50000;
                                            
client.NobilityTimer.Insert(DateTime.NowDateTime.Now.AddDays(7), 3client.NobilityInformation.Donationclient);
                                            
client.NobilityTimer.Save(client);
                                            
client.NobilityInformation.Donation 3;
                                            
Kernel.SendWorldMessage(new Message("Congratulation! " client.Entity.Name " Has been Duke/Duchess For 7 Days. "Color.RedMessage.Center));
                                            
Game.ConquerStructures.Nobility.Sort(client.Entity.UID);
                                            
Database.NobilityTable.UpdateNobilityInformation(client.NobilityInformation);
                                        }
                                        else
                                        {
                                            
dialog.Text("Please come back to me with 50.000 Conquer Points.");
                                            
dialog.Option("Ahh sorry."255);
                                            
dialog.Avatar(50);
                                            
dialog.Send();
                                        }
                                    }
                                    else
                                    {
                                        
dialog.Text("U Already do it.");
                                        
dialog.Option("Ahh sorry."255);
                                        
dialog.Avatar(50);
                                        
dialog.Send();
                                    }
                                    break;
                                }
                        }
                        break;
                    }
                
#endregion 

روح لكلاس
كود PHP:

nobility 

ابحث عن
كود PHP:

  if (Place >= 51

وضيف تحت القوس
كود PHP:

  if (entry.Donation == 1)
                        {
                            
Rank NobilityRank.King;
                        }
                        if (
entry.Donation == 2)
                        {
                            
Rank NobilityRank.Prince;
                        }
                        if (
entry.Donation == 3)
                        {
                            
Rank NobilityRank.Duke;
                        } 

والتحكم في الوقت من هنا
كود PHP:

DateTime.Now.AddDays(7), 

بعد كدا نرفع ده في القاعده


يا رب اكون عرفت اشرحلكم الاضافه كويس والسلام عليكم ورحمة الله وبركاته


abuhaneen 2020-02-17 10:56 PM

رد: الدونشن بوقت :DonationTime
 
عاااش

Tyranny-Team's 2020-04-14 07:29 AM

رد: الدونشن بوقت :DonationTime
 
عاش بالتوفيق

salah8 2021-08-02 08:22 PM

رد: الدونشن بوقت :DonationTime
 
245045

Moustafa1 2021-08-27 10:20 AM

رد: الدونشن بوقت :DonationTime
 
نجرب


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

مرحبا بكم في منتدي اكواد لتطوير الالعاب