diff options
-rw-r--r-- | db/re/skill_cast_db.txt | 60 | ||||
-rw-r--r-- | src/map/pc.c | 11 | ||||
-rw-r--r-- | src/map/script.c | 10 | ||||
-rw-r--r-- | src/map/skill.c | 11 | ||||
-rw-r--r-- | src/map/status.c | 12 | ||||
-rw-r--r-- | src/map/status.h | 3 |
6 files changed, 56 insertions, 51 deletions
diff --git a/db/re/skill_cast_db.txt b/db/re/skill_cast_db.txt index d5ad33731..e37adc082 100644 --- a/db/re/skill_cast_db.txt +++ b/db/re/skill_cast_db.txt @@ -411,7 +411,7 @@ //-- MO_EXPLOSIONSPIRITS 270,0,0,0,180000,0,0,0 //-- MO_EXTREMITYFIST -271,4000:3500:3000:2500:2000,3000:2500:2000:1500:1000,0,0,300000,0,0 +271,4000:3500:3000:2500:2000,3000:2500:2000:1500:1000,0,10000,300000,0,0 //-- MO_CHAINCOMBO 272,0,1000,0,0,0,0,0 //-- MO_COMBOFINISH @@ -1211,7 +1211,7 @@ //-- WL_HELLINFERNO 2212,3000,1000,0,15000,0,0,1000 //-- WL_COMET -2213,10000:11000:12000:13000:14000,0,15000,0,60000,1000:1500:2000:2500:3000 +2213,10000:11000:12000:13000:14000,0,0,15000,0,60000,1000:1500:2000:2500:3000 //-- WL_CHAINLIGHTNING 2214,3500:4000:4500:5000:5500,0,0,100,0,3000,1000 @@ -1837,61 +1837,61 @@ //===== Elemental Skills ======================= //-- EL_CIRCLE_OF_FIRE -8401,0,0,0,-1,0,0 +8401,0,0,0,-1,0,0,-1 //-- EL_FIRE_CLOAK -8402,0,0,0,-1,0,0 +8402,0,0,0,-1,0,0,-1 //-- EL_FIRE_MANTLE -8403,0,0,0,15000,0,0 +8403,0,0,0,15000,0,0,-1 //-- EL_WATER_SCREEN -8404,0,0,0,-1,0,0 +8404,0,0,0,-1,0,0,-1 //-- EL_WATER_DROP -8405,0,0,0,-1,0,0 +8405,0,0,0,-1,0,0,-1 //-- EL_WATER_BARRIER -8406,1000,0,0,15000,0,0 +8406,1000,0,0,15000,0,0,-1 //-- EL_WIND_STEP -8407,0,0,0,-1,0,0 +8407,0,0,0,-1,0,0,-1 //-- EL_WIND_CURTAIN -8408,0,0,0,-1,0,0 +8408,0,0,0,-1,0,0,-1 //-- EL_ZEPHYR -8409,0,0,0,15000,0,0 +8409,0,0,0,15000,0,0,-1 //-- EL_STONE_SHIELD -8411,0,0,0,-1,0,0 +8411,0,0,0,-1,0,0,-1 //-- EL_POWER_OF_GAIA -8412,0,0,0,15000,0,0 +8412,0,0,0,15000,0,0,-1 //-- EL_PYROTECHNIC -8413,0,0,0,-1,0,0 +8413,0,0,0,-1,0,0,-1 //-- EL_HEATER -8414,0,0,0,-1,0,0 +8414,0,0,0,-1,0,0,-1 //-- EL_TROPIC -8415,0,0,0,-1,0,0 +8415,0,0,0,-1,0,0,-1 //-- EL_AQUAPLAY -8416,0,0,0,-1,0,0 +8416,0,0,0,-1,0,0,-1 //-- EL_COOLER -8417,0,0,0,-1,0,0 +8417,0,0,0,-1,0,0,-1 //-- EL_CHILLY_AIR -8418,0,0,0,-1,0,0 +8418,0,0,0,-1,0,0,-1 //-- EL_GUST -8419,0,0,0,-1,0,0 +8419,0,0,0,-1,0,0,-1 //-- EL_BLAST -8420,0,0,0,-1,0,0 +8420,0,0,0,-1,0,0,-1 //-- EL_WILD_STORM -8421,0,0,0,-1,0,0 +8421,0,0,0,-1,0,0,-1 //-- EL_PETROLOGY -8422,0,0,0,-1,0,0 +8422,0,0,0,-1,0,0,-1 //-- EL_CURSED_SOIL -8423,0,0,0,-1,0,0 +8423,0,0,0,-1,0,0,-1 //-- EL_UPHEAVAL -8424,0,0,0,-1,0,0 +8424,0,0,0,-1,0,0,-1 //-- EL_TIDAL_WEAPON -8433,0,0,0,-1,0,0 +8433,0,0,0,-1,0,0,-1 //-- EL_TYPOON_MIS -8437,0,0,0,15000,0,0 +8437,0,0,0,15000,0,0,-1 //-- EL_STONE_HAMMER -8439,0,0,0,5000,0,0 +8439,0,0,0,5000,0,0,-1 //-- EL_ROCK_CRUSHER -8440,0,0,0,15000,0,0 +8440,0,0,0,15000,0,0,-1 //-- EL_ROCK_CRUSHER_ATK -8441,0,0,0,15000,0,0 +8441,0,0,0,15000,0,0,-1 //========================================== //===== Guild Skills ======================= diff --git a/src/map/pc.c b/src/map/pc.c index a8ccc5c47..ce58ed4b9 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4145,6 +4145,7 @@ int pc_useitem(struct map_session_data *sd,int n) sd->sc.data[SC_TRICKDEAD] || sd->sc.data[SC_HIDING] || sd->sc.data[SC__SHADOWFORM] || + sd->sc.data[SC__MANHOLE] || sd->sc.data[SC_KAGEHUMI] || (sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOITEM) )) @@ -6957,14 +6958,8 @@ int pc_itemheal(struct map_session_data *sd,int itemid, int hp,int sp) sp += sp / 10; } #ifdef RENEWAL - if( sd->sc.data[SC_EXTREMITYFIST] ){ - const struct TimerData *timer; - int tick = skill_get_time2(MO_EXTREMITYFIST, sd->sc.data[SC_EXTREMITYFIST]->val1); - - timer = get_timer(sd->sc.data[SC_EXTREMITYFIST]->timer); - if( DIFF_TICK(tick, DIFF_TICK(timer->tick, gettick())) < 10000 )// 10 sec - sp = 0; - } + if( sd->sc.data[SC_EXTREMITYFIST2] ) + sp = 0; #endif } diff --git a/src/map/script.c b/src/map/script.c index c829df26e..36b83215a 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -5351,14 +5351,8 @@ BUILDIN_FUNC(percentheal) if( sd == NULL ) return 0; #ifdef RENEWAL - if( sd->sc.data[SC_EXTREMITYFIST] ){ - const struct TimerData *timer; - int tick = skill_get_time2(MO_EXTREMITYFIST, sd->sc.data[SC_EXTREMITYFIST]->val1); - - timer = get_timer(sd->sc.data[SC_EXTREMITYFIST]->timer); - if( DIFF_TICK(tick, DIFF_TICK(timer->tick, gettick())) < 10000 )// 10 sec - sp = 0; - } + if( sd->sc.data[SC_EXTREMITYFIST2] ) + sp = 0; #endif pc_percentheal(sd,hp,sp); return 0; diff --git a/src/map/skill.c b/src/map/skill.c index 29500b8b0..7937498ea 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1700,7 +1700,7 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list * switch(skillid){ case MO_EXTREMITYFIST: - sc_start(src,status_skill2sc(skillid),100,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(src,SC_EXTREMITYFIST,100,skilllv,skill_get_time2(skillid,skilllv)); break; case GS_FULLBUSTER: sc_start(src,SC_BLIND,2*skilllv,skilllv,skill_get_time2(skillid,skilllv)); @@ -3634,6 +3634,9 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int { status_change_end(src, SC_EXPLOSIONSPIRITS, INVALID_TIMER); status_change_end(src, SC_BLADESTOP, INVALID_TIMER); +#ifdef RENEWAL + sc_start(src,SC_EXTREMITYFIST2,100,skilllv,skill_get_time(skillid,skilllv)); +#endif } //Client expects you to move to target regardless of distance { @@ -17497,7 +17500,11 @@ static void skill_readdb(void) sv_readdb(db_path, DBPATH"skill_db.txt" , ',', 17, 17, MAX_SKILL_DB, skill_parse_row_skilldb); sv_readdb(db_path, DBPATH"skill_require_db.txt" , ',', 32, 32, MAX_SKILL_DB, skill_parse_row_requiredb); - sv_readdb(db_path, DBPATH"skill_cast_db.txt" , ',', 7, 8, MAX_SKILL_DB, skill_parse_row_castdb); +#ifdef RENEWAL + sv_readdb(db_path, "re/skill_cast_db.txt" , ',', 8, 8, MAX_SKILL_DB, skill_parse_row_castdb); +#else + sv_readdb(db_path, "re-pre/skill_cast_db.txt" , ',', 7, 7, MAX_SKILL_DB, skill_parse_row_castdb); +#endif sv_readdb(db_path, DBPATH"skill_castnodex_db.txt", ',', 2, 3, MAX_SKILL_DB, skill_parse_row_castnodexdb); sv_readdb(db_path, DBPATH"skill_unit_db.txt" , ',', 8, 8, MAX_SKILL_DB, skill_parse_row_unitdb); diff --git a/src/map/status.c b/src/map/status.c index d6e96e522..585b90fe9 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -312,7 +312,10 @@ void initChangeTables(void) { add_sc( MO_BLADESTOP , SC_BLADESTOP_WAIT ); add_sc( MO_BLADESTOP , SC_BLADESTOP ); set_sc( MO_EXPLOSIONSPIRITS , SC_EXPLOSIONSPIRITS, SI_EXPLOSIONSPIRITS, SCB_CRI|SCB_REGEN ); - set_sc( MO_EXTREMITYFIST , SC_EXTREMITYFIST , SI_EXTREMITYFIST , SCB_REGEN ); + set_sc( MO_EXTREMITYFIST , SC_EXTREMITYFIST , SI_BLANK , SCB_REGEN ); +#ifdef RENEWAL + set_sc( MO_EXTREMITYFIST , SC_EXTREMITYFIST2 , SI_EXTREMITYFIST , SCB_NONE ); +#endif add_sc( SA_MAGICROD , SC_MAGICROD ); set_sc( SA_AUTOSPELL , SC_AUTOSPELL , SI_AUTOSPELL , SCB_NONE ); set_sc( SA_FLAMELAUNCHER , SC_FIREWEAPON , SI_FIREWEAPON , SCB_ATK_ELE ); @@ -6079,8 +6082,11 @@ int status_get_sc_def(struct block_list *bl, enum sc_type type, int rate, int ti rate -= (status_get_lv(bl) / 5 + status->vit / 4 + status->agi / 10)*100; // Lineal Reduction of Rate break; case SC_WHITEIMPRISON: - rate -= (status_get_lv(bl) / 5 + status->vit / 4 + status->agi / 10)*100; - if( tick != 5000) // not applied on caster + if( tick == 5000 ) // 100% on caster + break; + if( bl->type == BL_PC ) + tick -= (status_get_lv(bl) / 5 + status->vit / 4 + status->agi / 10)*100; + else tick -= (status->vit + status->luk) / 20 * 1000; break; case SC_BURNING: diff --git a/src/map/status.h b/src/map/status.h index 442d59986..8fa812432 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -635,6 +635,9 @@ typedef enum sc_type { SC_ZANGETSU, SC_GENSOU, SC_AKAITSUKI, +#ifdef RENEWAL + SC_EXTREMITYFIST2, +#endif SC_MAX, //Automatically updated max, used in for's to check we are within bounds. } sc_type; |