محمد ياسر
2019-04-23, 01:35 PM
السلام عليكم ورحمة الله وبركاته معانا اليوم
اضافة ابيك القرصان كامله
منقول من K7host
بس انا حبيت اضفهالك اكثر تنظيم
احنا انقسم الموضوع لاثنين علشان الموضوع مش راضي يتعمل علشان كبير اووي
اولا اذهب الي
Player او entity
وحط دول
#region EpicPirate K7host.com
public bool EpicPirate()
{
if (PlayerFlag == Game.PlayerFlag.Player)
{
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;
}
#endregion
روح لل
في الباكت هندلر او MsgItemHandler
public static Positions GetPositionFromID(UInt32 itemid)
و حط
#region EpicPirate K7host.com
if (iType == 670)
return Positions.Left;
if (iType == 671)
return Positions.Right;
#endregion
و في
public static ushort ItemPosition(uint ID)
#region EpicPirate K7host.com
if (ID >= 670003 && ID <= 670439)
return MsgItemInfo.LeftWeapon;
if (ID >= 671003 && ID <= 671439)
return MsgItemInfo.RightWeapon;
if (iType == 671)
return MsgItemInfo.RightWeapon;
if (iType == 670)
return MsgItemInfo.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; }
}
دور علي
#region Sanity Checks
و فوق
bool twohand = IsTwoHand(item.ID);
لو هيا عندك اصلا خلاص مش عندك حط
#region Check Pirate
if (client.Player.Class >= 70 && client.Player.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;
}
}
}
}
#endregion
افتح بقي الايام في السورس و ايتم تيب في الجيم و حط دول
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
تكست
و ضيف في اخرها
دول
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);
ضيف الاسكلات غير cql1 لاسم القاعدة عندك
ثانيا الهاندل 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(MsgName.Mode.Effect, "hdyh-debuff", true);
// aaa hdyh-debuff
return false;
}
#endregion
هتروح Entity
وتضيف
public Time32 OmnipotenceStamp,ImmortalForceStamp;
public Time32 ImmortalForce { get; set; }
و الورلد worled
BuffersCallback
ضيف
كود:
#region Epic Pirate ImmortalForce
if (Now > client.Player.ImmortalForceStamp.AddSeconds(7))
client.Player.RemoveFlag4((ulong)MsgUpdate.Flags4. ImmortalForce);
#endregion
و في update
public class Flags4
ضيف
.ImmortalForce = 1UL << 220
عفواً لايمكن عرض الروابط في الإرشيف
عفواً لايمكن عرض الروابط في الإرشيف
عفواً لايمكن عرض الروابط في الإرشيف
عفواً لايمكن عرض الروابط في الإرشيف
اضافة ابيك القرصان كامله
منقول من K7host
بس انا حبيت اضفهالك اكثر تنظيم
احنا انقسم الموضوع لاثنين علشان الموضوع مش راضي يتعمل علشان كبير اووي
اولا اذهب الي
Player او entity
وحط دول
#region EpicPirate K7host.com
public bool EpicPirate()
{
if (PlayerFlag == Game.PlayerFlag.Player)
{
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;
}
#endregion
روح لل
في الباكت هندلر او MsgItemHandler
public static Positions GetPositionFromID(UInt32 itemid)
و حط
#region EpicPirate K7host.com
if (iType == 670)
return Positions.Left;
if (iType == 671)
return Positions.Right;
#endregion
و في
public static ushort ItemPosition(uint ID)
#region EpicPirate K7host.com
if (ID >= 670003 && ID <= 670439)
return MsgItemInfo.LeftWeapon;
if (ID >= 671003 && ID <= 671439)
return MsgItemInfo.RightWeapon;
if (iType == 671)
return MsgItemInfo.RightWeapon;
if (iType == 670)
return MsgItemInfo.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; }
}
دور علي
#region Sanity Checks
و فوق
bool twohand = IsTwoHand(item.ID);
لو هيا عندك اصلا خلاص مش عندك حط
#region Check Pirate
if (client.Player.Class >= 70 && client.Player.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;
}
}
}
}
#endregion
افتح بقي الايام في السورس و ايتم تيب في الجيم و حط دول
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
تكست
و ضيف في اخرها
دول
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);
ضيف الاسكلات غير cql1 لاسم القاعدة عندك
ثانيا الهاندل 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(MsgName.Mode.Effect, "hdyh-debuff", true);
// aaa hdyh-debuff
return false;
}
#endregion
هتروح Entity
وتضيف
public Time32 OmnipotenceStamp,ImmortalForceStamp;
public Time32 ImmortalForce { get; set; }
و الورلد worled
BuffersCallback
ضيف
كود:
#region Epic Pirate ImmortalForce
if (Now > client.Player.ImmortalForceStamp.AddSeconds(7))
client.Player.RemoveFlag4((ulong)MsgUpdate.Flags4. ImmortalForce);
#endregion
و في update
public class Flags4
ضيف
.ImmortalForce = 1UL << 220
عفواً لايمكن عرض الروابط في الإرشيف
عفواً لايمكن عرض الروابط في الإرشيف
عفواً لايمكن عرض الروابط في الإرشيف
عفواً لايمكن عرض الروابط في الإرشيف