بسم الله الرحمن الرحيم


حل مشكلة قنبلة القرصان
( GaleBomb )

الاول تدخل على المسار ده

Game/Attacking/Handle.cs

وتدور على الرقم ده



كود PHP:
11070
وهتشيل الاسكل كله على بعضه لحد كلمة Case اللى تحتها اللى معناها انك دخلت على سكل جديد

وتحط دول مكانهم



كود PHP:
{if (CanUseSpell(spell, this.attacker.Owner))
{
PrepareSpell(spell, this.attacker.Owner);
suse = new SpellUse(true) {
Attacker = this.attacker.UID,
SpellID = spell.ID,
SpellLevel = spell.Level,
X = X,
Y = Y
};
OnTarg = new List<uint>();
for (
c = 0; c < this.attacker.Owner.Screen.Objects.Length; c++)
{
if (
c >= this.attacker.Owner.Screen.Objects.Length)
{
break;
}
_obj = this.attacker.Owner.Screen.Objects[c];
if ((
_obj != null) && ((_obj.MapObjType == MapObjectType.Monster) || (_obj.MapObjType == MapObjectType.Player)))
{
attacked = _obj as Entity;
if ((
Kernel.GetDistance(attacked.X, attacked.Y, X, Y) <= 5) && CanAttack(this.attacker, attacked, spell, this.attack.AttackType == 2))
{
direction = Kernel.GetAngle1(this.attacker.X, this.attacker.Y, attacked.X, attacked.Y);
if (
CanAttack(this.attacker, attacked, spell, this.attack.AttackType == 2))
{
damage = Calculate.Melee(this.attacker, attacked);
this.attack = new Attack(true);
this.attack.AttackType = 0x1b;
this.attack.X = attacked.X;
this.attack.Y = attacked.Y;
this.attack.Attacker = this.attacker.UID;
this.attack.Attacked = attacked.UID;
this.attack.Damage = damage;
this.attack.ToArray()[0x1b] = (byte) direction;
attacked.Move(direction);
attacked.Move(direction);
this.ReceiveAttack(null, this.attacker, attacked, this.attack, damage, spell);
this.attacker.Owner.SendScreen(this.attack, true);
}
}
}
}
this.attacker.Owner.SendScreen(suse, true);
}
break;
}
طبعاً هتلاقيه جابلك ايرور فى كلمة GetAngle1 و اللى تحتها

مش مشكله ادخل دلوقتى على المسار ده

ServerBase/Kernel.cs

وتعالى فوق الكود ده



كود PHP:
public static Boolean ValidClanName(String name)

وحط الكود ده



كود PHP:
public static Enums.ConquerAngle GetAngle1(ushort X, ushort Y, ushort X2, ushort Y2) {
double direction = 0.0;
double AddX = X2 - X;
double AddY = Y2 - Y;
double r = Math.Atan2(AddY, AddX);
if (
r < 0.0)
{
r += 628.31853071795865;
}
direction = 360.0 - ((r * 180.0) / 3.1415926535897931);
byte Dir = (byte)((7.0 - ((Math.Floor(direction) / 45.0) % 8.0)) - 1.0);
return (
Enums.ConquerAngle)((byte)(Dir % 8));
}
الجزء التاني اسكل Karkel Revange


مشكلتة انو في بعض السورسات مبيضربش والحل اهو

هنخش علي

Game/Attacking/Handle.cs

ونبحس علي الكود دة


كود PHP:
case 11100:
وهنشيل الكود دة كلو ونحط مكانة دة



كود PHP:
case 11100: //Kraken`sRevenge { 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;