حل مشاكل Source ElmistRo V2 - ابداع كونكر - Conquer

حل مشاكل Source ElmistRo V2

اللهم صلي وسلم وبارك على سيدنا محمد صلى الله عليه وسلم
الحمد لله العزيز الغفار يبسط يده بالنهار ليتوب مسيء الليل،
ويبسط يده بالليل ليتوب مسيء النهار،
أحمده على جزيل فضله وإنعامه وعظيم كرمه وإحسانه والصلاة والسلام ,
على نبيه المصطفى ورسوله المجتبى محمد صلى,
الله عليه وآله وسلم تسليماً كثيراً إلى يوم الدين الحمد لله العزيز الغفار ,
يبسط يده بالنهار ليتوب مسيء الليل ، ويبسط يده بالليل ليتوب مسيء النهار ،
أحمده على جزيل فضله وإنعامه وعظيم كرمه وإحسانه والصلاة والسلام على,
نبيه المصطفى ورسوله المجتبى محمد صلى الله عليه وآله وسلم تسليماً كثيراً إلى يوم الدين ,

ازيكو يا شباب عملين ايه

انهرده معناء موضوع حل مشاكل سورس المسترو

اي مشكله هتلاقيه اولاه وهيتم حله انشاء الله
@Bondq
وايا اخويه وحبيبي
mr.gm53

مستينكو

ملحوزه…… الناس الي مش عرف وبتفتح بي اوتو باتش

متفتحش من الاوتو باتش علشان الابجريد بتاعو باظ مع الشخصيه الجديده حط الباتش في فلدر
Env_DX8
وافتح من الايكون الي فيه
حل مشكلة الباتل بور لم تعمل اميل بنت والبور بيعله

افتح كلاس

DataHolder.cs

 

غيرو كلو بي ده

[PHP] using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ElmistRo.Database
{
    using MYSQLCOMMAND = MySql.Data.MySqlClient.MySqlCommand;
    using MYSQLREADER = MySql.Data.MySqlClient.MySqlDataReader;
    using MYSQLCONNECTION = MySql.Data.MySqlClient.MySqlConnection;

    public static class DataHolder
    {
        public static string ConnectionString;
        private static string MySqlUsername, MySqlPassword, MySqlDatabase, MySqlHost;
        public static void CreateConnection(string user, string password, string database, string host)
        {
            MySqlUsername = user;
            MySqlHost = host;
            MySqlPassword = password;
            MySqlDatabase = database;
            ConnectionString = "Server=" + MySqlHost + ";Database='" + MySqlDatabase + "';Username='" + MySqlUsername + "';Password='" + MySqlPassword + "';Pooling=true; Max Pool Size = 900000; Min Pool Size = 5";
        }
        public static void CreateConnection()
        {
            var list = System.Configuration.ConfigurationManager.ConnectionStrings;
            ConnectionString =
                System.Configuration.ConfigurationManager.ConnectionStrings[list.Count - 1].ConnectionString;
        }

        public static MYSQLCONNECTION MySqlConnection
        {
            get
            {
                MYSQLCONNECTION conn = new MYSQLCONNECTION();
                conn.ConnectionString = ConnectionString;
                return conn;
            }
        }

        private static SafeDictionary<byte, string> ArcherStats = new SafeDictionary<byte, string>(130);
        private static SafeDictionary<byte, string> NinjaStats = new SafeDictionary<byte, string>(130);
        private static SafeDictionary<byte, string> WarriorStats = new SafeDictionary<byte, string>(130);
        private static SafeDictionary<byte, string> TrojanStats = new SafeDictionary<byte, string>(130);
        private static SafeDictionary<byte, string> TaoistStats = new SafeDictionary<byte, string>(130);
        private static SafeDictionary<byte, string> MonkStats = new SafeDictionary<byte, string>(130);
        private static SafeDictionary<byte, string> BruceLee = new SafeDictionary<byte, string>(130);
        private static SafeDictionary<byte, string> WindwalkerStats = new SafeDictionary<byte, string>(130);

        public static bool IsTrojan(byte Job)
        {
            return Job >= 10 && Job <= 15;
        }

        public static bool IsWarrior(byte Job)
        {
            return Job >= 20 && Job <= 25;
        }

        public static bool IsArcher(byte Job)
        {
            return Job >= 40 && Job <= 45;
        }

        public static bool IsNinja(byte Job)
        {
            return Job >= 50 && Job <= 55;
        }

        public static bool IsMonk(byte Job)
        {
            return Job >= 60 && Job <= 65;
        }

        public static bool IsPirate(byte Job)
        {
            return Job >= 70 && Job <= 75;
        }

        public static bool IsWather(byte Job)
        {
            return Job >= 100 && Job <= 135;
        }

        public static bool IsFire(byte Job)
        {
            return Job >= 140 && Job <= 145;
        }

        public static bool IsTaoist(byte Job)
        {
            return Job >= 100 && Job <= 145;
        }

        public static bool IsWindwalker(byte Job)
        {
            return Job >= 160 && Job <= 165;
        }

        public static void ReadStats()
        {
            string Path = Constants.DataHolderPath + "Stats.ini";
            IniFile IniFile = new IniFile(Path);

            for (byte lvl = 1; lvl < 122; lvl++)
            {
                string job = "Archer[" + lvl + "]";
                string Data = IniFile.ReadString("Stats", job);
                try
                {
                    ArcherStats.Add(lvl, Data);

                    job = "Ninja[" + lvl + "]";
                    Data = IniFile.ReadString("Stats", job);
                    NinjaStats.Add(lvl, Data);

                    job = "Warrior[" + lvl + "]";
                    Data = IniFile.ReadString("Stats", job);
                    WarriorStats.Add(lvl, Data);

                    job = "Trojan[" + lvl + "]";
                    Data = IniFile.ReadString("Stats", job);
                    TrojanStats.Add(lvl, Data);

                    job = "Taoist[" + lvl + "]";
                    Data = IniFile.ReadString("Stats", job);
                    TaoistStats.Add(lvl, Data);

                    job = "Monk[" + lvl + "]";
                    Data = IniFile.ReadString("Stats", job);
                    MonkStats.Add(lvl, Data);

                    job = "BruceLee[" + lvl + "]";
                    Data = IniFile.ReadString("Stats", job);
                    BruceLee.Add(lvl, Data);

                    job = "WindWalker[" + lvl + "]";
                    Data = IniFile.ReadString("Stats", job);
                    WindwalkerStats.Add(lvl, Data);

                }

                catch
                {
                    Console.WriteLine(Data);
                }
            }
        }

        public static ushort[] FindReviveSpot(ushort mapID)
        {
            IniFile IniFile = new IniFile(Constants.RevivePoints);
            string value = IniFile.ReadString(mapID.ToString(), "Value");
            if (value == String.Empty)
                return new ushort[] { 1002, 300, 278 };

            if (value.Contains("L"))
                value = IniFile.ReadString(value.Remove(0, 7), "Value");

            string[] split = value.Split(' ');
            List<ushort> values = new List<ushort>();
            try
            {
                values.Add(ushort.Parse(split[0]));
                values.Add(ushort.Parse(split[1]));
                values.Add(ushort.Parse(split[2]));
            }
            catch
            {
                Console.WriteLine("Revive spot with error: " + value);
                return new ushort[] { 1002, 300, 278 };
            }
            return values.ToArray();
        }

      /*  public static ushort[] FindReviveSpotSpecial(ushort mapID)
        {
            IniFile IniFile = new IniFile(Constants.RevivePoints);
            string value = IniFile.ReadString(mapID.ToString(), "Value");
            if (value == String.Empty)
                return new ushort[] { 1002, 300, 278 };

            if (value.Contains("L"))
                value = IniFile.ReadString(value.Remove(0, 7), "Value");

            string[] split = value.Split(' ');
            List<ushort> values = new List<ushort>();
            try
            {
                values.Add(ushort.Parse(split[0]));
                values.Add(ushort.Parse(split[1]));
                values.Add(ushort.Parse(split[2]));
            }
            catch
            {
                Console.WriteLine("Revive spot with error: " + value);
                return new ushort[] { 1002, 300, 278 };
            }
            return values.ToArray();
        }*/

        public static void GetStats(byte inClass, byte inLevel, Client.GameClient client)
        {
            string Class = "";
            inClass = (byte)((inClass / 10) * 10);
            switch (inClass)
            {
                case 10:
                    Class = "Trojan";
                    break;
                case 20:
                    Class = "Warrior";
                    break;
                case 40:
                    Class = "Archer";
                    break;
                case 50:
                    Class = "Ninja";
                    break;
                case 60:
                    Class = "Monk";
                    break;
                case 70:
                    Class = "Pirate";
                    break;
                case 80:
                    Class = "BruceLee";
                    break;
                case 160:
                    Class = "Windwalker";
                    break;
                default:
                    Class = "Taoist";
                    break;
            }
            inLevel = Math.Max((byte)10, inLevel);
            inLevel = Math.Min((byte)120, inLevel);
            string[] Data = null;
            if (Class == "Trojan")
                Data = TrojanStats[inLevel].Split(',');
            else if (Class == "Warrior")
                Data = WarriorStats[inLevel].Split(',');
            else if (Class == "Archer")
                Data = ArcherStats[inLevel].Split(',');
            else if (Class == "Ninja")
                Data = NinjaStats[inLevel].Split(',');
            else if (Class == "Taoist")
                Data = TaoistStats[inLevel].Split(',');
            else if (Class == "Monk")
                Data = MonkStats[inLevel].Split(',');
            else if (Class == "Pirate")
                Data = MonkStats[inLevel].Split(',');
            else if (Class == "BruceLee")
                Data = BruceLee[inLevel].Split(',');
            else if (Class == "Windwalker")
                Data = WindwalkerStats[inLevel].Split(',');
            client.Entity.Strength = Convert.ToUInt16(Data[0]);
            client.Entity.Vitality = Convert.ToUInt16(Data[1]);
            client.Entity.Agility = Convert.ToUInt16(Data[2]);
            client.Entity.Spirit = Convert.ToUInt16(Data[3]);
        }

        public static ulong LevelExperience(byte Level)
        {
            return levelExperience[Math.Min(Math.Max(Level - 1, 0), 135)];
        }

        public static uint ProficiencyLevelExperience(byte Level)
        {
            return proficiencyLevelExperience[Math.Min(Level, (byte)20)];
        }

        private static uint[] proficiencyLevelExperience = new uint[21]
        {
            0, 1200, 68000, 250000, 640000, 1600000, 4000000, 10000000, 22000000, 40000000, 90000000, 95000000, 142500000,
            213750000, 320625000, 480937500, 721406250, 1082109375, 1623164063, 2100000000, 0
        };

        private static ulong[] levelExperience = new ulong[139]
        {
            120, 180, 240, 360, 600, 960, 1200, 2400, 3600, 8400, 12000, 14400, 18000, 21600, 22646, 32203, 37433, 47556,
            56609, 68772, 70515, 75936, 97733, 114836, 120853, 123981, 126720, 145878, 173436, 197646, 202451, 212160,
            244190, 285823, 305986, 312864, 324480, 366168, 433959, 460590, 506738, 569994, 728527, 850829, 916479,
            935118, 940800, 1076593, 1272780, 1357994, 1384861, 1478400, 1632438, 1903104, 2066042, 2104924, 1921085,
            2417202, 2853462, 3054574, 3111217, 3225600, 3810962, 4437896, 4880605, 4970962, 5107200, 5652518, 6579162,
            6877991, 7100700, 7157657, 9106860, 10596398, 11220549, 11409192, 11424000, 12882952, 15172807, 15896990,
            16163799, 16800000, 19230280, 22365208, 23819312, 24219528, 24864000, 27200077, 32033165, 33723801, 34291317,
            34944000, 39463523, 45878567, 48924236, 49729220, 51072000, 55808379, 64870058, 68391931, 69537026, 76422968,
            96950789, 112676755, 120090482, 121798280, 127680000, 137446887, 193715970, 408832150, 454674685, 461125885,
            469189885, 477253885, 480479485, 485317885, 493381885, 580580046, 717424987, 282274058, 338728870, 406474644,
            487769572, 585323487, 702388184, 842865821, 1011438985, 1073741823, 1073741823, 8589134588, 25767403764,
            77302211292, 231906633876, 347859950814, 447859950814, 547859950814, 1174030000000, 1761040000000,
            2641550000000
        };

        public static uint StonePlusPoints(byte plus)
        {
            return StonePoints[Math.Min((int)plus, 8)];
        }

        public static uint ComposePlusPoints(byte plus)
        {
            return ComposePoints[Math.Min(plus, (byte)12)];
        }

        public static byte SteedSpeed(byte plus)
        {
            return _SteedSpeed[Math.Min(plus, (byte)12)];
        }

        public static ushort TalismanPlusPoints(byte plus)
        {
            return TalismanExtra[Math.Min(plus, (byte)9)];
        }

        public static ushort PurifyStabilizationPoints(byte plevel)
        {
            return purifyStabilizationPoints[Math.Min(plevel - 1, (byte)5)];
        }

        private static ushort[] purifyStabilizationPoints = new ushort[6] { 10, 30, 60, 100, 150, 200 };

        public static ushort RefineryStabilizationPoints(byte elevel)
        {
            return refineryStabilizationPoints[Math.Min(elevel - 1, (byte)4)];
        }

        private static ushort[] refineryStabilizationPoints = new ushort[5] { 10, 30, 70, 150, 270 };

        public static ushort[] Disguises = new ushort[] { 111, 224, 117, 152, 113, 833, 116, 245, 223, 112, 222, 114, 221, 115, 220 };

        private static ushort[] StonePoints = new ushort[9] { 1, 10, 40, 120, 360, 1080, 3240, 9720, 29160 };

        private static ushort[] ComposePoints = new ushort[13] { 20, 20, 80, 240, 720, 2160, 6480, 19440, 58320, 2700, 5500, 9000, 0 };

        private static byte[] _SteedSpeed = new byte[] { 0, 5, 10, 15, 20, 30, 40, 50, 65, 85, 90, 95, 100 };
        private static ushort[] TalismanExtra = new ushort[10] { 0, 6, 30, 70, 240, 740, 2240, 6670, 20000, 60000 };
    }
}

بعدين افتح كلاس

EntityTable.cs

ابحث عن

 client.Entity = new Game.Entity(Game.EntityFlag.Player, false);

دور علي ده

 if (eC.Class == 2 || eC.Class == 3)

غير بي ده

if (eC.Class == 2 || eC.Class == 3)
            {
                client.Entity.Class = 10;
                DataHolder.GetStats(10, 1, client);
            }  

حل مشكلة ابيك ال Warrior

افتح كلاس

 PacketHandler.cs

ابحث عن

 public static Positions GetPositionFromID(UInt32 itemid)

انزل لحد

else if (iType == 1050 || iType == 900 || iType == 619 || iType == 624)
                return Positions.Left;

غير بي

else if (iType == 1050 || iType == 900 || iType == 619)
                return Positions.Left;

بعديه ابحث عن

  static void DoLogin(GameClient client)

انزل لحد

  #region Gear

غيروه بي ده

region Gear
                            client.Inventory.AddandWear(132013, 0, client);//Dress
                        if (client.Entity.Class >= 10 && client.Entity.Class <= 15)
                            client.Inventory.AddandWear(410301, 0, client);//Blade
                        if (client.Entity.Class >= 20 && client.Entity.Class <= 25)
                            client.Inventory.AddandWear(561301, 0, client);//Wand
                        if (client.Entity.Class >= 40 && client.Entity.Class <= 45)
                            client.Inventory.AddandWear(500301, 0, client);//Bow
                        if (client.Entity.Class >= 50 && client.Entity.Class <= 55)
                            client.Inventory.AddandWear(601301, 0, client);//Katana
                        if (client.Entity.Class >= 60 && client.Entity.Class <= 65)
                            client.Inventory.AddandWear(610301, 0, client);//Bead
                        if (client.Entity.Class >= 70 && client.Entity.Class <= 75)
                            client.Inventory.AddandWear(611301, 0, client);//Rapier
                        if (client.Entity.Class >= 80 && client.Entity.Class <= 85)
                            client.Inventory.AddandWear(617301, 0, client);//DragonWarriorWeapon
                        if (client.Entity.Class >= 100 && client.Entity.Class <= 145)
                            client.Inventory.AddandWear(421301, 0, client);//BackSword
                        /*if (client.Entity.Class >= 160 && client.Entity.Class <= 165)
                            client.Inventory.AddandWear(626301, 0, client);//PrideFan
                            client.Inventory.AddandWear(626301, 0, client);//PrideFan
                            client.Inventory.AddandWear(170005, 0, client);//
                            client.Inventory.AddandWear(101313, 0, client);//*/
                        #endregion

حل مشكلة الاسكله Warrior

ابحث عن

 #region WaveOfBlood

غيره بده

#region WaveofBlood
                                case 12690:
                                    {
                                        if (CanUseSpell(spell, attacker.Owner))
                                        {
                                            PrepareSpell(spell, attacker.Owner);
                                            SpellUse suse = new SpellUse(true);
                                            suse.Attacker = attacker.UID;
                                            suse.SpellID = spell.ID;
                                            suse.SpellLevel = spell.Level;
                                            suse.X = X;
                                            suse.Y = Y;
                                            Fan sector = new Fan(attacker.X, attacker.Y, X, Y, spell.Range, spell.Sector);
                                            if (Kernel.GetDistance(attacker.X, attacker.Y, X, Y) <= spell.Distance + 1)
                                            {
                                                foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                {
                                                    if (_obj == null)
                                                        continue;
                                                    if (_obj.MapObjType == MapObjectType.Monster || _obj.MapObjType == MapObjectType.Player)
                                                    {
                                                        attacked = _obj as Entity;
                                                        if (sector.IsInFan(attacked.X, attacked.Y))
                                                        {
                                                            if (CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
                                                            {
                                                                attack.Effect = Attack.AttackEffects.None;
                                                                uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack, spell);
                                                                damage = (uint)(damage * 0.9);
                                                                suse.Effect = attack.Effect;
                                                                ReceiveAttack(attacker, attacked, attack, damage, spell);
                                                                suse.AddTarget(attacked.UID, damage, attack);
                                                            }
                                                        }
                                                    }
                                                    else if (_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        attackedsob = _obj as SobNpcSpawn;
                                                        if (sector.IsInFan(attackedsob.X, attackedsob.Y))
                                                        {
                                                            if (CanAttack(attacker, attackedsob, spell))
                                                            {
                                                                attack.Effect = Attack.AttackEffects.None;
                                                                uint damage = Calculate.Melee(attacker, attackedsob, ref attack);
                                                                ReceiveAttack(attacker, attackedsob, attack, damage, spell);
                                                                suse.AddTarget(attackedsob.UID, damage, attack);
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                attacker.AttackPacket = null;
                                            }
                                            
                                            {
                                                //  attacker.WaveofBloodXp -= 1;
                                            }
                                            attacker.Owner.SendScreen(suse, true);
                                        }
                                        break;
                                    }

                                #endregion

الناس الي عوز تسهل اللفلفه

افتح كلاس

  GameClient.cs

ابحث عن

 public void IncreaseExperience(ulong experience, bool addMultiple)

بدلو بده

 public void IncreaseExperience(ulong experience, bool addMultiple)
        {
            if (Entity.ContainsFlag(Update.Flags.Cursed))
                return;
            if (Entity.Dead) return;
            byte level = Entity.Level;
            ulong _experience = Entity.Experience;
            ulong prExperienece = experience;
            if (addMultiple)
            {
                if (Entity.VIPLevel > 0)
                    experience *= Entity.VIPLevel;
                experience *= Constants.ExtraExperienceRate;
                if (Entity.HeavenBlessing > 0)
                    experience += (uint)(experience * 20 / 100);
                if (Entity.Reborn >= 2)
                    experience /= 3;

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

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

            if (Entity.Level < 140 && Entity.InAutoHunt == true)
            {
                Entity.AutoHuntEXP += experience;
                return;
            }
            else if (Entity.Level == 140 && Entity.InAutoHunt == true)
            {
                Entity.AutoHuntEXP = 0;
                return;
            }
            if (Entity.Level < 140)
            {
                while (_experience >= Database.DataHolder.LevelExperience(level) && level < 140)
                {
                    _experience -= Database.DataHolder.LevelExperience(level);
                    level++;
                    if (Entity.Reborn == 1)
                    {
                        if (level >= 130 && Entity.FirstRebornLevel > 130 && level < Entity.FirstRebornLevel)
                            level = Entity.FirstRebornLevel;
                    }
                    else if (Entity.Reborn == 2)
                    {
                        if (level >= 130 && Entity.SecondRebornLevel > 130 && level < Entity.SecondRebornLevel)
                            level = Entity.SecondRebornLevel;
                    }
                    if (Entity.Class >= 10 && Entity.Class <= 15)
                        if (!Spells.ContainsKey(1110))
                            AddSpell(new Network.GamePackets.Spell(true) { ID = 1110 });
                    if (Entity.Class >= 20 && Entity.Class <= 25)
                        if (!Spells.ContainsKey(1020))
                            AddSpell(new Network.GamePackets.Spell(true) { ID = 1020 });
                    if (Entity.Class >= 40 && Entity.Class <= 45)
                        if (!Spells.ContainsKey(8002))
                            AddSpell(new Network.GamePackets.Spell(true) { ID = 8002 });
                    if (Entity.Class >= 50 && Entity.Class <= 55)
                        if (!Spells.ContainsKey(6011))
                            AddSpell(new Network.GamePackets.Spell(true) { ID = 6011 });
                    if (Entity.Class >= 60 && Entity.Class <= 65)
                        if (!Spells.ContainsKey(10490))
                            AddSpell(new Network.GamePackets.Spell(true) { ID = 10490 });
                    if (Mentor != null)
                    {
                        if (Mentor.IsOnline)
                        {
                            uint exExp = (uint)(level * 2);
                            Mentor.Client.PrizeExperience += exExp;
                            AsApprentice = Mentor.Client.Apprentices[Entity.UID];
                            if (AsApprentice != null)
                            {
                                AsApprentice.Actual_Experience += exExp;
                                AsApprentice.Total_Experience += exExp;
                            }
                            if (Mentor.Client.PrizeExperience > 50 * 606)
                                Mentor.Client.PrizeExperience = 50 * 606;
                        }
                    }
                    if (level == 70)
                    {
                        if (ArenaStatistic == null || ArenaStatistic.EntityID == 0)
                        {
                            ArenaStatistic = new ElmistRo.Network.GamePackets.ArenaStatistic(true);
                            ArenaStatistic.EntityID = Entity.UID;
                            ArenaStatistic.Name = Entity.Name;
                            ArenaStatistic.Level = Entity.Level;
                            ArenaStatistic.Class = Entity.Class;
                            ArenaStatistic.Model = Entity.Mesh;
                            ArenaPoints = Database.ArenaTable.ArenaPointFill(Entity.Level);
                            ArenaStatistic.LastArenaPointFill = DateTime.Now;
                            Database.ArenaTable.InsertArenaStatistic(this);
                            ArenaStatistic.Status = Network.GamePackets.ArenaStatistic.NotSignedUp;
                            Game.Arena.ArenaStatistics.Add(Entity.UID, ArenaStatistic);
                        }
                    }
                    if (Entity.Reborn == 0)
                    {
                        if (level <= 120)
                        {
                            Database.DataHolder.GetStats(Entity.Class, level, this);
                            CalculateStatBonus();
                            CalculateHPBonus();
                            GemAlgorithm();
                        }
                        else
                            Entity.Atributes += 3;
                    }
                    else
                    {
                        Entity.Atributes += 3;
                    }
                }
                if (Entity.Level != level)
                {
                    if (Team != null)
                    {
                        if (Team.LowestLevelsUID == Entity.UID)
                        {
                            Team.LowestLevel = 0;
                            Team.LowestLevelsUID = 0;
                            Team.SearchForLowest();
                        }
                    }
                    Entity.Level = level;
                    Entity.Hitpoints = Entity.MaxHitpoints;
                    Entity.Mana = Entity.MaxMana;
                    if (Entity.Level > 130)
                        Database.EntityTable.UpdateLevel(Entity.Owner);
                    if (Entity.Reborn == 2)
                        Network.PacketHandler.ReincarnationHash(Entity.Owner);
                }
                if (Entity.Experience != _experience)
                    Entity.Experience = _experience;
            }
            #region Trojan
            if (Entity.Class >= 10 && Entity.Class <= 15)
            {
                if (Entity.Level >= 40)
                {
                    if (!Spells.ContainsKey(1110)) { AddSpell(LearnableSpell(1110)); }
                    if (!Spells.ContainsKey(1015)) { AddSpell(LearnableSpell(1015)); }
                    if (!Spells.ContainsKey(1115)) { AddSpell(LearnableSpell(1115)); }
                    if (!Spells.ContainsKey(1270)) { AddSpell(LearnableSpell(1270)); }
                    if (!Spells.ContainsKey(1190)) { AddSpell(LearnableSpell(1190)); }
                }
            }
            #endregion
            #region Warrior
            if (Entity.Class >= 20 && Entity.Class <= 25)
            {
                if (Entity.Level >= 40)
                {
                    if (!Spells.ContainsKey(11200)) { AddSpell(LearnableSpell(11200)); }
                    if (!Spells.ContainsKey(10470)) { AddSpell(LearnableSpell(10470)); }
                    if (!Spells.ContainsKey(1025)) { AddSpell(LearnableSpell(1025)); }
                    if (!Spells.ContainsKey(1020)) { AddSpell(LearnableSpell(1020)); }
                    if (!Spells.ContainsKey(1015)) { AddSpell(LearnableSpell(1015)); }
                    if (!Spells.ContainsKey(12670)) { AddSpell(LearnableSpell(12670)); }
                    if (!Spells.ContainsKey(12700)) { AddSpell(LearnableSpell(12700)); }
                }
                if (Entity.Level >= 61)
                {
                    if (!Spells.ContainsKey(1051)) { AddSpell(LearnableSpell(1051)); }
                    if (!Spells.ContainsKey(12680)) { AddSpell(LearnableSpell(12680)); }
                }
                if (Entity.Level >= 70)
                {
                    if (!Spells.ContainsKey(11160)) { AddSpell(LearnableSpell(11160)); }
                    if (!Spells.ContainsKey(12660)) { AddSpell(LearnableSpell(12660)); }
                    if (!Spells.ContainsKey(12690)) { AddSpell(LearnableSpell(12690)); }
                }
            }
            #endregion
            #region Archer
            if (Entity.Class >= 40 && Entity.Class <= 45)
            {
                if (Entity.Level >= 1)
                {
                    if (!Spells.ContainsKey(8002)) { AddSpell(LearnableSpell(8002)); }
                }
                if (Entity.Level >= 23)
                {
                    if (!Spells.ContainsKey(8001)) { AddSpell(LearnableSpell(8001)); }
                }
                if (Entity.Level >= 40)
                {
                    if (!Spells.ContainsKey(8000)) { AddSpell(LearnableSpell(8000)); }
                }
                if (Entity.Level >= 70)
                {
                    if (!Spells.ContainsKey(8003)) { AddSpell(LearnableSpell(8003)); }
                    if (!Spells.ContainsKey(9000)) { AddSpell(LearnableSpell(9000)); }
                    if (!Spells.ContainsKey(8030)) { AddSpell(LearnableSpell(8030)); }
                }
                if (Entity.Level >= 100)
                {

                    if (Spells[8003].Level < 1)
                    {
                        ISkill spell = new Spell(true);
                        spell.ID = 8003;
                        spell.Level = 1;
                        AddSpell(spell);

                    }

                }
            }
            if (Entity.Class >= 41 && Entity.Class <= 45)
            {
                if (Entity.Level >= 40)
                {
                    if (!Spells.ContainsKey(11620)) { AddSpell(LearnableSpell(11620)); }
                    if (!Spells.ContainsKey(11610)) { AddSpell(LearnableSpell(11610)); }
                    if (!Spells.ContainsKey(11660)) { AddSpell(LearnableSpell(11660)); }
                }
                if (Entity.Level >= 50)
                {
                    if (!Spells.ContainsKey(11590)) { AddSpell(LearnableSpell(11590)); }
                }
                if (Entity.Level >= 70)
                {
                    if (!Spells.ContainsKey(11650)) { AddSpell(LearnableSpell(11650)); }
                }
                if (Entity.Level >= 90)
                {
                    if (!Spells.ContainsKey(11670)) { AddSpell(LearnableSpell(11670)); }
                }
                if (Entity.Level >= 100)
                {
                    if (!Spells.ContainsKey(11600)) { AddSpell(LearnableSpell(11600)); }
                }
            }
            #endregion
            #region Ninja
            if (Entity.Class >= 50 && Entity.Class <= 55)
            {
                if (Entity.Level >= 15)
                {
                    if (!Spells.ContainsKey(6011)) { AddSpell(LearnableSpell(6011)); }
                }
                if (Entity.Level >= 20)
                {
                    if (!Spells.ContainsKey(11170)) { AddSpell(LearnableSpell(11170)); }
                    if (!Spells.ContainsKey(11180)) { AddSpell(LearnableSpell(11180)); }
                }
                if (Entity.Level >= 40)
                {
                    if (!Spells.ContainsKey(12080)) { AddSpell(LearnableSpell(12080)); }
                    if (!Spells.ContainsKey(11230)) { AddSpell(LearnableSpell(11230)); }
                }
                if (Entity.Level >= 70)
                {
                    if (!Spells.ContainsKey(6001)) { AddSpell(LearnableSpell(6001)); }
                    if (!Spells.ContainsKey(6010)) { AddSpell(LearnableSpell(6010)); }
                }
                if (Entity.Level >= 110)
                {
                    if (!Spells.ContainsKey(6004)) { AddSpell(LearnableSpell(6004)); }
                }
            }
            #endregion
            #region Monk
            if (Entity.Class >= 60 && Entity.Class <= 65)
            {
                if (Entity.Level >= 5)
                {
                    if (!Spells.ContainsKey(10490)) { AddSpell(LearnableSpell(10490)); }
                }
                if (Entity.Level >= 15)
                {
                    if (!Spells.ContainsKey(10390)) { AddSpell(LearnableSpell(10390)); }
                    if (!Spells.ContainsKey(10415)) { AddSpell(LearnableSpell(10415)); }
                }
                if (Entity.Level >= 20)
                {
                    if (!Spells.ContainsKey(10395)) { AddSpell(LearnableSpell(10395)); }
                    if (!Spells.ContainsKey(10410)) { AddSpell(LearnableSpell(10410)); }
                }
                if (Entity.Level >= 40)
                {
                    if (!Spells.ContainsKey(10381)) { AddSpell(LearnableSpell(10381)); }
                    if (!Spells.ContainsKey(10400)) { AddSpell(LearnableSpell(10400)); }
                }
                if (Entity.Level >= 70)
                {
                    if (!Spells.ContainsKey(10425)) { AddSpell(LearnableSpell(10425)); }
                }
                if (Entity.Level >= 100)
                {
                    if (!Spells.ContainsKey(10420)) { AddSpell(LearnableSpell(10420)); }
                    if (!Spells.ContainsKey(10421)) { AddSpell(LearnableSpell(10421)); }
                    if (!Spells.ContainsKey(10422)) { AddSpell(LearnableSpell(10422)); }
                    if (!Spells.ContainsKey(10423)) { AddSpell(LearnableSpell(10423)); }
                    if (!Spells.ContainsKey(10424)) { AddSpell(LearnableSpell(10424)); }
                    if (!Spells.ContainsKey(10430)) { AddSpell(LearnableSpell(10430)); }
                }
            }
            #endregion
            #region Pirate
            if (Entity.Class >= 70 && Entity.Class <= 75)
            {
                if (!Spells.ContainsKey(11030)) { AddSpell(LearnableSpell(11030)); }
                if (!Spells.ContainsKey(11050)) { AddSpell(LearnableSpell(11050)); }
                if (Entity.Level >= 15)
                {
                    if (!Spells.ContainsKey(11140)) { AddSpell(LearnableSpell(11140)); }
                }
                if (Entity.Level >= 40)
                {
                    if (!Spells.ContainsKey(11060)) { AddSpell(LearnableSpell(11060)); }
                    if (!Spells.ContainsKey(11110)) { AddSpell(LearnableSpell(11110)); }
                    if (!Spells.ContainsKey(11130)) { AddSpell(LearnableSpell(11130)); }
                    if (!Spells.ContainsKey(11070)) { AddSpell(LearnableSpell(11070)); }
                    if (!Spells.ContainsKey(11120)) { AddSpell(LearnableSpell(11120)); }
                }
                if (Entity.Level >= 70)
                {
                    if (Entity.Reborn >= 1 && Entity.FirstRebornClass == 75)
                    {
                        if (!Spells.ContainsKey(11100)) { AddSpell(LearnableSpell(11100)); }
                    }
                }
            }
            #endregion
            #region Taoist
            if (Entity.Class >= 100 && Entity.Class <= 101)
            {
                if (!Spells.ContainsKey(1000)) { AddSpell(LearnableSpell(1000)); }
                if (!Spells.ContainsKey(1005)) { AddSpell(LearnableSpell(1005)); }
                if (Entity.Level >= 40)
                {
                    if (!Spells.ContainsKey(1195)) { AddSpell(LearnableSpell(1195)); }
                }
            }
            #region Water
            if (Entity.Class >= 132 && Entity.Class <= 135)
            {
                if (!Spells.ContainsKey(1000)) { AddSpell(LearnableSpell(1000)); }
                if (!Spells.ContainsKey(1005)) { AddSpell(LearnableSpell(1005)); }
                if (Entity.Level >= 40)
                {
                    if (!Spells.ContainsKey(10309)) { AddSpell(LearnableSpell(10309)); }
                    if (!Spells.ContainsKey(1195)) { AddSpell(LearnableSpell(1195)); }
                    if (!Spells.ContainsKey(1055)) { AddSpell(LearnableSpell(1055)); }
                    if (!Spells.ContainsKey(1085)) { AddSpell(LearnableSpell(1085)); }
                    if (!Spells.ContainsKey(1090)) { AddSpell(LearnableSpell(1090)); }
                    if (!Spells.ContainsKey(1095)) { AddSpell(LearnableSpell(1095)); }
                    if (!Spells.ContainsKey(1125)) { AddSpell(LearnableSpell(1125)); }
                    if (!Spells.ContainsKey(1010)) { AddSpell(LearnableSpell(1010)); }
                    if (!Spells.ContainsKey(1050)) { AddSpell(LearnableSpell(1050)); }
                }
                if (Entity.Level >= 70)
                {
                    if (!Spells.ContainsKey(1075)) { AddSpell(LearnableSpell(1075)); }
                    if (!Spells.ContainsKey(1100)) { AddSpell(LearnableSpell(1100)); }
                }
                if (Entity.Level >= 80)
                {
                    if (!Spells.ContainsKey(1175)) { AddSpell(LearnableSpell(1175)); }
                    if (!Spells.ContainsKey(10309)) { AddSpell(LearnableSpell(10309)); }
                }
                if (Entity.Level >= 94)
                {
                    if (!Spells.ContainsKey(1170)) { AddSpell(LearnableSpell(1170)); }
                }
            }
            #endregion
            #region Fire
            if (Entity.Class >= 142 && Entity.Class <= 145)
            {
                if (!Spells.ContainsKey(1125)) { AddSpell(LearnableSpell(1125)); }
                if (!Spells.ContainsKey(1010)) { AddSpell(LearnableSpell(1010)); }
                if (!Spells.ContainsKey(5001)) { AddSpell(LearnableSpell(5001)); }
                if (!Spells.ContainsKey(1005)) { AddSpell(LearnableSpell(1005)); }
                if (!Spells.ContainsKey(10310)) { AddSpell(LearnableSpell(10310)); }
                if (Entity.Class >= 142 && Entity.FirstRebornClass >= 142 && Entity.SecondRebornClass >= 142)
                {
                    if (!Spells.ContainsKey(10310)) { AddSpell(LearnableSpell(10310)); }
                }
                if (Entity.Level >= 40)
                {
                    if (!Spells.ContainsKey(1195)) { AddSpell(LearnableSpell(1195)); }
                    if (!Spells.ContainsKey(10309)) { AddSpell(LearnableSpell(10309)); }
                }
                if (Entity.Level >= 52)
                {
                    if (!Spells.ContainsKey(1150)) { AddSpell(LearnableSpell(1150)); }
                }
                if (Entity.Level >= 55)
                {
                    if (!Spells.ContainsKey(1180)) { AddSpell(LearnableSpell(1180)); }
                }
                if (Entity.Level >= 48)
                {
                    if (!Spells.ContainsKey(1120)) { AddSpell(LearnableSpell(1120)); }
                    if (!Spells.ContainsKey(1165)) { AddSpell(LearnableSpell(1165)); }
                }
                if (Entity.Level >= 43)
                {
                    if (!Spells.ContainsKey(1160)) { AddSpell(LearnableSpell(1160)); }
                }
                if (Entity.Level >= 81)
                {
                    if (Spells.ContainsKey(1001) && Spells[1001] != null && Spells[1001].Level == 3)
                    {
                        if (!Spells.ContainsKey(1002)) { AddSpell(LearnableSpell(1002)); }
                    }
                }
            }
            #endregion
            #endregion
            #region Dragon-Warrior
            if (Entity.Class >= 80 && Entity.Class <= 85)
            {
                if (Entity.Class >= 85 && Entity.FirstRebornClass >= 85 && Entity.SecondRebornClass >= 85)
                {
                    if (!Spells.ContainsKey(12300)) { AddSpell(LearnableSpell(12300)); }
                }
                if (Entity.Level >= 1)
                {
                    if (!Spells.ContainsKey(12240)) { AddSpell(LearnableSpell(12240)); }
                    if (!Spells.ContainsKey(12220)) { AddSpell(LearnableSpell(12220)); }
                    if (!Spells.ContainsKey(12210)) { AddSpell(LearnableSpell(12210)); }
                }
                if (Entity.Level >= 3)
                {
                    if (!Spells.ContainsKey(12290)) { AddSpell(LearnableSpell(12290)); }
                }
                if (Entity.Level >= 15)
                {
                    if (!Spells.ContainsKey(12320)) { AddSpell(LearnableSpell(12320)); }
                    if (!Spells.ContainsKey(12330)) { AddSpell(LearnableSpell(12330)); }
                    if (!Spells.ContainsKey(12340)) { AddSpell(LearnableSpell(12340)); }
                    if (!Spells.ContainsKey(12270)) { AddSpell(LearnableSpell(12270)); }
                }
                if (Entity.Level >= 40)
                {
                    if (!Spells.ContainsKey(12120)) { AddSpell(LearnableSpell(12120)); }
                    if (!Spells.ContainsKey(12130)) { AddSpell(LearnableSpell(12130)); }
                    if (!Spells.ContainsKey(12140)) { AddSpell(LearnableSpell(12140)); }
                    if (!Spells.ContainsKey(11960)) { AddSpell(LearnableSpell(11960)); }
                }
                if (Entity.Level >= 70)
                {
                    if (!Spells.ContainsKey(12200)) { AddSpell(LearnableSpell(12200)); }
                    if (!Spells.ContainsKey(12280)) { AddSpell(LearnableSpell(12280)); }
                    if (!Spells.ContainsKey(12160)) { AddSpell(LearnableSpell(12160)); }
                }
                if (Entity.Level >= 100)
                {
                    if (!Spells.ContainsKey(12350)) { AddSpell(LearnableSpell(12350)); }
                    if (!Spells.ContainsKey(12170)) { AddSpell(LearnableSpell(12170)); }
                }
            }
            #endregion
        }

بعديه افتح كلاس

Entity

ابحث عن

 if (killer.Level < 138)

ويا امسح لحد

 killer.Owner.XPCount++;

اوعه تمسح الكلمه ديه

 killer.Owner.XPCount++;

او غيره بي ده

/* if (killer.Level < 138)
                    {
                        uint extraExp = MaxHitpoints;
                        extraExp *= Constants.ExtraExperienceRate;
                        extraExp += (uint)(extraExp * killer.Gems[3] / 100);
                        extraExp += (uint)(extraExp * ((float)killer.BattlePower / 100));
                        if (killer.DoubleExperienceTime > 0)
                        {
                            if (killer.SuperPotion > 0)
                                extraExp *= SuperPotion;
                            else
                                extraExp *= 2;
                        }
                        if (killer.HeavenBlessing > 0)
                            extraExp += (uint)(extraExp * 20 / 100);
                        if (killer.Reborn >= 2)
                            extraExp /= 3;
                        killer.Owner.Send(Constants.ExtraExperience(extraExp));
                    }
                    else if (killer.Level >= 138 && killer.Level < 140)
                    {
                        uint extraExp = MaxHitpoints / 2;
                        extraExp *= Constants.ExtraExperienceRate / 2;
                        extraExp += (uint)(extraExp * killer.Gems[3] / 100);
                        extraExp += (uint)(extraExp * ((float)killer.BattlePower / 100));
                        if (killer.DoubleExperienceTime > 0)
                        {
                            if (killer.SuperPotion > 0)
                                extraExp *= (uint)(SuperPotion / 2);
                        }
                        if (killer.HeavenBlessing > 0)
                            extraExp += (uint)(extraExp * 10 / 100);
                        if (killer.Reborn >= 2)
                            extraExp /= 4;
                        killer.Owner.Send(Constants.ExtraExperience(extraExp));
                    }*/

حل مشكلة ان الاسكله اتكه عالي بدل مالناس عمله تفكر في رقم كداء زي

افتح كلاس

  Handle.cs

ابحث عن

 #region swirlingStor

كل لم تلاقي ديه في كل الاسكلات بتعت الشخصيه الجديده

  damage = (uint)(damage * spell.Power / 300);

غير الكود كلو بده

 damage = (uint)(damage - spell.Power / 10);

حل مشكلة الي
DoLogin

افتح

  PacketHandler.cs

ابحث عن

  static void DoLogin(GameClient client)
  #region WindWalker

غيرو بده

 #region WindWalker
                        if (client.Entity.Class >= 160 && client.Entity.Class <= 165)
                        {
                            ConquerItem item6;
                            item6 = new ConquerItem(true)
                            {
                                ID = 150003,//IronRing
                                UID = Program.NextItemID,
                                Durability = 3599,
                                Plus = 0,
                                Enchant = 0,
                                Bless = 0,
                                Color = (Game.Enums.Color)Kernel.Random.Next(3, 9),
                                MaximDurability = 3599,
                                Position = ConquerItem.Ring,
                            };
                            client.Equipment.Remove((byte)ConquerItem.Ring);
                            Database.ConquerItemTable.AddItem(ref item6, client);
                            client.Equipment.Add(item6);
                        }
                        if (client.Entity.Class >= 160 && client.Entity.Class <= 165)
                        {
                            ConquerItem item6;
                            item6 = new ConquerItem(true)
                            {
                                ID = 101313,
                                UID = Program.NextItemID,
                                Durability = 3599,
                                Plus = 0,
                                Enchant = 0,
                                Bless = 0,
                                Color = (Game.Enums.Color)Kernel.Random.Next(3, 9),
                                MaximDurability = 3599,
                                Position = ConquerItem.Armor,
                            };
                            client.Equipment.Remove((byte)ConquerItem.Armor);
                            Database.ConquerItemTable.AddItem(ref item6, client);
                            client.Equipment.Add(item6);
                        }
                        if (client.Entity.Class >= 160 && client.Entity.Class <= 165)
                        {
                            ConquerItem item6;
                            item6 = new ConquerItem(true)
                            {
                                ID = 626301,
                                UID = Program.NextItemID,
                                Durability = 599,
                                Plus = 0,
                                Enchant = 0,
                                Bless = 0,
                                Color = (Game.Enums.Color)Kernel.Random.Next(3, 9),
                                MaximDurability = 599,
                                Position = ConquerItem.RightWeapon,
                            };
                            client.Equipment.Remove((byte)ConquerItem.RightWeapon);
                            Database.ConquerItemTable.AddItem(ref item6, client);
                            client.Equipment.Add(item6);
                        }
                        if (client.Entity.Class >= 160 && client.Entity.Class <= 165)
                        {
                            ConquerItem item6;
                            item6 = new ConquerItem(true)
                            {
                                ID = 626301,
                                UID = Program.NextItemID,
                                Durability = 1599,
                                Plus = 0,
                                Enchant = 0,
                                Bless = 0,
                                Color = (Game.Enums.Color)Kernel.Random.Next(3, 9),
                                MaximDurability = 1599,
                                Position = ConquerItem.LeftWeapon,
                            };
                            client.Equipment.Remove((byte)ConquerItem.LeftWeapon);
                            Database.ConquerItemTable.AddItem(ref item6, client);
                            client.Equipment.Add(item6);
                        }
                        #endregion

حل مشكلة الاتك

افتح كلاس

  Handle.cs

ابحث عن

  public static void ReceiveAttack(Game.Entity attacker, Game.Entity attacked, Attack attack, uint damage, Database.SpellInformation spell)

تحت
{
ديف ده

 if (attacked.EntityFlag == EntityFlag.Player && attacker.EntityFlag == EntityFlag.Player)
            {
                damage = damage * 2;
            }

لو جب ايرور ديف ده

 if (attacked.EntityFlag == EntityFlag.Player && attacker.EntityFlag == EntityFlag.Player)
            {
                damage = damage - 1 / 2;
            }

تحياتي
حماده بندق

 

أضف تعليق

قوانين المدونة & عن تيم تهيس