Follow up r16738 MO_ETREMITYFIST renewal behavior.
Fixed bugreport:6580 where SC_MANHOLE targets can use items. Fixed bugreport:6636 a typo formula in WL_WHITEIMPRISON. Fixed bugreport:6685 a missing column in skill_cast_db.txt for WL_COMET entry. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16776 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
d974f37145
commit
5db62f5c84
@ -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 =======================
|
||||
|
11
src/map/pc.c
11
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
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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:
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user