From f469cad82f1ee643899130d935c6f4979bfb252d Mon Sep 17 00:00:00 2001 From: Haru Date: Tue, 15 Dec 2015 00:42:40 +0100 Subject: Added Summon Legion-related monsters to the mob_id enum Signed-off-by: Haru --- src/map/mob.h | 4 ++++ src/map/skill.c | 25 +++++++++++++++++-------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/src/map/mob.h b/src/map/mob.h index 8232b726a..8042c55b1 100644 --- a/src/map/mob.h +++ b/src/map/mob.h @@ -272,6 +272,8 @@ enum { * Mob IDs */ enum mob_id { + MOBID_HORNET = 1004, ///< HORNET / Hornet + MOBID_RED_PLANT = 1078, ///< RED_PLANT / Red Plant MOBID_BLUE_PLANT = 1079, ///< BLUE_PLANT / Blue Plant MOBID_GREEN_PLANT = 1080, ///< GREEN_PLANT / Green Plant @@ -285,6 +287,8 @@ enum mob_id { MOBID_EMPELIUM = 1288, ///< EMPELIUM / Emperium + MOBID_GIANT_HONET = 1303, ///< GIANT_HONET / Giant Hornet + MOBID_TREASURE_BOX1 = 1324, ///< TREASURE_BOX1 / Treasure Chest MOBID_TREASURE_BOX2 = 1325, ///< TREASURE_BOX2 / Treasure Chest MOBID_TREASURE_BOX3 = 1326, ///< TREASURE_BOX3 / Treasure Chest diff --git a/src/map/skill.c b/src/map/skill.c index 260bc47db..ce6f2f367 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -9792,18 +9792,27 @@ int skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uin break; case MH_SUMMON_LEGION: { - int summons[5] = {1004, 1303, 1303, 1994, 1994}; - int qty[5] = {3 , 3 , 4 , 4 , 5}; - struct mob_data *summon_md; + struct { + int mob_id; + int quantity; + } summons[5] = { + { MOBID_HORNET, 3 }, + { MOBID_GIANT_HONET, 3 }, + { MOBID_GIANT_HONET, 4 }, + { MOBID_LUCIOLA_VESPA, 4 }, + { MOBID_LUCIOLA_VESPA, 5 }, + }; int i, dummy = 0; + Assert_retb(skill_lv < ARRAYLENGTH(summons)); - i = map->foreachinmap(skill->check_condition_mob_master_sub, src->m, BL_MOB, src->id, summons[skill_lv-1], skill_id, &dummy); - if(i >= qty[skill_lv-1]) + i = map->foreachinmap(skill->check_condition_mob_master_sub, src->m, BL_MOB, src->id, summons[skill_lv-1].mob_id, skill_id, &dummy); + if(i >= summons[skill_lv-1].quantity) break; - for(i=0; ionce_spawn_sub(src, src->m, src->x, src->y, status->get_name(src), summons[skill_lv - 1], "", SZ_SMALL, AI_ATTACK); - if (summon_md) { + for (i = 0; i < summons[skill_lv-1].quantity; i++) { + struct mob_data *summon_md = mob->once_spawn_sub(src, src->m, src->x, src->y, status->get_name(src), + summons[skill_lv-1].mob_id, "", SZ_SMALL, AI_ATTACK); + if (summon_md != NULL) { summon_md->master_id = src->id; if (summon_md->deletetimer != INVALID_TIMER) timer->delete(summon_md->deletetimer, mob->timer_delete); -- cgit v1.2.3-60-g2f50