|
المشاركات 97 |
+التقييم 0.05 |
تاريخ التسجيل Dec 2019 |
الاقامة |
نظام التشغيل |
رقم العضوية 3343 |
case (ushort)Enums.SpellID.FatalSpin:
{
try
{
user.SendScreen(stream.InteractionCreate(&Attack), true);
MsgSpellAnimation MsgSpell = new MsgSpellAnimation(user.Entity.UID, 0, Attack.X, Attack.Y, ClientSpell.ID, ClientSpell.Level, ClientSpell.UseSpellSoul);
Algoritms.InLineAlgorithm Line = new Algoritms.InLineAlgorithm(user.Entity.X, Attack.X, user.Entity.Y, Attack.Y, user.Map, DBSpell.Range, 0, ClientSpell.ID);
byte LineRange = 2;
uint Experience = 0;
foreach (Interfaces.IMapObject target in user.Screen.Objects)
{
Game.Entity attacked = target as Game.Entity;
if (target.MapObjType == MapObjectType.Monster)
{
if (Kernel.GetDistance(user.Entity.X, user.Entity.Y, attacked.X, attacked.Y) < DBSpell.Range)
{
if (Line.InLine(attacked.X, attacked.Y, LineRange))
{
if (CheckAttack.CanAttackMonster.Verified(user, attacked, DBSpell))
{
MsgSpellAnimation.SpellObj AnimationObj;
Calculate.Physical.OnMonster(user.Entity, attacked, DBSpell, out AnimationObj);
AnimationObj.Damage = Calculate.Base.CalculateSoul(AnimationObj.Damage, ClientSpell.UseSpellSoul);
Experience += ReceiveAttack.Monster.Execute(stream, AnimationObj, user, attacked);
MsgSpell.Targets.Enqueue(AnimationObj);
}
}
}
}
}
foreach (Interfaces.IMapObject targer in user.Screen.Objects)
{
var attacked = targer as Game.Entity;
if (targer.MapObjType == MapObjectType.Entity && user.Entity.UID != targer.UID)
{
if (Kernel.GetDistance(user.Entity.X, user.Entity.Y, targer.X, targer.Y) < DBSpell.Range)
{
if (Line.InLine(attacked.X, attacked.Y, LineRange))
{
if (CheckAttack.CanAttackPlayer.Verified(user, attacked, DBSpell))
{
MsgSpellAnimation.SpellObj AnimationObj;
Calculate.Physical.OnPlayer(user.Entity, attacked, DBSpell, out AnimationObj);
AnimationObj.Damage = Calculate.Base.CalculateSoul(AnimationObj.Damage, ClientSpell.UseSpellSoul);
ReceiveAttack.Player.Execute(stream,AnimationObj, user, attacked);
MsgSpell.Targets.Enqueue(AnimationObj);
}
}
}
}
}
foreach (Interfaces.IMapObject targer in user.Screen.Objects)
{
var attacked = targer as Network.GamePackets.SobNpcSpawn;
if (targer.MapObjType == MapObjectType.SobNpc)
{
if (Kernel.GetDistance(user.Entity.X, user.Entity.Y, targer.X, targer.Y) < DBSpell.Range)
{
if (Line.InLine(attacked.X, attacked.Y, LineRange))
{
if (CheckAttack.CanAttackNpc.Verified(user, attacked, DBSpell))
{
MsgSpellAnimation.SpellObj AnimationObj;
Calculate.Physical.OnNpcs(user.Entity, attacked, DBSpell, out AnimationObj);
AnimationObj.Damage = Calculate.Base.CalculateSoul(AnimationObj.Damage, ClientSpell.UseSpellSoul);
Experience += ReceiveAttack.Npc.Execute(stream, AnimationObj, user, attacked);
MsgSpell.Targets.Enqueue(AnimationObj);
}
}
}
}
}
Updates.IncreaseExperience.Up(stream, user, Experience);
Updates.UpdateSpell.CheckUpdate(stream, user, Attack, Experience, DBSpells);
MsgSpell.SetStream(stream); MsgSpell.Send(user);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
break;
}
case (ushort)enums.spellid.fatalspin:
{
try
{
user.sendscreen(stream.interactioncreate(&attack), true);
msgspellanimation msgspell = new msgspellanimation(user.entity.uid, 0, attack.x, attack.y, clientspell.id, clientspell.level, clientspell.usespellsoul);
algoritms.inlinealgorithm line = new algoritms.inlinealgorithm(user.entity.x, attack.x, user.entity.y, attack.y, user.map, dbspell.range, 0, clientspell.id);
byte linerange = 2;
uint experience = 0;
foreach (interfaces.imapobject target in user.screen.objects)
{
game.entity attacked = target as game.entity;
if (target.mapobjtype == mapobjecttype.monster)
{
if (kernel.getdistance(user.entity.x, user.entity.y, attacked.x, attacked.y) < dbspell.range)
{
if (line.inline(attacked.x, attacked.y, linerange))
{
if (checkattack.canattackmonster.verified(user, attacked, dbspell))
{
msgspellanimation.spellobj animationobj;
calculate.physical.onmonster(user.entity, attacked, dbspell, out animationobj);
animationobj.damage = calculate.base.calculatesoul(animationobj.damage, clientspell.usespellsoul);
experience += receiveattack.monster.execute(stream, animationobj, user, attacked);
msgspell.targets.enqueue(animationobj);
}
}
}
}
}
foreach (interfaces.imapobject targer in user.screen.objects)
{
var attacked = targer as game.entity;
if (targer.mapobjtype == mapobjecttype.entity && user.entity.uid != targer.uid)
{
if (kernel.getdistance(user.entity.x, user.entity.y, targer.x, targer.y) < dbspell.range)
{
if (line.inline(attacked.x, attacked.y, linerange))
{
if (checkattack.canattackplayer.verified(user, attacked, dbspell))
{
msgspellanimation.spellobj animationobj;
calculate.physical.onplayer(user.entity, attacked, dbspell, out animationobj);
animationobj.damage = calculate.base.calculatesoul(animationobj.damage, clientspell.usespellsoul);
receiveattack.player.execute(stream,animationobj, user, attacked);
msgspell.targets.enqueue(animationobj);
}
}
}
}
}
foreach (interfaces.imapobject targer in user.screen.objects)
{
var attacked = targer as network.gamepackets.sobnpcspawn;
if (targer.mapobjtype == mapobjecttype.sobnpc)
{
if (kernel.getdistance(user.entity.x, user.entity.y, targer.x, targer.y) < dbspell.range)
{
if (line.inline(attacked.x, attacked.y, linerange))
{
if (checkattack.canattacknpc.verified(user, attacked, dbspell))
{
msgspellanimation.spellobj animationobj;
calculate.physical.onnpcs(user.entity, attacked, dbspell, out animationobj);
animationobj.damage = calculate.base.calculatesoul(animationobj.damage, clientspell.usespellsoul);
experience += receiveattack.npc.execute(stream, animationobj, user, attacked);
msgspell.targets.enqueue(animationobj);
}
}
}
}
}
updates.increaseexperience.up(stream, user, experience);
updates.updatespell.checkupdate(stream, user, attack, experience, dbspells);
msgspell.setstream(stream); msgspell.send(user);
}
catch (exception e)
{
console.writeline(e.tostring());
}
break;
}
Calculate.Physical.OnPlayer(user.Entity, attacked, DBSpell, out AnimationObj);
AnimationObj.Damage = AnimationObj.Damage * 95 / 110;
الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
|
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
طلب طريقة تعديل الاتاكات سورس رايزو | magdy | مشكلات السيرفيرات كونكر الشخصيه | 6 | 2020-03-15 01:15 PM |
حل مشكلة علامة الكنج او الكوين في الشات[Msg Source] | Tefa | تطوير سيرفرات كونكر | 2 | 2019-10-30 08:27 PM |
ازاي تخلي الانبي سي يديك اسطفه برفكشن بدل ام تضيف الكود نفسه | Hassan Emprator | تطوير سيرفرات كونكر | 3 | 2019-10-25 09:22 PM |
كويست الكنج دوم كاملة بدون اي مشاكل | Mero | تطوير سيرفرات كونكر | 2 | 2019-10-23 02:29 PM |
ممكن تعديل الحروب في سورس مصطفي سمير | ztomztom33 | مشكلات السيرفيرات كونكر الشخصيه | 1 | 2019-09-29 05:35 AM |