محمد ياسر
2019-08-08, 09:02 AM
السلام عليكم ورحمة الله وبركاته
اضافة ابيك القرصان للسورسات العاديه ده طلب الضعو اسامه
يلا ندخل علي الاكواد
في Entity.cs
حط دول
public bool EpicPirate()
{
if (EntityFlag == Game.EntityFlag.Entity)
{
var weapons = Owner.Weapons;
if (weapons.Item1 != null && weapons.Item2 != null)
if (weapons.Item1.ID / 1000 == 671 && weapons.Item2.ID / 1000 == 670)
return true;
}
return false;
}
كلاس PacketHandler.cs
ابحث عن
public static Positions ItemPositionFromID(UInt32 itemid)
تحت القوس اي اضافه في الفويد حط دول
else if (iType == 1050 || iType == 900 || iType == 619)
return Positions.Left;
else if ((iType >= 410 && iType <= 490) || (iType >= 500 && iType <= 580) || (iType >= 601 && iType <= 617) || iType == 620 || iType == 624 || iType == 626)
return Positions.Right;
في نفس الكلاس
ابحث عن
public static ushort ItemPosition(uint ID)
تحت القوس ضيف دول
#region EpicPirate K7host.com
if (ID >= 670003 && ID <= 670439)
return ConquerItem.LeftWeapon;
if (ID >= 671003 && ID <= 671439)
return ConquerItem.RightWeapon;
if (iType == 671)
return ConquerItem.RightWeapon;
if (iType == 670)
return ConquerItem.LeftWeapon;
#endregion
في نفس الكلاس ابحث عن
public static bool IsRapier(uint ID)
واقفله من السالب وبدله بده
public static bool IsRapier(uint ID)
{
if (ID >= 611000 && ID <= 611439 || (ID >= 670000 && ID <= 670439))
{ return true; }
else { return false; }
}
في نفس الكلاس ابحث عن
public static bool IsPistol(uint ID)
اقفله من السالب وبدله بده
public static bool IsPistol(uint ID)
{
if (ID >= 612000 && ID <= 612439 || ID >= 671000 && ID <= 671439)
{ return true; }
else { return false; }
}
في نفس الكلاس ابحث عن
bool twohand = IsTwoHand(item.ID);
تختيه ضيف دول
if (client.Entity.Class >= 70 && client.Entity.Class <= 75)
{
if (itemUsage.dwParam > 20)
{
if (!client.Equipment.Free(24))
{
if (IsRapier(client.Equipment.TryGetItem(24).ID))
{
if (IsPistol(item.ID))
{
can2wpn = true;
}
}
}
}
else if (!client.Equipment.Free(4))
{
if (IsRapier(client.Equipment.TryGetItem(4).ID))
{
if (IsPistol(item.ID))
{
can2wpn = true;
}
}
}
}
افتح بقي الايام في السورس و ايتم تيب في الجيم و حط دول
670439@@OceanDominator@@70@@12@@140@@0@@0@@36@@0@@ 0@@0@@0@@100000@@0@@3666@@2554@@0@@78@@0@@2616@@0@ @7099@@7099@@0@@0@@0@@0@@0@@0@@0@@0@@0@@1@@1000@@0 @@0@@0@@0@@0@@0@@300@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0 @@0@@0@@EpicWeapon@@None@@5@@0@@0@@0@@1070@@500@@0 @@0@@0@@0@@0@@
670239@@DivineDictator@@70@@0@@120@@0@@0@@36@@0@@0 @@0@@0@@200000@@0@@2313@@1212@@0@@61@@0@@149@@0@@7 099@@7099@@0@@0@@0@@0@@0@@0@@0@@0@@0@@1@@1000@@0@@ 0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@20@@0@@0@@0@@0@@0@@0 @@0@@EpicWeapon@@None@@5@@0@@0@@0@@1360@@500@@0@@0 @@0@@0@@0@@
670009@@TempestPlunder@@70@@0@@5@@0@@0@@2@@0@@0@@0 @@0@@153@@0@@15@@9@@0@@61@@0@@6@@0@@1599@@1599@@0@ @0@@0@@0@@0@@0@@0@@0@@0@@1@@1000@@0@@0@@0@@0@@0@@0 @@0@@0@@0@@0@@0@@20@@0@@0@@0@@0@@0@@0@@0@@EpicWeap on@@None@@5@@0@@0@@0@@1360@@500@@0@@0@@0@@0@@0@@
671439@@MightyRapierofViolence@@70@@11@@140@@0@@0@ @36@@0@@0@@0@@0@@100000@@0@@3300@@2800@@0@@78@@0@@ 0@@0@@7099@@7099@@0@@0@@0@@0@@0@@0@@0@@0@@0@@1@@10 00@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0 @@0@@0@@0@@EpicWeapon@@None@@5@@0@@0@@0@@1060@@500 @@0@@0@@0@@0@@0@@
671239@@MightyRapierofAmbition@@70@@0@@120@@0@@0@@ 36@@0@@0@@0@@0@@200000@@0 @@2330@@1200@@0@@61@@0@@0@@0@@7099@@7099@@0@@0@@0@ @0@@0@@0@@0@@0@@0@@1@@1000@@0@@0@@0@@0@@0@@0@@0@@0 @@0@@0@@0@@20@@0@@0@@0@@0@@0@@0@@0@@EpicWeapon@@No ne@@5@@0@@0@@0@@1350@@500@@0@@0@@0@@0@@0@@
671009@@MightyRapierofInvasion@@70@@0@@5@@0@@0@@2 @@0@@0@@0@@153@@0@@15@@9@@0@@0@@61@@0@@0@@0@@1599@ @1599@@0@@0@@0@@0@@0@@0@@0@@0@@0@@1@@1000@@0@@0@@0 @@0@@0@@0@@0@@0@@0@@0@@0@@20@@0@@0@@0@@0@@0@@0@@0@ @EpicWeapon@@None@@5@@0@@0@@0@@1350@@500@@0@@0@@0@ @0@@0@@
و بعد كده
ضيف بقي الايتم
في Data جوة الباتش
تحميل (عفواً لايمكن عرض الروابط في الإرشيف)
و بعد كده
في فلد ani
افتح
ItemMinIcon
و برضوا
MapItemIcon
تكست
و ضيف في اخرها
دول
تحميل (عفواً لايمكن عرض الروابط في الإرشيف)
حمل الباتش وعلي فكره الباتش عربي فخلي بالك ليبوظ لعبتك
تحميل (عفواً لايمكن عرض الروابط في الإرشيف)
في النفي كات
ضيف دول
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14570, 14570, 0078, 'LeftChop', 1, 1, 0, 0000, 0000, 0000, 30200, 0000, 0030, 0000, 0003, 0008, 0000, 0000, 20243, 0015, 0, 61626626, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14580, 14580, 0078, 'RightChop', 1, 1, 0, 0000, 0000, 0000, 30200, 0000, 0030, 0000, 0003, 0008, 0000, 0000, 20243, 0015, 0, 61626626, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14590, 14590, 0081, 'Gunfire', 1, 1, 0, 0000, 0000, 0000, 30200, 0000, 0030, 0000, 0003, 0008, 0000, 0000, 20243, 0015, 0, 61626626, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14680, 14680, 0090, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30100, 0000, 0030, 0000, 0003, 0008, 0000, 900000, 10000, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14681, 14680, 0000, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30102, 0000, 0030, 0000, 0003, 0008, 0000, 3000000, 30000, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14682, 14680, 0005, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30104, 0000, 0030, 0000, 0003, 0008, 0000, 10000000, 60000, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0001, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14683, 14680, 0090, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30106, 0000, 0030, 0000, 0003, 0008, 0000, 50000000, 120000, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14684, 14680, 0090, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30108, 0000, 0030, 0000, 0003, 0008, 0000, 100000000, 240000, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0001, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14685, 14680, 0090, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30110, 0000, 0030, 0000, 0003, 0008, 0000, 100000000, 6000000, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14686, 14680, 0090, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30115, 0000, 0030, 0000, 0003, 0008, 0000, 500000000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0001, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14710, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14711, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 1000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14712, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 10000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14713, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 50000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14714, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 100000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14715, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 500000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14716, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 900000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14717, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 1300000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14718, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 0000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14720, 14720, 0021, 'BloomofDeath', 1, 1, 4, 0000, 0000, 0000, 30180, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14721, 14720, 0021, 'BloomofDeath', 1, 1, 4, 0001, 0000, 0000, 30185, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14722, 14720, 0021, 'BloomofDeath', 1, 1, 4, 0002, 0000, 0000, 30195, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14723, 14720, 0021, 'BloomofDeath', 1, 1, 4, 0003, 0000, 0000, 30200, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14724, 14720, 0021, 'BloomofDeath', 1, 1, 4, 0004, 0000, 0000, 30220, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14725, 14720, 0021, 'BloomofDeath', 1, 1, 4, 0005, 0000, 0000, 30225, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14726, 14720, 0021, 'BloomofDeath', 0, 0, 0, 0006, 0000, 0000, 30230, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14727, 14720, 0021, 'BloomofDeath', 0, 0, 0, 0007, 0000, 0000, 30235, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14728, 14720, 0021, 'BloomofDeath', 0, 0, 0, 0008, 0000, 0000, 30245, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
اتغير ال cq1 باسم القاعده الي فيه اللعبه
ثانيا الهاندل Handle.cs
هتروح
#region Melee
و هتنزل تحت اسكلات الويندويكر
و تضيف
#region EpicPirate(Melee)
if (attacker.EpicPirate())
{
#region EpicPirate 14570
// var lastattacked = attacked;
var spell20 = Database.SpellTable.GetSpell(14570, attacker.Owner);
if (Kernel.Rate(spell20.Percent) && attacker.Owner.Spells.ContainsKey(14570) && attacker.EpicPirate())
{
{
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell20.ID;
suse.SpellLevel = spell20.Level;
suse.X = lastattacked.X;
suse.Y = lastattacked.Y;
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
{
if (_obj == null)
continue;
attacked = _obj as Player;
if (attacked == null) continue;
if (Kernel.GetDistance(attacked.X, attacked.Y, attacker.X, attacker.Y) <= spell20.Range)
{
if (_obj.MapObjType == MapObjectType.Player)
{
if (!CanAttack(attacker, attacked, null, attack.InteractType == MsgInteract.Melee)) continue;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
attack.Damage = 0;
damage = (damage * spell20.IncreaseDMG);
damage = (damage / spell20.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell5);
suse.AddTarget(attacked.UID, damage, attack);
}
else if (_obj.MapObjType == MapObjectType.Monster)
{
if (!CanAttack(attacker, attacked, null, attack.InteractType == MsgInteract.Melee)) continue;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
attack.Damage = 0;
damage = (damage * spell20.IncreaseDMG);
damage = (damage / spell20.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell20);
suse.AddTarget(attacked.UID, damage, attack);
}
else if (_obj.MapObjType == MapObjectType.SobNpc)
{
attackedsob = _obj as MsgNpcInfoEX;
if (Kernel.GetDistance(lastattacked.X, lastattacked.Y, attackedsob.X, attackedsob.Y) <= 5)
{
if (Handle.CanAttack(attacker, attackedsob, spell20))
{
// lastattacked = attackedsob;
uint damages = Game.Attacking.Calculate.Melee(attacker, attackedsob, ref attack);
suse.Effect2 = attack.Effect2;
if (damages == 0) break;
Handle.ReceiveAttack(attacker, attackedsob, attack, damages, spell20);
suse.AddTarget(attackedsob.UID, damages, attack);
}
}
}
}
}
attacker.AttackPacket = null;
attacker.Owner.SendScreen(suse, true);
}
return;
}
#endregion
#region EpicPirate 14580
// var lastattacked = attacked;
var spell21 = Database.SpellTable.GetSpell(14580, attacker.Owner);
if (Kernel.Rate(spell21.Percent) && attacker.Owner.Spells.ContainsKey(14580) && attacker.EpicPirate())
{
#region EpicPirate
{
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell21.ID;
suse.SpellLevel = spell21.Level;
suse.X = lastattacked.X;
suse.Y = lastattacked.Y;
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
{
if (_obj == null)
continue;
attacked = _obj as Player;
if (attacked == null) continue;
if (Kernel.GetDistance(attacked.X, attacked.Y, attacker.X, attacker.Y) <= spell21.Range)
{
if (_obj.MapObjType == MapObjectType.Player)
{
if (!CanAttack(attacker, attacked, null, attack.InteractType == MsgInteract.Melee)) continue;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
attack.Damage = 0;
damage = (damage * spell21.IncreaseDMG);
damage = (damage / spell21.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell21);
suse.AddTarget(attacked.UID, damage, attack);
}
else if (_obj.MapObjType == MapObjectType.Monster)
{
if (!CanAttack(attacker, attacked, null, attack.InteractType == MsgInteract.Melee)) continue;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
attack.Damage = 0;
damage = (damage * spell21.IncreaseDMG);
damage = (damage / spell21.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell21);
suse.AddTarget(attacked.UID, damage, attack);
}
else if (_obj.MapObjType == MapObjectType.SobNpc)
{
attackedsob = _obj as MsgNpcInfoEX;
if (Kernel.GetDistance(lastattacked.X, lastattacked.Y, attackedsob.X, attackedsob.Y) <= 5)
{
if (Handle.CanAttack(attacker, attackedsob, spell5))
{
// lastattacked = attackedsob;
uint damages = Game.Attacking.Calculate.Melee(attacker, attackedsob, ref attack);
suse.Effect2 = attack.Effect2;
if (damages == 0) break;
Handle.ReceiveAttack(attacker, attackedsob, attack, damages, spell5);
suse.AddTarget(attackedsob.UID, damages, attack);
}
}
}
}
}
attacker.AttackPacket = null;
attacker.Owner.SendScreen(suse, true);
}
#endregion
return;
}
#endregion
#region EpicPirate 14590
// var lastattacked = attacked;
var spell22 = Database.SpellTable.GetSpell(14590, attacker.Owner);
if (Kernel.Rate(spell22.Percent) && attacker.Owner.Spells.ContainsKey(14590) && attacker.EpicPirate())
{
#region EpicPirate
{
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell22.ID;
suse.SpellLevel = spell22.Level;
suse.X = lastattacked.X;
suse.Y = lastattacked.Y;
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
{
if (_obj == null)
continue;
attacked = _obj as Player;
if (attacked == null) continue;
if (Kernel.GetDistance(attacked.X, attacked.Y, attacker.X, attacker.Y) <= spell22.Range)
{
if (_obj.MapObjType == MapObjectType.Player)
{
if (!CanAttack(attacker, attacked, null, attack.InteractType == MsgInteract.Melee)) continue;
attacker.Update(MsgName.Mode.Effect, "hdswzfwodrd", true);// hdswzfwodrd
attacker.Update(MsgName.Mode.Effect, "hdswzf-shouji", true);
attacker.Update(MsgName.Mode.Effect, "hdswzf-shifa", true);
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
attack.Damage = 0;
damage = (damage * spell22.IncreaseDMG);
damage = (damage / spell22.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell22);
suse.AddTarget(attacked.UID, damage, attack);
}
else if (_obj.MapObjType == MapObjectType.Monster)
{
if (!CanAttack(attacker, attacked, null, attack.InteractType == MsgInteract.Melee)) continue;
attacker.Update(MsgName.Mode.Effect, "hdswzfwodrd", true);// hdswzfwodrd
attacker.Update(MsgName.Mode.Effect, "hdswzf-shouji", true);
attacker.Update(MsgName.Mode.Effect, "hdswzf-shifa", true);
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
attack.Damage = 0;
damage = (damage * spell22.IncreaseDMG);
damage = (damage / spell22.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell22);
suse.AddTarget(attacked.UID, damage, attack);
}
else if (_obj.MapObjType == MapObjectType.SobNpc)
{
attackedsob = _obj as MsgNpcInfoEX;
if (Kernel.GetDistance(lastattacked.X, lastattacked.Y, attackedsob.X, attackedsob.Y) <= 5)
{
if (Handle.CanAttack(attacker, attackedsob, spell5))
{
attacker.Update(MsgName.Mode.Effect, "hdswzfwodrd", true);// hdswzfwodrd
attacker.Update(MsgName.Mode.Effect, "hdswzf-shouji", true);
attacker.Update(MsgName.Mode.Effect, "hdswzf-shifa", true);
// lastattacked = attackedsob;
uint damages = Game.Attacking.Calculate.Melee(attacker, attackedsob, ref attack);
suse.Effect2 = attack.Effect2;
if (damages == 0) break;
Handle.ReceiveAttack(attacker, attackedsob, attack, damages, spell5);
suse.AddTarget(attackedsob.UID, damages, attack);
}
}
}
}
}
attacker.AttackPacket = null;
attacker.Owner.SendScreen(suse, true);
}
#endregion
return;
}
#endregion
//case 14720:
#region EpicPirate 14720
// var lastattacked = attacked;
var spell23 = Database.SpellTable.GetSpell(14720, attacker.Owner);
if (Kernel.Rate(spell23.Percent) && attacker.Owner.Spells.ContainsKey(14720) && attacker.EpicPirate())
{
#region EpicPirate
{
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell23.ID;
suse.SpellLevel = spell23.Level;
ushort _X = attacker.X, _Y = attacker.Y;
ushort _tX = X, _tY = Y;
byte dist = (byte)spell23.Distance;
var Array = attacker.Owner.Screen.Objects;
InLineAlgorithm algo = new InLineAlgorithm(attacker.X, X, attacker.Y, Y, dist,
InLineAlgorithm.Algorithm.DDA);
X = attacker.X;
X = attacker.Y;
int i = 0;
for (i = 0; i < algo.lcoords.Count; i++)
{
if (attacker.Owner.Map.Floor[algo.lcoords[i].X, algo.lcoords[i].Y, MapObjectType.Player]
&& !attacker.ThroughGate(algo.lcoords[i].X, algo.lcoords[i].Y))
{
X = (ushort)algo.lcoords[i].X;
Y = (ushort)algo.lcoords[i].Y;
}
else
{
break;
}
}
suse.X = X;
suse.Y = Y;
if (!attacker.Owner.Map.Floor[X, Y, MapObjectType.Player, null])
return;
double disth = 1.5;
foreach (Interfaces.IMapObject _obj in Array)
{
bool hit = false;
for (int j = 0; j < i; j++)
if (
Kernel.GetDDistance(_obj.X, _obj.Y, (ushort)algo.lcoords[j].X,
(ushort)algo.lcoords[j].Y) <= disth)
hit = true;
if (hit)
{
if (_obj.MapObjType == MapObjectType.Monster)
{
attacked = _obj as Player;
if (CanAttack(attacker, attacked, spell23,
attack.InteractType == MsgInteract.Melee))
{
var damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
damage = (damage * spell23.IncreaseDMG);
damage = (damage / spell23.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell23);
attacked.Update(MsgName.Mode.Effect, "zssjhdsssj", true);
suse.AddTarget(attacked.UID, damage, attack);
}
}
else if (_obj.MapObjType == MapObjectType.Player)
{
attacked = _obj as Player;
if (CanAttack(attacker, attacked, spell23,
attack.InteractType == MsgInteract.Melee))
{
var damage = Game.Attacking.Calculate.Melee(attacker, attacked,
ref attack);
damage = (damage * spell23.IncreaseDMG);
damage = (damage / spell23.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell23);
attacked.Update(MsgName.Mode.Effect, "zssjhdsssj", true);
suse.AddTarget(attacked.UID, damage, attack);
}
}
else if (_obj.MapObjType == MapObjectType.SobNpc)
{
attackedsob = _obj as MsgNpcInfoEX;
if (CanAttack(attacker, attackedsob, spell23))
{
var damage = Game.Attacking.Calculate.Melee(attacker,
attackedsob, ref attack);
//damage = (damage * spell.IncreaseDMG);
//damage = (damage / spell.DecreaseDMG);
ReceiveAttack(attacker, attackedsob, attack, damage, spell23);
attacked.Update(MsgName.Mode.Effect, "zssjhdsssj", true);
suse.AddTarget(attackedsob.UID, damage, attack);
}
}
}
}
attacker.Owner.SendScreen(suse, true);
}
}
#endregion
#endregion
}
#endregion
بالنسبة للاسكلات ده انا مقدرتش احوله عندي لسورس عادي بسبب اني سورس الي بحول فيه سورس ماتركس كل اسكله ليه كلاس لوحديه فحاولوا تظبطوها
بعد كده دور علي اسكلات القرصان و ضيف دول
#region Epic Pirate
#region SeaBurial
case 14680:
{
if (CanUseSpell(spell, attacker.Owner))
{
PrepareSpell(spell, attacker.Owner);
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell.ID;
suse.SpellLevel = spell.Level;
ushort _X = attacker.X, _Y = attacker.Y;
ushort _tX = X, _tY = Y;
byte dist = (byte)spell.Distance;
var Array = attacker.Owner.Screen.Objects;
InLineAlgorithm algo = new InLineAlgorithm(attacker.X, X, attacker.Y, Y, dist,
InLineAlgorithm.Algorithm.DDA);
X = attacker.X;
Y = attacker.Y;
int i = 0;
for (i = 0; i < algo.lcoords.Count; i++)
{
if (attacker.Owner.Map.Floor[
algo.lcoords[i].X, algo.lcoords[i].Y, MapObjectType.Player]
&& !attacker.ThroughGate(algo.lcoords[i].X, algo.lcoords[i].Y))
{
X = (ushort)algo.lcoords[i].X;
Y = (ushort)algo.lcoords[i].Y;
}
else
{
break;
}
}
suse.X = X;
suse.Y = Y;
#region floor
MsgName str = new MsgName(true);
str.UID = attacker.UID;
str.TextsCount = 1;
str.X = X;
str.Y = Y;
str.PositionX = attacker.X;
str.PositionY = attacker.Y;
str.Action = MsgName.Mode.MapEffect;
str.Texts.Add("hdhlyz-lsyujing");
attacker.Owner.SendScreen(str.ToArray(), true);
MsgAction data = new Network.GamePackets.MsgAction(true);
data.UID = attacker.UID;
data.X = X;
data.Y = Y;
data.ID = MsgAction.Mode.FlashStep;
data.wParam1 = attacker.X;
data.wParam2 = attacker.Y;
attacker.Owner.SendScreen(data, true);
#endregion
if (!attacker.Owner.Map.Floor[X, Y, MapObjectType.Player, null])
return;
double disth = 2.5;
foreach (Interfaces.IMapObject _obj in Array)
{
bool hit = false;
for (int j = 0; j < i; j++)
if (
Kernel.GetDDistance(_obj.X, _obj.Y, (ushort)algo.lcoords[j].X,
(ushort)algo.lcoords[j].Y) <= disth)
hit = true;
if (hit)
{
if (_obj.MapObjType == MapObjectType.Monster)
{
attacked = _obj as Player;
if (CanAttack(attacker, attacked, spell,
attack.InteractType == MsgInteract.Melee))
{
var damage = Game.Attacking.Calculate.Melee(attacker, attacked,
ref attack);
damage = (damage * spell.IncreaseDMG);
damage = (damage / spell.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell);
suse.AddTarget(attacked.UID, damage, attack);
}
}
else if (_obj.MapObjType == MapObjectType.Player)
{
attacked = _obj as Player;
if (CanAttack(attacker, attacked, spell,
attack.InteractType == MsgInteract.Melee))
{
var damage = Game.Attacking.Calculate.Melee(attacker, attacked,
ref attack);
damage = (damage * spell.IncreaseDMG);
damage = (damage / spell.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell);
suse.AddTarget(attacked.UID, damage, attack);
}
}
else if (_obj.MapObjType == MapObjectType.SobNpc)
{
attackedsob = _obj as MsgNpcInfoEX;
if (CanAttack(attacker, attackedsob, spell))
{
var damage = Game.Attacking.Calculate.Melee(attacker,
attackedsob, ref attack);
//damage = (damage * spell.IncreaseDMG);
//damage = (damage / spell.DecreaseDMG);
ReceiveAttack(attacker, attackedsob, attack, damage, spell);
suse.AddTarget(attackedsob.UID, damage, attack);
}
}
}
}
attacker.Owner.SendScreen(suse, true);
}
break;
}
#endregion
#region ImmortalForce
case 14710:
{
if (CanUseSpell(spell, attacker.Owner))
{
attacker.GreenEffect = 10;
PrepareSpell(spell, attacker.Owner);
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.Attacker1 = attacker.UID;
suse.SpellID = spell.ID;
suse.SpellLevel = spell.Level;
suse.AddTarget(attacker.UID, 0, null);
attacker.Owner.SendScreen(suse, true);
attacker.ImmortalForceStamp = Time32.Now;
attacker.AddFlag4((ulong)MsgUpdate.Flags4.Immortal Force);
}
break;
}
#endregion
#endregion
ابحث عن
public static bool CanAttack
ضيف دول فقيه
#region Epic Pirate ImmortalForce
if (attacked.ContainsFlag4(MsgUpdate.Flags4.ImmortalF orce))
{
attacked.Update(_String.Effect, "hdyh-debuff", true);
// aaa hdyh-debuff
return false;
}
#endregion
هتروح Entity
وتضيف
public Time32 OmnipotenceStamp,ImmortalForceStamp;
public Time32 ImmortalForce { get; set; }
و الورلد worled
ابحث عن
private unsafe void BuffersCallback(GameState client, int time)
{
ضيف تحت القوس
#region Epic Pirate ImmortalForce
if (Now > client.Entity.ImmortalForceStamp.AddSeconds(5))
client.Entity.RemoveFlag(MsgUpdate.Flags.ImmortalF orce);
#endregion
و في update
public class Flags4
ضيف دول
.ImmortalForce = 1UL << 220
بس كده لو في حاجه ناقصه قولوها في التعليق
اضافة ابيك القرصان للسورسات العاديه ده طلب الضعو اسامه
يلا ندخل علي الاكواد
في Entity.cs
حط دول
public bool EpicPirate()
{
if (EntityFlag == Game.EntityFlag.Entity)
{
var weapons = Owner.Weapons;
if (weapons.Item1 != null && weapons.Item2 != null)
if (weapons.Item1.ID / 1000 == 671 && weapons.Item2.ID / 1000 == 670)
return true;
}
return false;
}
كلاس PacketHandler.cs
ابحث عن
public static Positions ItemPositionFromID(UInt32 itemid)
تحت القوس اي اضافه في الفويد حط دول
else if (iType == 1050 || iType == 900 || iType == 619)
return Positions.Left;
else if ((iType >= 410 && iType <= 490) || (iType >= 500 && iType <= 580) || (iType >= 601 && iType <= 617) || iType == 620 || iType == 624 || iType == 626)
return Positions.Right;
في نفس الكلاس
ابحث عن
public static ushort ItemPosition(uint ID)
تحت القوس ضيف دول
#region EpicPirate K7host.com
if (ID >= 670003 && ID <= 670439)
return ConquerItem.LeftWeapon;
if (ID >= 671003 && ID <= 671439)
return ConquerItem.RightWeapon;
if (iType == 671)
return ConquerItem.RightWeapon;
if (iType == 670)
return ConquerItem.LeftWeapon;
#endregion
في نفس الكلاس ابحث عن
public static bool IsRapier(uint ID)
واقفله من السالب وبدله بده
public static bool IsRapier(uint ID)
{
if (ID >= 611000 && ID <= 611439 || (ID >= 670000 && ID <= 670439))
{ return true; }
else { return false; }
}
في نفس الكلاس ابحث عن
public static bool IsPistol(uint ID)
اقفله من السالب وبدله بده
public static bool IsPistol(uint ID)
{
if (ID >= 612000 && ID <= 612439 || ID >= 671000 && ID <= 671439)
{ return true; }
else { return false; }
}
في نفس الكلاس ابحث عن
bool twohand = IsTwoHand(item.ID);
تختيه ضيف دول
if (client.Entity.Class >= 70 && client.Entity.Class <= 75)
{
if (itemUsage.dwParam > 20)
{
if (!client.Equipment.Free(24))
{
if (IsRapier(client.Equipment.TryGetItem(24).ID))
{
if (IsPistol(item.ID))
{
can2wpn = true;
}
}
}
}
else if (!client.Equipment.Free(4))
{
if (IsRapier(client.Equipment.TryGetItem(4).ID))
{
if (IsPistol(item.ID))
{
can2wpn = true;
}
}
}
}
افتح بقي الايام في السورس و ايتم تيب في الجيم و حط دول
670439@@OceanDominator@@70@@12@@140@@0@@0@@36@@0@@ 0@@0@@0@@100000@@0@@3666@@2554@@0@@78@@0@@2616@@0@ @7099@@7099@@0@@0@@0@@0@@0@@0@@0@@0@@0@@1@@1000@@0 @@0@@0@@0@@0@@0@@300@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0 @@0@@0@@EpicWeapon@@None@@5@@0@@0@@0@@1070@@500@@0 @@0@@0@@0@@0@@
670239@@DivineDictator@@70@@0@@120@@0@@0@@36@@0@@0 @@0@@0@@200000@@0@@2313@@1212@@0@@61@@0@@149@@0@@7 099@@7099@@0@@0@@0@@0@@0@@0@@0@@0@@0@@1@@1000@@0@@ 0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@20@@0@@0@@0@@0@@0@@0 @@0@@EpicWeapon@@None@@5@@0@@0@@0@@1360@@500@@0@@0 @@0@@0@@0@@
670009@@TempestPlunder@@70@@0@@5@@0@@0@@2@@0@@0@@0 @@0@@153@@0@@15@@9@@0@@61@@0@@6@@0@@1599@@1599@@0@ @0@@0@@0@@0@@0@@0@@0@@0@@1@@1000@@0@@0@@0@@0@@0@@0 @@0@@0@@0@@0@@0@@20@@0@@0@@0@@0@@0@@0@@0@@EpicWeap on@@None@@5@@0@@0@@0@@1360@@500@@0@@0@@0@@0@@0@@
671439@@MightyRapierofViolence@@70@@11@@140@@0@@0@ @36@@0@@0@@0@@0@@100000@@0@@3300@@2800@@0@@78@@0@@ 0@@0@@7099@@7099@@0@@0@@0@@0@@0@@0@@0@@0@@0@@1@@10 00@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0 @@0@@0@@0@@EpicWeapon@@None@@5@@0@@0@@0@@1060@@500 @@0@@0@@0@@0@@0@@
671239@@MightyRapierofAmbition@@70@@0@@120@@0@@0@@ 36@@0@@0@@0@@0@@200000@@0 @@2330@@1200@@0@@61@@0@@0@@0@@7099@@7099@@0@@0@@0@ @0@@0@@0@@0@@0@@0@@1@@1000@@0@@0@@0@@0@@0@@0@@0@@0 @@0@@0@@0@@20@@0@@0@@0@@0@@0@@0@@0@@EpicWeapon@@No ne@@5@@0@@0@@0@@1350@@500@@0@@0@@0@@0@@0@@
671009@@MightyRapierofInvasion@@70@@0@@5@@0@@0@@2 @@0@@0@@0@@153@@0@@15@@9@@0@@0@@61@@0@@0@@0@@1599@ @1599@@0@@0@@0@@0@@0@@0@@0@@0@@0@@1@@1000@@0@@0@@0 @@0@@0@@0@@0@@0@@0@@0@@0@@20@@0@@0@@0@@0@@0@@0@@0@ @EpicWeapon@@None@@5@@0@@0@@0@@1350@@500@@0@@0@@0@ @0@@0@@
و بعد كده
ضيف بقي الايتم
في Data جوة الباتش
تحميل (عفواً لايمكن عرض الروابط في الإرشيف)
و بعد كده
في فلد ani
افتح
ItemMinIcon
و برضوا
MapItemIcon
تكست
و ضيف في اخرها
دول
تحميل (عفواً لايمكن عرض الروابط في الإرشيف)
حمل الباتش وعلي فكره الباتش عربي فخلي بالك ليبوظ لعبتك
تحميل (عفواً لايمكن عرض الروابط في الإرشيف)
في النفي كات
ضيف دول
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14570, 14570, 0078, 'LeftChop', 1, 1, 0, 0000, 0000, 0000, 30200, 0000, 0030, 0000, 0003, 0008, 0000, 0000, 20243, 0015, 0, 61626626, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14580, 14580, 0078, 'RightChop', 1, 1, 0, 0000, 0000, 0000, 30200, 0000, 0030, 0000, 0003, 0008, 0000, 0000, 20243, 0015, 0, 61626626, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14590, 14590, 0081, 'Gunfire', 1, 1, 0, 0000, 0000, 0000, 30200, 0000, 0030, 0000, 0003, 0008, 0000, 0000, 20243, 0015, 0, 61626626, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14680, 14680, 0090, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30100, 0000, 0030, 0000, 0003, 0008, 0000, 900000, 10000, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14681, 14680, 0000, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30102, 0000, 0030, 0000, 0003, 0008, 0000, 3000000, 30000, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14682, 14680, 0005, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30104, 0000, 0030, 0000, 0003, 0008, 0000, 10000000, 60000, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0001, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14683, 14680, 0090, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30106, 0000, 0030, 0000, 0003, 0008, 0000, 50000000, 120000, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14684, 14680, 0090, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30108, 0000, 0030, 0000, 0003, 0008, 0000, 100000000, 240000, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0001, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14685, 14680, 0090, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30110, 0000, 0030, 0000, 0003, 0008, 0000, 100000000, 6000000, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14686, 14680, 0090, 'SeaBurial', 1, 1, 0, 0000, 0000, 0000, 30115, 0000, 0030, 0000, 0003, 0008, 0000, 500000000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0001, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14710, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14711, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 1000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14712, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 10000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14713, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 50000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14714, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 100000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14715, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 500000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14716, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 900000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14717, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 1300000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14718, 14710, 0006, 'ImmortalForce', 0, 0, 0, 0002, 0000, 0000, 1, 0000, 0100, 0010, 0000, 0000, 0220, 0000, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14720, 14720, 0021, 'BloomofDeath', 1, 1, 4, 0000, 0000, 0000, 30180, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14721, 14720, 0021, 'BloomofDeath', 1, 1, 4, 0001, 0000, 0000, 30185, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14722, 14720, 0021, 'BloomofDeath', 1, 1, 4, 0002, 0000, 0000, 30195, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14723, 14720, 0021, 'BloomofDeath', 1, 1, 4, 0003, 0000, 0000, 30200, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14724, 14720, 0021, 'BloomofDeath', 1, 1, 4, 0004, 0000, 0000, 30220, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14725, 14720, 0021, 'BloomofDeath', 1, 1, 4, 0005, 0000, 0000, 30225, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14726, 14720, 0021, 'BloomofDeath', 0, 0, 0, 0006, 0000, 0000, 30230, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14727, 14720, 0021, 'BloomofDeath', 0, 0, 0, 0007, 0000, 0000, 30235, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
INSERT INTO `cq1`.`spells`(`id`, `type`, `sort`, `name`, `crime`, `ground`, `multi`, `target`, `level`, `use_mp`, `power`, `intone_speed`, `percent`, `step_secs`, `range`, `distance`, `status`, `need_prof`, `need_exp`, `need_level`, `use_xp`, `weapon_subtype`, `active_times`, `auto_active`, `floor_attr`, `auto_learn`, `learn_level`, `drop_weapon`, `use_ep`, `weapon_hit`, `use_item`, `next_magic`, `delay_ms`, `use_item_num`, `IncreaseDmg`, `DecreaseDmg`) VALUES (14728, 14720, 0021, 'BloomofDeath', 0, 0, 0, 0008, 0000, 0000, 30245, 0000, 0100, 0010, 0000, 0000, 0220, 0500, 0, 0015, 0, 60671670, 0000, 0, 0000, 0, 0000, 0, 0000, 0, 0000, 0000, 0000, 0000, 1, 1);
اتغير ال cq1 باسم القاعده الي فيه اللعبه
ثانيا الهاندل Handle.cs
هتروح
#region Melee
و هتنزل تحت اسكلات الويندويكر
و تضيف
#region EpicPirate(Melee)
if (attacker.EpicPirate())
{
#region EpicPirate 14570
// var lastattacked = attacked;
var spell20 = Database.SpellTable.GetSpell(14570, attacker.Owner);
if (Kernel.Rate(spell20.Percent) && attacker.Owner.Spells.ContainsKey(14570) && attacker.EpicPirate())
{
{
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell20.ID;
suse.SpellLevel = spell20.Level;
suse.X = lastattacked.X;
suse.Y = lastattacked.Y;
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
{
if (_obj == null)
continue;
attacked = _obj as Player;
if (attacked == null) continue;
if (Kernel.GetDistance(attacked.X, attacked.Y, attacker.X, attacker.Y) <= spell20.Range)
{
if (_obj.MapObjType == MapObjectType.Player)
{
if (!CanAttack(attacker, attacked, null, attack.InteractType == MsgInteract.Melee)) continue;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
attack.Damage = 0;
damage = (damage * spell20.IncreaseDMG);
damage = (damage / spell20.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell5);
suse.AddTarget(attacked.UID, damage, attack);
}
else if (_obj.MapObjType == MapObjectType.Monster)
{
if (!CanAttack(attacker, attacked, null, attack.InteractType == MsgInteract.Melee)) continue;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
attack.Damage = 0;
damage = (damage * spell20.IncreaseDMG);
damage = (damage / spell20.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell20);
suse.AddTarget(attacked.UID, damage, attack);
}
else if (_obj.MapObjType == MapObjectType.SobNpc)
{
attackedsob = _obj as MsgNpcInfoEX;
if (Kernel.GetDistance(lastattacked.X, lastattacked.Y, attackedsob.X, attackedsob.Y) <= 5)
{
if (Handle.CanAttack(attacker, attackedsob, spell20))
{
// lastattacked = attackedsob;
uint damages = Game.Attacking.Calculate.Melee(attacker, attackedsob, ref attack);
suse.Effect2 = attack.Effect2;
if (damages == 0) break;
Handle.ReceiveAttack(attacker, attackedsob, attack, damages, spell20);
suse.AddTarget(attackedsob.UID, damages, attack);
}
}
}
}
}
attacker.AttackPacket = null;
attacker.Owner.SendScreen(suse, true);
}
return;
}
#endregion
#region EpicPirate 14580
// var lastattacked = attacked;
var spell21 = Database.SpellTable.GetSpell(14580, attacker.Owner);
if (Kernel.Rate(spell21.Percent) && attacker.Owner.Spells.ContainsKey(14580) && attacker.EpicPirate())
{
#region EpicPirate
{
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell21.ID;
suse.SpellLevel = spell21.Level;
suse.X = lastattacked.X;
suse.Y = lastattacked.Y;
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
{
if (_obj == null)
continue;
attacked = _obj as Player;
if (attacked == null) continue;
if (Kernel.GetDistance(attacked.X, attacked.Y, attacker.X, attacker.Y) <= spell21.Range)
{
if (_obj.MapObjType == MapObjectType.Player)
{
if (!CanAttack(attacker, attacked, null, attack.InteractType == MsgInteract.Melee)) continue;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
attack.Damage = 0;
damage = (damage * spell21.IncreaseDMG);
damage = (damage / spell21.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell21);
suse.AddTarget(attacked.UID, damage, attack);
}
else if (_obj.MapObjType == MapObjectType.Monster)
{
if (!CanAttack(attacker, attacked, null, attack.InteractType == MsgInteract.Melee)) continue;
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
attack.Damage = 0;
damage = (damage * spell21.IncreaseDMG);
damage = (damage / spell21.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell21);
suse.AddTarget(attacked.UID, damage, attack);
}
else if (_obj.MapObjType == MapObjectType.SobNpc)
{
attackedsob = _obj as MsgNpcInfoEX;
if (Kernel.GetDistance(lastattacked.X, lastattacked.Y, attackedsob.X, attackedsob.Y) <= 5)
{
if (Handle.CanAttack(attacker, attackedsob, spell5))
{
// lastattacked = attackedsob;
uint damages = Game.Attacking.Calculate.Melee(attacker, attackedsob, ref attack);
suse.Effect2 = attack.Effect2;
if (damages == 0) break;
Handle.ReceiveAttack(attacker, attackedsob, attack, damages, spell5);
suse.AddTarget(attackedsob.UID, damages, attack);
}
}
}
}
}
attacker.AttackPacket = null;
attacker.Owner.SendScreen(suse, true);
}
#endregion
return;
}
#endregion
#region EpicPirate 14590
// var lastattacked = attacked;
var spell22 = Database.SpellTable.GetSpell(14590, attacker.Owner);
if (Kernel.Rate(spell22.Percent) && attacker.Owner.Spells.ContainsKey(14590) && attacker.EpicPirate())
{
#region EpicPirate
{
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell22.ID;
suse.SpellLevel = spell22.Level;
suse.X = lastattacked.X;
suse.Y = lastattacked.Y;
foreach (Interfaces.IMapObject _obj in attacker.Owner.Screen.Objects)
{
if (_obj == null)
continue;
attacked = _obj as Player;
if (attacked == null) continue;
if (Kernel.GetDistance(attacked.X, attacked.Y, attacker.X, attacker.Y) <= spell22.Range)
{
if (_obj.MapObjType == MapObjectType.Player)
{
if (!CanAttack(attacker, attacked, null, attack.InteractType == MsgInteract.Melee)) continue;
attacker.Update(MsgName.Mode.Effect, "hdswzfwodrd", true);// hdswzfwodrd
attacker.Update(MsgName.Mode.Effect, "hdswzf-shouji", true);
attacker.Update(MsgName.Mode.Effect, "hdswzf-shifa", true);
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
attack.Damage = 0;
damage = (damage * spell22.IncreaseDMG);
damage = (damage / spell22.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell22);
suse.AddTarget(attacked.UID, damage, attack);
}
else if (_obj.MapObjType == MapObjectType.Monster)
{
if (!CanAttack(attacker, attacked, null, attack.InteractType == MsgInteract.Melee)) continue;
attacker.Update(MsgName.Mode.Effect, "hdswzfwodrd", true);// hdswzfwodrd
attacker.Update(MsgName.Mode.Effect, "hdswzf-shouji", true);
attacker.Update(MsgName.Mode.Effect, "hdswzf-shifa", true);
uint damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
attack.Damage = 0;
damage = (damage * spell22.IncreaseDMG);
damage = (damage / spell22.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell22);
suse.AddTarget(attacked.UID, damage, attack);
}
else if (_obj.MapObjType == MapObjectType.SobNpc)
{
attackedsob = _obj as MsgNpcInfoEX;
if (Kernel.GetDistance(lastattacked.X, lastattacked.Y, attackedsob.X, attackedsob.Y) <= 5)
{
if (Handle.CanAttack(attacker, attackedsob, spell5))
{
attacker.Update(MsgName.Mode.Effect, "hdswzfwodrd", true);// hdswzfwodrd
attacker.Update(MsgName.Mode.Effect, "hdswzf-shouji", true);
attacker.Update(MsgName.Mode.Effect, "hdswzf-shifa", true);
// lastattacked = attackedsob;
uint damages = Game.Attacking.Calculate.Melee(attacker, attackedsob, ref attack);
suse.Effect2 = attack.Effect2;
if (damages == 0) break;
Handle.ReceiveAttack(attacker, attackedsob, attack, damages, spell5);
suse.AddTarget(attackedsob.UID, damages, attack);
}
}
}
}
}
attacker.AttackPacket = null;
attacker.Owner.SendScreen(suse, true);
}
#endregion
return;
}
#endregion
//case 14720:
#region EpicPirate 14720
// var lastattacked = attacked;
var spell23 = Database.SpellTable.GetSpell(14720, attacker.Owner);
if (Kernel.Rate(spell23.Percent) && attacker.Owner.Spells.ContainsKey(14720) && attacker.EpicPirate())
{
#region EpicPirate
{
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell23.ID;
suse.SpellLevel = spell23.Level;
ushort _X = attacker.X, _Y = attacker.Y;
ushort _tX = X, _tY = Y;
byte dist = (byte)spell23.Distance;
var Array = attacker.Owner.Screen.Objects;
InLineAlgorithm algo = new InLineAlgorithm(attacker.X, X, attacker.Y, Y, dist,
InLineAlgorithm.Algorithm.DDA);
X = attacker.X;
X = attacker.Y;
int i = 0;
for (i = 0; i < algo.lcoords.Count; i++)
{
if (attacker.Owner.Map.Floor[algo.lcoords[i].X, algo.lcoords[i].Y, MapObjectType.Player]
&& !attacker.ThroughGate(algo.lcoords[i].X, algo.lcoords[i].Y))
{
X = (ushort)algo.lcoords[i].X;
Y = (ushort)algo.lcoords[i].Y;
}
else
{
break;
}
}
suse.X = X;
suse.Y = Y;
if (!attacker.Owner.Map.Floor[X, Y, MapObjectType.Player, null])
return;
double disth = 1.5;
foreach (Interfaces.IMapObject _obj in Array)
{
bool hit = false;
for (int j = 0; j < i; j++)
if (
Kernel.GetDDistance(_obj.X, _obj.Y, (ushort)algo.lcoords[j].X,
(ushort)algo.lcoords[j].Y) <= disth)
hit = true;
if (hit)
{
if (_obj.MapObjType == MapObjectType.Monster)
{
attacked = _obj as Player;
if (CanAttack(attacker, attacked, spell23,
attack.InteractType == MsgInteract.Melee))
{
var damage = Game.Attacking.Calculate.Melee(attacker, attacked, ref attack);
damage = (damage * spell23.IncreaseDMG);
damage = (damage / spell23.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell23);
attacked.Update(MsgName.Mode.Effect, "zssjhdsssj", true);
suse.AddTarget(attacked.UID, damage, attack);
}
}
else if (_obj.MapObjType == MapObjectType.Player)
{
attacked = _obj as Player;
if (CanAttack(attacker, attacked, spell23,
attack.InteractType == MsgInteract.Melee))
{
var damage = Game.Attacking.Calculate.Melee(attacker, attacked,
ref attack);
damage = (damage * spell23.IncreaseDMG);
damage = (damage / spell23.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell23);
attacked.Update(MsgName.Mode.Effect, "zssjhdsssj", true);
suse.AddTarget(attacked.UID, damage, attack);
}
}
else if (_obj.MapObjType == MapObjectType.SobNpc)
{
attackedsob = _obj as MsgNpcInfoEX;
if (CanAttack(attacker, attackedsob, spell23))
{
var damage = Game.Attacking.Calculate.Melee(attacker,
attackedsob, ref attack);
//damage = (damage * spell.IncreaseDMG);
//damage = (damage / spell.DecreaseDMG);
ReceiveAttack(attacker, attackedsob, attack, damage, spell23);
attacked.Update(MsgName.Mode.Effect, "zssjhdsssj", true);
suse.AddTarget(attackedsob.UID, damage, attack);
}
}
}
}
attacker.Owner.SendScreen(suse, true);
}
}
#endregion
#endregion
}
#endregion
بالنسبة للاسكلات ده انا مقدرتش احوله عندي لسورس عادي بسبب اني سورس الي بحول فيه سورس ماتركس كل اسكله ليه كلاس لوحديه فحاولوا تظبطوها
بعد كده دور علي اسكلات القرصان و ضيف دول
#region Epic Pirate
#region SeaBurial
case 14680:
{
if (CanUseSpell(spell, attacker.Owner))
{
PrepareSpell(spell, attacker.Owner);
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.SpellID = spell.ID;
suse.SpellLevel = spell.Level;
ushort _X = attacker.X, _Y = attacker.Y;
ushort _tX = X, _tY = Y;
byte dist = (byte)spell.Distance;
var Array = attacker.Owner.Screen.Objects;
InLineAlgorithm algo = new InLineAlgorithm(attacker.X, X, attacker.Y, Y, dist,
InLineAlgorithm.Algorithm.DDA);
X = attacker.X;
Y = attacker.Y;
int i = 0;
for (i = 0; i < algo.lcoords.Count; i++)
{
if (attacker.Owner.Map.Floor[
algo.lcoords[i].X, algo.lcoords[i].Y, MapObjectType.Player]
&& !attacker.ThroughGate(algo.lcoords[i].X, algo.lcoords[i].Y))
{
X = (ushort)algo.lcoords[i].X;
Y = (ushort)algo.lcoords[i].Y;
}
else
{
break;
}
}
suse.X = X;
suse.Y = Y;
#region floor
MsgName str = new MsgName(true);
str.UID = attacker.UID;
str.TextsCount = 1;
str.X = X;
str.Y = Y;
str.PositionX = attacker.X;
str.PositionY = attacker.Y;
str.Action = MsgName.Mode.MapEffect;
str.Texts.Add("hdhlyz-lsyujing");
attacker.Owner.SendScreen(str.ToArray(), true);
MsgAction data = new Network.GamePackets.MsgAction(true);
data.UID = attacker.UID;
data.X = X;
data.Y = Y;
data.ID = MsgAction.Mode.FlashStep;
data.wParam1 = attacker.X;
data.wParam2 = attacker.Y;
attacker.Owner.SendScreen(data, true);
#endregion
if (!attacker.Owner.Map.Floor[X, Y, MapObjectType.Player, null])
return;
double disth = 2.5;
foreach (Interfaces.IMapObject _obj in Array)
{
bool hit = false;
for (int j = 0; j < i; j++)
if (
Kernel.GetDDistance(_obj.X, _obj.Y, (ushort)algo.lcoords[j].X,
(ushort)algo.lcoords[j].Y) <= disth)
hit = true;
if (hit)
{
if (_obj.MapObjType == MapObjectType.Monster)
{
attacked = _obj as Player;
if (CanAttack(attacker, attacked, spell,
attack.InteractType == MsgInteract.Melee))
{
var damage = Game.Attacking.Calculate.Melee(attacker, attacked,
ref attack);
damage = (damage * spell.IncreaseDMG);
damage = (damage / spell.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell);
suse.AddTarget(attacked.UID, damage, attack);
}
}
else if (_obj.MapObjType == MapObjectType.Player)
{
attacked = _obj as Player;
if (CanAttack(attacker, attacked, spell,
attack.InteractType == MsgInteract.Melee))
{
var damage = Game.Attacking.Calculate.Melee(attacker, attacked,
ref attack);
damage = (damage * spell.IncreaseDMG);
damage = (damage / spell.DecreaseDMG);
ReceiveAttack(attacker, attacked, attack, ref damage, spell);
suse.AddTarget(attacked.UID, damage, attack);
}
}
else if (_obj.MapObjType == MapObjectType.SobNpc)
{
attackedsob = _obj as MsgNpcInfoEX;
if (CanAttack(attacker, attackedsob, spell))
{
var damage = Game.Attacking.Calculate.Melee(attacker,
attackedsob, ref attack);
//damage = (damage * spell.IncreaseDMG);
//damage = (damage / spell.DecreaseDMG);
ReceiveAttack(attacker, attackedsob, attack, damage, spell);
suse.AddTarget(attackedsob.UID, damage, attack);
}
}
}
}
attacker.Owner.SendScreen(suse, true);
}
break;
}
#endregion
#region ImmortalForce
case 14710:
{
if (CanUseSpell(spell, attacker.Owner))
{
attacker.GreenEffect = 10;
PrepareSpell(spell, attacker.Owner);
MsgMagicEffect suse = new MsgMagicEffect(true);
suse.Attacker = attacker.UID;
suse.Attacker1 = attacker.UID;
suse.SpellID = spell.ID;
suse.SpellLevel = spell.Level;
suse.AddTarget(attacker.UID, 0, null);
attacker.Owner.SendScreen(suse, true);
attacker.ImmortalForceStamp = Time32.Now;
attacker.AddFlag4((ulong)MsgUpdate.Flags4.Immortal Force);
}
break;
}
#endregion
#endregion
ابحث عن
public static bool CanAttack
ضيف دول فقيه
#region Epic Pirate ImmortalForce
if (attacked.ContainsFlag4(MsgUpdate.Flags4.ImmortalF orce))
{
attacked.Update(_String.Effect, "hdyh-debuff", true);
// aaa hdyh-debuff
return false;
}
#endregion
هتروح Entity
وتضيف
public Time32 OmnipotenceStamp,ImmortalForceStamp;
public Time32 ImmortalForce { get; set; }
و الورلد worled
ابحث عن
private unsafe void BuffersCallback(GameState client, int time)
{
ضيف تحت القوس
#region Epic Pirate ImmortalForce
if (Now > client.Entity.ImmortalForceStamp.AddSeconds(5))
client.Entity.RemoveFlag(MsgUpdate.Flags.ImmortalF orce);
#endregion
و في update
public class Flags4
ضيف دول
.ImmortalForce = 1UL << 220
بس كده لو في حاجه ناقصه قولوها في التعليق