viewing paste Unknown #19301 | C

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
        case UNT_CLAYMORETRAP:
        {
            int bl_flag;
            // Ensure type of block list flag
            if( sg->unit_id == UNT_FIRINGTRAP || sg->unit_id == UNT_ICEBOUNDTRAP || sg->unit_id == UNT_CLAYMORETRAP )
                bl_flag = sg->bl_flag|BL_SKILL|~BCT_SELF;
            else
                bl_flag = sg->bl_flag;
 
            // Count number of enemies.
            int i = 0, spl = map->foreachinrange(skill->area_sub, &src->bl, skill->get_splash(sg->skill_id, sg->skill_lv),
                                                   BL_CHAR, &src->bl, sg->skill_id, sg->skill_lv, tick, BCT_ENEMY, skill->area_sub_count);
            if( spl <= 0 ) spl = 1;
            for( i = 0; i < spl; i++ )
                map->foreachinrange(skill->trap_splash,&src->bl, skill->get_splash(sg->skill_id, sg->skill_lv), bl_flag, &src->bl, tick + (50 * i));
 
            if (sg->unit_id != UNT_FIREPILLAR_ACTIVE)
                clif->changetraplook(&src->bl, sg->unit_id==UNT_LANDMINE?UNT_FIREPILLAR_ACTIVE:UNT_USED_TRAPS);
 
            sg->limit=DIFF_TICK32(tick,sg->tick)+1500 +
                (sg->unit_id== UNT_CLUSTERBOMB || sg->unit_id== UNT_ICEBOUNDTRAP?1000:0);// Cluster Bomb/Icebound has 1s to disappear once activated.
            sg->unit_id = UNT_USED_TRAPS; //Changed ID so it does not invoke a for each in area again.
            break;
        }
Viewed 747 times, submitted by Guest.