diff options
-rw-r--r-- | db/re/skill_cast_db.txt | 2 | ||||
-rw-r--r-- | db/re/skill_db.txt | 2 | ||||
-rw-r--r-- | db/re/skill_require_db.txt | 2 | ||||
-rw-r--r-- | src/map/battle.c | 25 | ||||
-rw-r--r-- | src/map/skill.c | 15 | ||||
-rw-r--r-- | src/map/status.c | 4 |
6 files changed, 39 insertions, 11 deletions
diff --git a/db/re/skill_cast_db.txt b/db/re/skill_cast_db.txt index dc205e386..928f8f1d9 100644 --- a/db/re/skill_cast_db.txt +++ b/db/re/skill_cast_db.txt @@ -266,7 +266,7 @@ //-- AL_HOLYLIGHT 156,2000,0,0,0,0,0,0 //-- MG_ENERGYCOAT -157,5000,0,0,300000,0,0,0 +157,5000,0,0,300000,0,0,5000 //========================================== diff --git a/db/re/skill_db.txt b/db/re/skill_db.txt index 391601cc7..d5bea16f7 100644 --- a/db/re/skill_db.txt +++ b/db/re/skill_db.txt @@ -568,7 +568,7 @@ 522,0,0,0,0,0,0,10,1,no,0,0,0,weapon,0, NJ_TOBIDOUGU,Shuriken Training 523,9,6,1,-1,0x40,0,10,1,no,0,0,0,weapon,0, NJ_SYURIKEN,Throw Shuriken 524,9,8,1,-1,0x40,0,5,3,no,0,0,0,weapon,0, NJ_KUNAI,Throw Kunai -525,9,8,1,-1,0x6,1,5,-3:-3:-4:-4:-5,yes,0,0,0,weapon,0, NJ_HUUMA,Throw Huuma Shuriken +525,9,8,1,-1,0x6,1,5,-3:-3:-4:-4:-5,no,0,0,0,weapon,0, NJ_HUUMA,Throw Huuma Shuriken 526,9,6,1,0,0x50,0,10,1,no,0,0,0,misc,0, NJ_ZENYNAGE,Throw Zeny 527,0,6,4,-1,0,0,5,1,no,0,0,0,weapon,3, NJ_TATAMIGAESHI,Improvised Defense 528,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0, NJ_KASUMIKIRI,Vanishing Slash diff --git a/db/re/skill_require_db.txt b/db/re/skill_require_db.txt index 6d350e43d..b5173e631 100644 --- a/db/re/skill_require_db.txt +++ b/db/re/skill_require_db.txt @@ -408,7 +408,7 @@ 517,0,0,30:32:34:36:38:40:42:44:46:48,0,0,0,19,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GATLINGFEVER 518,0,0,3:6:9:12:15:18:21:24:27:30,0,0,0,20,3,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_DUST 519,0,0,20:25:30:35:40:45:50:55:60:65,0,0,0,20,3,2:2:4:4:6:6:8:8:10:10,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_FULLBUSTER -520,0,0,15:20:25:30:35:40:45:50:55:60,0,0,0,20,3,5,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_SPREADATTACK +520,0,0,15:20:25:30:35:40:45:50:55:60,0,0,0,20:21,3,5,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_SPREADATTACK 521,0,0,4:8:12:16:20:24:28:32:36:40,0,0,0,21,5,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //GS_GROUNDDRIFT 523,0,0,2,0,0,0,99,6,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_SYURIKEN 524,0,0,30:25:20:15:10,0,0,0,99,7,1,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NJ_KUNAI diff --git a/src/map/battle.c b/src/map/battle.c index a19493025..ce0f1b9a6 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -628,8 +628,11 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag sce->val3&flag && sce->val4&flag) damage -= damage*sc->data[SC_ARMOR]->val2/100; - if(sc->data[SC_ENERGYCOAT] && flag&BF_WEAPON - && skill_num != WS_CARTTERMINATION) +#ifdef RENEWAL + if(sc->data[SC_ENERGYCOAT] && (flag&BF_WEAPON || flag&BF_MAGIC) && skill_num != WS_CARTTERMINATION) +#else + if(sc->data[SC_ENERGYCOAT] && flag&BF_WEAPON && skill_num != WS_CARTTERMINATION) +#endif { struct status_data *status = status_get_status_data(bl); int per = 100*status->sp / status->max_sp -1; //100% should be counted as the 80~99% interval @@ -1983,7 +1986,11 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo skillratio += 100*(skill_lv+2); break; case GS_SPREADATTACK: + #ifdef RENEWAL + skillratio += 20*(skill_lv); + #else skillratio += 20*(skill_lv-1); + #endif break; case NJ_HUUMA: skillratio += 50 + 150*skill_lv; @@ -3211,13 +3218,23 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list case ALL_RESURRECTION: case PR_TURNUNDEAD: //Undead check is on skill_castend_damageid code. + #ifdef RENEWAL + i = 10*skill_lv + sstatus->luk + sstatus->int_ + status_get_lv(src) + + 300 - 300*tstatus->hp/tstatus->max_hp; + #else i = 20*skill_lv + sstatus->luk + sstatus->int_ + status_get_lv(src) + 200 - 200*tstatus->hp/tstatus->max_hp; + #endif if(i > 700) i = 700; if(rnd()%1000 < i && !(tstatus->mode&MD_BOSS)) ad.damage = tstatus->hp; - else - ad.damage = status_get_lv(src) + sstatus->int_ + skill_lv * 10; + else { + #ifdef RENEWAL + ad.damage = status_get_lv(src) * (sstatus->matk_min + sstatus->matk_max); + #else + ad.damage = status_get_lv(src) + sstatus->int_ + skill_lv * 10; + #endif + } break; case PF_SOULBURN: ad.damage = tstatus->sp * 2; diff --git a/src/map/skill.c b/src/map/skill.c index 768a91a27..9be2d9266 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -363,9 +363,13 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, int skill struct status_change* sc; switch( skill_id ) { - case BA_APPLEIDUN: - hp = 30+5*skill_lv+5*(status_get_vit(src)/10); // HP recovery - if( sd ) + case BA_APPLEIDUN: + #ifdef RENEWAL + hp = 100+5*skill_lv+5*(status_get_vit(src)/10); // HP recovery + #else + hp = 30+5*skill_lv+5*(status_get_vit(src)/10); // HP recovery + #endif + if( sd ) hp += 5*pc_checkskill(sd,BA_MUSICALLESSON); break; case PR_SANCTUARY: @@ -10210,8 +10214,13 @@ struct skill_unit_group* skill_unitsetting (struct block_list *src, short skilli val1*=10; //Because every 10 crit is an actual cri point. break; case BD_DRUMBATTLEFIELD: + #ifdef RENEWAL + val1 = (skilllv+5)*25; //Watk increase + val2 = skilllv*10; //Def increase + #else val1 = (skilllv+1)*25; //Watk increase val2 = (skilllv+1)*2; //Def increase + #endif break; case BD_RINGNIBELUNGEN: val1 = (skilllv+2)*25; //Watk increase diff --git a/src/map/status.c b/src/map/status.c index aa8825b58..fefa63508 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -4320,9 +4320,11 @@ static unsigned short status_calc_watk(struct block_list *bl, struct status_chan if (bl->type != BL_PC) watk += sc->data[SC_NIBELUNGEN]->val2; else { + #ifndef RENEWAL TBL_PC *sd = (TBL_PC*)bl; int index = sd->equip_index[sd->state.lr_flag?EQI_HAND_L:EQI_HAND_R]; if(index >= 0 && sd->inventory_data[index] && sd->inventory_data[index]->wlv == 4) + #endif watk += sc->data[SC_NIBELUNGEN]->val2; } } @@ -4582,11 +4584,11 @@ static defType status_calc_def(struct block_list *bl, struct status_change *sc, return 100; if(sc->data[SC_KEEPING]) return 90; - #ifndef RENEWAL // does not provide 90 DEF in renewal mode if(sc->data[SC_STEELBODY]) return 90; #endif + if(sc->data[SC_ARMORCHANGE]) def += sc->data[SC_ARMORCHANGE]->val2; if(sc->data[SC_DRUMBATTLE]) |