[HELP]HP problem in source

07/30/2013 23:13 EgyptianMano#16
Quote:
Originally Posted by Super Aids View Post
Well actually thanks for something. Didn't know subclasses calculated HP clientside. Does anyone know the actual calculation for sublcasses HP.
Quote:
Originally Posted by marcbacor6666 View Post
yes i want to know also
here is mine, take care of the definitions changes

Code:
switch ((SubClassID)SC.ID)
                {
                   ---------
                   ---------------
                   ---------------
                    case SubClassID.Wrangler:
                        {
                            if (Phase == 7) Val = 800;
                            else if (Phase == 8) Val = 1000;
                            else if (Phase == 9) Val = 1200;
                            else Val = (ushort)(Phase * 100);
                            HpToAdd += Val;
                            break;
                        }
                }
07/31/2013 01:32 marcbacor6666#17
how about this? in chi - if u activate chi/subclass, the maxhitpoints rises but it wont fill up the hitpoints if you use any lifefruit or any life items
07/31/2013 03:18 EgyptianMano#18
Quote:
Originally Posted by marcbacor6666 View Post
how about this? in chi - if u activate chi/subclass, the maxhitpoints rises but it wont fill up the hitpoints if you use any lifefruit or any life items
already answered , when u send the Chi/Sub class data to the client it automatically calculate the max hp for the client (client side) but u ddnt calculate it source side , so it show up at the client > source
and when the character uses any potions the source calculates it and gives the max hp it calculated
to make it more clear , lets say the client state points and items stats gives the character 2000 hp both client and source side
then u send the chi/subclass data the client gives for example +1000 hp
now the client thinks its max hp is 3000 while the source still 2000
when u use any potion the source will always send 2000 hp as current hp because it is the max hp the source has for that character
that is why it nvr fill the hp meter .
to fix that u need to calculate the Chi/Subclass hp points and add them to max hp source side so both client and source has the same max hp
07/31/2013 03:21 marcbacor6666#19
nice thanks.
08/03/2013 17:31 urfinator#20
i had the same problem
08/04/2013 21:40 Novakhan#21
Open your source and search for
Code:
public void CalculateHPBonus()
You should see this code
Code:
       #region Items
        private int StatHP;
        public void CalculateHPBonus()
        {
            switch (Entity.Class)
            {
Close the Items region and replace it for this code
Code:
#region Items
        private int StatHP;
        public void CalculateHPBonus()
        {
            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;
            }
            this.Entity.MaxHitpoints += this.Entity.ItemHP;
            Entity.MaxHitpoints += Entity.ItemHP;

            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 PrvixyProject.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);
        }
        public void LoadItemStats2(Game.Entity e)
        {
            #region Set Every Variable to Zero
            Entity.Defence = 0;
            Entity.MagicDefence = 0;
            Entity.Dodge = 0;
            Entity.BaseMagicAttack = 0;
            Entity.WoodResistance = 0;
            Entity.MetalResistance = 0;
            Entity.FireResistance = 0;
            Entity.WaterResistance = 0;
            Entity.EarthResistance = 0;
            Entity.Breaktrough = 0;
            Entity.CriticalStrike = 0;
            Entity.Immunity = 0;
            Entity.Penetration = 0;
            Entity.Counteraction = 0;
            Entity.Block = 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 = 0;
            Entity.BaseMinAttack = 0;
            Entity.BaseMaxAttack = 0;
            Entity.BaseMagicDefence = 0;
            Entity.BaseDefence = 0;
            Entity.MagicAttack = 0;
            Entity.MagicDefence = 0;
            Entity.DragonGem = 0;
            Entity.PhoenixGem = 0;
            Entity.TortisGem = 0;
            Entity.MagicDefencePercent = 0;
            Entity.MagicDamageIncrease = 0;
            Entity.Gems = new UInt16[10];
            #endregion

            foreach (IConquerItem i in Equipment.Objects)
            {
                if (i != null)
                {

                    if (i.Durability != 0 && i.Position > 9)
                    {
                        if (i.Position != ConquerItem.AltGarment && i.Position != ConquerItem.LeftWeaponAccessory && i.Position != ConquerItem.RightWeaponAccessory)
                        {
                            if (i.Position != ConquerItem.SteedArmor)
                            {
                                Database.ConquerItemInformation dbi = new Database.ConquerItemInformation(i.ID, i.Plus);
                                if (dbi != null)
                                {
                                    /*if (i.ID == 0x493e0)
                                    {
                                        byte r = 0;
                                        byte g = 0;
                                        byte b = 0;
                                        r = (byte)i.Serag1;
                                        g = (byte)i.Serag2;
                                        b = (byte)i.Serag3;
                                        i.Color = (Conquer_Online_Server.Game.Enums.Color)b;
                                        i.Bless = g;
                                        i.Unknown40 = r;

                                    }*/
                                    #region Give Stats.
                                    Refinery.RefineryItem refine = null;
                                    Database.ConquerItemInformation soulDB = new PrvixyProject.Database.ConquerItemInformation(i.Purification.PurificationItemID, 0);
                                    if (i.RefineItem != 0)
                                        refine = i.RefineStats;
                                    if (soulDB != null)
                                    {
                                        Entity.Defence += soulDB.BaseInformation.PhysicalDefence;

                                        //Entity.Defence += soulDB.BaseInformation.PhysicalDefence;
                                        //Entity.Defence += soulDB.BaseInformation.PhysicalDefence;
                                        Entity.MagicDefence += soulDB.BaseInformation.MagicDefence;
                                        Entity.Dodge += (byte)soulDB.BaseInformation.Dodge;
                                        //Entity.Hitpoints += Infos.ItemHP;
                                        Entity.BaseMagicAttack += soulDB.BaseInformation.MagicAttack;
                                        Entity.BaseMinAttack += soulDB.BaseInformation.MinAttack;
                                        Entity.BaseMaxAttack += soulDB.BaseInformation.MaxAttack;


                                        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.ItemHP += soulDB.BaseInformation.ItemHP;
                                        Entity.ItemMP += soulDB.BaseInformation.ItemMP;
                                        Entity.Penetration += soulDB.BaseInformation.Penetration;
                                        Entity.Counteraction += soulDB.BaseInformation.CounterAction;
                                        Entity.Block += soulDB.BaseInformation.Block;
                                    }
                                    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) + 100);
                                                break;
                                            case Refinery.RefineryItem.RefineryType.Counteraction:
                                                Entity.Counteraction += (UInt16)(refine.Percent * 10);
                                                break;
                                            case Refinery.RefineryItem.RefineryType.Critical:
                                                Entity.CriticalStrike += (UInt16)((refine.Percent * 100) + 1000);
                                                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 (i.Position == ConquerItem.Tower)
                                    {
                                        Entity.PhysicalDamageDecrease += dbi.BaseInformation.PhysicalDefence;
                                        Entity.MagicDamageDecrease += dbi.BaseInformation.MagicDefence;
                                    }
                                    else
                                    {
                                        Entity.Defence += dbi.BaseInformation.PhysicalDefence;
                                        Entity.MagicDefencePercent += dbi.BaseInformation.MagicDefence;
                                        Entity.Dodge += (byte)dbi.BaseInformation.Dodge;
                                        if (i.Position != ConquerItem.Fan)
                                            Entity.BaseMagicAttack += dbi.BaseInformation.MagicAttack;
                                    }
                                    Entity.ItemHP += dbi.BaseInformation.ItemHP;
                                    Entity.ItemMP += dbi.BaseInformation.ItemMP;
                                    if (i.ID != 0x493e0)
                                    {
                                        Entity.ItemBless += i.Bless;
                                    }
                                    if (i.Position == ConquerItem.AltRightHand)
                                    {
                                        Entity.AttackRange += dbi.BaseInformation.AttackRange;
                                        if (Network.PacketHandler.IsTwoHand(dbi.BaseInformation.ID))
                                            Entity.AttackRange += 3;
                                        else
                                        {
                                            Entity.AttackRange += 2;
                                        }
                                    }
                                    if (i.Position == ConquerItem.AltLeftHand)
                                    {
                                        Entity.BaseMinAttack += (uint)(dbi.BaseInformation.MinAttack * 0.5F);
                                        Entity.BaseMaxAttack += (uint)(dbi.BaseInformation.MaxAttack * 0.5F);
                                    }
                                    else if (i.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 (i.Plus != 0)
                                    {
                                        if (i.Position == ConquerItem.Tower)
                                        {
                                            Entity.PhysicalDamageDecrease += dbi.PlusInformation.PhysicalDefence;
                                            Entity.MagicDamageDecrease += (ushort)dbi.PlusInformation.MagicDefence;
                                        }
                                        else if (i.Position == ConquerItem.Fan)
                                        {
                                            Entity.PhysicalDamageIncrease += (ushort)dbi.PlusInformation.MinAttack;
                                            Entity.MagicDamageIncrease += (ushort)dbi.PlusInformation.MagicAttack;
                                        }
                                        else
                                        {

                                            Entity.BaseMinAttack += dbi.PlusInformation.MinAttack;
                                            Entity.BaseMaxAttack += dbi.PlusInformation.MaxAttack;
                                            Entity.BaseMagicAttack += dbi.PlusInformation.MagicAttack;
                                            Entity.Defence += dbi.PlusInformation.PhysicalDefence;
                                            Entity.MagicDefence += dbi.PlusInformation.MagicDefence;
                                            Entity.ItemHP += dbi.PlusInformation.ItemHP;

                                            if (i.Position == ConquerItem.AltBoots)
                                            {
                                                Entity.Dodge += (byte)dbi.PlusInformation.Dodge;
                                            }
                                            if (i.Position == ConquerItem.Steed)
                                            {
                                                Entity.ExtraVigor += dbi.PlusInformation.Agility;
                                            }
                                        }
                                    }
                                    byte socketone = (byte)i.SocketOne;
                                    byte sockettwo = (byte)i.SocketTwo;
                                    ushort madd = 0, dadd = 0, aatk = 0, matk = 0;
                                    switch (socketone)
                                    {
                                        case 1: Entity.PhoenixGem += 5; break;
                                        case 2: Entity.PhoenixGem += 10; break;
                                        case 3: Entity.PhoenixGem += 15; break;

                                        case 11: Entity.DragonGem += 5; break;
                                        case 12: Entity.DragonGem += 10; break;
                                        case 13: Entity.DragonGem += 15; break;

                                        case 71: Entity.TortisGem += 15; break;
                                        case 72: Entity.TortisGem += 30; break;
                                        case 73: Entity.TortisGem += 50; 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;
                                    }
                                    switch (sockettwo)
                                    {
                                        case 1: Entity.PhoenixGem += 5; break;
                                        case 2: Entity.PhoenixGem += 10; break;
                                        case 3: Entity.PhoenixGem += 15; break;

                                        case 11: Entity.DragonGem += 5; break;
                                        case 12: Entity.DragonGem += 10; break;
                                        case 13: Entity.DragonGem += 15; break;

                                        case 71: Entity.TortisGem += 15; break;
                                        case 72: Entity.TortisGem += 30; break;
                                        case 73: Entity.TortisGem += 50; 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;

                                    Entity.ItemHP += i.Enchant;
                                    GemAlgorithm();

                                    #endregion
                                }
                            }
                        }
                    }
                }
            }
        }
        public void LoadItemStats(Game.Entity e)
        {
            #region Set Every Variable to Zero
            Entity.Defence = 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.CriticalStrike = 0;
            Entity.Immunity = 0;
            Entity.Penetration = 0;
            Entity.Counteraction = 0;
            Entity.Block = 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 = 0;
            Entity.BaseMinAttack = 0;
            Entity.BaseMaxAttack = 0;
            Entity.BaseMagicDefence = 0;
            Entity.BaseDefence = 0;
            Entity.MagicAttack = 0;
            Entity.MagicDefence = 0;
            Entity.DragonGem = 0;
            Entity.PhoenixGem = 0;
            Entity.TortisGem = 0;
            Entity.MagicDefencePercent = 0;
            Entity.MagicDamageIncrease = 0;
            Entity.Gems = new UInt16[10];
            #endregion

            foreach (IConquerItem i in Equipment.Objects)
            {
                if (i != null)
                {

                    if (i.Durability != 0 && i.Position < 20)
                    {
                        if (i.Position != ConquerItem.Garment && i.Position != ConquerItem.LeftWeaponAccessory && i.Position != ConquerItem.RightWeaponAccessory)
                        {
                            if (i.Position != ConquerItem.SteedArmor)
                            {

                                Database.ConquerItemInformation dbi = new Database.ConquerItemInformation(i.ID, i.Plus);
                                if (dbi != null)
                                {
                                    if (i.ID == 0x493e0)
                                    {
                                        byte r = 0;
                                        byte g = 0;
                                        byte b = 0;
                                        r = (byte)i.Mido1;
                                        g = (byte)i.Mido2;
                                        b = (byte)i.Mido3;
                                        i.Color = (PrvixyProject.Game.Enums.Color)b;
                                        i.Bless = g;
                                        i.Unknown40 = r;
                                        //i.Send(e.Owner);
                                    }

                                    #region Give Stats.
                                    Refinery.RefineryItem refine = null;
                                    Database.ConquerItemInformation soulDB = new PrvixyProject.Database.ConquerItemInformation(i.Purification.PurificationItemID, 0);
                                    if (i.RefineItem != 0)
                                        refine = i.RefineStats;
                                    if (soulDB != null)
                                    {
                                        Entity.Defence += soulDB.BaseInformation.PhysicalDefence;

                                        //Entity.Defence += soulDB.BaseInformation.PhysicalDefence;
                                        //Entity.Defence += soulDB.BaseInformation.PhysicalDefence;
                                        Entity.MagicDefence += soulDB.BaseInformation.MagicDefence;
                                        Entity.Dodge += (byte)soulDB.BaseInformation.Dodge;
                                        //Entity.Hitpoints += Infos.ItemHP;
                                        Entity.BaseMagicAttack += soulDB.BaseInformation.MagicAttack;
                                        Entity.BaseMinAttack += soulDB.BaseInformation.MinAttack;
                                        Entity.BaseMaxAttack += soulDB.BaseInformation.MaxAttack;

                                        // Entity.MetalResistance += soulDB.BaseInformation.me;
                                        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.ItemHP += soulDB.BaseInformation.ItemHP;
                                        Entity.ItemMP += soulDB.BaseInformation.ItemMP;
                                        Entity.Penetration += soulDB.BaseInformation.Penetration;
                                        Entity.Counteraction += soulDB.BaseInformation.CounterAction;
                                        Entity.Block += soulDB.BaseInformation.Block;
                                    }
                                    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) + 100);
                                                break;
                                            case Refinery.RefineryItem.RefineryType.Counteraction:
                                                Entity.Counteraction += (UInt16)(refine.Percent * 10);
                                                break;
                                            case Refinery.RefineryItem.RefineryType.Critical:
                                                Entity.CriticalStrike += (UInt16)((refine.Percent * 100) + 1000);
                                                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 (i.Position == ConquerItem.Tower)
                                    {
                                        Entity.PhysicalDamageDecrease += dbi.BaseInformation.PhysicalDefence;
                                        Entity.MagicDamageDecrease += dbi.BaseInformation.MagicDefence;
                                    }
                                    else
                                    {
                                        Entity.Defence += dbi.BaseInformation.PhysicalDefence;
                                        Entity.MagicDefencePercent += dbi.BaseInformation.MagicDefence;
                                        Entity.Dodge += (byte)dbi.BaseInformation.Dodge;
                                        if (i.Position != ConquerItem.Fan)
                                            Entity.BaseMagicAttack += dbi.BaseInformation.MagicAttack;
                                    }
                                    Entity.ItemHP += dbi.BaseInformation.ItemHP;
                                    Entity.ItemMP += dbi.BaseInformation.ItemMP;
                                    if (i.ID != 0x493e0)
                                    {
                                        Entity.ItemBless += i.Bless;
                                    }
                                    if (i.Position == ConquerItem.RightWeapon)
                                    {
                                        Entity.AttackRange += dbi.BaseInformation.AttackRange;
                                        if (Network.PacketHandler.IsTwoHand(dbi.BaseInformation.ID))
                                            Entity.AttackRange += 3;
                                        else
                                        {
                                            Entity.AttackRange += 2;
                                        }
                                    }
                                    if (i.Position == ConquerItem.LeftWeapon)
                                    {
                                        Entity.BaseMinAttack += (uint)(dbi.BaseInformation.MinAttack * 0.5F);
                                        Entity.BaseMaxAttack += (uint)(dbi.BaseInformation.MaxAttack * 0.5F);
                                    }
                                    else if (i.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 (i.Plus != 0)
                                    {
                                        if (i.Position == ConquerItem.Tower)
                                        {
                                            Entity.PhysicalDamageDecrease += dbi.PlusInformation.PhysicalDefence;
                                            Entity.MagicDamageDecrease += (ushort)dbi.PlusInformation.MagicDefence;
                                        }
                                        else if (i.Position == ConquerItem.Fan)
                                        {
                                            Entity.PhysicalDamageIncrease += (ushort)dbi.PlusInformation.MinAttack;
                                            Entity.MagicDamageIncrease += (ushort)dbi.PlusInformation.MagicAttack;
                                        }
                                        else
                                        {

                                            Entity.BaseMinAttack += dbi.PlusInformation.MinAttack;
                                            Entity.BaseMaxAttack += dbi.PlusInformation.MaxAttack;
                                            Entity.BaseMagicAttack += dbi.PlusInformation.MagicAttack;
                                            Entity.Defence += dbi.PlusInformation.PhysicalDefence;
                                            Entity.MagicDefence += dbi.PlusInformation.MagicDefence;
                                            Entity.ItemHP += dbi.PlusInformation.ItemHP;
                                            if (i.Position == ConquerItem.Boots)
                                            {
                                                Entity.Dodge += (byte)dbi.PlusInformation.Dodge;
                                            }
                                            if (i.Position == ConquerItem.Steed)
                                            {
                                                Entity.ExtraVigor += dbi.PlusInformation.Agility;
                                            }
                                        }
                                    }
                                    byte socketone = (byte)i.SocketOne;
                                    byte sockettwo = (byte)i.SocketTwo;
                                    ushort madd = 0, dadd = 0, aatk = 0, matk = 0;
                                    switch (socketone)
                                    {
                                        case 1: Entity.PhoenixGem += 5; break;
                                        case 2: Entity.PhoenixGem += 10; break;
                                        case 3: Entity.PhoenixGem += 15; break;

                                        case 11: Entity.DragonGem += 5; break;
                                        case 12: Entity.DragonGem += 10; break;
                                        case 13: Entity.DragonGem += 15; break;

                                        case 71: Entity.TortisGem += 15; break;
                                        case 72: Entity.TortisGem += 30; break;
                                        case 73: Entity.TortisGem += 50; 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;
                                    }
                                    switch (sockettwo)
                                    {
                                        case 1: Entity.PhoenixGem += 5; break;
                                        case 2: Entity.PhoenixGem += 10; break;
                                        case 3: Entity.PhoenixGem += 15; break;

                                        case 11: Entity.DragonGem += 5; break;
                                        case 12: Entity.DragonGem += 10; break;
                                        case 13: Entity.DragonGem += 15; break;

                                        case 71: Entity.TortisGem += 15; break;
                                        case 72: Entity.TortisGem += 30; break;
                                        case 73: Entity.TortisGem += 50; 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;

                                    Entity.ItemHP += i.Enchant;
                                    GemAlgorithm();

                                    #endregion
                                }
                            }
                        }
                    }
                }
            }
        }

        #region OLD LOADITEMSTATS
        /*
        public void LoadItemStats(Interfaces.IConquerItem item)//Use to load every item 
        {
            if (item == null)
                return;
            if (item.Durability == 0)
                return;
            if (item.Position == ConquerItem.Garment)
                return;
            Database.ConquerItemInformation Infos = new Conquer_Online_Server.Database.ConquerItemInformation(item.ID, item.Plus);

            if (Infos.BaseInformation == null)
                return;
            Refinery.RefineryItem refine = null;
            Database.ConquerItemInformation soulDB = new Conquer_Online_Server.Database.ConquerItemInformation(item.Purification.PurificationItemID, 0);
            if (item.RefineItem != 0)
                refine = item.RefineStats;
            if (soulDB != null)
            {
                Entity.Defence += soulDB.BaseInformation.PhysicalDefence;
                Entity.MagicDefence += soulDB.BaseInformation.MagicDefence;
                Entity.Dodge += soulDB.BaseInformation.Dodge;
                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 (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) + 100);
                        break;
                    case Refinery.RefineryItem.RefineryType.Counteraction:
                        Entity.Counteraction += (UInt16)(refine.Percent * 10);
                        break;
                    case Refinery.RefineryItem.RefineryType.Critical:
                        Entity.CriticalStrike += (UInt16)((refine.Percent * 100) + 1000);
                        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 (item.Position == ConquerItem.Tower)
            {
                Entity.PhysicalDamageDecrease += Infos.BaseInformation.PhysicalDefence;
                Entity.MagicDamageDecrease += Infos.BaseInformation.MagicDefence;
            }
            else
            {
                Entity.Defence += Infos.BaseInformation.PhysicalDefence;
                Entity.MagicDefencePercent += Infos.BaseInformation.MagicDefence;
                Entity.Dodge += (byte)Infos.BaseInformation.Dodge;
                if (item.Position != ConquerItem.Fan)
                    Entity.BaseMagicAttack += Infos.BaseInformation.MagicAttack;
            }
            Entity.ItemHP += Infos.BaseInformation.ItemHP;
            Entity.ItemMP += Infos.BaseInformation.ItemMP;
            Entity.ItemBless += item.Bless;
            if (item.Position == ConquerItem.RightWeapon)
            {
                Entity.AttackRange += Infos.BaseInformation.AttackRange;
                if (Network.PacketHandler.IsTwoHand(Infos.BaseInformation.ID))
                    Entity.AttackRange += 3;
                else
                {
                    Entity.AttackRange += 2;
                }
            }
            if (item.Position == ConquerItem.LeftWeapon)
            {
                Entity.BaseMinAttack += (uint)(Infos.BaseInformation.MinAttack * 0.5F);
                Entity.BaseMaxAttack += (uint)(Infos.BaseInformation.MaxAttack * 0.5F);
            }
            else if (item.Position == ConquerItem.Fan)
            {
                Entity.PhysicalDamageIncrease += Infos.BaseInformation.MinAttack;
                Entity.MagicDamageIncrease += Infos.BaseInformation.MagicAttack;
            }
            else
            {
                Entity.BaseMinAttack += Infos.BaseInformation.MinAttack;
                Entity.BaseMaxAttack += Infos.BaseInformation.MaxAttack;
            }
            if (item.Plus != 0)
            {
                if (item.Position == ConquerItem.Tower)
                {
                    Entity.PhysicalDamageDecrease += Infos.PlusInformation.PhysicalDefence;
                    Entity.MagicDamageDecrease += (ushort)Infos.PlusInformation.MagicDefence;
                }
                else if (item.Position == ConquerItem.Fan)
                {
                    Entity.PhysicalDamageIncrease += (ushort)Infos.PlusInformation.MinAttack;
                    Entity.MagicDamageIncrease += (ushort)Infos.PlusInformation.MagicAttack;
                }
                else
                {
                    if (item.Position == ConquerItem.Steed)
                        Entity.ExtraVigor += Infos.PlusInformation.Agility;
                    Entity.BaseMinAttack += Infos.PlusInformation.MinAttack;
                    Entity.BaseMaxAttack += Infos.PlusInformation.MaxAttack;
                    Entity.BaseMagicAttack += Infos.PlusInformation.MagicAttack;
                    Entity.Defence += Infos.PlusInformation.PhysicalDefence;
                    Entity.MagicDefence += Infos.PlusInformation.MagicDefence;
                    Entity.ItemHP += Infos.PlusInformation.ItemHP;
                    if (item.Position == ConquerItem.Boots)
                        Entity.Dodge += (byte)Infos.PlusInformation.Dodge;
                }
            }
            byte socketone = (byte)item.SocketOne;
            byte sockettwo = (byte)item.SocketTwo;
            ushort madd = 0, dadd = 0, aatk = 0, matk = 0;
            if (item.Position != ConquerItem.Garment &&
                item.Position != ConquerItem.Bottle &&
                item.Position != ConquerItem.Steed)
                switch (socketone)
                {
                    case 1: Entity.PhoenixGem += 5; break;
                        case 2: Entity.PhoenixGem += 10; break;
                        case 3: Entity.PhoenixGem += 15; break;

                        case 11: Entity.DragonGem += 5; break;
                        case 12: Entity.DragonGem += 10; break;
                        case 13: Entity.DragonGem += 15; break;

                        case 71: Entity.TortisGem += 15; break;
                        case 72: Entity.TortisGem += 30; break;
                        case 73: Entity.TortisGem += 50; 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 (item.Position != ConquerItem.Garment &&
                 item.Position != ConquerItem.Bottle &&
                 item.Position != ConquerItem.Steed)
                switch (sockettwo)
                {
                   case 1: Entity.PhoenixGem += 5; break;
                        case 2: Entity.PhoenixGem += 10; break;
                        case 3: Entity.PhoenixGem += 15; break;

                        case 11: Entity.DragonGem += 5; break;
                        case 12: Entity.DragonGem += 10; break;
                        case 13: Entity.DragonGem += 15; break;

                        case 71: Entity.TortisGem += 15; break;
                        case 72: Entity.TortisGem += 30; break;
                        case 73: Entity.TortisGem += 50; 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.Garment &&
               item.Position != ConquerItem.Bottle)
            {
                Entity.ItemHP += item.Enchant;
                GemAlgorithm();
            }
        }
        public void UnloadItemStats(Interfaces.IConquerItem item, bool onPurpose)
        {
            if (item == null) return;

            if (item.Durability == 0 && !onPurpose)
                return;
            if (item.Position == ConquerItem.Garment)
                return;
            Database.ConquerItemInformation Infos = new Conquer_Online_Server.Database.ConquerItemInformation(item.ID, item.Plus);
            if (Infos.BaseInformation == null)
                return;
            Refinery.RefineryItem refine = null;
            Database.ConquerItemInformation soulDB = new Conquer_Online_Server.Database.ConquerItemInformation(item.Purification.PurificationItemID, 0);
            if (item.RefineItem != 0)
                refine = item.RefineStats;
            if (soulDB != null)
            {
                Entity.Defence -= soulDB.BaseInformation.PhysicalDefence;
                Entity.MagicDefence -= soulDB.BaseInformation.MagicDefence;
                Entity.Dodge -= soulDB.BaseInformation.Dodge;
                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 (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 * 100);
                        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 (item.Position == ConquerItem.Tower)
            {
                Entity.PhysicalDamageDecrease -= Infos.BaseInformation.PhysicalDefence;
                Entity.MagicDamageDecrease -= Infos.BaseInformation.MagicDefence;
            }
            else
            {
                Entity.Defence -= Infos.BaseInformation.PhysicalDefence;
                Entity.MagicDefencePercent -= Infos.BaseInformation.MagicDefence;
                Entity.Dodge -= (byte)Infos.BaseInformation.Dodge;
                if (item.Position != ConquerItem.Fan)
                    Entity.BaseMagicAttack -= Infos.BaseInformation.MagicAttack;
            }

            Entity.ItemHP -= Infos.BaseInformation.ItemHP;
            Entity.ItemMP -= Infos.BaseInformation.ItemMP;
            Entity.ItemBless -= item.Bless;
            if (item.Position == ConquerItem.RightWeapon)
            {
                Entity.AttackRange -= Infos.BaseInformation.AttackRange;
                if (Network.PacketHandler.IsTwoHand(Infos.BaseInformation.ID))
                    Entity.AttackRange -= 2;
            }
            if (item.Position == ConquerItem.LeftWeapon)
            {
                Entity.BaseMinAttack -= (uint)(Infos.BaseInformation.MinAttack * 0.5F);
                Entity.BaseMaxAttack -= (uint)(Infos.BaseInformation.MaxAttack * 0.5F);
            }
            else if (item.Position == ConquerItem.Fan)
            {
                Entity.PhysicalDamageIncrease -= Infos.BaseInformation.MinAttack;
                Entity.MagicDamageIncrease -= Infos.BaseInformation.MagicAttack;
            }
            else
            {
                Entity.BaseMinAttack -= Infos.BaseInformation.MinAttack;
                Entity.BaseMaxAttack -= Infos.BaseInformation.MaxAttack;
            }
            if (item.Plus != 0)
            {
                if (item.Position == ConquerItem.Tower)
                {
                    Entity.PhysicalDamageDecrease -= Infos.PlusInformation.PhysicalDefence;
                    Entity.MagicDamageDecrease -= (ushort)Infos.PlusInformation.MagicDefence;
                }
                else if (item.Position == ConquerItem.Fan)
                {
                    Entity.PhysicalDamageIncrease -= (ushort)Infos.PlusInformation.MinAttack;
                    Entity.MagicDamageIncrease -= (ushort)Infos.PlusInformation.MagicAttack;
                }
                else
                {
                    if (item.Position == ConquerItem.Steed)
                        Entity.ExtraVigor -= Infos.PlusInformation.Agility;
                    Entity.BaseMinAttack -= Infos.PlusInformation.MinAttack;
                    Entity.BaseMaxAttack -= Infos.PlusInformation.MaxAttack;
                    Entity.BaseMagicAttack -= Infos.PlusInformation.MagicAttack;
                    Entity.Defence -= Infos.PlusInformation.PhysicalDefence;
                    Entity.MagicDefence -= Infos.PlusInformation.MagicDefence;
                    Entity.ItemHP -= Infos.PlusInformation.ItemHP;
                    if (item.Position == ConquerItem.Boots)
                        Entity.Dodge -= (byte)Infos.PlusInformation.Dodge;
                }
            }
            byte socketone = (byte)item.SocketOne;
            byte sockettwo = (byte)item.SocketTwo;
            ushort madd = 0, dadd = 0, aatk = 0, matk = 0;
            if (item.Position != ConquerItem.Garment &&
                item.Position != ConquerItem.Bottle &&
                item.Position != ConquerItem.Steed)
                switch (socketone)
                {
                    case 1: Entity.PhoenixGem += 5; break;
                        case 2: Entity.PhoenixGem += 10; break;
                        case 3: Entity.PhoenixGem += 15; break;

                        case 11: Entity.DragonGem += 5; break;
                        case 12: Entity.DragonGem += 10; break;
                        case 13: Entity.DragonGem += 15; break;

                        case 71: Entity.TortisGem += 15; break;
                        case 72: Entity.TortisGem += 30; break;
                        case 73: Entity.TortisGem += 50; 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 (item.Position != ConquerItem.Garment &&
                 item.Position != ConquerItem.Bottle &&
                 item.Position != ConquerItem.Steed)
                switch (sockettwo)
                {
                    case 1: Entity.PhoenixGem += 5; break;
                        case 2: Entity.PhoenixGem += 10; break;
                        case 3: Entity.PhoenixGem += 15; break;

                        case 11: Entity.DragonGem += 5; break;
                        case 12: Entity.DragonGem += 10; break;
                        case 13: Entity.DragonGem += 15; break;

                        case 71: Entity.TortisGem += 15; break;
                        case 72: Entity.TortisGem += 30; break;
                        case 73: Entity.TortisGem += 50; 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.Garment &&
                item.Position != ConquerItem.Bottle)
            {
                Entity.ItemHP -= item.Enchant;
                GemAlgorithm();
            }
        }
        */
        #endregion
        public void LoadSoulStats(uint ID)
        {
            var Infos = PrvixyProject.Database.ConquerItemInformation.BaseInformations[ID];

            Entity.Defence += Infos.PhysicalDefence;
            Entity.MagicDefence += Infos.MagicDefence;
            Entity.Dodge += (byte)Infos.Dodge;
            //Entity.max += Infos.ItemHP;
            Entity.BaseMagicAttack += Infos.MagicAttack;
            Entity.BaseMinAttack += Infos.MinAttack;
            Entity.BaseMaxAttack += Infos.MaxAttack;
        }
        public void UnloadSoulStats(uint ID)
        {
            var Infos = PrvixyProject.Database.ConquerItemInformation.BaseInformations[ID];

            Entity.Defence -= Infos.PhysicalDefence;
            Entity.MagicDefence -= Infos.MagicDefence;
            Entity.Dodge -= (byte)Infos.Dodge;
            //Entity.Hitpoints -= Infos.ItemHP;
            Entity.BaseMagicAttack -= Infos.MagicAttack;
            Entity.BaseMinAttack -= Infos.MinAttack;
            Entity.BaseMaxAttack -= Infos.MaxAttack;
        }
        public void GemAlgorithm()
        {
            Entity.MaxAttack = Entity.Strength + Entity.BaseMaxAttack;
            Entity.MinAttack = Entity.Strength + Entity.BaseMinAttack;
            Entity.MagicAttack = Entity.BaseMagicAttack;
            if (Entity.PhoenixGem != 0)
            {
                Entity.MagicAttack += (uint)Math.Floor(Entity.MagicAttack * (double)(Entity.PhoenixGem * 0.01));
            }
            if (Entity.DragonGem != 0)
            {
                Entity.MaxAttack += (uint)Math.Floor(Entity.MaxAttack * (double)(Entity.DragonGem * 0.01));
                Entity.MinAttack += (uint)Math.Floor(Entity.MinAttack * (double)(Entity.DragonGem * 0.01));
            }
            /*if (Entity.TortisGem != 0)
            {
                Entity.Defence += (ushort)Math.Floor(Entity.Defence * (double)(Entity.TortisGem * 0.01));
                Entity.MagicDefence += (ushort)Math.Floor(Entity.MagicDefence * (double)(Entity.TortisGem * 0.01));
            }*/
        }
        #endregion
Now search for
Code:
static void LoginMessages
Replace this
Code:
        static void LoginMessages(Client.GameState client)
        {
            client.Send(new Network.GamePackets.AutoShow().ToArray());
            if (client.WentToComplete)
                return;

for this
Code:
        static void LoginMessages(Client.GameState client)
        {
            client.Entity.MaxHitpoints += client.Entity.Hitpoints;
            client.Entity.MaxMana += client.Entity.Mana;
            client.Entity.Hitpoints = Math.Min(client.Entity.Hitpoints, client.Entity.MaxHitpoints);
            client.Send(new Network.GamePackets.AutoShow().ToArray());
            if (client.WentToComplete)
                return;
Save, Debug/Publish and enjoy.

Leave a thanks :)
08/04/2013 23:41 ameralzlam10#22
Quote:
Originally Posted by elhermanos View Post
Open your source and search for
Code:
public void CalculateHPBonus()
You should see this code
Code:
       #region Items
        private int StatHP;
        public void CalculateHPBonus()
        {
            switch (Entity.Class)
            {
Close the Items region and replace it for this code
Code:
#region Items
        private int StatHP;
        public void CalculateHPBonus()
        {
            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;
            }
            this.Entity.MaxHitpoints += this.Entity.ItemHP;
            Entity.MaxHitpoints += Entity.ItemHP;

            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 PrvixyProject.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);
        }
        public void LoadItemStats2(Game.Entity e)
        {
            #region Set Every Variable to Zero
            Entity.Defence = 0;
            Entity.MagicDefence = 0;
            Entity.Dodge = 0;
            Entity.BaseMagicAttack = 0;
            Entity.WoodResistance = 0;
            Entity.MetalResistance = 0;
            Entity.FireResistance = 0;
            Entity.WaterResistance = 0;
            Entity.EarthResistance = 0;
            Entity.Breaktrough = 0;
            Entity.CriticalStrike = 0;
            Entity.Immunity = 0;
            Entity.Penetration = 0;
            Entity.Counteraction = 0;
            Entity.Block = 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 = 0;
            Entity.BaseMinAttack = 0;
            Entity.BaseMaxAttack = 0;
            Entity.BaseMagicDefence = 0;
            Entity.BaseDefence = 0;
            Entity.MagicAttack = 0;
            Entity.MagicDefence = 0;
            Entity.DragonGem = 0;
            Entity.PhoenixGem = 0;
            Entity.TortisGem = 0;
            Entity.MagicDefencePercent = 0;
            Entity.MagicDamageIncrease = 0;
            Entity.Gems = new UInt16[10];
            #endregion

            foreach (IConquerItem i in Equipment.Objects)
            {
                if (i != null)
                {

                    if (i.Durability != 0 && i.Position > 9)
                    {
                        if (i.Position != ConquerItem.AltGarment && i.Position != ConquerItem.LeftWeaponAccessory && i.Position != ConquerItem.RightWeaponAccessory)
                        {
                            if (i.Position != ConquerItem.SteedArmor)
                            {
                                Database.ConquerItemInformation dbi = new Database.ConquerItemInformation(i.ID, i.Plus);
                                if (dbi != null)
                                {
                                    /*if (i.ID == 0x493e0)
                                    {
                                        byte r = 0;
                                        byte g = 0;
                                        byte b = 0;
                                        r = (byte)i.Serag1;
                                        g = (byte)i.Serag2;
                                        b = (byte)i.Serag3;
                                        i.Color = (Conquer_Online_Server.Game.Enums.Color)b;
                                        i.Bless = g;
                                        i.Unknown40 = r;

                                    }*/
                                    #region Give Stats.
                                    Refinery.RefineryItem refine = null;
                                    Database.ConquerItemInformation soulDB = new PrvixyProject.Database.ConquerItemInformation(i.Purification.PurificationItemID, 0);
                                    if (i.RefineItem != 0)
                                        refine = i.RefineStats;
                                    if (soulDB != null)
                                    {
                                        Entity.Defence += soulDB.BaseInformation.PhysicalDefence;

                                        //Entity.Defence += soulDB.BaseInformation.PhysicalDefence;
                                        //Entity.Defence += soulDB.BaseInformation.PhysicalDefence;
                                        Entity.MagicDefence += soulDB.BaseInformation.MagicDefence;
                                        Entity.Dodge += (byte)soulDB.BaseInformation.Dodge;
                                        //Entity.Hitpoints += Infos.ItemHP;
                                        Entity.BaseMagicAttack += soulDB.BaseInformation.MagicAttack;
                                        Entity.BaseMinAttack += soulDB.BaseInformation.MinAttack;
                                        Entity.BaseMaxAttack += soulDB.BaseInformation.MaxAttack;


                                        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.ItemHP += soulDB.BaseInformation.ItemHP;
                                        Entity.ItemMP += soulDB.BaseInformation.ItemMP;
                                        Entity.Penetration += soulDB.BaseInformation.Penetration;
                                        Entity.Counteraction += soulDB.BaseInformation.CounterAction;
                                        Entity.Block += soulDB.BaseInformation.Block;
                                    }
                                    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) + 100);
                                                break;
                                            case Refinery.RefineryItem.RefineryType.Counteraction:
                                                Entity.Counteraction += (UInt16)(refine.Percent * 10);
                                                break;
                                            case Refinery.RefineryItem.RefineryType.Critical:
                                                Entity.CriticalStrike += (UInt16)((refine.Percent * 100) + 1000);
                                                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 (i.Position == ConquerItem.Tower)
                                    {
                                        Entity.PhysicalDamageDecrease += dbi.BaseInformation.PhysicalDefence;
                                        Entity.MagicDamageDecrease += dbi.BaseInformation.MagicDefence;
                                    }
                                    else
                                    {
                                        Entity.Defence += dbi.BaseInformation.PhysicalDefence;
                                        Entity.MagicDefencePercent += dbi.BaseInformation.MagicDefence;
                                        Entity.Dodge += (byte)dbi.BaseInformation.Dodge;
                                        if (i.Position != ConquerItem.Fan)
                                            Entity.BaseMagicAttack += dbi.BaseInformation.MagicAttack;
                                    }
                                    Entity.ItemHP += dbi.BaseInformation.ItemHP;
                                    Entity.ItemMP += dbi.BaseInformation.ItemMP;
                                    if (i.ID != 0x493e0)
                                    {
                                        Entity.ItemBless += i.Bless;
                                    }
                                    if (i.Position == ConquerItem.AltRightHand)
                                    {
                                        Entity.AttackRange += dbi.BaseInformation.AttackRange;
                                        if (Network.PacketHandler.IsTwoHand(dbi.BaseInformation.ID))
                                            Entity.AttackRange += 3;
                                        else
                                        {
                                            Entity.AttackRange += 2;
                                        }
                                    }
                                    if (i.Position == ConquerItem.AltLeftHand)
                                    {
                                        Entity.BaseMinAttack += (uint)(dbi.BaseInformation.MinAttack * 0.5F);
                                        Entity.BaseMaxAttack += (uint)(dbi.BaseInformation.MaxAttack * 0.5F);
                                    }
                                    else if (i.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 (i.Plus != 0)
                                    {
                                        if (i.Position == ConquerItem.Tower)
                                        {
                                            Entity.PhysicalDamageDecrease += dbi.PlusInformation.PhysicalDefence;
                                            Entity.MagicDamageDecrease += (ushort)dbi.PlusInformation.MagicDefence;
                                        }
                                        else if (i.Position == ConquerItem.Fan)
                                        {
                                            Entity.PhysicalDamageIncrease += (ushort)dbi.PlusInformation.MinAttack;
                                            Entity.MagicDamageIncrease += (ushort)dbi.PlusInformation.MagicAttack;
                                        }
                                        else
                                        {

                                            Entity.BaseMinAttack += dbi.PlusInformation.MinAttack;
                                            Entity.BaseMaxAttack += dbi.PlusInformation.MaxAttack;
                                            Entity.BaseMagicAttack += dbi.PlusInformation.MagicAttack;
                                            Entity.Defence += dbi.PlusInformation.PhysicalDefence;
                                            Entity.MagicDefence += dbi.PlusInformation.MagicDefence;
                                            Entity.ItemHP += dbi.PlusInformation.ItemHP;

                                            if (i.Position == ConquerItem.AltBoots)
                                            {
                                                Entity.Dodge += (byte)dbi.PlusInformation.Dodge;
                                            }
                                            if (i.Position == ConquerItem.Steed)
                                            {
                                                Entity.ExtraVigor += dbi.PlusInformation.Agility;
                                            }
                                        }
                                    }
                                    byte socketone = (byte)i.SocketOne;
                                    byte sockettwo = (byte)i.SocketTwo;
                                    ushort madd = 0, dadd = 0, aatk = 0, matk = 0;
                                    switch (socketone)
                                    {
                                        case 1: Entity.PhoenixGem += 5; break;
                                        case 2: Entity.PhoenixGem += 10; break;
                                        case 3: Entity.PhoenixGem += 15; break;

                                        case 11: Entity.DragonGem += 5; break;
                                        case 12: Entity.DragonGem += 10; break;
                                        case 13: Entity.DragonGem += 15; break;

                                        case 71: Entity.TortisGem += 15; break;
                                        case 72: Entity.TortisGem += 30; break;
                                        case 73: Entity.TortisGem += 50; 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;
                                    }
                                    switch (sockettwo)
                                    {
                                        case 1: Entity.PhoenixGem += 5; break;
                                        case 2: Entity.PhoenixGem += 10; break;
                                        case 3: Entity.PhoenixGem += 15; break;

                                        case 11: Entity.DragonGem += 5; break;
                                        case 12: Entity.DragonGem += 10; break;
                                        case 13: Entity.DragonGem += 15; break;

                                        case 71: Entity.TortisGem += 15; break;
                                        case 72: Entity.TortisGem += 30; break;
                                        case 73: Entity.TortisGem += 50; 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;

                                    Entity.ItemHP += i.Enchant;
                                    GemAlgorithm();

                                    #endregion
                                }
                            }
                        }
                    }
                }
            }
        }
        public void LoadItemStats(Game.Entity e)
        {
            #region Set Every Variable to Zero
            Entity.Defence = 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.CriticalStrike = 0;
            Entity.Immunity = 0;
            Entity.Penetration = 0;
            Entity.Counteraction = 0;
            Entity.Block = 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 = 0;
            Entity.BaseMinAttack = 0;
            Entity.BaseMaxAttack = 0;
            Entity.BaseMagicDefence = 0;
            Entity.BaseDefence = 0;
            Entity.MagicAttack = 0;
            Entity.MagicDefence = 0;
            Entity.DragonGem = 0;
            Entity.PhoenixGem = 0;
            Entity.TortisGem = 0;
            Entity.MagicDefencePercent = 0;
            Entity.MagicDamageIncrease = 0;
            Entity.Gems = new UInt16[10];
            #endregion

            foreach (IConquerItem i in Equipment.Objects)
            {
                if (i != null)
                {

                    if (i.Durability != 0 && i.Position < 20)
                    {
                        if (i.Position != ConquerItem.Garment && i.Position != ConquerItem.LeftWeaponAccessory && i.Position != ConquerItem.RightWeaponAccessory)
                        {
                            if (i.Position != ConquerItem.SteedArmor)
                            {

                                Database.ConquerItemInformation dbi = new Database.ConquerItemInformation(i.ID, i.Plus);
                                if (dbi != null)
                                {
                                    if (i.ID == 0x493e0)
                                    {
                                        byte r = 0;
                                        byte g = 0;
                                        byte b = 0;
                                        r = (byte)i.Mido1;
                                        g = (byte)i.Mido2;
                                        b = (byte)i.Mido3;
                                        i.Color = (PrvixyProject.Game.Enums.Color)b;
                                        i.Bless = g;
                                        i.Unknown40 = r;
                                        //i.Send(e.Owner);
                                    }

                                    #region Give Stats.
                                    Refinery.RefineryItem refine = null;
                                    Database.ConquerItemInformation soulDB = new PrvixyProject.Database.ConquerItemInformation(i.Purification.PurificationItemID, 0);
                                    if (i.RefineItem != 0)
                                        refine = i.RefineStats;
                                    if (soulDB != null)
                                    {
                                        Entity.Defence += soulDB.BaseInformation.PhysicalDefence;

                                        //Entity.Defence += soulDB.BaseInformation.PhysicalDefence;
                                        //Entity.Defence += soulDB.BaseInformation.PhysicalDefence;
                                        Entity.MagicDefence += soulDB.BaseInformation.MagicDefence;
                                        Entity.Dodge += (byte)soulDB.BaseInformation.Dodge;
                                        //Entity.Hitpoints += Infos.ItemHP;
                                        Entity.BaseMagicAttack += soulDB.BaseInformation.MagicAttack;
                                        Entity.BaseMinAttack += soulDB.BaseInformation.MinAttack;
                                        Entity.BaseMaxAttack += soulDB.BaseInformation.MaxAttack;

                                        // Entity.MetalResistance += soulDB.BaseInformation.me;
                                        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.ItemHP += soulDB.BaseInformation.ItemHP;
                                        Entity.ItemMP += soulDB.BaseInformation.ItemMP;
                                        Entity.Penetration += soulDB.BaseInformation.Penetration;
                                        Entity.Counteraction += soulDB.BaseInformation.CounterAction;
                                        Entity.Block += soulDB.BaseInformation.Block;
                                    }
                                    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) + 100);
                                                break;
                                            case Refinery.RefineryItem.RefineryType.Counteraction:
                                                Entity.Counteraction += (UInt16)(refine.Percent * 10);
                                                break;
                                            case Refinery.RefineryItem.RefineryType.Critical:
                                                Entity.CriticalStrike += (UInt16)((refine.Percent * 100) + 1000);
                                                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 (i.Position == ConquerItem.Tower)
                                    {
                                        Entity.PhysicalDamageDecrease += dbi.BaseInformation.PhysicalDefence;
                                        Entity.MagicDamageDecrease += dbi.BaseInformation.MagicDefence;
                                    }
                                    else
                                    {
                                        Entity.Defence += dbi.BaseInformation.PhysicalDefence;
                                        Entity.MagicDefencePercent += dbi.BaseInformation.MagicDefence;
                                        Entity.Dodge += (byte)dbi.BaseInformation.Dodge;
                                        if (i.Position != ConquerItem.Fan)
                                            Entity.BaseMagicAttack += dbi.BaseInformation.MagicAttack;
                                    }
                                    Entity.ItemHP += dbi.BaseInformation.ItemHP;
                                    Entity.ItemMP += dbi.BaseInformation.ItemMP;
                                    if (i.ID != 0x493e0)
                                    {
                                        Entity.ItemBless += i.Bless;
                                    }
                                    if (i.Position == ConquerItem.RightWeapon)
                                    {
                                        Entity.AttackRange += dbi.BaseInformation.AttackRange;
                                        if (Network.PacketHandler.IsTwoHand(dbi.BaseInformation.ID))
                                            Entity.AttackRange += 3;
                                        else
                                        {
                                            Entity.AttackRange += 2;
                                        }
                                    }
                                    if (i.Position == ConquerItem.LeftWeapon)
                                    {
                                        Entity.BaseMinAttack += (uint)(dbi.BaseInformation.MinAttack * 0.5F);
                                        Entity.BaseMaxAttack += (uint)(dbi.BaseInformation.MaxAttack * 0.5F);
                                    }
                                    else if (i.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 (i.Plus != 0)
                                    {
                                        if (i.Position == ConquerItem.Tower)
                                        {
                                            Entity.PhysicalDamageDecrease += dbi.PlusInformation.PhysicalDefence;
                                            Entity.MagicDamageDecrease += (ushort)dbi.PlusInformation.MagicDefence;
                                        }
                                        else if (i.Position == ConquerItem.Fan)
                                        {
                                            Entity.PhysicalDamageIncrease += (ushort)dbi.PlusInformation.MinAttack;
                                            Entity.MagicDamageIncrease += (ushort)dbi.PlusInformation.MagicAttack;
                                        }
                                        else
                                        {

                                            Entity.BaseMinAttack += dbi.PlusInformation.MinAttack;
                                            Entity.BaseMaxAttack += dbi.PlusInformation.MaxAttack;
                                            Entity.BaseMagicAttack += dbi.PlusInformation.MagicAttack;
                                            Entity.Defence += dbi.PlusInformation.PhysicalDefence;
                                            Entity.MagicDefence += dbi.PlusInformation.MagicDefence;
                                            Entity.ItemHP += dbi.PlusInformation.ItemHP;
                                            if (i.Position == ConquerItem.Boots)
                                            {
                                                Entity.Dodge += (byte)dbi.PlusInformation.Dodge;
                                            }
                                            if (i.Position == ConquerItem.Steed)
                                            {
                                                Entity.ExtraVigor += dbi.PlusInformation.Agility;
                                            }
                                        }
                                    }
                                    byte socketone = (byte)i.SocketOne;
                                    byte sockettwo = (byte)i.SocketTwo;
                                    ushort madd = 0, dadd = 0, aatk = 0, matk = 0;
                                    switch (socketone)
                                    {
                                        case 1: Entity.PhoenixGem += 5; break;
                                        case 2: Entity.PhoenixGem += 10; break;
                                        case 3: Entity.PhoenixGem += 15; break;

                                        case 11: Entity.DragonGem += 5; break;
                                        case 12: Entity.DragonGem += 10; break;
                                        case 13: Entity.DragonGem += 15; break;

                                        case 71: Entity.TortisGem += 15; break;
                                        case 72: Entity.TortisGem += 30; break;
                                        case 73: Entity.TortisGem += 50; 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;
                                    }
                                    switch (sockettwo)
                                    {
                                        case 1: Entity.PhoenixGem += 5; break;
                                        case 2: Entity.PhoenixGem += 10; break;
                                        case 3: Entity.PhoenixGem += 15; break;

                                        case 11: Entity.DragonGem += 5; break;
                                        case 12: Entity.DragonGem += 10; break;
                                        case 13: Entity.DragonGem += 15; break;

                                        case 71: Entity.TortisGem += 15; break;
                                        case 72: Entity.TortisGem += 30; break;
                                        case 73: Entity.TortisGem += 50; 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;

                                    Entity.ItemHP += i.Enchant;
                                    GemAlgorithm();

                                    #endregion
                                }
                            }
                        }
                    }
                }
            }
        }

        #region OLD LOADITEMSTATS
        /*
        public void LoadItemStats(Interfaces.IConquerItem item)//Use to load every item 
        {
            if (item == null)
                return;
            if (item.Durability == 0)
                return;
            if (item.Position == ConquerItem.Garment)
                return;
            Database.ConquerItemInformation Infos = new Conquer_Online_Server.Database.ConquerItemInformation(item.ID, item.Plus);

            if (Infos.BaseInformation == null)
                return;
            Refinery.RefineryItem refine = null;
            Database.ConquerItemInformation soulDB = new Conquer_Online_Server.Database.ConquerItemInformation(item.Purification.PurificationItemID, 0);
            if (item.RefineItem != 0)
                refine = item.RefineStats;
            if (soulDB != null)
            {
                Entity.Defence += soulDB.BaseInformation.PhysicalDefence;
                Entity.MagicDefence += soulDB.BaseInformation.MagicDefence;
                Entity.Dodge += soulDB.BaseInformation.Dodge;
                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 (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) + 100);
                        break;
                    case Refinery.RefineryItem.RefineryType.Counteraction:
                        Entity.Counteraction += (UInt16)(refine.Percent * 10);
                        break;
                    case Refinery.RefineryItem.RefineryType.Critical:
                        Entity.CriticalStrike += (UInt16)((refine.Percent * 100) + 1000);
                        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 (item.Position == ConquerItem.Tower)
            {
                Entity.PhysicalDamageDecrease += Infos.BaseInformation.PhysicalDefence;
                Entity.MagicDamageDecrease += Infos.BaseInformation.MagicDefence;
            }
            else
            {
                Entity.Defence += Infos.BaseInformation.PhysicalDefence;
                Entity.MagicDefencePercent += Infos.BaseInformation.MagicDefence;
                Entity.Dodge += (byte)Infos.BaseInformation.Dodge;
                if (item.Position != ConquerItem.Fan)
                    Entity.BaseMagicAttack += Infos.BaseInformation.MagicAttack;
            }
            Entity.ItemHP += Infos.BaseInformation.ItemHP;
            Entity.ItemMP += Infos.BaseInformation.ItemMP;
            Entity.ItemBless += item.Bless;
            if (item.Position == ConquerItem.RightWeapon)
            {
                Entity.AttackRange += Infos.BaseInformation.AttackRange;
                if (Network.PacketHandler.IsTwoHand(Infos.BaseInformation.ID))
                    Entity.AttackRange += 3;
                else
                {
                    Entity.AttackRange += 2;
                }
            }
            if (item.Position == ConquerItem.LeftWeapon)
            {
                Entity.BaseMinAttack += (uint)(Infos.BaseInformation.MinAttack * 0.5F);
                Entity.BaseMaxAttack += (uint)(Infos.BaseInformation.MaxAttack * 0.5F);
            }
            else if (item.Position == ConquerItem.Fan)
            {
                Entity.PhysicalDamageIncrease += Infos.BaseInformation.MinAttack;
                Entity.MagicDamageIncrease += Infos.BaseInformation.MagicAttack;
            }
            else
            {
                Entity.BaseMinAttack += Infos.BaseInformation.MinAttack;
                Entity.BaseMaxAttack += Infos.BaseInformation.MaxAttack;
            }
            if (item.Plus != 0)
            {
                if (item.Position == ConquerItem.Tower)
                {
                    Entity.PhysicalDamageDecrease += Infos.PlusInformation.PhysicalDefence;
                    Entity.MagicDamageDecrease += (ushort)Infos.PlusInformation.MagicDefence;
                }
                else if (item.Position == ConquerItem.Fan)
                {
                    Entity.PhysicalDamageIncrease += (ushort)Infos.PlusInformation.MinAttack;
                    Entity.MagicDamageIncrease += (ushort)Infos.PlusInformation.MagicAttack;
                }
                else
                {
                    if (item.Position == ConquerItem.Steed)
                        Entity.ExtraVigor += Infos.PlusInformation.Agility;
                    Entity.BaseMinAttack += Infos.PlusInformation.MinAttack;
                    Entity.BaseMaxAttack += Infos.PlusInformation.MaxAttack;
                    Entity.BaseMagicAttack += Infos.PlusInformation.MagicAttack;
                    Entity.Defence += Infos.PlusInformation.PhysicalDefence;
                    Entity.MagicDefence += Infos.PlusInformation.MagicDefence;
                    Entity.ItemHP += Infos.PlusInformation.ItemHP;
                    if (item.Position == ConquerItem.Boots)
                        Entity.Dodge += (byte)Infos.PlusInformation.Dodge;
                }
            }
            byte socketone = (byte)item.SocketOne;
            byte sockettwo = (byte)item.SocketTwo;
            ushort madd = 0, dadd = 0, aatk = 0, matk = 0;
            if (item.Position != ConquerItem.Garment &&
                item.Position != ConquerItem.Bottle &&
                item.Position != ConquerItem.Steed)
                switch (socketone)
                {
                    case 1: Entity.PhoenixGem += 5; break;
                        case 2: Entity.PhoenixGem += 10; break;
                        case 3: Entity.PhoenixGem += 15; break;

                        case 11: Entity.DragonGem += 5; break;
                        case 12: Entity.DragonGem += 10; break;
                        case 13: Entity.DragonGem += 15; break;

                        case 71: Entity.TortisGem += 15; break;
                        case 72: Entity.TortisGem += 30; break;
                        case 73: Entity.TortisGem += 50; 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 (item.Position != ConquerItem.Garment &&
                 item.Position != ConquerItem.Bottle &&
                 item.Position != ConquerItem.Steed)
                switch (sockettwo)
                {
                   case 1: Entity.PhoenixGem += 5; break;
                        case 2: Entity.PhoenixGem += 10; break;
                        case 3: Entity.PhoenixGem += 15; break;

                        case 11: Entity.DragonGem += 5; break;
                        case 12: Entity.DragonGem += 10; break;
                        case 13: Entity.DragonGem += 15; break;

                        case 71: Entity.TortisGem += 15; break;
                        case 72: Entity.TortisGem += 30; break;
                        case 73: Entity.TortisGem += 50; 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.Garment &&
               item.Position != ConquerItem.Bottle)
            {
                Entity.ItemHP += item.Enchant;
                GemAlgorithm();
            }
        }
        public void UnloadItemStats(Interfaces.IConquerItem item, bool onPurpose)
        {
            if (item == null) return;

            if (item.Durability == 0 && !onPurpose)
                return;
            if (item.Position == ConquerItem.Garment)
                return;
            Database.ConquerItemInformation Infos = new Conquer_Online_Server.Database.ConquerItemInformation(item.ID, item.Plus);
            if (Infos.BaseInformation == null)
                return;
            Refinery.RefineryItem refine = null;
            Database.ConquerItemInformation soulDB = new Conquer_Online_Server.Database.ConquerItemInformation(item.Purification.PurificationItemID, 0);
            if (item.RefineItem != 0)
                refine = item.RefineStats;
            if (soulDB != null)
            {
                Entity.Defence -= soulDB.BaseInformation.PhysicalDefence;
                Entity.MagicDefence -= soulDB.BaseInformation.MagicDefence;
                Entity.Dodge -= soulDB.BaseInformation.Dodge;
                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 (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 * 100);
                        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 (item.Position == ConquerItem.Tower)
            {
                Entity.PhysicalDamageDecrease -= Infos.BaseInformation.PhysicalDefence;
                Entity.MagicDamageDecrease -= Infos.BaseInformation.MagicDefence;
            }
            else
            {
                Entity.Defence -= Infos.BaseInformation.PhysicalDefence;
                Entity.MagicDefencePercent -= Infos.BaseInformation.MagicDefence;
                Entity.Dodge -= (byte)Infos.BaseInformation.Dodge;
                if (item.Position != ConquerItem.Fan)
                    Entity.BaseMagicAttack -= Infos.BaseInformation.MagicAttack;
            }

            Entity.ItemHP -= Infos.BaseInformation.ItemHP;
            Entity.ItemMP -= Infos.BaseInformation.ItemMP;
            Entity.ItemBless -= item.Bless;
            if (item.Position == ConquerItem.RightWeapon)
            {
                Entity.AttackRange -= Infos.BaseInformation.AttackRange;
                if (Network.PacketHandler.IsTwoHand(Infos.BaseInformation.ID))
                    Entity.AttackRange -= 2;
            }
            if (item.Position == ConquerItem.LeftWeapon)
            {
                Entity.BaseMinAttack -= (uint)(Infos.BaseInformation.MinAttack * 0.5F);
                Entity.BaseMaxAttack -= (uint)(Infos.BaseInformation.MaxAttack * 0.5F);
            }
            else if (item.Position == ConquerItem.Fan)
            {
                Entity.PhysicalDamageIncrease -= Infos.BaseInformation.MinAttack;
                Entity.MagicDamageIncrease -= Infos.BaseInformation.MagicAttack;
            }
            else
            {
                Entity.BaseMinAttack -= Infos.BaseInformation.MinAttack;
                Entity.BaseMaxAttack -= Infos.BaseInformation.MaxAttack;
            }
            if (item.Plus != 0)
            {
                if (item.Position == ConquerItem.Tower)
                {
                    Entity.PhysicalDamageDecrease -= Infos.PlusInformation.PhysicalDefence;
                    Entity.MagicDamageDecrease -= (ushort)Infos.PlusInformation.MagicDefence;
                }
                else if (item.Position == ConquerItem.Fan)
                {
                    Entity.PhysicalDamageIncrease -= (ushort)Infos.PlusInformation.MinAttack;
                    Entity.MagicDamageIncrease -= (ushort)Infos.PlusInformation.MagicAttack;
                }
                else
                {
                    if (item.Position == ConquerItem.Steed)
                        Entity.ExtraVigor -= Infos.PlusInformation.Agility;
                    Entity.BaseMinAttack -= Infos.PlusInformation.MinAttack;
                    Entity.BaseMaxAttack -= Infos.PlusInformation.MaxAttack;
                    Entity.BaseMagicAttack -= Infos.PlusInformation.MagicAttack;
                    Entity.Defence -= Infos.PlusInformation.PhysicalDefence;
                    Entity.MagicDefence -= Infos.PlusInformation.MagicDefence;
                    Entity.ItemHP -= Infos.PlusInformation.ItemHP;
                    if (item.Position == ConquerItem.Boots)
                        Entity.Dodge -= (byte)Infos.PlusInformation.Dodge;
                }
            }
            byte socketone = (byte)item.SocketOne;
            byte sockettwo = (byte)item.SocketTwo;
            ushort madd = 0, dadd = 0, aatk = 0, matk = 0;
            if (item.Position != ConquerItem.Garment &&
                item.Position != ConquerItem.Bottle &&
                item.Position != ConquerItem.Steed)
                switch (socketone)
                {
                    case 1: Entity.PhoenixGem += 5; break;
                        case 2: Entity.PhoenixGem += 10; break;
                        case 3: Entity.PhoenixGem += 15; break;

                        case 11: Entity.DragonGem += 5; break;
                        case 12: Entity.DragonGem += 10; break;
                        case 13: Entity.DragonGem += 15; break;

                        case 71: Entity.TortisGem += 15; break;
                        case 72: Entity.TortisGem += 30; break;
                        case 73: Entity.TortisGem += 50; 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 (item.Position != ConquerItem.Garment &&
                 item.Position != ConquerItem.Bottle &&
                 item.Position != ConquerItem.Steed)
                switch (sockettwo)
                {
                    case 1: Entity.PhoenixGem += 5; break;
                        case 2: Entity.PhoenixGem += 10; break;
                        case 3: Entity.PhoenixGem += 15; break;

                        case 11: Entity.DragonGem += 5; break;
                        case 12: Entity.DragonGem += 10; break;
                        case 13: Entity.DragonGem += 15; break;

                        case 71: Entity.TortisGem += 15; break;
                        case 72: Entity.TortisGem += 30; break;
                        case 73: Entity.TortisGem += 50; 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.Garment &&
                item.Position != ConquerItem.Bottle)
            {
                Entity.ItemHP -= item.Enchant;
                GemAlgorithm();
            }
        }
        */
        #endregion
        public void LoadSoulStats(uint ID)
        {
            var Infos = PrvixyProject.Database.ConquerItemInformation.BaseInformations[ID];

            Entity.Defence += Infos.PhysicalDefence;
            Entity.MagicDefence += Infos.MagicDefence;
            Entity.Dodge += (byte)Infos.Dodge;
            //Entity.max += Infos.ItemHP;
            Entity.BaseMagicAttack += Infos.MagicAttack;
            Entity.BaseMinAttack += Infos.MinAttack;
            Entity.BaseMaxAttack += Infos.MaxAttack;
        }
        public void UnloadSoulStats(uint ID)
        {
            var Infos = PrvixyProject.Database.ConquerItemInformation.BaseInformations[ID];

            Entity.Defence -= Infos.PhysicalDefence;
            Entity.MagicDefence -= Infos.MagicDefence;
            Entity.Dodge -= (byte)Infos.Dodge;
            //Entity.Hitpoints -= Infos.ItemHP;
            Entity.BaseMagicAttack -= Infos.MagicAttack;
            Entity.BaseMinAttack -= Infos.MinAttack;
            Entity.BaseMaxAttack -= Infos.MaxAttack;
        }
        public void GemAlgorithm()
        {
            Entity.MaxAttack = Entity.Strength + Entity.BaseMaxAttack;
            Entity.MinAttack = Entity.Strength + Entity.BaseMinAttack;
            Entity.MagicAttack = Entity.BaseMagicAttack;
            if (Entity.PhoenixGem != 0)
            {
                Entity.MagicAttack += (uint)Math.Floor(Entity.MagicAttack * (double)(Entity.PhoenixGem * 0.01));
            }
            if (Entity.DragonGem != 0)
            {
                Entity.MaxAttack += (uint)Math.Floor(Entity.MaxAttack * (double)(Entity.DragonGem * 0.01));
                Entity.MinAttack += (uint)Math.Floor(Entity.MinAttack * (double)(Entity.DragonGem * 0.01));
            }
            /*if (Entity.TortisGem != 0)
            {
                Entity.Defence += (ushort)Math.Floor(Entity.Defence * (double)(Entity.TortisGem * 0.01));
                Entity.MagicDefence += (ushort)Math.Floor(Entity.MagicDefence * (double)(Entity.TortisGem * 0.01));
            }*/
        }
        #endregion
Now search for
Code:
static void LoginMessages
Replace this
Code:
        static void LoginMessages(Client.GameState client)
        {
            client.Send(new Network.GamePackets.AutoShow().ToArray());
            if (client.WentToComplete)
                return;

for this
Code:
        static void LoginMessages(Client.GameState client)
        {
            client.Entity.MaxHitpoints += client.Entity.Hitpoints;
            client.Entity.MaxMana += client.Entity.Mana;
            client.Entity.Hitpoints = Math.Min(client.Entity.Hitpoints, client.Entity.MaxHitpoints);
            client.Send(new Network.GamePackets.AutoShow().ToArray());
            if (client.WentToComplete)
                return;
Save, Debug/Publish and enjoy.

Leave a thanks :)
not work
08/05/2013 00:18 EgyptianMano#23
Quote:
Originally Posted by elhermanos View Post
Save, Debug/Publish and enjoy.
Leave a thanks :)
Quote:
Originally Posted by ameralzlam10 View Post
not work
it wont work for the thread problem coz those codes are for the main character Hp and item Hp add , the problem occurs when u add the Chi and subclass systems
08/05/2013 06:44 marcbacor6666#24
show us yours egyptian, just like how he posted his. ^^
08/05/2013 08:01 The.Goblin#25
this for Vitality

PHP Code:
        public void CalculateHPBonus()
        {
            switch (
this.Entity.Class)
            {
            case 
11:
                
this.Entity.MaxHitpoints = (uint)((float)this.StatHP 1.05f);
                break;
            case 
12:
                
this.Entity.MaxHitpoints = (uint)((float)this.StatHP 1.08f);
                break;
            case 
13:
                
this.Entity.MaxHitpoints = (uint)((float)this.StatHP 1.1f);
                break;
            case 
14:
                
this.Entity.MaxHitpoints = (uint)((float)this.StatHP 1.12f);
                break;
            case 
15:
                
this.Entity.MaxHitpoints = (uint)((float)this.StatHP 1.15f);
                break;
            default:
                
this.Entity.MaxHitpoints = (uint)this.StatHP;
                break;
            }
            
this.Entity.MaxHitpoints += (uint)this.Entity.ItemHP;
            
this.Entity.Hitpoints System.Math.Min(this.Entity.Hitpointsthis.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)(* (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);
        } 


this for items

PHP Code:
        public void LoadItemStats(Game.Entity e)
        {

            
this.Entity.Defence 0;
            
this.Entity.MagicDefence 0;
            
this.Entity.Dodge 0;
            
this.Entity.BaseMagicAttack 0u;
            
this.Entity.WoodResistance 0;
            
this.Entity.FireResistance 0;
            
this.Entity.WaterResistance 0;
            
this.Entity.EarthResistance 0;
            
this.Entity.MetalResistance 0;
            
this.Entity.BreakThrough 0;
            
this.Entity.CriticalStrike 0;
            
this.Entity.Immunity 0;
            
this.Entity.Penetration 0;
            
this.Entity.Counteraction 0;
            
this.Entity.Block 0;
            
this.Entity.Detoxication 0;
            
this.Entity.Intensification 0;
            
this.Entity.Penetration 0;
            
this.Entity.SkillCStrike 0;
            
this.Entity.MaxAttack 0u;
            
this.Entity.MinAttack 0u;
            
this.Entity.PhysicalDamageDecrease 0;
            
this.Entity.MagicDamageDecrease 0;
            
this.Entity.MagicDamageIncrease 0;
            
this.Entity.PhysicalDamageIncrease 0;
            
this.Entity.MagicDefencePercent 0;
            
this.Entity.ItemHP 0;
            
this.Entity.ItemMP 0;
            
this.Entity.ItemBless 0;
            
this.Entity.AttackRange 0;
            
this.Entity.BaseMinAttack 0u;
            
this.Entity.BaseMaxAttack 0u;
            
this.Entity.BaseMagicDefence 0u;
            
this.Entity.BaseDefence 0u;
            
this.Entity.MagicAttack 0u;
            
this.Entity.MagicDefence 0;
            
this.Entity.DragonGem 0;
            
this.Entity.PhoenixGem 0;
            
this.Entity.TortisGem 0;
            
this.Entity.MagicDefencePercent 0;
            
this.Entity.MagicDamageIncrease 0;
            
this.Entity.Gems = new ushort[10];
            
IConquerItem[] objects this.Equipment.Objects;
            for (
int i 0objects.Lengthi++)
            {
                
IConquerItem conquerItem objects[i];
                if (
conquerItem != null)
                {
                    if (
conquerItem.Durability != && conquerItem.Position 20)
                    {
                        if (
conquerItem.Position != && conquerItem.Position != 16 && conquerItem.Position != 15)
                        {
                            if (
conquerItem.Position != 17)
                            {
                                
Database.ConquerItemInformation conquerItemInformation = new Database.ConquerItemInformation(conquerItem.IDconquerItem.Plus);
                                if (
conquerItemInformation != null)
                                {
                                    if (
conquerItem.ID == 300000u)
                                    {
                                        
byte unknown = (byte)conquerItem.Hema1;
                                        
byte bless = (byte)conquerItem.Hema2;
                                        
byte color = (byte)conquerItem.Hema3;
                                        
conquerItem.Color = (Game.Enums.Color)color;
                                        
conquerItem.Bless bless;
                                        
conquerItem.Unknown40 = (uint)unknown;
                                    }
                                    
Refinery.RefineryItem refineryItem null;
                                    
Database.ConquerItemInformation conquerItemInformation2 = new Database.ConquerItemInformation(conquerItem.Purification.PurificationItemID0);
                                    if (
conquerItem.RefineItem != 0u)
                                    {
                                        
refineryItem conquerItem.RefineStats;
                                    }
                                    if (
conquerItemInformation2 != null)
                                    {
                                        
Game.Entity expr_347 this.Entity;
                                        
expr_347.Defence += conquerItemInformation2.BaseInformation.PhysicalDefence;
                                        
Game.Entity expr_367 this.Entity;
                                        
expr_367.MagicDefence += conquerItemInformation2.BaseInformation.MagicDefence;
                                        
Game.Entity expr_387 this.Entity;
                                        
expr_387.Dodge += conquerItemInformation2.BaseInformation.Dodge;
                                        
this.Entity.BaseMagicAttack += (uint)conquerItemInformation2.BaseInformation.MagicAttack;
                                        
this.Entity.BaseMinAttack += (uint)conquerItemInformation2.BaseInformation.MinAttack;
                                        
this.Entity.BaseMaxAttack += (uint)conquerItemInformation2.BaseInformation.MaxAttack;
                                        
Game.Entity expr_401 this.Entity;
                                        
expr_401.WoodResistance += conquerItemInformation2.BaseInformation.WoodResist;
                                        
Game.Entity expr_420 this.Entity;
                                        
expr_420.FireResistance += conquerItemInformation2.BaseInformation.FireResist;
                                        
Game.Entity expr_43F this.Entity;
                                        
expr_43F.WaterResistance += conquerItemInformation2.BaseInformation.WaterResist;
                                        
Game.Entity expr_45E this.Entity;
                                        
expr_45E.EarthResistance += conquerItemInformation2.BaseInformation.EarthResist;
                                        
Game.Entity expr_47D this.Entity;
                                        
expr_47D.Breaktrough += conquerItemInformation2.BaseInformation.Breaktrough;
                                        
Game.Entity expr_49C this.Entity;
                                        
expr_49C.CriticalStrike += conquerItemInformation2.BaseInformation.CriticalStrike;
                                        
Game.Entity expr_4BB this.Entity;
                                        
expr_4BB.Immunity += conquerItemInformation2.BaseInformation.Immunity;
                                        
Game.Entity expr_4DA this.Entity;
                                        
expr_4DA.ItemHP += conquerItemInformation2.BaseInformation.ItemHP;
                                        
Game.Entity expr_4F9 this.Entity;
                                        
expr_4F9.ItemMP += conquerItemInformation2.BaseInformation.ItemMP;
                                        
Game.Entity expr_518 this.Entity;
                                        
expr_518.Penetration += conquerItemInformation2.BaseInformation.Penetration;
                                        
Game.Entity expr_537 this.Entity;
                                        
expr_537.Counteraction += conquerItemInformation2.BaseInformation.CounterAction;
                                        
Game.Entity expr_556 this.Entity;
                                        
expr_556.Block += conquerItemInformation2.BaseInformation.Block;
                                    }
                                    if (
refineryItem != null)
                                    {
                                        switch (
refineryItem.Type)
                                        {
                                        case 
Refinery.RefineryItem.RefineryType.Critical:
                                        {
                                            
Game.Entity expr_62C this.Entity;
                                            
expr_62C.CriticalStrike += (ushort)(refineryItem.Percent 100u 1000u);
                                            break;
                                        }
                                        case 
Refinery.RefineryItem.RefineryType.SCritical:
                                        {
                                            
Game.Entity expr_6CF this.Entity;
                                            
expr_6CF.SkillCStrike += (ushort)(refineryItem.Percent 100u);
                                            break;
                                        }
                                        case 
Refinery.RefineryItem.RefineryType.Immunity:
                                        {
                                            
Game.Entity expr_672 this.Entity;
                                            
expr_672.Immunity += (ushort)(refineryItem.Percent 100u);
                                            break;
                                        }
                                        case 
Refinery.RefineryItem.RefineryType.BreakThrough:
                                        {
                                            
Game.Entity expr_5E3 this.Entity;
                                            
expr_5E3.Breaktrough += (ushort)(refineryItem.Percent 10u 100u);
                                            break;
                                        }
                                        case 
Refinery.RefineryItem.RefineryType.Counteraction:
                                        {
                                            
Game.Entity expr_609 this.Entity;
                                            
expr_609.Counteraction += (ushort)(refineryItem.Percent 10u);
                                            break;
                                        }
                                        case 
Refinery.RefineryItem.RefineryType.Detoxication:
                                        {
                                            
Game.Entity expr_655 this.Entity;
                                            
expr_655.Detoxication += (ushort)refineryItem.Percent;
                                            break;
                                        }
                                        case 
Refinery.RefineryItem.RefineryType.Block:
                                        {
                                            
Game.Entity expr_5C0 this.Entity;
                                            
expr_5C0.Block += (ushort)(refineryItem.Percent 100u);
                                            break;
                                        }
                                        case 
Refinery.RefineryItem.RefineryType.Penetration:
                                        {
                                            
Game.Entity expr_6AF this.Entity;
                                            
expr_6AF.Penetration += (ushort)(refineryItem.Percent 100u);
                                            break;
                                        }
                                        case 
Refinery.RefineryItem.RefineryType.Intensification:
                                        {
                                            
Game.Entity expr_692 this.Entity;
                                            
expr_692.Intensification += (ushort)refineryItem.Percent;
                                            break;
                                        }
                                        }
                                    }
                                    if (
conquerItem.Position == 11)
                                    {
                                        
Game.Entity expr_704 this.Entity;
                                        
expr_704.PhysicalDamageDecrease += conquerItemInformation.BaseInformation.PhysicalDefence;
                                        
Game.Entity expr_722 this.Entity;
                                        
expr_722.MagicDamageDecrease += conquerItemInformation.BaseInformation.MagicDefence;
                                    }
                                    else
                                    {
                                        
Game.Entity expr_747 this.Entity;
                                        
expr_747.Defence += conquerItemInformation.BaseInformation.PhysicalDefence;
                                        
Game.Entity expr_766 this.Entity;
                                        
expr_766.MagicDefencePercent += conquerItemInformation.BaseInformation.MagicDefence;
                                        
Game.Entity expr_785 this.Entity;
                                        
expr_785.Dodge += conquerItemInformation.BaseInformation.Dodge;
                                        if (
conquerItem.Position != 10)
                                        {
                                            
this.Entity.BaseMagicAttack += (uint)conquerItemInformation.BaseInformation.MagicAttack;
                                        }
                                    }
                                    
Game.Entity expr_7D2 this.Entity;
                                    
expr_7D2.ItemHP += conquerItemInformation.BaseInformation.ItemHP;
                                    
Game.Entity expr_7F0 this.Entity;
                                    
expr_7F0.ItemMP += conquerItemInformation.BaseInformation.ItemMP;
                                    if (
conquerItem.ID != 300000u)
                                    {
                                        
Game.Entity expr_822 this.Entity;
                                        
expr_822.ItemBless += (ushort)conquerItem.Bless;
                                    }
                                    if (
conquerItem.Position == 4)
                                    {
                                        
Game.Entity expr_84F this.Entity;
                                        
expr_84F.AttackRange += conquerItemInformation.BaseInformation.AttackRange;
                                        if (
PacketHandler.IsTwoHand(conquerItemInformation.BaseInformation.ID))
                                        {
                                            
Game.Entity expr_886 this.Entity;
                                            
expr_886.AttackRange += 3;
                                        }
                                        else
                                        {
                                            
Game.Entity expr_89D this.Entity;
                                            
expr_89D.AttackRange += 2;
                                        }
                                    }
                                    if (
conquerItem.Position == 5)
                                    {
                                        
this.Entity.BaseMinAttack += (uint)((float)conquerItemInformation.BaseInformation.MinAttack 0.5f);
                                        
this.Entity.BaseMaxAttack += (uint)((float)conquerItemInformation.BaseInformation.MaxAttack 0.5f);
                                    }
                                    else
                                    {
                                        if (
conquerItem.Position == 10)
                                        {
                                            
Game.Entity expr_92A this.Entity;
                                            
expr_92A.PhysicalDamageIncrease += conquerItemInformation.BaseInformation.MinAttack;
                                            
Game.Entity expr_948 this.Entity;
                                            
expr_948.MagicDamageIncrease += conquerItemInformation.BaseInformation.MagicAttack;
                                        }
                                        else
                                        {
                                            
this.Entity.BaseMinAttack += (uint)conquerItemInformation.BaseInformation.MinAttack;
                                            
this.Entity.BaseMaxAttack += (uint)conquerItemInformation.BaseInformation.MaxAttack;
                                        }
                                    }
                                    if (
conquerItem.Plus != 0)
                                    {
                                        if (
conquerItem.Position == 11)
                                        {
                                            
Game.Entity expr_9CC this.Entity;
                                            
expr_9CC.PhysicalDamageDecrease += conquerItemInformation.PlusInformation.PhysicalDefence;
                                            
Game.Entity expr_9EA this.Entity;
                                            
expr_9EA.MagicDamageDecrease += conquerItemInformation.PlusInformation.MagicDefence;
                                        }
                                        else
                                        {
                                            if (
conquerItem.Position == 10)
                                            {
                                                
Game.Entity expr_A22 this.Entity;
                                                
expr_A22.PhysicalDamageIncrease += (ushort)conquerItemInformation.PlusInformation.MinAttack;
                                                
Game.Entity expr_A41 this.Entity;
                                                
expr_A41.MagicDamageIncrease += conquerItemInformation.PlusInformation.MagicAttack;
                                            }
                                            else
                                            {
                                                
this.Entity.BaseMinAttack += conquerItemInformation.PlusInformation.MinAttack;
                                                
this.Entity.BaseMaxAttack += conquerItemInformation.PlusInformation.MaxAttack;
                                                
this.Entity.BaseMagicAttack += (uint)conquerItemInformation.PlusInformation.MagicAttack;
                                                
Game.Entity expr_ABD this.Entity;
                                                
expr_ABD.Defence += conquerItemInformation.PlusInformation.PhysicalDefence;
                                                
Game.Entity expr_ADC this.Entity;
                                                
expr_ADC.MagicDefence += conquerItemInformation.PlusInformation.MagicDefence;
                                                
Game.Entity expr_AFB this.Entity;
                                                
expr_AFB.ItemHP += conquerItemInformation.PlusInformation.ItemHP;
                                                if (
conquerItem.Position == 8)
                                                {
                                                    
Game.Entity expr_B2C this.Entity;
                                                    
expr_B2C.Dodge += conquerItemInformation.PlusInformation.Dodge;
                                                }
                                                if (
conquerItem.Position == 12)
                                                {
                                                    
Game.Entity expr_B60 this.Entity;
                                                    
expr_B60.ExtraVigor += conquerItemInformation.PlusInformation.Agility;
                                                }
                                            }
                                        }
                                    }
                                    
byte socketOne = (byte)conquerItem.SocketOne;
                                    
byte socketTwo = (byte)conquerItem.SocketTwo;
                                    
ushort num 0;
                                    
ushort num2 0;
                                    
ushort num3 0;
                                    
ushort num4 0;
                                    
byte b socketOne;
                                    if (
<= 13)
                                    {
                                        switch (
b)
                                        {
                                        case 
1:
                                        {
                                            
Game.Entity expr_C1E this.Entity;
                                            
expr_C1E.PhoenixGem += 5;
                                            break;
                                        }
                                        case 
2:
                                        {
                                            
Game.Entity expr_C37 this.Entity;
                                            
expr_C37.PhoenixGem += 10;
                                            break;
                                        }
                                        case 
3:
                                        {
                                            
Game.Entity expr_C51 this.Entity;
                                            
expr_C51.PhoenixGem += 15;
                                            break;
                                        }
                                        default:
                                            switch (
b)
                                            {
                                            case 
11:
                                            {
                                                
Game.Entity expr_C6B this.Entity;
                                                
expr_C6B.DragonGem += 5;
                                                break;
                                            }
                                            case 
12:
                                            {
                                                
Game.Entity expr_C84 this.Entity;
                                                
expr_C84.DragonGem += 10;
                                                break;
                                            }
                                            case 
13:
                                            {
                                                
Game.Entity expr_C9E this.Entity;
                                                
expr_C9E.DragonGem += 15;
                                                break;
                                            }
                                            }
                                            break;
                                        }
                                    }
                                    else
                                    {
                                        switch (
b)
                                        {
                                        case 
71:
                                        {
                                            
Game.Entity expr_CB8 this.Entity;
                                            
expr_CB8.TortisGem += 15;
                                            break;
                                        }
                                        case 
72:
                                        {
                                            
Game.Entity expr_CD2 this.Entity;
                                            
expr_CD2.TortisGem += 30;
                                            break;
                                        }
                                        case 
73:
                                        {
                                            
Game.Entity expr_CE9 this.Entity;
                                            
expr_CE9.TortisGem += 50;
                                            break;
                                        }
                                        default:
                                            switch (
b)
                                            {
                                            case 
101:
                                                    
num4 = (num3 num4 += 100);
                                                break;
                                            case 
102:
                                                
num4 = (num3 num4 += 300);
                                                break;
                                            case 
103:
                                                
num4 = (num3 num4 += 500);
                                                break;
                                            default:
                                                switch (
b)
                                                {
                                                case 
121:
                                                        
num2 = (num num2 += 100);
                                                    break;
                                                case 
122:
                                                    
num2 = (num num2 += 300);
                                                    break;
                                                case 
123:
                                                    
num2 = (num num2 += 500);
                                                    break;
                                                }
                                                break;
                                            }
                                            break;
                                        }
                                    }
                                    
socketTwo;
                                    if (
<= 13)
                                    {
                                        switch (
b)
                                        {
                                        case 
1:
                                        {
                                            
Game.Entity expr_DDB this.Entity;
                                            
expr_DDB.PhoenixGem += 5;
                                            break;
                                        }
                                        case 
2:
                                        {
                                            
Game.Entity expr_DF4 this.Entity;
                                            
expr_DF4.PhoenixGem += 10;
                                            break;
                                        }
                                        case 
3:
                                        {
                                            
Game.Entity expr_E0E this.Entity;
                                            
expr_E0E.PhoenixGem += 15;
                                            break;
                                        }
                                        default:
                                            switch (
b)
                                            {
                                            case 
11:
                                            {
                                                
Game.Entity expr_E28 this.Entity;
                                                
expr_E28.DragonGem += 5;
                                                break;
                                            }
                                            case 
12:
                                            {
                                                
Game.Entity expr_E41 this.Entity;
                                                
expr_E41.DragonGem += 10;
                                                break;
                                            }
                                            case 
13:
                                            {
                                                
Game.Entity expr_E5B this.Entity;
                                                
expr_E5B.DragonGem += 15;
                                                break;
                                            }
                                            }
                                            break;
                                        }
                                    }
                                    else
                                    {
                                        switch (
b)
                                        {
                                        case 
71:
                                        {
                                            
Game.Entity expr_E75 this.Entity;
                                            
expr_E75.TortisGem += 15;
                                            break;
                                        }
                                        case 
72:
                                        {
                                            
Game.Entity expr_E8F this.Entity;
                                            
expr_E8F.TortisGem += 30;
                                            break;
                                        }
                                        case 
73:
                                        {
                                            
Game.Entity expr_EA6 this.Entity;
                                            
expr_EA6.TortisGem += 50;
                                            break;
                                        }
                                        default:
                                            switch (
b)
                                            {
                                            case 
101:
                                                    
num4 = (num3 num4 += 100);
                                                break;
                                            case 
102:
                                                
num4 = (num3 num4 += 300);
                                                break;
                                            case 
103:
                                                
num4 = (num3 num4 += 500);
                                                break;
                                            default:
                                                switch (
b)
                                                {
                                                case 
121:
                                                        
num2 = (num num2 += 100);
                                                    break;
                                                case 
122:
                                                    
num2 = (num num2 += 300);
                                                    break;
                                                case 
123:
                                                    
num2 = (num num2 += 500);
                                                    break;
                                                }
                                                break;
                                            }
                                            break;
                                        }
                                    }
                                    
Game.Entity expr_F17 this.Entity;
                                    
expr_F17.PhysicalDamageDecrease += num2;
                                    
Game.Entity expr_F2C this.Entity;
                                    
expr_F2C.MagicDamageDecrease += num;
                                    
Game.Entity expr_F41 this.Entity;
                                    
expr_F41.PhysicalDamageIncrease += num3;
                                    
Game.Entity expr_F56 this.Entity;
                                    
expr_F56.MagicDamageIncrease += num4;
                                    
Game.Entity expr_F6B this.Entity;
                                    
expr_F6B.ItemHP += (ushort)conquerItem.Enchant;
                                    
this.GemAlgorithm();
                                    


                                }
                            }
                        }
                    }
                }
            }
        } 
this succeeded with me

[Only registered and activated users can see links. Click Here To Register...]


if you have problem in knife

You must make sure items (text)
08/05/2013 08:09 marcbacor6666#26
did you click the chi button first then viewed your max hp?

about this.
[Only registered and activated users can see links. Click Here To Register...]

you did not understand the chi problem.
Click the chi button first then view your maxhp,
then tell us if its fixed or not.
08/05/2013 08:43 The.Goblin#27
Quote:
Originally Posted by marcbacor6666 View Post
did you click the chi button first then viewed your max hp?

about this.
[Only registered and activated users can see links. Click Here To Register...]

you did not understand the chi problem.
Click the chi button first then view your maxhp,
then tell us if its fixed or not.

The picture after click chi button


to fix chi you must get load such

PHP Code:
            flag = (client.Entity.Atributo1CHIDragon 10010 true client.Entity.Atributo1CHIDragon 10200);
            if (!
flag)
            {
                
atributo3CHITigre client.Entity.Atributo1CHIDragon 10000;
            }
            
flag1 = (client.Entity.Atributo1CHIDragon 20010 true client.Entity.Atributo1CHIDragon 20200);
            if (!
flag1)
            {
                
atributo2CHITigre client.Entity.Atributo1CHIDragon 20000;
            } 
and more
08/05/2013 08:46 marcbacor6666#28
can u post the complete ^^

any updates?
08/05/2013 20:56 EgyptianMano#29
Quote:
Originally Posted by marcbacor6666 View Post
show us yours egyptian, just like how he posted his. ^^
i am using a different source and my structs are completely different , i already posted my Chi calculation, if u r asking about where to add them i also said it
create new void and put ur Chi calculations there then call it r8 after the load item state void
08/05/2013 21:32 marcbacor6666#30
Quote:
i am using a different source and my structs are completely different , i already posted my Chi calculation, if u r asking about where to add them i also said it
create new void and put ur Chi calculations there then call it r8 after the load item state void
after we click the chi button , the HP in our status will become different or not thesame in the HP below the interface the blood beside the mana

[Only registered and activated users can see links. Click Here To Register...]