diff options
-rw-r--r-- | db/re/skill_cast_db.txt | 2 | ||||
-rw-r--r-- | db/re/skill_db.txt | 2 | ||||
-rw-r--r-- | src/map/status.c | 9 | ||||
-rw-r--r-- | src/map/status.h | 2 |
4 files changed, 13 insertions, 2 deletions
diff --git a/db/re/skill_cast_db.txt b/db/re/skill_cast_db.txt index 1e1dd5243..58947731c 100644 --- a/db/re/skill_cast_db.txt +++ b/db/re/skill_cast_db.txt @@ -1634,7 +1634,7 @@ //-- ALL_GUARDIAN_RECALL 2536,3000,0,0,0,0,300000 //-- ALL_ODINS_POWER -//2537,5000,5000,0,60000,0,60000 +2537,5000,5000,0,60000,0,60000 //========================================== //===== Homunculus Skills ================== diff --git a/db/re/skill_db.txt b/db/re/skill_db.txt index 483524ff9..b840ca0b5 100644 --- a/db/re/skill_db.txt +++ b/db/re/skill_db.txt @@ -1200,7 +1200,7 @@ 2534,0,0,4,0,0x1,0,1,0,no,0,0,0,none,0, RETURN_TO_ELDICASTES,Return To Eldicastes 2535,0,0,4,0,0x1,0,1,0,no,0,0x1,0,none,0, ALL_BUYING_STORE,Open Buying Store 2536,0,0,4,0,0x1,0,1,0,no,0,0,0,none,0, ALL_GUARDIAN_RECALL,Guardian's Recall -//2537,9,6,16,0,0x1,0,2,1,yes,0,0,0,magic,0, ALL_ODINS_POWER,Odin's Power +2537,9,6,16,0,0x1,0,2,1,yes,0,0,0,magic,0, ALL_ODINS_POWER,Odin's Power 8001,9,6,4,0,0x1,0,5,1,no,0,0,0,magic,0, HLIF_HEAL,Healing Touch 8002,0,6,4,0,0x3,-1,5,1,no,0,0,0,none,0, HLIF_AVOID,Avoid diff --git a/src/map/status.c b/src/map/status.c index 8fdfdb6a5..0c0eeed0e 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -453,6 +453,7 @@ void initChangeTables(void) set_sc( CASH_ASSUMPTIO , SC_ASSUMPTIO , SI_ASSUMPTIO , SCB_NONE ); //set_sc( ALL_PARTYFLEE , SC_INCFLEE , SI_PARTYFLEE , SCB_NONE ); + set_sc( ALL_ODINS_POWER , SC_ODINS_POWER , SI_ODINS_POWER , SCB_MATK|SCB_BATK|SCB_MDEF|SCB_DEF ); set_sc( CR_SHRINK , SC_SHRINK , SI_SHRINK , SCB_NONE ); set_sc( RG_CLOSECONFINE , SC_CLOSECONFINE2 , SI_CLOSECONFINE2 , SCB_NONE ); @@ -4056,6 +4057,8 @@ static unsigned short status_calc_batk(struct block_list *bl, struct status_chan batk += batk * sc->data[SC_GT_CHANGE]->val3 / 100; if(sc->data[SC_FULL_SWING_K]) batk += sc->data[SC_FULL_SWING_K]->val1; + if(sc->data[SC_ODINS_POWER]) + batk += 70; #if RE_EDP /** * in RE EDP increases your base atk by atk x Skill Level. @@ -4174,6 +4177,8 @@ static unsigned short status_calc_matk(struct block_list *bl, struct status_chan matk += sc->data[SC_CHILLY_AIR_OPTION]->val2; if(sc->data[SC_WATER_BARRIER]) matk -= sc->data[SC_WATER_BARRIER]->val3; + if(sc->data[SC_ODINS_POWER]) + matk += 70; return (unsigned short)cap_value(matk,0,USHRT_MAX); } @@ -4407,6 +4412,8 @@ static signed short status_calc_flee2(struct block_list *bl, struct status_chang def += def * sc->data[SC_POWER_OF_GAIA]->val2 / 100; if( sc->data[SC_PRESTIGE] ) def += def * sc->data[SC_PRESTIGE]->val1 / 100; + if(sc->data[SC_ODINS_POWER]) + def -= 20; #if REMODE return (short)cap_value(def,SHRT_MIN,SHRT_MAX); #else @@ -4504,6 +4511,8 @@ static signed short status_calc_def2(struct block_list *bl, struct status_change mdef -= mdef * sc->data[SC_GT_CHANGE]->val3 / 100; if(sc->data[SC_WATER_BARRIER]) mdef += sc->data[SC_WATER_BARRIER]->val2; + if(sc->data[SC_ODINS_POWER]) + mdef -= 20; #if REMODE diff --git a/src/map/status.h b/src/map/status.h index 19985f62a..200eaf8b8 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -572,6 +572,7 @@ typedef enum sc_type { SC_GLORYWOUNDS, SC_SOULCOLD, //510 SC_HAWKEYES, + SC_ODINS_POWER, SC_MAX, //Automatically updated max, used in for's to check we are within bounds. } sc_type; @@ -1153,6 +1154,7 @@ enum si_type { SI_WIND_INSIGNIA = 569, SI_EARTH_INSIGNIA = 570, SI_EQUIPED_FLOOR = 571, + SI_ODINS_POWER = 583, SI_ALL_RIDING = 613,//awesome 571-613 gap, we're missing quite a few stuff here. SI_MAX, |