منتديات القناصين

للتسجيل اضغط هنا

منتديات القناصين

منتديات القناص شاملة كل شئ بأذن الله
 
الرئيسيةاليوميةمكتبة الصورس .و .جبحـثالأعضاءالمجموعاتالتسجيلدخول

شاطر | 
 

 بسم الله الرحمن الرحيم نبدا على بركة الله ...اسكلات التروجن الجديدة

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
ɆŁȾÃŶᾏŘ
عضو جديد
عضو جديد
avatar


الأوسمة :
عدد المساهمات : 21
نقاط : 67
سمعه العضو : 0
تاريخ التسجيل : 02/08/2013
العمر : 24

مُساهمةموضوع: بسم الله الرحمن الرحيم نبدا على بركة الله ...اسكلات التروجن الجديدة    السبت أبريل 05, 2014 4:46 am

بسم الله الرحمن الرحيم نبدا على بركة الله

هتفتح ملف Handle.cs

و تضيف دول دي تحت اسكلات الارشر

الكود:
#region SuperCyclone
                                case 11970:
                                    {
                                        SpellUse suse = new SpellUse(true);
                                        suse.Attacker = attacker.UID;
                                        suse.SpellID = spell.ID;
                                        suse.SpellLevel = spell.Level;
                                        suse.X = X;
                                        suse.Y = Y;
                                        if (!attacker.ContainsFlag3((uint)1UL << 0x16))
                                            attacked.KOCount = 0;
                                        if (attacker.Owner.Entity.ContainsFlag(0x10))
                                        {
                                            attacker.Owner.Entity.RemoveFlag(0x10);
                                            attacker.Owner.Entity.AddFlag3((uint)1UL << 0x16);
                                            attacker.Owner.Entity.SuperCyclone = Time32.Now;
                                        }
                                        attacker.Owner.SendScreen(suse, true);
                                        break;
                                    }
                                #endregion
                                #region MortalStrike
                                case 11990:
                                    {
                                        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;
                                            if (Kernel.GetDistance(attacker.X, attacker.Y, X, Y) <= attacker.AttackRange + 1)
                                            {
                                                if (attackedsob != null)
                                                {
                                                    if (CanAttack(attacker, attackedsob, spell))
                                                    {
                                                        PrepareSpell(spell, attacker.Owner);
                                                        attack.Effect1 = Attack.AttackEffects1.None;
                                                        uint damage = Game.Attacking.Calculate.Melee(attacker, attackedsob, ref attack);
                                                        ReceiveAttack(attacker, attackedsob, attack, damage, spell);

                                                        suse.AddTarget(attackedsob.UID, damage, attack);
                                                    }
                                                }
                                                else
                                                {
                                                    if (CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
                                                    {
                                                        PrepareSpell(spell, attacker.Owner);

                                                        attack.Effect1 = Attack.AttackEffects1.None;
                                                        uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, spell, ref attack);
                                                        suse.Effect1 = attack.Effect1;

                                                        ReceiveAttack(attacker, attacked, attack, damage, spell);

                                                        suse.AddTarget(attacked.UID, damage, attack);
                                                    }
                                                }
                                                attacker.AttackPacket = null;
                                            }
                                            else
                                            {
                                                attacker.AttackPacket = null;
                                            }
                                            attacker.Owner.SendScreen(suse, true);
                                        }
                                        attacker.AttackPacket = null;
                                        break;
                                    }
                                #endregion
                                #region FatalCross
                                case 11980:
                                    {
                                        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;
                                            ushort _X = attacker.X, _Y = attacker.Y;
                                            ushort _tX = X, _tY = Y;
                                            byte dist = (byte)spell.Distance;
                                            var Array = attacker.Owner.Screen.Objects;
                                            InLineAlgorithm algo = new InLineAlgorithm(attacker.X, X, attacker.Y, Y, dist,
                                                                              InLineAlgorithm.Algorithm.DDA);
                                            X = attacker.X;
                                            Y = attacker.Y;
                                            int i = 0;
                                            for (i = 0; i < algo.lcoords.Count; i++)
                                            {
                                                if (attacker.Owner.Map.Floor[algo.lcoords[i].X, algo.lcoords[i].Y, MapObjectType.Player]
                                                    && !attacker.ThroughGate(algo.lcoords[i].X, algo.lcoords[i].Y))
                                                {
                                                    X = (ushort)algo.lcoords[i].X;
                                                    Y = (ushort)algo.lcoords[i].Y;
                                                }
                                                else
                                                {
                                                    break;
                                                }
                                            }
                                            suse.X = X;
                                            suse.Y = Y;
                                            if (!attacker.Owner.Map.Floor[X, Y, MapObjectType.Player, null])
                                                return;
                                            double disth = 1.5;
                                            if (attacker.MapID == 5678) disth = 1;
                                            if (attacker.MapID == 3045) disth = 1;
                                            if (attacker.MapID == DeathMatch.MAPID) disth = 1;
                                            foreach (Interfaces.IMapObject _obj in Array)
                                            {
                                                bool hit = false;
                                                for (int j = 0; j < i; j++)
                                                    if (Kernel.GetDDistance(_obj.X, _obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= disth)
                                                        hit = true;
                                                if (hit)
                                                {
                                                    if (_obj.MapObjType == MapObjectType.Monster)
                                                    {
                                                        attacked = _obj as Entity;
                                                        if (CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
                                                        {
                                                            var damage = Game.Attacking.Calculate.Melee(attacker, attacked, spell, ref attack);

                                                            ReceiveAttack(attacker, attacked, attack, damage, spell);

                                                            suse.AddTarget(attacked.UID, damage, attack);
                                                        }
                                                    }
                                                    else if (_obj.MapObjType == MapObjectType.Player)
                                                    {
                                                        attacked = _obj as Entity;
                                                        if (CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
                                                        {
                                                            var damage = Game.Attacking.Calculate.Melee(attacker, attacked, spell, ref attack);
                                                            damage = (damage * 160) / 90;
                                                            ReceiveAttack(attacker, attacked, attack, damage, spell);

                                                            suse.AddTarget(attacked.UID, damage, attack);
                                                        }
                                                    }
                                                    else if (_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        attackedsob = _obj as SobNpcSpawn;
                                                        if (CanAttack(attacker, attackedsob, spell))
                                                        {
                                                            var damage = Game.Attacking.Calculate.Melee(attacker, attackedsob, ref attack);

                                                            ReceiveAttack(attacker, attackedsob, attack, damage, spell);

                                                            suse.AddTarget(attackedsob.UID, damage, attack);
                                                        }
                                                    }
                                                }
                                            }
                                            attacker.PX = attacker.X;
                                            attacker.PY = attacker.Y;
                                            attacker.X = X;
                                            attacker.Y = Y;
                                            attacker.Owner.SendScreen(suse, true);
                                            attacker.Owner.Screen.Reload(suse);
                                        }
                                        break;
                                    }
                                #endregion

و هتبحث عن

الكود:
if (attacked.Dead && spell.Sort != Database.SpellSort.Revive && spell.ID != 10405 && spell.ID != 10425)
                                {
                                    attacker.AttackPacket = null;
                                    return;
                                }
                            }

و تحط دا تحته

الكود:
if (!attacker.RebornSpell(spell.ID))
                            {
                                if (attacker.Owner.Spells.ContainsKey(11960))
                                {
                                    if (attacked == null)
                                    {
                                        if (attacker.Stamina <= 95)
                                        {
                                            attacker.Stamina += 5;
                                            attacker.Owner.Send(new Message("Recovered your stamina by % 5 points!", System.Drawing.Color.Red, Message.TopLeft));
                                        }
                                    }
                                }
                            } 

و افتح ملف Entity.cs و حط دول

الكود:
public bool RebornSpell(ushort skillid)
        {
            if (skillid == 9876 || skillid == 6002 || skillid == 10315 || skillid == 10311 || skillid == 10313 ||
                skillid == 6003 || skillid == 10405 || skillid == 30000 || skillid == 10310 || skillid == 3050 ||
                skillid == 3060 || skillid == 3080 || skillid == 3090)
                return true;
            else
                return false;
        } 

و فى ملف Update.cs

حط ده

الكود:
SuperCyclone = 0x400000,

و افتح ملف World.cs

وبدل ده بالى عندك

الكود:
#region KOSpell
            if (client.Entity.OnKOSpell())
            {
                if (client.Entity.OnCyclone())
                {
                    int Seconds = Now.AllSeconds() - client.Entity.CycloneStamp.AddSeconds(client.Entity.CycloneTime).AllSeconds();
                    if (Seconds >= 1)
                    {
                        client.Entity.RemoveFlag(Network.GamePackets.Update.Flags.Cyclone);
                    }
                }
                if (client.Entity.OnSuperman())
                {
                    int Seconds = Now.AllSeconds() - client.Entity.SupermanStamp.AddSeconds(client.Entity.SupermanTime).AllSeconds();
                    if (Seconds >= 1)
                    {
                        client.Entity.RemoveFlag(Network.GamePackets.Update.Flags.Superman);
                    }
                }
                if (!client.Entity.OnKOSpell())
                {
                    //Record KO
                    client.Entity.KOCount = 0;
                }

            }
            #endregion

و ده بدلو بالى عندك

الكود:
public bool OnKOSpell()
        {
            return OnCyclone() || OnSuperman() || OnSuperCyclone();
        } 

و ده ضيفه تحته

الكود:
public bool OnSuperCyclone()
        {
            return ContainsFlag3(Network.GamePackets.Update.Flags3.SuperCyclone);
        } 

و دا على القاعدة

http://www.gulfup.com/?TQDKth

و مبروك عليك الاسكل

صور للاثبات





الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
 
بسم الله الرحمن الرحيم نبدا على بركة الله ...اسكلات التروجن الجديدة
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات القناصين :: منتديات ConquerOnline Private Servers :: قسم الشروحات [5375 الى 5800]-
انتقل الى: