المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : مشاكل اسكلات سورس KhaledMohamed


MRonlineGvrix
2019-08-06, 02:47 PM
ياريت مش اى حد يجيب اى حل ملوش لزمة يتحط برا تمت الاجابة
المشكلة الاولى اسكلة النينجا ToxicFog
عفواً لايمكن عرض الروابط في الإرشيف
مشكلة غريبة خالص شغالة تمام بس لما تضرب فيها فى اى لاعب مش بتنقص دمو نهائى با العكس بتزودو لو ناقص
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;
}
المشكلة الثانيا اسكلة الواريور ManiacDance
بتضرب جامد اوى اوى بتقتل اى حد يلمسها
عفواً لايمكن عرض الروابط في الإرشيف
#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
المشكلة الثالثة اسكلة ال windwalker بتضرب اى حد 1 هت برضو
عفواً لايمكن عرض الروابط في الإرشيف
#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
المشكلة الاخيرة اسكلة القرصااان ScurvyBomb بتضرب اى حد 1 هت
عفواً لايمكن عرض الروابط في الإرشيف
#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.DamageC lass 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
ياريت حد يتابع معاايا

Hassan Emprator
2019-08-06, 03:28 PM
سلام عليكم ورحمت الله وبركاته هنبدا بي اول سكله هتبدلها بي الاسكله الي عندك دي }
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;
}
}
}
}
}
}

انتهينا من المشكله الاوله نيجيي لاسكله التانيه

هتبدل دا بي الي عيندك هيا اولا ملهاش تعديل في السورس تقريبا تعديلها عندك من ملف spells من القاعده فا هتعدلها من دا
لو عندك #نكمل
#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
تالت اسكله الي انت بتقول بتاعت الويند دي برضو ملهاش في السورس هتلاقيها في spells ي القاعده هتعدل منها برضو وي اسحراس بدل دا بي الي عندك في السورس في الاسكله

#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.DamageC lass 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
جرب وقولنا
بالتوفييق

Tefa
2019-08-06, 03:59 PM
متابع بس مش هرد علي حل اي مشكله في البوست ده لانه خالف القوانين بذكر اكتر من مشكله

MRonlineGvrix
2019-08-06, 04:24 PM
متابع بس مش هرد علي حل اي مشكله في البوست ده لانه خالف القوانين بذكر اكتر من مشكله

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

MRonlineGvrix
2019-08-06, 04:26 PM
بص يباشا المشكلة الى اتحلت هيا اسكلة Scurvybomb

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

Hassan Emprator
2019-08-06, 05:04 PM
بص يباشا المشكلة الى اتحلت هيا اسكلة Scurvybomb

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

يحبي ابحث في spells بي id بتاعها مش اسم الاسكله

Tefa
2019-08-06, 05:13 PM
اسكلة الورير ف قاعده او في ورلد سيرش علي
private void AutoAttackCallback(

انزل تحت لحد attack.Damage = damage;

و تحتها حط damage = damage / 100;

بتتحكم عن طريقه تغيير رقم 100

Tefa
2019-08-06, 05:16 PM
اسكل ويند ولكر
هتبحث عن internal static void SendRevengeTail(Game.Entity attacker, Game.Entity attacked, ref int damage)
انزل تحت لحد
attack.Damage = (uint)damage;

تحتها ضيف
damage = damage / 100;

بتتحكم في الاتاك من خلال التعديل علي رقم 100

اسكل تخدير النينجا تم الحل في موضوع اخر

MRonlineGvrix
2019-08-06, 05:31 PM
تمت الحلول الحمد الله بفضل الله
ثم بفضلك انتا كلمة شكرا لا تكفى لوصف مجهودك
تخدير النينجا فى الموضوع الاخر متحلتش للاسف

Tefa
2019-08-06, 06:34 PM
تم بحمد الله و الفضل و الشكر لله وحده <3

MRonlineGvrix
2023-05-28, 06:39 PM
تم الحل

ahmedfarouk
2023-07-15, 12:51 PM
الله ينور