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










كدة تمام و الي عاوز يشوف السورس كامل ده فيديو للسورس كامل بكل شيئ :D
كدة تمام التحميل
السورس
http://www.gulfup.com/?0qKVjY
القاعدة مع العلم السورس في قاعدة برضو اسمها cq متستخدموهاش استخدمو الي انا حاطط النك بتاعها
http://www.gulfup.com/?dZLWP1
الباتش
http://www.gulfup.com/?nLJhZu
تمام اوي لحد كدة
دول بقا الاسكلتين الي عاوزين يضافو
ديه اسكلة التوايلت دانس TwilightDance
ديه اسكلة الشادو كلون ShadowClone
كدة كل حاجة تمام سلاااااااااموووووووووووووووز
بسم الله الرحمن الرحيم انهاردة جايبلوكوم سورسي الجديد علشان بقالي كتير مش بنزل سورسات و ده سورسي الجديد كلنت 5956 بكل حاجة جديدة بس في غلتطين انا نسيت و ضفت الشادو كلون و التوايلت دانس غلط و نسيت اصلحها المهم هحط كود الاسكلتين في اخر الموضوع المهم يلا نخش في المفيد
الصور
كدة تمام و الي عاوز يشوف السورس كامل ده فيديو للسورس كامل بكل شيئ :D
كدة تمام التحميل
السورس
http://www.gulfup.com/?0qKVjY
القاعدة مع العلم السورس في قاعدة برضو اسمها cq متستخدموهاش استخدمو الي انا حاطط النك بتاعها
http://www.gulfup.com/?dZLWP1
الباتش
http://www.gulfup.com/?nLJhZu
تمام اوي لحد كدة
دول بقا الاسكلتين الي عاوزين يضافو
ديه اسكلة التوايلت دانس TwilightDance
#region TwilightDance
case 12070:
{
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;
attacker.Owner.SendScreen(suse, true);
ushort _X = attacker.X, _Y = attacker.Y;
ushort _tX = X, _tY = Y;
byte dist = 18;
var Array = attacker.Owner.Screen.Objects;
var map = attacker.Owner.Map;
// if (!map.Floor[X, Y, MapObjectType.Item, null])
// return;
InLineAlgorithm algo = new InLineAlgorithm(attacker.X, X, attacker.Y, Y, dist,
InLineAlgorithm.Algorithm.DDA);
var count = (double)algo.lcoords.Count / 3;
for (int i = 0; i < 4; i++)
{
var selected = i * (int)count;
selected = Math.Min(algo.lcoords.Count - 1, selected);
X = (ushort)algo.lcoords[selected].X;
Y = (ushort)algo.lcoords[selected].Y;
// if (!map.Floor[X, Y, MapObjectType.Item, null])
// return;
FloorItem floorItem = new FloorItem(true);
floorItem.ItemID = FloorItem.Twilight;
floorItem.ItemColor = (Enums.Color)(i + 1);
floorItem.MapID = attacker.MapID;
floorItem.Type = FloorItem.Effect;
floorItem.X = X;
floorItem.Y = Y;
floorItem.OnFloor = Time32.Now;
floorItem.Owner = attacker.Owner;
while (map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
map.AddFloorItem(floorItem);
attacker.Owner.SendScreenSpawn(floorItem, true);
if (i != 0)
{
Data data = new Network.GamePackets.Data(true);
data.UID = attacker.UID;
data.X = X;
data.Y = Y;
data.ID = 434;
data.wParam1 = attacker.X;
data.wParam2 = attacker.Y;
attacker.Owner.SendScreen(data, true);
}
double percent = 1;
switch (i)
{
case 1:
percent = 0.92;
break;
case 2:
percent = 1.02;
break;
case 3:
percent = 1.2;
break;
}
foreach (Interfaces.IMapObject _obj in Array)
{
bool hit = false;
var selected2 = Math.Max(0, i - 1) * (int)count;
selected2 = Math.Min(algo.lcoords.Count - 1, selected2);
for (int j = selected2; j < selected; j++)
if (Kernel.GetDDistance(_obj.X, _obj.Y, (ushort)algo.lcoords[j].X, (ushort)algo.lcoords[j].Y) <= spell.Range)
hit = true;
if (hit)
{
if (_obj.MapObjType == MapObjectType.Monster)
{
attacked = _obj as Entity;
if (CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
{
var damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
damage = (uint)((double)damage * percent);
ReceiveAttack(attacker, attacked, attack, damage, spell);
suse.AddTarget(attacked.UID, damage, attack);
}
}
else if (_obj.MapObjType == MapObjectType.Player)
{
attacked = _obj as Entity;
if (CanAttack(attacker, attacked, spell, attack.AttackType == Attack.Melee))
{
var damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
damage = (uint)((double)damage * percent);
ReceiveAttack(attacker, attacked, attack, damage, spell);
suse.AddTarget(attacked.UID, damage, attack);
}
}
else if (_obj.MapObjType == MapObjectType.SobNpc)
{
attackedsob = _obj as SobNpcSpawn;
if (CanAttack(attacker, attackedsob, spell))
{
var damage = Game.Attacking.Calculate.Melee(attacker, attackedsob, ref attack);
damage = (uint)((double)damage * percent);
ReceiveAttack(attacker, attackedsob, attack, damage, spell);
suse.AddTarget(attackedsob.UID, damage, attack);
}
}
}
}
if (suse.Targets.Count > 0)
attacker.Owner.SendScreen(suse, true);
System.Threading.Thread.Sleep(500);
}
attacker.AttackPacket = null;
}
break;
}
#endregion
#region ShadowClone
case 12090:
{
if (CanUseSpell(spell, attacker.Owner))
{
PrepareSpell(spell, attacker.Owner);
SpellUse spellUse = new SpellUse(true);
spellUse.Attacker = attacker.Owner.Entity.UID;
spellUse.SpellID = spell.ID;
spellUse.SpellLevel = spell.Level;
spellUse.X = attacker.Owner.Entity.X;
spellUse.Y = attacker.Owner.Entity.Y;
attacker.Owner.SendScreen(spellUse, true);
if (attacker.MyClones.Count > 0)
{
foreach (var item in attacker.MyClones.Values)
{
attacker.Owner.Map.RemoveEntity(item);
Data data = new Data(true);
data.UID = item.UID;
data.ID = Network.GamePackets.Data.RemoveEntity;
item.MonsterInfo.SendScreen(data);
}
attacker.MyClones.Clear();
return;
}
attacker.AddClone("ShadowClone", 3);
attacker.AddClone("ShadowClone", 10003);
}
break;
}
#endregion
ليست هناك تعليقات:
إرسال تعليق