* Fixed HP Conversion to properly not reduce HP if SP is full
* Updated Defender git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1427 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
05e7c68ef7
commit
e381a3d6cd
@ -236,7 +236,7 @@
|
|||||||
370,0,300,0,0 //CH_PALMSTRIKE
|
370,0,300,0,0 //CH_PALMSTRIKE
|
||||||
371,0,0,0,2000:4000:6000:8000:10000 //CH_TIGERFIST#伏虎拳#
|
371,0,0,0,2000:4000:6000:8000:10000 //CH_TIGERFIST#伏虎拳#
|
||||||
372,0,800:800:800:800:800:1000:1000:1000:1000:1000,0,0 //CH_CHAINCRUSH#連柱崩撃#
|
372,0,800:800:800:800:800:1000:1000:1000:1000:1000,0,0 //CH_CHAINCRUSH#連柱崩撃#
|
||||||
373,0,2000:2500:3000:3500:4000,0,0 //PF_HPCONVERSION#ライフ置き換え#
|
373,0,1000:1200:1400:1600:1800,0,0 //PF_HPCONVERSION#ライフ置き換え#
|
||||||
374,3000,5000,0,0 //PF_SOULCHANGE#ソウルチェンジ#
|
374,3000,5000,0,0 //PF_SOULCHANGE#ソウルチェンジ#
|
||||||
//375,0,10000:10000:10000:10000:15000,0,0 //PF_SOULBURN#ソウルバーン#
|
//375,0,10000:10000:10000:10000:15000,0,0 //PF_SOULBURN#ソウルバーン#
|
||||||
|
|
||||||
|
@ -4380,17 +4380,17 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
|
|||||||
case PF_HPCONVERSION: /* ライフ置き換え */
|
case PF_HPCONVERSION: /* ライフ置き換え */
|
||||||
clif_skill_nodamage(src, bl, skillid, skilllv, 1);
|
clif_skill_nodamage(src, bl, skillid, skilllv, 1);
|
||||||
if (sd) {
|
if (sd) {
|
||||||
int conv_hp, conv_sp;
|
int hp, sp;
|
||||||
conv_hp = sd->status.max_hp / 10; //基本はHPの10%
|
hp = sd->status.max_hp / 10; //Šî–{‚ÍHP‚Ì10%
|
||||||
//sd->status.hp -= conv_hp; //HPを減らす
|
sp = hp * 10 * skilllv / 100;
|
||||||
conv_sp = conv_hp * 10 * skilllv / 100;
|
if (sd->status.sp + sp > sd->status.max_sp)
|
||||||
if (sd->status.sp + conv_sp > sd->status.max_sp)
|
sp = sd->status.max_sp - sd->status.sp;
|
||||||
conv_hp = sd->status.max_sp - sd->status.sp;
|
// we need to check with the sp that was taken away when casting too
|
||||||
if (pc_checkoversp(sd))
|
if (sd->status.sp + skill_get_sp(skillid, skilllv) >= sd->status.max_sp)
|
||||||
conv_hp = conv_sp = 0;
|
hp = sp = 0;
|
||||||
//sd->status.sp += conv_sp; //SPを?やす
|
pc_heal(sd, -hp, sp);
|
||||||
pc_heal(sd, -conv_hp, conv_sp);
|
clif_heal(sd->fd, SP_SP, sp);
|
||||||
clif_heal(sd->fd, SP_SP, conv_sp);
|
clif_updatestatus(sd, SP_SP);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case HT_REMOVETRAP: /* リム?ブトラップ */
|
case HT_REMOVETRAP: /* リム?ブトラップ */
|
||||||
|
@ -1247,9 +1247,9 @@ int status_calc_pc(struct map_session_data* sd,int first)
|
|||||||
sd->speed = (sd->speed * 125) / 100;
|
sd->speed = (sd->speed * 125) / 100;
|
||||||
}
|
}
|
||||||
if(sd->sc_data[SC_DEFENDER].timer != -1) {
|
if(sd->sc_data[SC_DEFENDER].timer != -1) {
|
||||||
sd->aspd += (550 - sd->sc_data[SC_DEFENDER].val1*50);
|
//sd->aspd += (550 - sd->sc_data[SC_DEFENDER].val1*50);
|
||||||
// removed as of 12/14's patch [celest]
|
aspd_rate += (25 - sd->sc_data[SC_DEFENDER].val1*5);
|
||||||
//sd->speed = (sd->speed * (155 - sd->sc_data[SC_DEFENDER].val1*5)) / 100;
|
sd->speed = (sd->speed * (155 - sd->sc_data[SC_DEFENDER].val1*5)) / 100;
|
||||||
}
|
}
|
||||||
if(sd->sc_data[SC_ENCPOISON].timer != -1)
|
if(sd->sc_data[SC_ENCPOISON].timer != -1)
|
||||||
sd->addeff[4] += sd->sc_data[SC_ENCPOISON].val2;
|
sd->addeff[4] += sd->sc_data[SC_ENCPOISON].val2;
|
||||||
@ -1528,8 +1528,7 @@ int status_calc_speed (struct map_session_data *sd)
|
|||||||
sd->speed = (sd->speed * 125) / 100;
|
sd->speed = (sd->speed * 125) / 100;
|
||||||
}
|
}
|
||||||
if(sd->sc_data[SC_DEFENDER].timer != -1) {
|
if(sd->sc_data[SC_DEFENDER].timer != -1) {
|
||||||
// removed as of 12/14's patch [celest]
|
sd->speed = (sd->speed * (155 - sd->sc_data[SC_DEFENDER].val1*5)) / 100;
|
||||||
//sd->speed = (sd->speed * (155 - sd->sc_data[SC_DEFENDER].val1*5)) / 100;
|
|
||||||
}
|
}
|
||||||
if( sd->sc_data[SC_DANCING].timer!=-1 ){
|
if( sd->sc_data[SC_DANCING].timer!=-1 ){
|
||||||
sd->speed = (int) ((double)sd->speed * (6.- 0.4 * pc_checkskill(sd, ((s_class.job == 19) ? BA_MUSICALLESSON : DC_DANCINGLESSON))));
|
sd->speed = (int) ((double)sd->speed * (6.- 0.4 * pc_checkskill(sd, ((s_class.job == 19) ? BA_MUSICALLESSON : DC_DANCINGLESSON))));
|
||||||
@ -2514,9 +2513,8 @@ int status_get_speed(struct block_list *bl)
|
|||||||
if(sc_data[SC_STEELBODY].timer!=-1)
|
if(sc_data[SC_STEELBODY].timer!=-1)
|
||||||
speed = speed*125/100;
|
speed = speed*125/100;
|
||||||
//ディフェンダー時は加算
|
//ディフェンダー時は加算
|
||||||
// removed as of 12/14's patch [celest]
|
if(sc_data[SC_DEFENDER].timer!=-1)
|
||||||
/*if(sc_data[SC_DEFENDER].timer!=-1)
|
speed = (speed * (155 - sc_data[SC_DEFENDER].val1*5)) / 100;
|
||||||
speed = (speed * (155 - sc_data[SC_DEFENDER].val1*5)) / 100;*/
|
|
||||||
//踊り状態は4倍遅い
|
//踊り状態は4倍遅い
|
||||||
if(sc_data[SC_DANCING].timer!=-1 )
|
if(sc_data[SC_DANCING].timer!=-1 )
|
||||||
speed *= 6;
|
speed *= 6;
|
||||||
@ -2596,7 +2594,8 @@ int status_get_adelay(struct block_list *bl)
|
|||||||
aspd_rate -= sc_data[i].val2;
|
aspd_rate -= sc_data[i].val2;
|
||||||
//ディフェンダー時は加算
|
//ディフェンダー時は加算
|
||||||
if(sc_data[SC_DEFENDER].timer != -1)
|
if(sc_data[SC_DEFENDER].timer != -1)
|
||||||
adelay += (1100 - sc_data[SC_DEFENDER].val1*100);
|
aspd_rate += (25 - sc_data[SC_DEFENDER].val1*5);
|
||||||
|
//adelay += (1100 - sc_data[SC_DEFENDER].val1*100);
|
||||||
if(sc_data[SC_GOSPEL].timer!=-1 &&
|
if(sc_data[SC_GOSPEL].timer!=-1 &&
|
||||||
sc_data[SC_GOSPEL].val4 == BCT_ENEMY &&
|
sc_data[SC_GOSPEL].val4 == BCT_ENEMY &&
|
||||||
sc_data[SC_GOSPEL].val3 == 8)
|
sc_data[SC_GOSPEL].val3 == 8)
|
||||||
@ -2652,7 +2651,8 @@ int status_get_amotion(struct block_list *bl)
|
|||||||
if( sc_data[i=SC_SPEEDPOTION3].timer!=-1 || sc_data[i=SC_SPEEDPOTION2].timer!=-1 || sc_data[i=SC_SPEEDPOTION1].timer!=-1 || sc_data[i=SC_SPEEDPOTION0].timer!=-1)
|
if( sc_data[i=SC_SPEEDPOTION3].timer!=-1 || sc_data[i=SC_SPEEDPOTION2].timer!=-1 || sc_data[i=SC_SPEEDPOTION1].timer!=-1 || sc_data[i=SC_SPEEDPOTION0].timer!=-1)
|
||||||
aspd_rate -= sc_data[i].val2;
|
aspd_rate -= sc_data[i].val2;
|
||||||
if(sc_data[SC_DEFENDER].timer != -1)
|
if(sc_data[SC_DEFENDER].timer != -1)
|
||||||
amotion += (550 - sc_data[SC_DEFENDER].val1*50);
|
aspd_rate += (25 - sc_data[SC_DEFENDER].val1*5);
|
||||||
|
//amotion += (550 - sc_data[SC_DEFENDER].val1*50);
|
||||||
}
|
}
|
||||||
if(aspd_rate != 100)
|
if(aspd_rate != 100)
|
||||||
amotion = amotion*aspd_rate/100;
|
amotion = amotion*aspd_rate/100;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user