عرض مشاركة واحدة
قديم 2019-07-21, 05:48 AM
المشاركة 5
Rider
.:: عضو خبير ::.
  • غير متواجد
افتراضي رد: مطلوب شرح حماية اللعبة من الهاك
حبيبي العفو

في حل مش فعال بس اهو يقضي الغرض
بسم الله و الصلاة و السلام علي رسول الله
هتيجي عند الاسكله الي عايز تشيل منها الاوتو كلكر

ف الشرح هنشتغل ع اسكلة النينجا


كود:
#region SuperTwofoldBlade
                                
case 12080:
                                    {
                                        if (
CanUseSpell(spellattacker.Owner))
                                        {
                                            
//var dis = spell.Distance;
                                            //if (Kernel.GetDistance(attacker.X, attacker.Y, X, Y) <= dis)
                                            
if (Kernel.GetDistance(attacker.Xattacker.YXY) <= spell.Distance)
                                            {
                                                
PrepareSpell(spellattacker.Owner);

                                                
SpellUse suse = new SpellUse(true);
                                                
suse.Attacker attacker.UID;
                                                
suse.SpellID spell.ID;
                                                
suse.SpellLevel spell.Level;
                                                
suse.X;
                                                
suse.Y;
                                                
//suse.SpellLevelHu = client_Spell.UseSpell;
                                                
Game.Attacking.InLineAlgorithm ila = new KhaledMohamed.Game.Attacking.InLineAlgorithm(attacker.X,
                              
Xattacker.YY, (byte)spell.RangeInLineAlgorithm.Algorithm.DDA);
                                                
bool aaAttack false;
                                                var Array = 
attacker.Owner.Screen.Objects;
                                                foreach (
Interfaces.IMapObject _obj in Array)
                                                {
                                                    if (
_obj.MapObjType == MapObjectType.Monster)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= 7)
                                                        {
                                                            if (
attacked.UID == Target)
                                                            {
                                                                if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                                {
                                                                    
aaAttack true;
                                                                    var 
damage Game.Attacking.Calculate.Melee(attackerattackedref attackclient_Spell.LevelHu2);
                                                                    
damage = (uint)(damage 1.4);
                                                                    
ReceiveAttack(attackerattackedattackref damagespell);

                                                                    
suse.AddTarget(attackeddamageattack);
                                                                }
                                                            }
                                                            else if (
ila.InLine(attacked.Xattacked.Y))
                                                            {
                                                                if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                                {
                                                                    
aaAttack true;
                                                                    var 
damage Game.Attacking.Calculate.Melee(attackerattackedspellref attackclient_Spell.LevelHu2);
                                                                    
damage = (uint)(damage 0.1);
                                                                    
ReceiveAttack(attackerattackedattackref damagespell);

                                                                    
suse.AddTarget(attackeddamageattack);
                                                                }
                                                            }
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.Entity)
                                                    {
                                                        
attacked _obj as Entity;
                                                        if (
Kernel.GetDistance(attacker.Xattacker.Yattacked.Xattacked.Y) <= 7)
                                                        {
                                                            if (
attacked.UID == Target)
                                                            {
                                                                if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
                                                                {
                                                                    
aaAttack true;
                                                                    var 
damage Game.Attacking.Calculate.Ranged(attackerattackedref attackclient_Spell.LevelHu2);
                                                                    
damage = (uint)(damage 80 100);
                                                                    
ReceiveAttack(attackerattackedattackref damagespell);

                                                                    
suse.AddTarget(attackeddamageattack);
                                                                }
                                                            }
                                                        }
                                                    }
                                                    else if (
_obj.MapObjType == MapObjectType.SobNpc)
                                                    {
                                                        
attackedsob _obj as SobNpcSpawn;
                                                        if (
attackedsob.UID == Target)
                                                        {
                                                            if (
CanAttack(attackerattackedsobspell))
                                                            {
                                                                
aaAttack true;
                                                                
// if (!moveIn.InRange(attackedsob.X, attackedsob.Y, 4, ranger))
                                                                //  continue;
                                                                
var damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
                                                                
damage = (uint)(damage 2.4);
                                                                
ReceiveAttack(attackerattackedsobattackdamagespell);
                                                                
suse.AddTarget(attackedsobdamageattack);
                                                            }
                                                        }
                                                    }
                                                }
                                                if (
aaAttack)
                                                    
attacker.Owner.SendScreen(susetrue);
                                                
//attacker.RadiantStamp = DateTime.Now;
                                            
}

                                        }
                                        break;
                                    }


                                
#endregion 

و دي بعد الاضافه
كود:
#region SuperTwofoldBlade
case 12080:
{
if (
Time32.Now >= attacker.SpellStamp.AddMilliseconds(500))
{
if (
CanUseSpell(spellattacker.Owner))
{
ushort XxYx;
if (
attacked != null)
{
Xx attacked.X;
Yx attacked.Y;
}
else
{
Xx attackedsob.X;
Yx attackedsob.Y;
}
if (
Kernel.GetDistance(attacker.Xattacker.YXxYx) <= spell.Distance)
{
if (
attackedsob == null)
if (
attacked.ContainsFlag(Update.Flags.Fly))
return;
if (
attacker.ContainsFlag(Update.Flags.Fly))
return;
PrepareSpell(spellattacker.Owner);

SpellUse suse = new SpellUse(true);
suse.Attacker attacker.UID;
suse.SpellID spell.ID;
suse.SpellLevel spell.Level;
suse.X;
suse.Y;
bool send false;

if (
attackedsob == null)
{
if (
CanAttack(attackerattackedspellattack.AttackType == Attack.Melee))
{
attack.Effect1 Attack.AttackEffects1.None;
uint damage Game.Attacking.Calculate.Melee(attackerattackedref attack);

if (
attacker.NobilityRank == HemaProject.Game.ConquerStructures.NobilityRank.King)
{
damage = (uint)(damage 0.9);
}
if (
attacker.NobilityRank == HemaProject.Game.ConquerStructures.NobilityRank.Prince)
{
damage = (uint)(damage 0.8);
}
if (
attacker.NobilityRank == HemaProject.Game.ConquerStructures.NobilityRank.Duke)
{
damage = (uint)(damage 0.7);
}
if (
attacker.NobilityRank == HemaProject.Game.ConquerStructures.NobilityRank.Earl)
{
damage = (uint)(damage 0.6);
}

suse.Effect1 attack.Effect1;
ReceiveAttack(attackerattackedattackref damagespell);

suse.AddTarget(attackeddamageattack);
send true;

if (
attacker.Owner.Spells.ContainsKey(0) && !attacked.Dead)
{
var 
attacker.Owner.Spells[0];
var 
spellz Database.SpellTable.SpellInformations[s.ID][s.Level];
if (
spellz != null)
{
if (
Kernel.Rate(spellz.Percent))
{
SpellUse ssuse = new SpellUse(true);
ssuse.Attacker attacker.UID;
ssuse.SpellID spellz.ID;

ssuse.SpellLevel spellz.Level;
damage Game.Attacking.Calculate.Melee(attackerattackedref attack);
ssuse.AddTarget(attacked, new SpellUse.DamageClass().Damage damageattack);
ReceiveAttack(attackerattackedattackref damagespell);
attacker.Owner.SendScreen(ssusetrue);
}
}
}
}
}
else
{
if (
CanAttack(attackerattackedsobspell))
{
attack.Effect1 Attack.AttackEffects1.None;
uint damage Game.Attacking.Calculate.Melee(attackerattackedsobref attack);
damage = (uint)(damage 180 100);
ReceiveAttack(attackerattackedsobattackdamagespell);
suse.Effect1 attack.Effect1;

suse.AddTarget(attackedsobdamageattack);
send true;
}
}
if (
send)
attacker.Owner.SendScreen(susetrue);
attacker.SpellStamp Time32.Now;
}
else
{
attacker.AttackPacket null;
}
}
}
break;
}

#endregion 

طب احنا ضفنا ايه
بعد فتحة القوس الي بعد الاسكله
case xxxx
{
هتضيف
كود:
 if (Time32.Now >= attacker.SpellStamp.AddMilliseconds(500))
                                        { 

بعد كده تنزل تحت لحد

if (aaAttack)
attacker.Owner.SendScreen(suse, true);
هتلافيها تحت خالص في اخر كود الاسكله
اول كلمه مش لازم تلاقيها نفس الشكل تاني كلمه لازم تلاقيها نفس الشكل المهم تحتها حط

كود:
 attacker.SpellStamp Time32.Now

تحت خالص بقا في اخر الاسكله هتلاقي
break;
}
فوق كلمة بريك حط قفلة قوس
}
بس كده
مبروك عليك الاسكله مش هتضرب غير بعد المده دي و ده هيقلل الكلكر