|  | 
 | 
 
 
|  المشاركات 483 |  +التقييم 0.20 |  تاريخ التسجيل May 2019 |  الاقامة |  نظام التشغيل |  رقم العضوية 145 | 
 تمت الإجابة مشاكل اسكلات سورس KhaledMohamed
				تمت الإجابة مشاكل اسكلات سورس KhaledMohamed
		

		
	 
                                case 6001:
                                    {
                                        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;
                                            //suse.SpellLevelHu = client_Spell.LevelHu2;
                                            if (Kernel.GetDistance(attacker.X, attacker.Y, X, Y) <= spell.Distance)
                                            {
                                                foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                {
                                                    if (_obj.MapObjType == MapObjectType.Entity || _obj.MapObjType == MapObjectType.Monster)
                                                    {
                                                        attacked = _obj as Entity;
                                                        if (attacked.MapObjType == MapObjectType.Monster)
                                                            if (attacked.MonsterInfo.Boss)
                                                                continue;
                                                        if (Kernel.GetDistance(X, Y, attacked.X, attacked.Y) <= spell.Range)
                                                        {
                                                            if (CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
                                                            {
                                                                int potDifference = attacker.BattlePower - attacked.BattlePower;
                                                                int rate = spell.Percent + potDifference - 20;
                                                                if (Kernel.Rate(rate))
                                                                {
                                                                    attacked.ToxicFogStamp = Time32.Now;
                                                                    attacked.ToxicFogLeft = 20;
                                                                    attacked.ToxicFogPercent = spell.PowerPercent;
                                                                    attacked.AddFlag(Update.Flags.Poisoned);
                                                                    suse.AddTarget(attacked, 1, null);
                                                                }
                                                                else
                                                                {
                                                                    suse.AddTarget(attacked, 0, null);
                                                                    suse.Targets[attacked.UID].Hit = false;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                attacker.AttackPacket = null;
                                            }
                                            attacker.Owner.SendScreen(suse, true);
                                        }
                                        break;
                                    } 
   
	
		
		
		
		
	 
#region ManiacDance
                                case 12700:
                                    {
                                        if (attacker.ContainsFlag(Update.Flags.XPList))
                                        {
                                            attacker.RemoveFlag(Update.Flags.XPList);
                                            SpellUse suse = new SpellUse(true);
                                            suse.Attacker = attacker.UID;
                                            suse.SpellID = spell.ID;
                                            suse.SpellLevel = spell.Level;
                                            suse.X = X;
                                            suse.Y = Y;
                                            attacker.ManiacDanceStamp = Time32.Now;
                                            attacker.AddFlag3(Update.Flags3.WaniacDance);
                                            attacker.Owner.SendScreen(suse, true);
                                        }
                                        break;
                                    }
                                #endregion 
   
	
		
		
		
		
	 
#region ThunderCloud[Chaser]
                                case 12840:
                                    {
                                        if (CanUseSpell(spell, attacker.Owner))
                                        {
                                            attacker.GreenEffect = 10;
                                            PrepareSpell(spell, attacker.Owner);
                                            SpellUse suse = new SpellUse(true);
                                            suse.Attacker = attacker.UID;
                                            suse.Attacker1 = attacker.UID;
                                            suse.SpellID = spell.ID;
                                            suse.SpellLevel = spell.Level;
                                            var cl = new WindWalker.ThunderCloud(attacker.Owner, attack.X, attack.Y);
                                            suse.AddTarget(cl.UID, 0, null);
                                            attacker.Owner.SendScreen(suse, true);
                                        }
                                        break;
                                    }
                                #endregion 
   
	
		
		
		
		
	 
#region ScurvyBomb
                                case 11040:
                                    if (CanUseSpell(spell, attacker.Owner))
                                    {
                                        PrepareSpell(spell, attacker.Owner);
                                        Map map;
                                        SpellUse suse = new SpellUse(true);
                                        suse.Attacker = attacker.UID;
                                        suse.SpellID = spell.ID;
                                        suse.SpellLevel = spell.Level;
                                        suse.X = X;
                                        suse.Y = Y;
                                        //suse.SpellLevelHu = client_Spell.LevelHu2;
                                        KhaledMohamed.Network.GamePackets.SpellUse.DamageClass tar = new SpellUse.DamageClass();
                                        int num = 0;
                                        switch (spell.Level)
                                        {
                                            case 0:
                                            case 1:
                                                num = 3;
                                                break;
                                            case 2:
                                            case 3:
                                                num = 4;
                                                break;
                                            default:
                                                num = 5;
                                                break;
                                        }
                                        int i = 0;
                                        Kernel.Maps.TryGetValue(attacker.Owner.Map.BaseID, out map);
                                        foreach (var t in attacker.Owner.Screen.Objects)
                                        {
                                            if (t == null)
                                                continue;
                                            if (t.MapObjType == MapObjectType.Entity || t.MapObjType == MapObjectType.Monster)
                                            {
                                                var target = t as Entity;
                                                if (Kernel.GetDistance(X, Y, target.X, target.Y) <= spell.Range)
                                                {
                                                    if (CanAttack(attacker, target, spell, false))
                                                    {
                                                        tar.Damage = Calculate.Ranged(attacker, target, ref attack);
                                                        tar.Hit = true;
                                                        tar.newX = target.X;
                                                        tar.newY = target.Y;
                                                        Map.Pushback(ref tar.newX, ref tar.newY, attacker.Facing, 5);
                                                        if (map != null)
                                                        {
                                                            if (map.Floor[tar.newX, tar.newY, MapObjectType.Entity, attacker])
                                                            {
                                                                target.X = tar.newX;
                                                                target.Y = tar.newY;
                                                            }
                                                            else
                                                            {
                                                                tar.newX = target.X;
                                                                tar.newY = target.Y;
                                                            }
                                                        }
                                                        else
                                                        {
                                                            if (attacker.Owner.Map.Floor[tar.newX, tar.newY, MapObjectType.Entity, attacker])
                                                            {
                                                                target.X = tar.newX;
                                                                target.Y = tar.newY;
                                                            }
                                                            else
                                                            {
                                                                target.X = tar.newX;
                                                                target.Y = tar.newY;
                                                            }
                                                        }
                                                        suse.AddTarget(target, tar, attack);
                                                        ReceiveAttack(attacker, target, attack, ref tar.Damage, spell);
                                                        i++;
                                                        if (i > num) break;
                                                    }
                                                }
                                            }
                                        }
                                        if (attacker.EntityFlag == EntityFlag.Entity)
                                            attacker.Owner.SendScreen(suse, true);
                                    }
                                    break;
                                #endregion 
   
	
		
		
		|  أفضل جواب - كتبه | 
 رد: مشاكل اسكلات سورس KhaledMohamed
				رد: مشاكل اسكلات سورس KhaledMohamed
			
		
	 
         }
                                case 6001://toxicfog
                                    {
                                        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) <= spell.Distance)
                                            {
                                                foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
                                                {
                                                    if (_obj.MapObjType == MapObjectType.Player || _obj.MapObjType == MapObjectType.Monster)
                                                    {
                                                        attacked = _obj as Entity;
                                                        if (attacked.MapObjType == MapObjectType.Monster)
                                                            if (attacked.MonsterInfo.Boss)
                                                                continue;
                                                        if (Kernel.GetDistance(X, Y, attacked.X, attacked.Y) <= spell.Range)
                                                        {
                                                            if (CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
                                                            {
                                                                int potDifference = attacker.BattlePower - attacked.BattlePower;
                                                                int rate = spell.Percent + potDifference - 20;
                                                                if (Kernel.Rate(rate))
                                                                {
                                                                    attacked.ToxicFogStamp = Time64.Now;
                                                                    attacked.ToxicFogLeft = 7;
                                                                    attacked.ToxicFogPercent = spell.PowerPercent;
                                                                    attacked.AddFlag(Update.Flags.Poisoned);
                                                                    suse.AddTarget(attacked.UID, 1, null);
                                                                }
                                                                else
                                                                {
                                                                    suse.AddTarget(attacked.UID, 0, null);
                                                                    suse.Targets[attacked.UID].Hit = false;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                            else
                                            {
                                                attacker.AttackPacket = null;
                                            }
                                            attacker.Owner.SendScreen(suse, true);
                                        }
                                        break;
                                    } 
   
	
		
		
		
		
	 
  case Enums.ItemEffect.Poison: 
   
	
		
		
		
		
	 
   case Enums.ItemEffect.Poison:
                                    {
                                        if (attacked != null)
                                        {
                                            if (Constants.PKForbiddenMaps.Contains(client.Entity.MapID))
                                                return;
                                            if (client.Map.BaseID == 700)
                                                return;
                                            if (attacked.UID == client.Entity.UID)
                                                return;
                                            if (attacked.ToxicFogLeft > 0)
                                                return;
                                            SpellUse spellUse = new SpellUse(true);
                                            spellUse.SpellID = 5040;
                                            spellUse.Attacker = attacked.UID;
                                            spellUse.SpellLevel = 9;
                                            spellUse.X = attacked.X;
                                            spellUse.Y = attacked.Y;
                                            spellUse.AddTarget(attacked, 0, null);
                                            spellUse.Targets[attacked.UID].Hit = true;
                                            attacked.ToxicFogStamp = Time32.Now;
                                            attacked.ToxicFogLeft = 10;
                                            attacked.ToxicFogPercent = 0.05F;
                                            client.SendScreen(spellUse, true);
                                        }
                                        break;
                                    }
                            }
                        }
                    }
                }
            } 
   
	
		
		
		
		
	 
#region ManiacDance
                                    case 12700:
                                        {
                                            if (attacker.ContainsFlag(Update.Flags.XPList))
                                            {
                                                attacker.RemoveFlag(Update.Flags.XPList);
                                                SpellUse suse = new SpellUse(true);
                                                suse.Attacker = attacker.UID;
                                                suse.SpellID = spell.ID;
                                                suse.SpellLevel = spell.Level;
                                                suse.X = X;
                                                suse.Y = Y;
                                                attacker.ManiacDanceStamp = Time32.Now;
                                                attacker.AddFlag3(Update.Flags3.WaniacDance);
                                                attacker.Owner.SendScreen(suse, true);
                                            }
                                            break;
                                        }
                                    #endregion 
   
	
		
		
		#region ThunderCloud[Chaser]
                                    case 12840:
                                        {
                                            if (CanUseSpell(spell, attacker.Owner))
                                            {
                                                attacker.GreenEffect = 10;
                                                PrepareSpell(spell, attacker.Owner);
                                                SpellUse suse = new SpellUse(true);
                                                suse.Attacker = attacker.UID;
                                                suse.Attacker1 = attacker.UID;
                                                suse.SpellID = spell.ID;
                                                suse.SpellLevel = spell.Level;
                                                var cl = new WindWalker.ThunderCloud(attacker.Owner, attack.X, attack.Y);
                                                suse.AddTarget(cl.UID, 0, null);
                                                attacker.Owner.SendScreen(suse, true);
                                            }
                                            break;
                                        }
                                    #endregion
#region ScurvyBomb
                                case 11040:
                                    {
                                        if (Time32.Now < attacker.SpellStamp.AddMilliseconds(200))//1000
                                        {
                                            attacker.AttackPacket = null; return;
                                        }
                                        else 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;
                                            KhaledMohamed.Network.GamePackets.SpellUse.DamageClass tar = new SpellUse.DamageClass();
                                            foreach (var t in attacker.Owner.Screen.Objects)
                                            {
                                                if (t == null)
                                                    continue;
                                                if (t.MapObjType == MapObjectType.Entity || t.MapObjType == MapObjectType.Monster)
                                                {
                                                    var target = t as Entity;
                                                    int rate = 20;
                                                    if (attacker.BattlePower == target.BattlePower)
                                                        rate = 50;
                                                    if (attacker.BattlePower > target.BattlePower)
                                                        rate = 80;
                                                    else
                                                        rate = 100 - ((target.BattlePower - attacker.BattlePower) * 2);
                                                    rate = Math.Max(20, rate);
                                                    if (Kernel.GetDistance(X, Y, target.X, target.Y) <= spell.Range && MyMath.Success((double)rate))
                                                    {
                                                        if (CanAttack(attacker, target, spell, false))
                                                        {
                                                            tar.Damage = Calculate.Ranged(attacker, target, spell, ref attack);
                                                            if (t.MapObjType == MapObjectType.Monster)
                                                                tar.Damage = tar.Damage * 10;
                                                            if (t.MapObjType == MapObjectType.Entity)
                                                                tar.Damage = tar.Damage / 100;
                                                            ReceiveAttack(attacker, target, attack, ref tar.Damage, spell);
                                                            target.AddFlag2(KhaledMohamed.Network.GamePackets.Update.Flags2.DefensiveStance);
                                                            attacker.SpellStamp = Time32.Now;
                                                            target.FatigueStamp = Time32.Now;
                                                            target.FatigueSecs = spell.Time;
                                                            suse.AddTarget(target, tar, attack);
                                                        }
                                                    }
                                                }
                                            }
                                            if (attacker.EntityFlag == EntityFlag.Entity)
                                                attacker.Owner.SendScreen(suse, true);
                                        }
                                        break;
                                    }
                                #endregion
 رد: مشاكل اسكلات سورس KhaledMohamed
				رد: مشاكل اسكلات سورس KhaledMohamed
			 رد: مشاكل اسكلات سورس KhaledMohamed
				رد: مشاكل اسكلات سورس KhaledMohamed
			 رد: مشاكل اسكلات سورس KhaledMohamed
				رد: مشاكل اسكلات سورس KhaledMohamed
			
		
	 
internal static void SendRevengeTail(Game.Entity attacker, Game.Entity attacked, ref int damage) 
   
	
		
		
		
		
	 
 attack.Damage = (uint)damage; 
   
	
		
		
		
		
	 
 damage = damage / 100; 
   
	
		
		
		| 
 | 
| الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
| 
 | 
| الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة | 
| Source KhaledMohamed V7 | SourceDanger | سورسات كونكر | 364 | 2025-10-27 06:00 AM | 
| Source KhaledMohamed V6 | SourceDanger | سورسات كونكر | 247 | 2025-05-09 02:23 PM | 
| مكشلة في Source KhaledMohamed V7  | OmarMimi5095 | مشكلات السيرفيرات كونكر الشخصيه | 7 | 2021-12-11 01:35 PM | 
| مشكلة اسكلات ف سورس اليكس ياريت حل | KekoCoder | سورسات كونكر | 0 | 2021-09-01 02:43 PM | 
| مشكلو ف اسكلات الروينز | mohamedomar | مشكلات السيرفيرات كونكر الشخصيه | 1 | 2020-01-28 05:19 PM |