Changeset 5 for src/map/battle.c
- Timestamp:
- 06/30/08 21:19:58 (17 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
src/map/battle.c
r1 r5 373 373 } 374 374 375 //Begin Custom Jobs (blackmagic) 376 377 //Display red flashing aura effect of Adept Blood Lust [Brain] 378 if(sc->data[SC_LUST] && damage > 0){ 379 clif_specialeffect(bl, 548, AREA); 380 if(rand()%100 < 10) clif_specialeffect(bl, 455, AREA); //Red Lightnings, 1/10 attacks will show to prevent spam 381 }; 382 //Display blue flashing aura effect of Warlock Overwhelming Evil [Brain] 383 if(sc->data[SC_OVERWHELMING] && damage > 0) 384 clif_specialeffect(bl, 73, AREA); 385 386 // AT-Field [Brainstorm] 387 if(sc->data[SC_ATFIELD] && 388 rand()%100 < sc->data[SC_ATFIELD]->val2) 389 { //Blocks all skills. 390 clif_specialeffect(bl, 438, AREA); 391 //Shouldn't end until Breaker's non-weapon part connects. 392 if (skill_num == ASC_BREAKER || 393 skill_num == LK_SPIRALPIERCE || 394 skill_num == CG_ARROWVULCAN || 395 skill_num == SN_SHARPSHOOTING) 396 if (--sc->data[SC_ATFIELD]->val3 <= 0) //We make it work like Safety Wall 397 status_change_end(bl, SC_ATFIELD, -1); 398 return 0; 399 } 400 //End Custom Jobs 401 375 402 if (((sce=sc->data[SC_UTSUSEMI]) || sc->data[SC_BUNSINJYUTSU]) 376 403 && … … 624 651 damage += sd->status.str; 625 652 } 653 //Begin Custom Jobs (blackmagic) 654 //Warlock Touch of Corruption (Mage-Monster Killer passive skill) [Brainstorm] 655 if((skill = pc_checkskill(sd,WL_CORRUPTION)) > 0 && target->type==BL_MOB ) 656 damage += (skill * (status->int_/10)); 657 //end custom job 626 658 627 659 if(type == 0) … … 1299 1331 switch( skill_num ) 1300 1332 { 1333 //Begin Custom Job (blackmagic) 1334 case NC_DEATHHAND: // Necro Death Hand [Brain] 1335 skillratio += -25+25*skill_lv; 1336 break; 1337 //End Black Magic Custom Jobs 1301 1338 case SM_BASH: 1302 1339 skillratio += 30*skill_lv; … … 1575 1612 skillratio += 100 *(skill_lv-1); 1576 1613 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 1577 1623 } 1578 1624 … … 2188 2234 case AL_HEAL: 2189 2235 case PR_BENEDICTIO: 2236 //Begin Custom Job (blackmagic) 2237 case AD_DARKHEAL: // Adept Dark Heal 2238 //end custom job 2190 2239 ad.damage = skill_calc_heal(src, target, skill_lv)/2; 2191 2240 break; … … 2306 2355 skillratio += 100 +100*skill_lv +100*(skill_lv/2); 2307 2356 break; 2308 } 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 } 2309 2385 2310 2386 MATK_RATE(skillratio); … … 2376 2452 if (!(nk&NK_NO_ELEFIX)) 2377 2453 ad.damage=battle_attr_fix(src, target, ad.damage, s_ele, tstatus->def_ele, tstatus->ele_lv); 2378 2454 //Begin Custom Job (blackmagic) 2455 if(skill_num == WL_SHADOWBURN) { // Warlock Shadow Burn [Brain] 2456 // This is where we calculate the secondary damage 2457 if(ad.damage<1) ad.damage=1; 2458 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 2379 2463 if (sd && !(nk&NK_NO_CARDFIX_ATK)) { 2380 2464 short t_class = status_get_class(target); … … 2576 2660 case NPC_EVILLAND: 2577 2661 md.damage = (skill_lv>6)?666:skill_lv*100; 2662 //Begin Custom Job (blackmagic) 2663 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 2578 2667 break; 2579 2668 } … … 2763 2852 if (sd->sp_vanish_rate && rand()%1000 < sd->sp_vanish_rate) 2764 2853 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] 2856 if( pc_checkskill(sd, AD_BLOODPACT) > 0 ) 2857 thp += battle_calc_drain(rdamage,1000,5); 2858 2859 // Warlock Soul Steal drains 1%*skilllv damage per hit [Brain] 2860 if( pc_checkskill(sd, WL_SOULSTEAL) > 0 ) 2861 tsp += battle_calc_drain(rdamage,1000,pc_checkskill(sd,WL_SOULSTEAL)); 2862 // Warlock Touch of Corruption burns 1%*skilllv damage as SP per hit [Brain] 2863 if( pc_checkskill(sd, WL_CORRUPTION) > 0 ) { 2864 int corrupt_sp; 2865 corrupt_sp = battle_calc_drain(rdamage,1000,pc_checkskill(sd,WL_CORRUPTION)); 2866 if(status_damage(NULL, tbl, 0, corrupt_sp, 0, 3)) 2867 rhp += corrupt_sp;//If SP damage was caused, increase HP damage too 2868 } 2869 //end custom job 2765 2870 if (!thp && !tsp) return; 2766 2871 … … 2986 3091 return wd.dmg_lv; 2987 3092 } 3093 3094 //Begin custom Job (blackmagic) 3095 int battle_check_living(int race,int element)// Living creature check [Brain] 3096 { 3097 if(element == ELE_UNDEAD || race == RC_UNDEAD // Undead element and race check 3098 || race == RC_DEMON // Demon race check 3099 || race == RC_FORMLESS // Formless race check 3100 || element == ELE_GHOST){ // Ghost element check 3101 return 0; 3102 } 3103 else { 3104 return 1; 3105 } 3106 } 3107 //end custom job 2988 3108 2989 3109 int battle_check_undead(int race,int element) … … 3712 3832 { "auction_feeperhour", &battle_config.auction_feeperhour, 12000, 0, INT_MAX, }, 3713 3833 { "auction_maximumprice", &battle_config.auction_maximumprice, 500000000, 0, MAX_ZENY, }, 3834 //Begin Custom Job (blackmagic) 3835 //Vanaheim battle settings [Brainstorm] 3836 { "necro_retaliation", &battle_config.necro_retaliation, 1, 0, 1, }, 3837 { "disp_summon_stats", &battle_config.disp_summon_stats, 3838 //End Custom Job 3714 3839 { "gm_viewequip_min_lv", &battle_config.gm_viewequip_min_lv, 0, 0, 99, }, 3715 3840 };