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

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

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


كود:
#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;
}
فوق كلمة بريك حط قفلة قوس
}
بس كده
مبروك عليك الاسكله مش هتضرب غير بعد المده دي و ده هيقلل الكلكر
فعلا الاكواد دى تمام انا ضايفها اى سورسى الجديد