Changeset 22 for src/map/status.c
- Timestamp:
- 07/02/08 22:46:07 (17 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
src/map/status.c
r19 r22 408 408 set_sc( GD_BATTLEORDER , SC_BATTLEORDERS , SI_BLANK , SCB_STR|SCB_INT|SCB_DEX ); 409 409 set_sc( GD_REGENERATION , SC_REGENERATION , SI_BLANK , SCB_REGEN ); 410 <<<<<<< .mine411 =======412 //Custom Jobs (blackmagic)413 // Custom Jobs Skills [Brain]414 add_sc( AD_PWBLIND , SC_BLIND);415 add_sc( AD_PWFEAR , SC_FEAR);416 set_sc( AD_LUST , SC_LUST , SI_JOINTBEAT , SCB_ASPD|SCB_BATK|SCB_WATK|SCB_REGEN);417 418 set_sc( NC_DECREPIFY , SC_DECREPIFY , SI_BLEEDING , SCB_SPEED|SCB_BATK|SCB_WATK|SCB_DEF2|SCB_MDEF2);419 set_sc( NC_DARKMOON , SC_DARKMOON , SI_MOON_COMFORT , SCB_FLEE|SCB_HIT);420 add_sc( NC_DARKMOON , SC_BLIND);421 set_sc( NC_REQUIEM , SC_REQUIEM , SI_KAIZEL , SCB_BATK|SCB_WATK);422 add_sc( NC_GHOULTOUCH , SC_POISON);423 set_sc( NC_PWSUFFER , SC_SUFFER , SI_BLANK , SCB_DEF|SCB_DEF2);424 set_sc( NC_DEATHPACT , SC_DEATHPACT , SI_BIOMOBTRICKDEAD , SCB_DEF_ELE|SCB_REGEN);425 426 set_sc( WL_SEARING , SC_SEARING , SI_BLANK , SCB_NONE);427 set_sc( WL_IMMOLATE , SC_IMMOLATE , SI_BLANK , SCB_NONE);428 add_sc( WL_SHADOWBURN , SC_STUN);429 set_sc( WL_PWAGONY , SC_AGONY , SI_BLANK , SCB_MDEF|SCB_MDEF2);430 set_sc( WL_CURSETONGUES , SC_CURSETONGUES , SI_SLOWCAST , SCB_NONE);431 set_sc( WL_CURSEDOOM , SC_DOOM , SI_BLANK , SCB_NONE);432 set_sc( WL_CURSEWEAKNESS , SC_CURSEWEAKNESS , SI_STRIPWEAPON , SCB_BATK|SCB_WATK);433 set_sc( WL_CURSEEXHAUST , SC_CURSEEXHAUST , SI_CRITICALWOUND , SCB_DEF|SCB_MDEF);434 add_sc( WL_HOWLOFTERROR , SC_FEAR);435 set_sc( WL_HOWLOFPAIN , SC_PROVOKE , SI_PROVOKE , SCB_DEF|SCB_DEF2|SCB_BATK|SCB_WATK);436 set_sc( WL_OVERWHELMING , SC_OVERWHELMING , SI_ENERGYCOAT , SCB_DEF|SCB_MDEF|SCB_MATK|SCB_REGEN|SCB_DEF_ELE);437 438 set_sc( ALL_ATFIELD , SC_ATFIELD , SI_UTSUSEMI ,SCB_NONE);439 //Custom Job End440 >>>>>>> .r18441 410 442 411 // Custom Jobs Skills [Brain] … … 1404 1373 flag|=16; 1405 1374 1406 <<<<<<< .mine1407 1375 if (md->master_id && md->special_state.ai) 1408 1376 flag|=32; //Adept/Necro/Warlock Summon Stats Bonus [Brainstorm] 1409 =======1410 //Custom Jobs (blackmagic)1411 if (md->master_id && md->special_state.ai)1412 flag|=32; //Adept/Necro/Warlock Summon Stats Bonus [Brainstorm]1413 //Custom Job End1414 >>>>>>> .r181415 1377 1416 1378 … … 1531 1493 status->aspd_rate -= 100*md->guardian_data->guardup_lv; 1532 1494 } 1533 <<<<<<< .mine1534 1495 //Summon Bonus from Skills [Brainstorm] 1535 1496 if(flag&32) … … 1591 1552 status->mdef2 += (undead_mastery*3) + (skill_mastery); 1592 1553 } 1593 =======1594 1595 //Custom Jobs (blackmagic)1596 //Summon Bonus from Skills [Brainstorm]1597 if(flag&32)1598 {1599 mbl = map_id2bl(md->master_id);1600 if(mbl)1601 {1602 struct unit_data *ud = unit_bl2ud(mbl);1603 //Remove special AI when this is used by regular mobs.1604 if (mbl->type == BL_MOB && !((TBL_MOB*)mbl)->special_state.ai)1605 md->special_state.ai = 0;1606 1607 int master_lv = status_get_lv(mbl);1608 int skill_mastery = pc_checkskill((TBL_PC*)mbl,AD_SUMMONS);1609 int undead_mastery = pc_checkskill((TBL_PC*)mbl,NC_UNDEAD);1610 1611 if (ud->skillid == AD_FAMILIAR)1612 {1613 status->max_hp += (skill_mastery*10) + (master_lv*10);1614 status->str += (master_lv) + (skill_mastery);1615 status->dex += (master_lv) + (skill_mastery);1616 status->agi += (master_lv) + (skill_mastery);1617 status->int_ += (master_lv) + (skill_mastery);1618 status->vit += (master_lv) + (skill_mastery);1619 status->luk += (master_lv) + (skill_mastery);1620 status->rhw.atk += (skill_mastery*3)1621 + (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10));1622 status->rhw.atk2 += (skill_mastery*3)1623 + (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10));1624 status->speed -= skill_mastery;1625 status->def += (master_lv)/10 + (skill_mastery);1626 status->mdef += (master_lv)/10 + (skill_mastery);1627 //These are not automatically recalculated1628 status->hit += (master_lv*2) + (skill_mastery);1629 status->flee += (master_lv*2) + (skill_mastery);1630 status->def2 += (master_lv) + (skill_mastery);1631 status->mdef2 += (master_lv) + (skill_mastery);1632 }1633 else if(status->race==RC_UNDEAD)1634 {1635 status->max_hp += (undead_mastery*10) + (master_lv*2);1636 status->str += (undead_mastery*3) + (skill_mastery);1637 status->dex += (undead_mastery*3) + (skill_mastery);1638 status->agi += (undead_mastery*3) + (skill_mastery);1639 status->int_ += (undead_mastery*3) + (skill_mastery);1640 status->vit += (undead_mastery*3) + (skill_mastery);1641 status->luk += (undead_mastery*3) + (skill_mastery);1642 status->rhw.atk += (undead_mastery*3) + (skill_mastery*3)1643 + (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10));1644 status->rhw.atk2 += (undead_mastery*3) + (skill_mastery*3)1645 + (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10));1646 status->speed -= undead_mastery;1647 status->def += undead_mastery;1648 status->mdef += undead_mastery;1649 //These are not automatically recalculated1650 status->hit += (undead_mastery*3) + (skill_mastery);1651 status->flee += (undead_mastery*3) + (skill_mastery);1652 status->def2 += (undead_mastery*3) + (skill_mastery);1653 status->mdef2 += (undead_mastery*3) + (skill_mastery);1654 }1655 }1656 else ShowError("status_calc_mob: Monster summoned without a master at %s\n", map[md->bl.m].name);1657 >>>>>>> .r181658 1554 } 1659 1555 else ShowError("status_calc_mob: Monster summoned without a master at %s\n", map[md->bl.m].name); … … 1908 1804 status->aspd_rate = 1000; 1909 1805 status->ele_lv = 1; 1910 <<<<<<< .mine1911 1806 status->race = RC_DEMIHUMAN;// This define players default race to DEMIHUMAN [Brain] 1912 1807 if(pc_checkskill(sd,NC_PHYLACTERY)>0) status->def_ele = ELE_UNDEAD; //Phylactery turns you UNDEAD 1 instead of NEUTRAL 1913 =======1914 //Custom Jobs (blackmagic)1915 status->race = RC_DEMIHUMAN;// This define players default race to DEMIHUMAN [Brain]1916 if(pc_checkskill(sd,NC_PHYLACTERY)>0) status->def_ele = ELE_UNDEAD; //Phylactery turns you UNDEAD 1 instead of NEUTRAL1917 //Custom Job End1918 >>>>>>> .r181919 1808 1920 1809 //zero up structures... … … 2209 2098 status->str += skill/2; //+1 str per 2 skill points 2210 2099 2211 <<<<<<< .mine2212 =======2213 //Custom Jobs (blackmagic)2214 2215 if((skill=pc_checkskill(sd,WL_DEMONOLOGY))>0) //Warlock Demonology [Brain]2216 status->str += skill/2; //+1 str per 2 skill points2217 //Custom Job End2218 >>>>>>> .r182219 2100 2220 2101 // Bonuses from cards and equipment as well as base stat, remember to avoid overflows. … … 2257 2138 status->max_hp += status->max_hp * (skill*3)/100; 2258 2139 2259 <<<<<<< .mine2260 =======2261 //Custom Jobs (blackmagic)2262 if((skill=pc_checkskill(sd,AD_PROFANE))>0) // Adept Profane Soul [Brain]2263 status->max_hp += status->max_hp * (skill*3)/100;2264 //Custom Job End2265 >>>>>>> .r182266 2140 2267 2141 // Apply relative modifiers from equipment … … 2296 2170 status->max_sp += sd->status.max_sp * (skill*3)/100; 2297 2171 2298 <<<<<<< .mine2299 =======2300 //Custom Jobs (blackmagic)2301 if((skill=pc_checkskill(sd,AD_PROFANE))>0) // Adept Profane Soul [Brain]2302 status->max_sp += sd->status.max_sp * (skill*3)/100;2303 //Custom Job End2304 >>>>>>> .r182305 2172 2306 2173 // Apply relative modifiers from equipment … … 2399 2266 status->hit += skill*2; 2400 2267 2401 <<<<<<< .mine2402 =======2403 //Custom Jobs (blackmagic)2404 if((skill=pc_checkskill(sd,AD_FERVOR))>0) // Adept Unholy Fevor [Brain]2405 status->hit += skill*2;2406 //Custom Job End2407 2408 >>>>>>> .r182409 2268 // ----- FLEE CALCULATION ----- 2410 2269 … … 2417 2276 status->flee += skill*2; 2418 2277 2419 <<<<<<< .mine2420 =======2421 //Custom Jobs (blackmagic)2422 if((skill=pc_checkskill(sd,AD_FERVOR))>0) // Adept Unholy Fevor [Brain]2423 status->flee += skill*2;2424 //Custom Job End2425 2426 >>>>>>> .r182427 2278 // ----- EQUIPMENT-DEF CALCULATION ----- 2428 2279 … … 2434 2285 status->def = cap_value(i, CHAR_MIN, CHAR_MAX); 2435 2286 } 2436 <<<<<<< .mine 2437 2438 ======= 2439 //Custom Jobs (blackmagic) 2440 // Absolute modifiers from passive skills 2441 if((skill=pc_checkskill(sd,AD_DARKFAITH))>0) // Adept Dark Faith [Brain] 2442 status->mdef += 1*skill; 2443 //Custom Job End 2444 >>>>>>> .r18 2287 2445 2288 if (!battle_config.weapon_defense_type && status->def > battle_config.max_def) 2446 2289 { … … 2569 2412 } 2570 2413 2571 <<<<<<< .mine2572 2414 if((skill=pc_checkskill(sd,AD_DARKFAITH))>0) // Adept Dark Faith [Brain] 2573 2415 sd->subele[ELE_DARK] += skill*5; … … 2577 2419 sd->magic_addrace[RC_DEMON]+=skill; 2578 2420 sd->subrace[RC_DEMON]+=skill; 2579 ======= 2580 2581 //Custom Jobs (blackmagic) 2582 if((skill=pc_checkskill(sd,AD_DARKFAITH))>0) // Adept Dark Faith [Brain] 2583 sd->subele[ELE_DARK] += skill*5; 2584 if((skill=pc_checkskill(sd,WL_DEMONOLOGY))>0 ){ //Warlock Demonology [Brain] 2585 skill = skill*5; 2586 sd->right_weapon.addrace[RC_DEMON]+=skill; 2587 sd->magic_addrace[RC_DEMON]+=skill; 2588 sd->subrace[RC_DEMON]+=skill; 2589 >>>>>>> .r18 2590 } 2591 <<<<<<< .mine 2421 } 2592 2422 if((pc_checkskill(sd,NC_PHYLACTERY))>0){ // Necro Phylactery [Brain] 2593 2423 sd->subele[ELE_NEUTRAL] += 10; //And increases neutral resistance by 10% 2594 2424 } 2595 =======2596 if((pc_checkskill(sd,NC_PHYLACTERY))>0){ // Necro Phylactery [Brain]2597 sd->subele[ELE_NEUTRAL] += 10; //And increases neutral resistance by 10%2598 }2599 //Custom Job End2600 >>>>>>> .r182601 2425 2602 2426 … … 2626 2450 sd->subele[ELE_NEUTRAL] += sd->sc.data[SC_DEATHPACT]->val2; 2627 2451 2628 <<<<<<< .mine2629 =======2630 //Custom Jobs (blackmagic)2631 if(sd->sc.data[SC_DEATHPACT]) //Necro Death Pact [Brain]2632 sd->subele[ELE_NEUTRAL] += sd->sc.data[SC_DEATHPACT]->val2;2633 //Custom Job End2634 2635 >>>>>>> .r182636 2452 if(sc->data[SC_ARMOR_ELEMENT]) 2637 2453 { //This status change should grant card-type elemental resist. … … 2969 2785 || sc->data[SC_TRICKDEAD] 2970 2786 || sc->data[SC_BLEEDING] 2971 <<<<<<< .mine2972 2787 || sc->data[SC_LUST] // Adept Blood Lust, stops hp regen [Brain] 2973 =======2974 //Custom Jobs (blackmagic)2975 || sc->data[SC_LUST] // Adept Blood Lust, stops hp regen [Brain]2976 >>>>>>> .r182977 2788 || sc->data[SC_DEATHPACT] // Necro Death Pact 2978 2789 … … 3755 3566 if(sc->data[SC_MADNESSCANCEL]) 3756 3567 batk += 100; 3757 <<<<<<< .mine3758 3568 if(sc->data[SC_LUST]) // Adept Blood Lust [Brain] 3759 3569 batk += batk * sc->data[SC_LUST]->val2/100; … … 3764 3574 batk -= batk * 25/100; 3765 3575 3766 =======3767 //Custom Jobs (blackmagic)3768 if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]3769 batk += batk * sc->data[SC_LUST]->val2/100;3770 if(sc->data[SC_CURSEWEAKNESS]) // Warlock Curse of Weakness [Brain]3771 batk -= batk * sc->data[SC_CURSEWEAKNESS]->val2/100;3772 if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]3773 if(sc->data[SC_DECREPIFY]->val2>=2)3774 batk -= batk * 25/100;3775 3776 //Custom Job End3777 >>>>>>> .r183778 3576 return (unsigned short)cap_value(batk,0,USHRT_MAX); 3779 3577 } … … 3818 3616 if(sc->data[SC_STRIPWEAPON]) 3819 3617 watk -= watk * sc->data[SC_STRIPWEAPON]->val2/100; 3820 <<<<<<< .mine3821 3618 if(sc->data[SC_LUST]) // Adept Blood Lust [Brain] 3822 3619 watk += watk * sc->data[SC_LUST]->val2/100; … … 3832 3629 if(sc->data[SC_DECREPIFY]->val2>=2) 3833 3630 watk -= watk * 25/100; 3834 =======3835 //Custom Jobs (blackmagic)3836 if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]3837 watk += watk * sc->data[SC_LUST]->val2/100;3838 if(sc->data[SC_REQUIEM]){ //Necro Requiem [Brain]3839 if(sc->data[SC_REQUIEM]->val2)3840 watk += sc->data[SC_REQUIEM]->val2*10;3841 if(sc->data[SC_REQUIEM]->val3)3842 watk -= sc->data[SC_REQUIEM]->val3*10;3843 }3844 if(sc->data[SC_CURSEWEAKNESS]) // Warlock Curse of Weakness [Brain]3845 watk -= watk * sc->data[SC_CURSEWEAKNESS]->val2/100;3846 if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]3847 if(sc->data[SC_DECREPIFY]->val2>=2)3848 watk -= watk * 25/100;3849 //Custom Job End3850 >>>>>>> .r183851 3631 3852 3632 … … 3869 3649 if(sc->data[SC_INCMATKRATE]) 3870 3650 matk += matk * sc->data[SC_INCMATKRATE]->val1/100; 3871 <<<<<<< .mine3872 3651 if(sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain] 3873 3652 matk += matk * sc->data[SC_OVERWHELMING]->val2/100; 3874 =======3875 //Custom Jobs (blackmagic)3876 if(sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]3877 matk += matk * sc->data[SC_OVERWHELMING]->val2/100;3878 //Custom Job End3879 >>>>>>> .r183880 3653 3881 3654 … … 3926 3699 if(sc->data[SC_INCREASING]) 3927 3700 hit += 20; // RockmanEXE; changed based on updated [Reddozen] 3928 <<<<<<< .mine3929 3701 if(sc->data[SC_DARKMOON]){ //Necro Dark Moon [Brain] 3930 3702 if(sc->data[SC_DARKMOON]->val2) … … 3932 3704 if(sc->data[SC_DARKMOON]->val3) 3933 3705 hit -= sc->data[SC_DARKMOON]->val3; 3934 =======3935 //Custom Jobs (blackmagic)3936 if(sc->data[SC_DARKMOON]){ //Necro Dark Moon [Brain]3937 if(sc->data[SC_DARKMOON]->val2)3938 hit += sc->data[SC_DARKMOON]->val2;3939 if(sc->data[SC_DARKMOON]->val3)3940 hit -= sc->data[SC_DARKMOON]->val3;3941 >>>>>>> .r183942 3706 } 3943 3707 … … 3982 3746 if(sc->data[SC_SPEED]) 3983 3747 flee += 10 + sc->data[SC_SPEED]->val1 * 10 ; 3984 <<<<<<< .mine3985 3748 if(sc->data[SC_DARKMOON]){ //Necro Dark Moon [Brain] 3986 3749 if(sc->data[SC_DARKMOON]->val2) … … 3988 3751 if(sc->data[SC_DARKMOON]->val3) 3989 3752 flee -= sc->data[SC_DARKMOON]->val3; 3990 =======3991 //Custom Jobs (blackmagic)3992 if(sc->data[SC_DARKMOON]){ //Necro Dark Moon [Brain]3993 if(sc->data[SC_DARKMOON]->val2)3994 flee += sc->data[SC_DARKMOON]->val2;3995 if(sc->data[SC_DARKMOON]->val3)3996 flee -= sc->data[SC_DARKMOON]->val3;3997 >>>>>>> .r183998 3753 } 3999 3754 … … 4056 3811 if (sc->data[SC_FLING]) 4057 3812 def -= def * (sc->data[SC_FLING]->val2)/100; 4058 <<<<<<< .mine4059 3813 if(sc->data[SC_SUFFER]) // Necro Power Word: Suffer [Brain] 4060 3814 def <<=1; // -25% def … … 4063 3817 if (sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain] 4064 3818 def += sc->data[SC_OVERWHELMING]->val1; 4065 =======4066 //Custom Jobs (blackmagic)4067 if(sc->data[SC_SUFFER]) // Necro Power Word: Suffer [Brain]4068 def <<=1; // -25% def4069 if (sc->data[SC_CURSEEXHAUST]) // Warlock Curse of Exhaustion [Brain]4070 def -= sc->data[SC_CURSEEXHAUST]->val2;4071 if (sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]4072 def += sc->data[SC_OVERWHELMING]->val1;4073 //Custom Job End4074 >>>>>>> .r184075 3819 4076 3820 … … 4114 3858 def2 -= def2 * 25/100; 4115 3859 4116 <<<<<<< .mine4117 =======4118 //Custom Jobs (blackmagic)4119 if(sc->data[SC_SUFFER]) // Necro Power Word: Suffer [Brain]4120 def2 -= def2 * 25/100; // -25% def4121 if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]4122 if(sc->data[SC_DECREPIFY]->val2>=4)4123 def2 -= def2 * 25/100;4124 //Custom Job End4125 >>>>>>> .r184126 3860 4127 3861 return (short)cap_value(def2,1,SHRT_MAX); … … 4151 3885 if(sc->data[SC_CONCENTRATION]) 4152 3886 mdef += 1; //Skill info says it adds a fixed 1 Mdef point. 4153 <<<<<<< .mine4154 3887 if(sc->data[SC_AGONY]) // Warlock Power Word: Agony [Brain] 4155 3888 mdef -= 25*mdef/100; // -25% mdef … … 4158 3891 if (sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain] 4159 3892 mdef += sc->data[SC_OVERWHELMING]->val1; 4160 =======4161 //Custom Jobs (blackmagic)4162 if(sc->data[SC_AGONY]) // Warlock Power Word: Agony [Brain]4163 mdef -= 25*mdef/100; // -25% mdef4164 if (sc->data[SC_CURSEEXHAUST]) // Warlock Curse of Exhaustion [Brain]4165 mdef -= sc->data[SC_CURSEEXHAUST]->val2;4166 if (sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]4167 mdef += sc->data[SC_OVERWHELMING]->val1;4168 //Custom Job End4169 >>>>>>> .r184170 3893 4171 3894 … … 4182 3905 if(sc->data[SC_MINDBREAKER]) 4183 3906 mdef2 -= mdef2 * sc->data[SC_MINDBREAKER]->val3/100; 4184 <<<<<<< .mine4185 3907 if(sc->data[SC_AGONY]) // Warlock Power Word: Agony [Brain] 4186 3908 mdef2 -= mdef2 * 25/100; // -25% mdef … … 4188 3910 if(sc->data[SC_DECREPIFY]->val2>=5) 4189 3911 mdef2 -= mdef2 * 25/100; 4190 =======4191 //Custom Jobs (blackmagic)4192 if(sc->data[SC_AGONY]) // Warlock Power Word: Agony [Brain]4193 mdef2 -= mdef2 * 25/100; // -25% mdef4194 if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]4195 if(sc->data[SC_DECREPIFY]->val2>=5)4196 mdef2 -= mdef2 * 25/100;4197 //Custom Job End4198 >>>>>>> .r184199 3912 4200 3913 … … 4251 3964 else if(sc->data[SC_WINDWALK]) 4252 3965 new_speed -= new_speed * sc->data[SC_WINDWALK]->val3/100; 4253 <<<<<<< .mine4254 3966 else if(sc->data[SC_FEAR]) //Fear Status by [Brainstorm] 4255 3967 new_speed -= new_speed * 25/100; 4256 3968 4257 =======4258 //Custom Jobs (blackmagic)4259 else if(sc->data[SC_FEAR]) //Fear Status by [Brainstorm]4260 new_speed -= new_speed * 25/100;4261 //Custom Job End4262 >>>>>>> .r184263 3969 } 4264 3970 … … 4304 4010 if(sc->data[SC_SLOWDOWN]) 4305 4011 speed = speed * 100/75; 4306 <<<<<<< .mine4307 4012 if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain] 4308 4013 speed = speed * 100/75; //-25% walkspeed 4309 4014 4310 =======4311 //Custom Jobs (blackmagic)4312 if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]4313 speed = speed * 100/75; //-25% walkspeed4314 //Custom Job End4315 >>>>>>> .r184316 4015 4317 4016 return (short)cap_value(speed,10,USHRT_MAX); … … 4384 4083 else if(sc->data[SC_MADNESSCANCEL]) 4385 4084 aspd_rate -= 200; 4386 <<<<<<< .mine4387 4085 else if(sc->data[SC_LUST]) // Adept Blood Lust [Brain] 4388 4086 aspd_rate -= sc->data[SC_LUST]->val2*10; 4389 4087 4390 =======4391 //Custom Jobs (blackmagic)4392 else if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]4393 aspd_rate -= sc->data[SC_LUST]->val2*10;4394 //Custom Job End4395 >>>>>>> .r184396 4088 } 4397 4089 … … 4487 4179 if(sc->data[SC_ELEMENTALCHANGE]) 4488 4180 return sc->data[SC_ELEMENTALCHANGE]->val2; 4489 <<<<<<< .mine4490 4181 if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain] 4491 4182 return ELE_UNDEAD; … … 4493 4184 return ELE_DARK; 4494 4185 4495 =======4496 //Custom Jobs (blackmagic)4497 if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain]4498 return ELE_UNDEAD;4499 if( sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]4500 return ELE_DARK;4501 //Custom Job End4502 >>>>>>> .r184503 4186 return (unsigned char)cap_value(element,0,UCHAR_MAX); 4504 4187 } … … 4519 4202 if(sc->data[SC_ELEMENTALCHANGE]) 4520 4203 return sc->data[SC_ELEMENTALCHANGE]->val1; 4521 <<<<<<< .mine4522 4204 if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain] 4523 4205 return 1; 4524 4206 if( sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain] 4525 4207 return 1; 4526 =======4527 //Custom Jobs (blackmagic)4528 if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain]4529 return 1;4530 if( sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]4531 return 1;4532 //Custom Job End4533 >>>>>>> .r184534 4208 4535 4209 … … 5399 5073 5400 5074 case SC_FOGWALL: 5401 <<<<<<< .mine5402 =======5403 //Custom Jobs (blackmagic)5404 //New status [Brainstorm]5405 case SC_FEAR:5406 case SC_DECREPIFY:5407 case SC_DARKMOON:5408 case SC_REQUIEM:5409 case SC_CURSETONGUES:5410 case SC_CURSEWEAKNESS:5411 case SC_CURSEEXHAUST:5412 //Custom Job End5413 >>>>>>> .r185414 5075 return 0; 5415 5076 } … … 5427 5088 if (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE) 5428 5089 status_change_end(bl,SC_STONE,-1); 5429 <<<<<<< .mine5430 5090 // Warlock Curses are canceled by blessing [Brain] 5431 5091 if (sc->data[SC_CURSEWEAKNESS]) … … 5438 5098 status_change_end(bl,SC_DOOM,-1);//But then people would abuse on WoEs 5439 5099 5440 ======= 5441 //Custom Jobs (blackmagic) 5442 // Warlock Curses are canceled by blessing [Brain] 5443 if (sc->data[SC_CURSEWEAKNESS]) 5444 status_change_end(bl,SC_CURSEWEAKNESS,-1); 5445 if (sc->data[SC_CURSETONGUES]) 5446 status_change_end(bl,SC_CURSETONGUES,-1); 5447 if (sc->data[SC_CURSEEXHAUST]) 5448 status_change_end(bl,SC_CURSEEXHAUST,-1); 5449 if (sc->data[SC_DOOM]) // This skill would be way funnier if we could igore this concept, no? 5450 status_change_end(bl,SC_DOOM,-1);//But then people would abuse on WoEs 5451 //Custom Job End 5452 >>>>>>> .r18 5453 } 5454 break; 5455 <<<<<<< .mine 5100 } 5101 break; 5456 5102 case SC_CURSEWEAKNESS: // Warlock Curse of Weakness removes Impositio Manus [Brain] 5457 5103 if (sc->data[SC_IMPOSITIO]) … … 5486 5132 break; 5487 5133 5488 =======5489 //Custom Jobs (blackmagic)5490 case SC_CURSEWEAKNESS: // Warlock Curse of Weakness removes Impositio Manus [Brain]5491 if (sc->data[SC_IMPOSITIO])5492 status_change_end(bl,SC_IMPOSITIO,-1);5493 if (sc->data[SC_BLESSING]) //The opposite is also valid, curses cancel blessing [Brain]5494 status_change_end(bl,SC_BLESSING,-1);5495 break;5496 case SC_CURSETONGUES: // Warlock Curse of Tongues removes Suffragium [Brain]5497 if (sc->data[SC_SUFFRAGIUM])5498 status_change_end(bl,SC_SUFFRAGIUM,-1);5499 if (sc->data[SC_BLESSING])5500 status_change_end(bl,SC_BLESSING,-1);5501 break;5502 case SC_CURSEEXHAUST: // Warlock Curse of Exhaustion removes angelus [Brain]5503 if (sc->data[SC_ANGELUS])5504 status_change_end(bl,SC_ANGELUS,-1);5505 case SC_DOOM:5506 if (sc->data[SC_BLESSING])5507 status_change_end(bl,SC_BLESSING,-1);5508 break;5509 case SC_IMPOSITIO: // Impositio Manus removes Curse of Weakness [Brain]5510 if (sc->data[SC_CURSEWEAKNESS])5511 status_change_end(bl,SC_CURSEWEAKNESS,-1);5512 break;5513 case SC_SUFFRAGIUM: // Suffragium removes Curse of Tongues [Brain]5514 if (sc->data[SC_CURSETONGUES])5515 status_change_end(bl,SC_CURSETONGUES,-1);5516 break;5517 case SC_ANGELUS: // Angelus removes Curse of Exhaustion [Brain]5518 if (sc->data[SC_CURSEEXHAUST])5519 status_change_end(bl,SC_CURSEEXHAUST,-1);5520 break;5521 //Custom Job End5522 >>>>>>> .r185523 5134 case SC_INCREASEAGI: 5524 5135 status_change_end(bl,SC_DECREASEAGI,-1); … … 5539 5150 status_change_end(bl,SC_TWOHANDQUICKEN,-1); 5540 5151 status_change_end(bl,SC_ONEHAND,-1); 5541 <<<<<<< .mine5542 5152 if(sc->data[SC_LUST]) // Adept Blood Lust [Brain] 5543 =======5544 //Custom Jobs (blackmagic)5545 if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]5546 >>>>>>> .r185547 5153 status_change_end(bl,SC_LUST,-1); 5548 5154 … … 5605 5211 status_change_end(bl,SC_MADNESSCANCEL,-1); 5606 5212 break; 5607 <<<<<<< .mine5608 5213 case SC_FREEZE: //Frozen status ends immolating AND searing status [Brain] 5609 5214 if(sc->data[SC_IMMOLATE]) … … 5614 5219 break; 5615 5220 5616 =======5617 //Custom Jobs (blackmagic)5618 case SC_FREEZE: //Frozen status ends immolating AND searing status [Brain]5619 if(sc->data[SC_IMMOLATE])5620 status_change_end(bl,SC_IMMOLATE,-1);5621 case SC_IMMOLATE: // Warlock Immolate [Brain]5622 if(sc->data[SC_SEARING]) //Immolating status ends searing status5623 status_change_end(bl,SC_SEARING,-1);5624 break;5625 //Custom Job End5626 >>>>>>> .r185627 5221 case SC_MADNESSCANCEL: 5628 5222 status_change_end(bl,SC_ADJUSTMENT,-1); … … 5966 5560 clif_emotion(bl,1); 5967 5561 break; 5968 <<<<<<< .mine5969 5562 case SC_FEAR: //Fear Status by [Brainstorm] 5970 5563 clif_emotion(bl,16); // e_wah … … 5972 5565 break; 5973 5566 5974 =======5975 //Custom Jobs (blackmagic)5976 case SC_FEAR: //Fear Status by [Brainstorm]5977 clif_emotion(bl,16); // e_wah5978 if(sd) tick /= 2;5979 break;5980 //Custom Job End5981 >>>>>>> .r185982 5567 case SC_BLEEDING: 5983 5568 val4 = tick/10000; … … 6357 5942 break; 6358 5943 6359 <<<<<<< .mine6360 5944 case SC_ATFIELD: // AT-Field [Brainstorm] 6361 5945 val2 = 100; // 100% Block chance … … 6364 5948 tick = 1000; 6365 5949 break; 6366 =======6367 //Custom Jobs (blackmagic)6368 case SC_ATFIELD: // AT-Field [Brainstorm]6369 val2 = 100; // 100% Block chance6370 val3 = 100; // Dodge 100 attacks total.6371 val4 = tick/1000;6372 tick = 1000;6373 break;6374 //Custom Job End6375 >>>>>>> .r186376 5950 6377 5951 … … 6423 5997 val2 = 0; //0 -> Half stat. 6424 5998 break; 6425 <<<<<<< .mine6426 5999 case SC_REQUIEM: //Necro Requiem and Dark Moon [Brain] 6427 6000 case SC_DARKMOON: … … 6435 6008 else 6436 6009 val3 = val1; //Everything else (living) get negative status (requiem only) 6437 =======6438 //Custom Jobs (blackmagic)6439 case SC_REQUIEM: //Necro Requiem and Dark Moon [Brain]6440 case SC_DARKMOON:6441 if (undead_flag || status->race==RC_UNDEAD || status->race==RC_DEMON)6442 val2 = val1; //Demon and Undead get buffed6443 else if(status->race==RC_FORMLESS || status->def_ele==ELE_GHOST || bl->type == BL_PC)6444 {6445 val1 = 0; //No status change for Formless and Ghosts, and non-undead players6446 tick = 0; //Cancel status to not show requiem icon without a reason6447 }6448 else6449 val3 = val1; //Everything else (living) get negative status (requiem only)6450 break;6451 case SC_DECREPIFY: //Necro Decrepify [Brain]6452 val2 = val1;6453 >>>>>>> .r186454 6010 break; 6455 6011 case SC_DECREPIFY: //Necro Decrepify [Brain] … … 6497 6053 val2 = 5*val1; //watk increase 6498 6054 break; 6499 <<<<<<< .mine6500 6055 case SC_CURSEWEAKNESS: // Warlock Curse of Weakness [Brain] 6501 6056 val2 = 5*val1; //batk/watk decrease … … 6508 6063 break; 6509 6064 6510 =======6511 //Custom Jobs (blackmagic)6512 case SC_CURSEWEAKNESS: // Warlock Curse of Weakness [Brain]6513 val2 = 5*val1; //batk/watk decrease6514 break;6515 case SC_CURSEEXHAUST: // Warlock Curse of Exhaustion [Brain]6516 val2 = 2*val1; //def/mdef decrease6517 break;6518 case SC_CURSETONGUES: // Warlock Curse of Tongues [Brain]6519 val2 = 10*val1; //casttime increase6520 break;6521 //Custom Job End6522 >>>>>>> .r186523 6065 case SC_MELTDOWN: 6524 6066 val2 = 100*val1; //Chance to break weapon … … 6576 6118 val3 = 5+5*val1; //bAtk/wAtk rate change 6577 6119 break; 6578 <<<<<<< .mine6579 6120 case SC_LUST: // Adept Blood Lust [Brain] 6580 6121 val2 = 5+3*val1; //Aspd/bAtk/wAtk change … … 6590 6131 break; 6591 6132 6592 =======6593 //Custom Jobs (blackmagic)6594 case SC_LUST: // Adept Blood Lust [Brain]6595 val2 = 5+3*val1; //Aspd/bAtk/wAtk change6596 val3 = tick>0?tick:1000; //Interval at which HP is drained.6597 break;6598 case SC_DEATHPACT: // Necro Death Pact [Brain]6599 val2 = 5*val1; //Neutral property resistance6600 val3 = tick>0?tick:10000; //Interval at which HP is drained.6601 break;6602 case SC_OVERWHELMING: // Warlock Overwhelming Evil [Brain]6603 val2 = 2*val1; //matk bonus6604 val3 = tick>0?tick:1000; //Interval at which SP is drained.6605 break;6606 //Custom Job End6607 >>>>>>> .r186608 6133 case SC_MINDBREAKER: 6609 6134 val2 = 20*val1; //matk increase. … … 6789 6314 unit_skillcastcancel(bl, 0); 6790 6315 break; 6791 <<<<<<< .mine6792 6316 6793 6317 case SC_FEAR: //Fear Status by [Brainstorm] … … 6796 6320 6797 6321 6798 =======6799 //Custom Jobs (blackmagic)6800 case SC_FEAR: //Fear Status by [Brainstorm]6801 unit_stop_attack(bl);6802 break;6803 //Custom Job End6804 >>>>>>> .r186805 6322 } 6806 6323 … … 7248 6765 } 7249 6766 break; 7250 <<<<<<< .mine7251 6767 case SC_SPLASHER: 7252 6768 case SC_DOOM: // Warlock Curse of Doom [Brain] 7253 6769 7254 =======7255 //Custom Jobs (blackmagic)7256 case SC_SPLASHER:7257 case SC_DOOM: // Warlock Curse of Doom [Brain]7258 //Custom Job End7259 >>>>>>> .r187260 6770 { 7261 6771 struct block_list *src=map_id2bl(sce->val3); … … 7625 7135 sc_timer_next(sce->val2+tick, status_change_timer, bl->id, data); 7626 7136 return 0; 7627 <<<<<<< .mine7628 =======7629 //Custom Jobs (blackmagic)7630 case SC_LUST: // Adept Blood Lust [Brain]7631 if(!status_charge(bl, status->max_hp/100, 0))7632 break; //Not enough HP to continue.7633 sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data);7634 return 0;7635 case SC_DEATHPACT: // Necro Death Pact [Brain]7636 // Drains 1 HP every second (status wont kill, but dying will cancel it)7637 status_charge(bl, 1, 0);7638 sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data);7639 return 0;7640 case SC_OVERWHELMING: // Warlock Overwhelming Evil [Brain]7641 if(!status_charge(bl, 0, status->max_sp/100))7642 break; //Not enough SP to continue.7643 sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data);7644 return 0;7645 //Custom Job End7646 >>>>>>> .r187647 7137 7648 7138 case SC_LUST: // Adept Blood Lust [Brain] … … 7896 7386 } 7897 7387 break; 7898 <<<<<<< .mine7899 7388 case SC_DOOM: // Warlock Curse of Doom [Brain] 7900 7389 if((sce->val4 -= 500) > 0) { … … 7903 7392 } 7904 7393 break; 7905 =======7906 //Custom Jobs (blackmagic)7907 case SC_DOOM: // Warlock Curse of Doom [Brain]7908 if((sce->val4 -= 500) > 0) {7909 sc_timer_next(500 + tick, status_change_timer, bl->id, data);7910 return 0;7911 }7912 break;7913 //Custom Job End7914 >>>>>>> .r187915 7394 7916 7395 case SC_MARIONETTE: