summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-14 19:39:42 +0000
committercelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-14 19:39:42 +0000
commitbe2a001e897947fb0def4443dc7c0967f86574a7 (patch)
treec6486df73c979cc68d0b9cd94da5a3f64c32e770 /src
parent76c518cd8e0be4c3c6cb3b7e59bc0b5742b1df69 (diff)
downloadhercules-be2a001e897947fb0def4443dc7c0967f86574a7.tar.gz
hercules-be2a001e897947fb0def4443dc7c0967f86574a7.tar.bz2
hercules-be2a001e897947fb0def4443dc7c0967f86574a7.tar.xz
hercules-be2a001e897947fb0def4443dc7c0967f86574a7.zip
Skill updates.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/athena@178 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/map/battle.c10
-rw-r--r--src/map/pc.c2
-rw-r--r--src/map/skill.c21
-rw-r--r--src/map/skill.h8
4 files changed, 31 insertions, 10 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index 6b4f90485..405abaea1 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -4619,10 +4619,12 @@ int battle_weapon_attack( struct block_list *src,struct block_list *target,
}
}
if(t_sc_data && t_sc_data[SC_BLADESTOP_WAIT].timer != -1){
- int lv = t_sc_data[SC_BLADESTOP_WAIT].val1;
- skill_status_change_end(target,SC_BLADESTOP_WAIT,-1);
- skill_status_change_start(src,SC_BLADESTOP,lv,1,(int)src,(int)target,skill_get_time2(MO_BLADESTOP,lv),0);
- skill_status_change_start(target,SC_BLADESTOP,lv,2,(int)target,(int)src,skill_get_time2(MO_BLADESTOP,lv),0);
+ if (!(src->type = BL_MOB && mob_db[((struct mob_data *)src)->class].mode&0x32)) {
+ int lv = t_sc_data[SC_BLADESTOP_WAIT].val1;
+ skill_status_change_end(target,SC_BLADESTOP_WAIT,-1);
+ skill_status_change_start(src,SC_BLADESTOP,lv,1,(int)src,(int)target,skill_get_time2(MO_BLADESTOP,lv),0);
+ skill_status_change_start(target,SC_BLADESTOP,lv,2,(int)target,(int)src,skill_get_time2(MO_BLADESTOP,lv),0);
+ }
}
if(t_sc_data && t_sc_data[SC_SPLASHER].timer!=-1) //殴ったので対象のベナムスプラッシャー状態を解除
skill_status_change_end(target,SC_SPLASHER,-1);
diff --git a/src/map/pc.c b/src/map/pc.c
index 83116add7..0c204c707 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -3279,7 +3279,7 @@ int pc_steal_item(struct map_session_data *sd,struct block_list *bl)
if(!md->state.steal_flag && mob_db[md->class].mexp <= 0 && !(mob_db[md->class].mode&0x20) && md->sc_data[SC_STONE].timer == -1 && md->sc_data[SC_FREEZE].timer == -1 &&
(!(md->class>1324 && md->class<1364))) // prevent stealing from treasure boxes [Valaris]
{
- skill = sd->paramc[4] - mob_db[md->class].dex + pc_checkskill(sd,TF_STEAL) + 10;
+ skill = sd->paramc[4] - mob_db[md->class].dex + pc_checkskill(sd,TF_STEAL)*3 + 10;
if(0 < skill)
{
diff --git a/src/map/skill.c b/src/map/skill.c
index b1b0ed2fb..433c03a93 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -8224,7 +8224,7 @@ int skill_status_change_timer(int tid, unsigned int tick, int id, int data)
else
sc_data[type].timer=add_timer(1000+tick,skill_status_change_timer, bl->id, data );
break;
- case SC_TENSIONRELAX: /* テンションリラックス */
+ case SC_TENSIONRELAX: /* テンションリラックス */
if(sd){ /* SPがあって、HPが?タンでなければ?? */
if( sd->status.sp > 12 && sd->status.max_hp > sd->status.hp ){
/* if(sc_data[type].val2 % (sc_data[type].val1+3) ==0 ){
@@ -8240,6 +8240,25 @@ int skill_status_change_timer(int tid, unsigned int tick, int id, int data)
skill_status_change_end(&sd->bl,SC_TENSIONRELAX,-1);
}
break;
+ case SC_HEADCRUSH: // temporary damage [celest]
+// case SC_BLEEDING:
+ case SC_POISON2:
+ if((--sc_data[type].val3) > 0) {
+ int hp = battle_get_max_hp(bl);
+ if(bl->type == BL_PC) {
+ hp = 3 + hp*3/200;
+ pc_heal((struct map_session_data *)bl,-hp,0);
+ }
+ else if(bl->type == BL_MOB) {
+ struct mob_data *md;
+ if((md=((struct mob_data *)bl)) == NULL)
+ break;
+ hp = 3 + hp/200;
+ md->hp -= hp;
+ }
+ sc_data[type].timer=add_timer(1000+tick,skill_status_change_timer, bl->id, data );
+ }
+ break;
/* 時間切れ無し?? */
case SC_AETERNA:
diff --git a/src/map/skill.h b/src/map/skill.h
index c82a0c932..6ea93f819 100644
--- a/src/map/skill.h
+++ b/src/map/skill.h
@@ -331,9 +331,10 @@ enum { // struct map_session_data の status_changeの番号テーブル
SC_MINDBREAKER =191,
SC_SPELLBREAKER =192,
- SC_EDP = 114, // [Celest]
- SC_MARIONETTE2 = 122,
- SC_BLEEDING = 124,
+ SC_EDP = 114, // [Celest]
+ SC_MARIONETTE2 = 122, // marionette target
+ SC_BLEEDING = 124, // temporarily same id as headcrush
+ SC_POISON2 = 193, // for EDP
// -- testing various SC effects
// SC_AURABLADE =81,
@@ -854,4 +855,3 @@ enum {
};
#endif
-