Changeset 19 for src/map/battle.c

Show
Ignore:
Timestamp:
07/02/08 12:20:18 (17 years ago)
Author:
jinshiro
Message:

Now Compiles with Cygwin GCC

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/map/battle.c

    r5 r19  
    7373                return 1; 
    7474        } 
    75         return 0;        
     75        return 0; 
    7676} 
    7777 
     
    123123                return 1; 
    124124        } 
    125         return 0;        
     125        return 0; 
    126126} 
    127127 
     
    138138} 
    139139 
    140 // ƒ_E?[ƒW‚Ì’x‰„ 
     140// ƒ_ƒ??[ƒW‚Ì’x‰„ 
    141141struct delay_damage { 
    142142        struct block_list *src; 
     
    205205                amotion = 1000; //Aegis places a damage-delay cap of 1 sec to non player attacks. [Skotlex] 
    206206        add_timer(tick+amotion, battle_delay_damage_sub, src->id, (int)dat); 
    207          
     207 
    208208        return 0; 
    209209} 
     
    211211int battle_attr_ratio(int atk_elem,int def_type, int def_lv) 
    212212{ 
    213          
     213 
    214214        if (atk_elem < 0 || atk_elem >= ELE_MAX) 
    215215                return 100; 
     
    222222 
    223223/*========================================== 
    224  * Does attribute fix modifiers.  
     224 * Does attribute fix modifiers. 
    225225 * Added passing of the chars so that the status changes can affect it. [Skotlex] 
    226226 * Note: Passing src/target == NULL is perfectly valid, it skips SC_ checks. 
     
    230230        struct status_change *sc=NULL, *tsc=NULL; 
    231231        int ratio; 
    232          
     232 
    233233        if (src) sc = status_get_sc(src); 
    234234        if (target) tsc = status_get_sc(target); 
    235          
     235 
    236236        if (atk_elem < 0 || atk_elem >= ELE_MAX) 
    237237                atk_elem = rand()%ELE_MAX; 
     
    265265 
    266266/*========================================== 
    267  * ƒ_E?[ƒW?Å?IŒvŽZ 
     267 * ƒ_ƒ??[ƒW?Å?IŒvŽZ 
    268268 *------------------------------------------*/ 
    269269int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,int div_,int skill_num,int skill_lv,int flag) 
     
    277277        if (!damage) 
    278278                return 0; 
    279          
     279 
    280280        if( mob_ksprotected(src, bl) ) 
    281281                return 0; 
     
    295295                if(!damage) return 0; 
    296296        } 
    297          
     297 
    298298        if (skill_num == PA_PRESSURE) 
    299299                return damage; //This skill bypass everything else. 
     
    344344                        return 0; 
    345345                } 
    346                  
     346 
    347347                if(sc->data[SC_DODGE] && !sc->opt1 && 
    348348                        (flag&BF_LONG || sc->data[SC_SPURT]) 
     
    373373                } 
    374374 
    375                 //Begin Custom Jobs (blackmagic) 
    376                          
    377375        //Display red flashing aura effect of Adept Blood Lust [Brain] 
    378376        if(sc->data[SC_LUST] && damage > 0){ 
     
    398396                return 0; 
    399397        } 
    400 //End Custom Jobs 
     398 
    401399 
    402400                if (((sce=sc->data[SC_UTSUSEMI]) || sc->data[SC_BUNSINJYUTSU]) 
    403                 &&  
     401                && 
    404402                        flag&BF_WEAPON && !(skill_get_nk(skill_num)&NK_NO_CARDFIX_ATK)) 
    405403                { 
     
    503501        } 
    504502        //SC effects from caster side. Currently none. 
    505 /*       
     503/* 
    506504        sc = status_get_sc(src); 
    507505        if (sc && sc->count) { 
    508506        } 
    509 */       
     507*/ 
    510508        if (battle_config.pk_mode && sd && bl->type == BL_PC && damage) 
    511509        { 
     
    555553        if (!damage) //No reductions to make. 
    556554                return 0; 
    557          
     555 
    558556        class_ = status_get_class(bl); 
    559557 
    560558        if (bl->type == BL_MOB) 
    561559                md=(struct mob_data *)bl; 
    562          
     560 
    563561        if(md && md->guardian_data) { 
    564562                if(class_ == MOBID_EMPERIUM && flag&BF_SKILL) 
     
    630628 
    631629/*========================================== 
    632  * ?C—ûƒ_E?[ƒW 
     630 * ?C—ûƒ_ƒ??[ƒW 
    633631 *------------------------------------------*/ 
    634632int battle_addmastery(struct map_session_data *sd,struct block_list *target,int dmg,int type) 
     
    651649                        damage += sd->status.str; 
    652650        } 
    653         //Begin Custom Jobs (blackmagic)         
     651 
    654652        //Warlock Touch of Corruption (Mage-Monster Killer passive skill) [Brainstorm] 
    655653        if((skill = pc_checkskill(sd,WL_CORRUPTION)) > 0 && target->type==BL_MOB ) 
    656654        damage += (skill * (status->int_/10)); 
    657         //end custom job 
    658655 
    659656        if(type == 0) 
     
    740737        {       //Mobs/Pets 
    741738                if(flag&4) 
    742                 {                  
     739                { 
    743740                        atkmin = status->matk_min; 
    744741                        atkmax = status->matk_max; 
     
    756753                {       //Normal attacks 
    757754                        atkmin = status->dex; 
    758                          
     755 
    759756                        if (sd->equip_index[type] >= 0 && sd->inventory_data[sd->equip_index[type]]) 
    760757                                atkmin = atkmin*(80 + sd->inventory_data[sd->equip_index[type]]->wlv*20)/100; 
     
    762759                        if (atkmin > atkmax) 
    763760                                atkmin = atkmax; 
    764                          
     761 
    765762                        if(flag&2 && !(flag&16)) 
    766763                        {       //Bows 
     
    771768                } 
    772769        } 
    773          
     770 
    774771        if (sc && sc->data[SC_MAXIMIZEPOWER]) 
    775772                atkmin = atkmax; 
    776          
     773 
    777774        //Weapon Damage calculation 
    778775        if (!(flag&1)) 
    779776                damage = (atkmax>atkmin? rand()%(atkmax-atkmin):0)+atkmin; 
    780         else  
     777        else 
    781778                damage = atkmax; 
    782          
     779 
    783780        if (sd) 
    784781        { 
     
    793790                                sd->right_weapon.atkmods[t_size])/100; 
    794791        } 
    795          
     792 
    796793        //Finally, add baseatk 
    797794        if(flag&4) 
     
    799796        else 
    800797                damage += status->batk; 
    801          
     798 
    802799        //rodatazone says that Overrefine bonuses are part of baseatk 
    803800        //Here we also apply the weapon_atk_rate bonus so it is correctly applied on left/right hands. 
     
    826823        if (!battle_config.arrow_decrement) 
    827824                return; 
    828          
     825 
    829826        if (skill) 
    830827        { 
     
    894891                unsigned idef2 : 1;     //Ignore defense (left weapon) 
    895892                unsigned pdef : 2;      //Pierces defense (Investigate/Ice Pick) 
    896                 unsigned pdef2 : 2;     //1: Use def+def2/100, 2: Use def+def2/50        
     893                unsigned pdef2 : 2;     //1: Use def+def2/100, 2: Use def+def2/50 
    897894                unsigned infdef : 1;    //Infinite defense (plants) 
    898895                unsigned arrow : 1;     //Attack is arrow-based 
     
    900897                unsigned lh : 1;                //Attack considers left hand (wd.damage2) 
    901898                unsigned weapon : 1; //It's a weapon attack (consider VVS, and all that) 
    902         }       flag;    
     899        }       flag; 
    903900 
    904901        memset(&wd,0,sizeof(wd)); 
     
    947944        ) 
    948945                flag.arrow = 1; 
    949          
     946 
    950947        if(skill_num){ 
    951948                wd.flag |= battle_range_type(src, target, skill_num, skill_lv); 
     
    978975                                wd.type = 0x08; 
    979976                                break; 
    980                                  
     977 
    981978                        case GS_GROUNDDRIFT: 
    982979                        case KN_SPEARSTAB: 
     
    997994        } else //Range for normal attacks. 
    998995                wd.flag |= flag.arrow?BF_LONG:BF_SHORT; 
    999          
     996 
    1000997        if (!skill_num && tstatus->flee2 && rand()%1000 < tstatus->flee2) 
    1001998        {       //Check for Lucky Dodge 
     
    10491046                //Therefore, we use the old value 3 on cases when an sd gets attacked by a mob 
    10501047                cri -= tstatus->luk*(!sd&&tsd?3:2); 
    1051                  
     1048 
    10521049                if(tsc) 
    10531050                { 
     
    11171114                if(battle_config.agi_penalty_type && 
    11181115                        battle_config.agi_penalty_target&target->type) 
    1119                 {        
     1116                { 
    11201117                        unsigned char attacker_count; //256 max targets should be a sane max 
    11211118                        attacker_count = unit_counttargeted(target,battle_config.agi_penalty_count_lv); 
     
    11751172                        hitrate += hitrate * ( 2 * skill ) / 100; 
    11761173 
    1177                 hitrate = cap_value(hitrate, battle_config.min_hitrate, battle_config.max_hitrate);  
     1174                hitrate = cap_value(hitrate, battle_config.min_hitrate, battle_config.max_hitrate); 
    11781175 
    11791176                if(rand()%100 >= hitrate) 
     
    13261323                                ) 
    13271324                                skillratio += sd->random_attack_increase_add; 
    1328                  
     1325 
    13291326                        ATK_RATE(skillratio); 
    13301327                } else {        //Skills 
    13311328                        switch( skill_num ) 
    13321329                        { 
    1333                         //Begin Custom Job (blackmagic) 
    13341330                                case NC_DEATHHAND: // Necro Death Hand [Brain] 
    1335                                 skillratio += -25+25*skill_lv; 
    1336                                 break; 
    1337                         //End Black Magic Custom Jobs 
     1331                                        skillratio += -25+25*skill_lv; 
     1332                                        break; 
    13381333                                case SM_BASH: 
    13391334                                        skillratio += 30*skill_lv; 
    13401335                                        break; 
    13411336                                case SM_MAGNUM: 
    1342                                         skillratio += 20*skill_lv;  
     1337                                        skillratio += 20*skill_lv; 
    13431338                                        break; 
    13441339                                case MC_MAMMONITE: 
     
    15971592                                        int k = (wflag-1)/3; //+100% every 3 cells of distance 
    15981593                                        if( k > 2 ) k = 2; // ...but hard-limited to 300%. 
    1599                                         skillratio += 100 * k;  
     1594                                        skillratio += 100 * k; 
    16001595                                        } 
    16011596                                        break; 
     
    16121607                                        skillratio += 100 *(skill_lv-1); 
    16131608                                        break; 
    1614                                         //Begin Custom Jobs (blackmagic) 
    1615                                         //Mercenary Skills [Brainstorm] 
    1616                                 case MS_BASH: 
    1617                                         skillratio += 30*skill_lv; 
    1618                                         break; 
    1619                                 case MER_CRASH: 
    1620                                         skillratio += 10*skill_lv; 
    1621                                         break; 
    1622                                         //end custom jobs 
     1609                /*Mercenary Skills [Brainstorm] 
     1610                case MS_BASH: 
     1611                        skillratio += 30*skill_lv; 
     1612                        break; 
     1613                case MER_CRASH: 
     1614                        skillratio += 10*skill_lv; 
     1615                        break;*/ 
    16231616                        } 
    16241617 
     
    16821675                                break; 
    16831676                } 
    1684                  
     1677 
    16851678                if(sd) 
    16861679                { 
     
    17541747                                if(def2 < 1) def2 = 1; 
    17551748                        } 
    1756                         //Vitality reduction from rodatazone: http://rodatazone.simgaming.net/mechanics/substats.php#def         
     1749                        //Vitality reduction from rodatazone: http://rodatazone.simgaming.net/mechanics/substats.php#def 
    17571750                        if (tsd)        //Sd vit-eq 
    17581751                        {       //[VIT*0.5] + rnd([VIT*0.3], max([VIT*0.3],[VIT^2/150]-1)) 
    17591752                                vit_def = def2*(def2-15)/150; 
    17601753                                vit_def = def2/2 + (vit_def>0?rand()%vit_def:0); 
    1761                                  
     1754 
    17621755                                if((sstatus->race==RC_UNDEAD || sstatus->race==RC_DEMON) && 
    17631756                                        src->type == BL_MOB && (skill=pc_checkskill(tsd,AL_DP)) > 0) 
     
    17681761                                vit_def = def2 + (vit_def>0?rand()%vit_def:0); 
    17691762                        } 
    1770                          
     1763 
    17711764                        if (battle_config.weapon_defense_type) { 
    17721765                                vit_def += def1*battle_config.weapon_defense_type; 
     
    17911784                if (sc && skill_num != LK_SPIRALPIERCE) 
    17921785                {       //SC skill damages 
    1793                         if(sc->data[SC_AURABLADE])  
     1786                        if(sc->data[SC_AURABLADE]) 
    17941787                                ATK_ADD(20*sc->data[SC_AURABLADE]->val1); 
    17951788                } 
     
    18281821                        else 
    18291822                        ARR_FIND(0, 3, i, t_class == sd->hate_mob[i]); 
    1830                         if (i < 3 && (skill=pc_checkskill(sd,sg_info[i].anger_id)))  
     1823                        if (i < 3 && (skill=pc_checkskill(sd,sg_info[i].anger_id))) 
    18311824                        { 
    18321825                                skillratio = sd->status.base_level + sstatus->dex + sstatus->luk; 
     
    18431836        } //Here ends flag.hit section, the rest of the function applies to both hitting and missing attacks 
    18441837        else if(wd.div_ < 0) //Since the attack missed... 
    1845                 wd.div_ *= -1;  
     1838                wd.div_ *= -1; 
    18461839 
    18471840        if(skill_num == CR_GRANDCROSS || skill_num == NPC_GRANDDARKNESS) 
    18481841                return wd; //Enough, rest is not needed. 
    18491842 
    1850         if(sd && (skill=pc_checkskill(sd,BS_WEAPONRESEARCH)) > 0)  
     1843        if(sd && (skill=pc_checkskill(sd,BS_WEAPONRESEARCH)) > 0) 
    18511844                ATK_ADD(skill*2); 
    18521845 
     
    18901883                { 
    18911884                        int cardfix = 1000, cardfix_ = 1000; 
    1892                         int t_race2 = status_get_race2(target);  
     1885                        int t_race2 = status_get_race2(target); 
    18931886                        if(sd->state.arrow_atk) 
    18941887                        { 
     
    19501943                                ATK_RATE2(cardfix/10, cardfix_/10);     //What happens if you use right-to-left and there's no right weapon, only left? 
    19511944                } 
    1952                  
     1945 
    19531946                if (skill_num == CR_SHIELDBOOMERANG || skill_num == PA_SHIELDCHAIN) { //Refine bonus applies after cards and elements. 
    19541947                        short index= sd->equip_index[EQI_HAND_L]; 
     
    20041997                if (flag.lh && (flag.hit || wd.damage2>0)) 
    20051998                        wd.damage2 = 1; 
    2006                 if (!(battle_config.skill_min_damage&1))  
     1999                if (!(battle_config.skill_min_damage&1)) 
    20072000                        //Do not return if you are supposed to deal greater damage to plants than 1. [Skotlex] 
    20082001                        return wd; 
     
    20342027        if (sd) 
    20352028        { 
    2036                 if (!flag.rh && flag.lh)  
     2029                if (!flag.rh && flag.lh) 
    20372030                {       //Move lh damage to the rh 
    20382031                        wd.damage = wd.damage2; 
     
    21252118                                        breakrate[1] += sc->data[SC_MELTDOWN]->val3; 
    21262119                                } 
    2127                         }        
     2120                        } 
    21282121                        if (breakrate[0]) 
    21292122                                skill_break_equip(target, EQP_WEAPON, breakrate[0], BCT_ENEMY); 
     
    21962189        else if (s_ele == -2) //Use status element 
    21972190                s_ele = status_get_attack_sc_element(src,status_get_sc(src)); 
    2198          
     2191 
    21992192        //Set miscellaneous data that needs be filled 
    22002193        if(sd) { 
     
    22062199        ad.flag |= battle_range_type(src, target, skill_num, skill_lv); 
    22072200        flag.infdef=(tstatus->mode&MD_PLANT?1:0); 
    2208                  
     2201 
    22092202        switch(skill_num) 
    22102203        { 
     
    22342227                        case AL_HEAL: 
    22352228                        case PR_BENEDICTIO: 
    2236                                 //Begin Custom Job (blackmagic) 
    22372229                        case AD_DARKHEAL: // Adept Dark Heal 
    2238                                 //end custom job 
    22392230                                ad.damage = skill_calc_heal(src, target, skill_lv)/2; 
    22402231                                break; 
     
    23552346                                                skillratio += 100 +100*skill_lv +100*(skill_lv/2); 
    23562347                                                break; 
    2357                                 //Begin Custom Job (blackmagic) 
    2358                                         case NC_DRAINLIFE: // Necro Drain Life [Brain] 
    2359                                                 skillratio += 25*skill_lv; 
    2360                                                 break; 
    2361                                         case WL_HELLFIRE: // Warlock Hellfire [Brain] 
    2362                                                 skillratio += 25*skill_lv; 
    2363                                                 break; 
    2364                                         case WL_SHADOWBURN: // Warlock Shadow Burn [Brain] 
    2365                                                 skillratio += 20*skill_lv; 
    2366                                                 break; 
    2367                                         case WL_CURSEDOOM: // Warlock Curse of Doom [Brain] 
    2368                                                 skillratio += 400 + 300*skill_lv; //max 20*matk dmg after 60 seconds 
    2369                                                 break; 
    2370                                         case WL_SEARING: // Warlock Searing Pain [Brain] 
    2371                                                 if(status_get_sc(target)->data[SC_SEARING]) 
    2372                                                         skillratio = 10*pc_checkskill(sd,WL_SEARING);//10% * skilllv 
    2373                                                 break; //Else 100% Matk 
    2374                                         case WL_IMMOLATE: // Warlock Immolate [Brain] 
    2375                                                 if(status_get_sc(target)->data[SC_IMMOLATE]) 
    2376                                                         skillratio += 10*pc_checkskill(sd,WL_SEARING);//100% +10 * searing lv 
    2377                                                 else skillratio += -20 + 20*skill_lv;// Else 80% + 20% * skill lv 
    2378                                                 break; 
    2379                                         case WL_CONFLAGRATE: // Warlock Conflagrate [Brain] 
    2380                                                 skillratio += 100 + 60*skill_lv + //damage bonus from other fire skills 
    2381                                                         10*pc_checkskill(sd,WL_SEARING) + 10*pc_checkskill(sd,WL_IMMOLATE); 
    2382                                                 break; 
    2383         //End Custom Job 
    2384                         } 
     2348                        case NC_DRAINLIFE: // Necro Drain Life [Brain] 
     2349                        skillratio += 25*skill_lv; 
     2350                        break; 
     2351                        case WL_HELLFIRE: // Warlock Hellfire [Brain] 
     2352                        skillratio += 25*skill_lv; 
     2353                        break; 
     2354                        case WL_SHADOWBURN: // Warlock Shadow Burn [Brain] 
     2355                        skillratio += 20*skill_lv; 
     2356                        break; 
     2357                        case WL_CURSEDOOM: // Warlock Curse of Doom [Brain] 
     2358                        skillratio += 400 + 300*skill_lv; //max 20*matk dmg after 60 seconds 
     2359                        break; 
     2360                        case WL_SEARING: // Warlock Searing Pain [Brain] 
     2361                        if(status_get_sc(target)->data[SC_SEARING]) 
     2362                                skillratio = 10*pc_checkskill(sd,WL_SEARING);//10% * skilllv 
     2363                        break; //Else 100% Matk 
     2364                        case WL_IMMOLATE: // Warlock Immolate [Brain] 
     2365                        if(status_get_sc(target)->data[SC_IMMOLATE]) 
     2366                                skillratio += 10*pc_checkskill(sd,WL_SEARING);//100% +10 * searing lv 
     2367                        else skillratio += -20 + 20*skill_lv;// Else 80% + 20% * skill lv 
     2368                        break; 
     2369                        case WL_CONFLAGRATE: // Warlock Conflagrate [Brain] 
     2370                        skillratio += 100 + 60*skill_lv + //damage bonus from other fire skills 
     2371                                10*pc_checkskill(sd,WL_SEARING) + 10*pc_checkskill(sd,WL_IMMOLATE); 
     2372                        break; 
     2373                                } 
    23852374 
    23862375                                MATK_RATE(skillratio); 
    2387                          
     2376 
    23882377                                //Constant/misc additions from skills 
    23892378                                if (skill_num == WZ_FIREPILLAR) 
     
    24372426                        } 
    24382427                } 
    2439                  
     2428 
    24402429                if (skill_num == NPC_EARTHQUAKE) 
    24412430                {       //Adds atk2 to the damage, should be influenced by number of hits and skill-ratio, but not mdef reductions. [Skotlex] 
     
    24522441                if (!(nk&NK_NO_ELEFIX)) 
    24532442                        ad.damage=battle_attr_fix(src, target, ad.damage, s_ele, tstatus->def_ele, tstatus->ele_lv); 
    2454         //Begin Custom Job (blackmagic)          
     2443 
     2444 
    24552445        if(skill_num == WL_SHADOWBURN) { // Warlock Shadow Burn [Brain] 
    24562446                // This is where we calculate the secondary damage 
    24572447                if(ad.damage<1) ad.damage=1; 
    24582448                struct Damage md = battle_calc_misc_attack(src,target,skill_num,skill_lv, mflag); 
    2459                 if(md.damage<1) md.damage=1; 
    2460                 ad.damage += md.damage; 
    2461         } 
    2462         //End Custom Job 
     2449                if(md.damage<1) md.damage=1; //Changed MD = WD 
     2450                ad.damage += md.damage; // Same as above 
     2451        } 
     2452 
    24632453                if (sd && !(nk&NK_NO_CARDFIX_ATK)) { 
    24642454                        short t_class = status_get_class(target); 
     
    25152505 
    25162506        damage_div_fix(ad.damage, ad.div_); 
    2517          
     2507 
    25182508        if (flag.infdef && ad.damage) 
    25192509                ad.damage = ad.damage>0?1:-1; 
    2520                  
     2510 
    25212511        ad.damage=battle_calc_damage(src,target,ad.damage,ad.div_,skill_num,skill_lv,ad.flag); 
    25222512        if (map_flag_gvg2(target->m)) 
     
    25262516 
    25272517/*========================================== 
    2528  * ‚»‚Ì‘Œƒ_E?[ƒWŒvŽZ 
     2518 * ‚»‚Ì‘Œƒ_ƒ??[ƒWŒvŽZ 
    25292519 *------------------------------------------*/ 
    25302520struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *target,int skill_num,int skill_lv,int mflag) 
     
    25552545 
    25562546        nk = skill_get_nk(skill_num); 
    2557          
     2547 
    25582548        sd = BL_CAST(BL_PC, src); 
    25592549        tsd = BL_CAST(BL_PC, target); 
    2560          
     2550 
    25612551        if(sd) { 
    25622552                sd->state.arrow_atk = 0; 
     
    25892579                if(mflag > 1) //Autocasted Blitz. 
    25902580                        nk|=NK_SPLASHSPLIT; 
    2591                  
     2581 
    25922582                if (skill_num == SN_FALCONASSAULT) 
    25932583                { 
    25942584                        //Div fix of Blitzbeat 
    25952585                        skill = skill_get_num(HT_BLITZBEAT, 5); 
    2596                         damage_div_fix(md.damage, skill);  
     2586                        damage_div_fix(md.damage, skill); 
    25972587 
    25982588                        //Falcon Assault Modifier 
     
    26602650        case NPC_EVILLAND: 
    26612651                md.damage = (skill_lv>6)?666:skill_lv*100; 
    2662         //Begin Custom Job (blackmagic) 
     2652                //break; 
    26632653        case WL_SHADOWBURN: // Warlock ShadowBurn dark element damage [Brain] 
    2664         s_ele = ELE_DARK; 
    2665         md.damage = ((300 + 20*skill_lv)/100)*((sstatus->int_*(rand()%300+500))/100); //Fixed between min and max matk for now 
    2666         //End Custom Job 
     2654                s_ele = ELE_DARK; 
     2655                md.damage = ((300 + 20*skill_lv)/100)*((sstatus->int_*(rand()%300+500))/100); //Fixed between min and max matk for now 
    26672656                break; 
    26682657        } 
     
    26762665 
    26772666        damage_div_fix(md.damage, md.div_); 
    2678          
     2667 
    26792668        if (!(nk&NK_IGNORE_FLEE)) 
    26802669        { 
     
    26882677                                hitrate=80; //Default hitrate 
    26892678 
    2690                         if(battle_config.agi_penalty_type &&  
     2679                        if(battle_config.agi_penalty_type && 
    26912680                                battle_config.agi_penalty_target&target->type) 
    2692                         {        
     2681                        { 
    26932682                                unsigned char attacker_count; //256 max targets should be a sane max 
    26942683                                attacker_count = unit_counttargeted(target,battle_config.agi_penalty_count_lv); 
     
    27592748} 
    27602749/*========================================== 
    2761  * ƒ_E?[ƒWŒvŽZˆêЇ?E?—p 
     2750 * ƒ_ƒ??[ƒWŒvŽZˆêЇ?ˆ—?—p 
    27622751 *------------------------------------------*/ 
    27632752struct Damage battle_calc_attack(int attack_type,struct block_list *bl,struct block_list *target,int skill_num,int skill_lv,int count) 
     
    28252814                if (*damage <= 0) continue; 
    28262815                //First and Third iterations: race, other two boss/nonboss state 
    2827                 if (i == 0 || i == 2)  
     2816                if (i == 0 || i == 2) 
    28282817                        type = race; 
    28292818                else 
    28302819                        type = boss?RC_BOSS:RC_NONBOSS; 
    2831                  
     2820 
    28322821                hp = wd->hp_drain[type].value; 
    28332822                if (wd->hp_drain[type].rate) 
     
    28522841        if (sd->sp_vanish_rate && rand()%1000 < sd->sp_vanish_rate) 
    28532842                status_percent_damage(&sd->bl, tbl, 0, (unsigned char)sd->sp_vanish_per, false); 
    2854         //begin custom job (blackmagic   
    2855         // Adept Blood Pact drains 5% damage per hit [FlavioJS/Brain] 
     2843// Adept Blood Pact drains 5% damage per hit [FlavioJS/Brain] 
    28562844        if( pc_checkskill(sd, AD_BLOODPACT) > 0 ) 
    28572845        thp += battle_calc_drain(rdamage,1000,5); 
     
    28672855                rhp += corrupt_sp;//If SP damage was caused, increase HP damage too 
    28682856        } 
    2869         //end custom job 
    28702857        if (!thp && !tsp) return; 
    28712858 
    28722859        status_heal(&sd->bl, thp, tsp, battle_config.show_hp_sp_drain?3:1); 
    2873          
     2860 
    28742861        if (rhp || rsp) 
    28752862                status_zap(tbl, rhp, rsp); 
     
    28772864 
    28782865/*========================================== 
    2879  * ’Ê?EUŒ‚?E?‚܂Ƃߠ
     2866 * ’Ê?í?UŒ‚?ˆ—?‚܂Ƃߠ
    28802867 *------------------------------------------*/ 
    28812868enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* target, unsigned int tick, int flag) 
     
    29072894        if (tsc && !tsc->count) 
    29082895                tsc = NULL; 
    2909          
     2896 
    29102897        if (sd) 
    29112898        { 
     
    30703057 
    30713058        if (tsc) { 
    3072                 if (tsc->data[SC_POISONREACT] &&  
     3059                if (tsc->data[SC_POISONREACT] && 
    30733060                        (rand()%100 < tsc->data[SC_POISONREACT]->val3 
    30743061                        || sstatus->def_ele == ELE_POISON) && 
     
    30923079} 
    30933080 
    3094 //Begin custom Job (blackmagic) 
    30953081int battle_check_living(int race,int element)// Living creature check [Brain] 
    30963082{ 
     
    31053091        } 
    31063092} 
    3107 //end custom job 
    31083093 
    31093094int battle_check_undead(int race,int element) 
     
    32343219                        break; 
    32353220                //All else not specified is an invalid target. 
    3236                 default:         
     3221                default: 
    32373222                        return 0; 
    32383223        } 
     
    32533238                                strip_enemy = 0; 
    32543239                        } 
    3255                         // Sketchy - begin 
    3256                 if (sd->state.god && t_bl != s_bl && s_bl->type == BL_PC && ((TBL_PC*)s_bl)->state.demon && map[m].flag.hostile) { 
    3257                 state |= BCT_ENEMY; 
    3258                 strip_enemy = 0; 
    3259                 } 
    3260  
    3261                 if (sd->state.demon && t_bl != s_bl && s_bl->type == BL_PC && ((TBL_PC*)s_bl)->state.god && map[m].flag.hostile) { 
    3262                 state |= BCT_ENEMY; 
    3263                 strip_enemy = 0; 
    3264                 } 
    3265                 // Sketchy -end 
    32663240                        break; 
    32673241                } 
     
    33623336                        break; 
    33633337        } 
    3364          
    3365         if ((flag&BCT_ALL) == BCT_ALL) { //All actually stands for all attackable chars  
     3338 
     3339        if ((flag&BCT_ALL) == BCT_ALL) { //All actually stands for all attackable chars 
    33663340                if (target->type&BL_CHAR) 
    33673341                        return 1; 
     
    33713345        if (flag == BCT_NOONE) //Why would someone use this? no clue. 
    33723346                return -1; 
    3373          
     3347 
    33743348        if (t_bl == s_bl) 
    33753349        {       //No need for further testing. 
     
    33793353                return (flag&state)?1:-1; 
    33803354        } 
    3381          
     3355 
    33823356        if (map_flag_vs(m)) { //Check rivalry settings. 
    33833357                if (flag&(BCT_PARTY|BCT_ENEMY)) { 
     
    34293403                } 
    34303404        } 
    3431          
     3405 
    34323406        if (!state) //If not an enemy, nor a guild, nor party, nor yourself, it's neutral. 
    34333407                state = BCT_NEUTRAL; 
     
    37593733        { "require_glory_guild",                &battle_config.require_glory_guild,             0,      0,      1,              }, 
    37603734        { "idle_no_share",                      &battle_config.idle_no_share,                   0,      0,      INT_MAX,        }, 
    3761         { "party_even_share_bonus",             &battle_config.party_even_share_bonus,          0,      0,      INT_MAX,        },  
     3735        { "party_even_share_bonus",             &battle_config.party_even_share_bonus,          0,      0,      INT_MAX,        }, 
    37623736        { "delay_battle_damage",                &battle_config.delay_battle_damage,             1,      0,      1,              }, 
    37633737        { "hide_woe_damage",                    &battle_config.hide_woe_damage,                 0,      0,      1,              }, 
     
    38323806        { "auction_feeperhour",                 &battle_config.auction_feeperhour,              12000,  0,      INT_MAX,        }, 
    38333807        { "auction_maximumprice",               &battle_config.auction_maximumprice,            500000000, 0,   MAX_ZENY,       }, 
    3834         //Begin Custom Job (blackmagic)  
    38353808        //Vanaheim battle settings [Brainstorm] 
    38363809        { "necro_retaliation",            &battle_config.necro_retaliation,                1,     0,      1,              }, 
    3837         { "disp_summon_stats",            &battle_config.disp_summon_stats, 
    3838         //End Custom Job 
     3810        { "disp_summon_stats",            &battle_config.disp_summon_stats,                0,     0,      1,              }, 
     3811 
    38393812        { "gm_viewequip_min_lv",                &battle_config.gm_viewequip_min_lv,             0,      0,      99,             }, 
    38403813}; 
     
    38813854        battle_config.monster_max_aspd = 2000 - battle_config.monster_max_aspd*10; 
    38823855        battle_config.max_aspd = 2000 - battle_config.max_aspd*10; 
    3883         battle_config.max_walk_speed = 100*DEFAULT_WALK_SPEED/battle_config.max_walk_speed;      
     3856        battle_config.max_walk_speed = 100*DEFAULT_WALK_SPEED/battle_config.max_walk_speed; 
    38843857        battle_config.max_cart_weight *= 10; 
    3885          
     3858 
    38863859        if(battle_config.max_def > 100 && !battle_config.weapon_defense_type)    // added by [Skotlex] 
    38873860                battle_config.max_def = 100; 
     
    38893862        if(battle_config.min_hitrate > battle_config.max_hitrate) 
    38903863                battle_config.min_hitrate = battle_config.max_hitrate; 
    3891                  
     3864 
    38923865        if(battle_config.pet_max_atk1 > battle_config.pet_max_atk2)     //Skotlex 
    38933866                battle_config.pet_max_atk1 = battle_config.pet_max_atk2; 
    3894          
     3867 
    38953868        if (battle_config.day_duration && battle_config.day_duration < 60000) // added by [Yor] 
    38963869                battle_config.day_duration = 60000; 
    38973870        if (battle_config.night_duration && battle_config.night_duration < 60000) // added by [Yor] 
    38983871                battle_config.night_duration = 60000; 
    3899          
     3872 
    39003873#ifndef CELL_NOSTACK 
    39013874        if (battle_config.cell_stack_limit != 1)