summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-27 20:43:43 +0000
committercelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-27 20:43:43 +0000
commit47d06ff92918539c0a05d91e1311bc15285a4214 (patch)
treebc18c67fdd659c7e4bbce78fd145043a47037002 /src
parent486b4f2a12b41507b67a1a93ae5871b3be447914 (diff)
downloadhercules-47d06ff92918539c0a05d91e1311bc15285a4214.tar.gz
hercules-47d06ff92918539c0a05d91e1311bc15285a4214.tar.bz2
hercules-47d06ff92918539c0a05d91e1311bc15285a4214.tar.xz
hercules-47d06ff92918539c0a05d91e1311bc15285a4214.zip
Updated Slow Poison, modified checks for skill_unit_onplace abit.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@391 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/map/pc.c11
-rw-r--r--src/map/skill.c14
2 files changed, 16 insertions, 9 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index 5ec5b8a1b..7f08690ad 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -5947,10 +5947,15 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper)
return 1;
// check if we are changing from 1st to 2nd job
- if (s_class.job > 0 && s_class.job < 7 && job >= 7 && job <= 21)
- sd->change_level = sd->status.job_level;
+ if (job >= 7 && job <= 21) {
+ if (s_class.job > 0 && s_class.job < 7)
+ sd->change_level = sd->status.job_level;
+ else
+ sd->change_level = 40;
+ }
else
sd->change_level = 0;
+
pc_setglobalreg (sd, "jobchange_level", sd->change_level);
sd->status.class = sd->view_class = b_class;
@@ -7341,7 +7346,7 @@ static int pc_natural_heal_sub(struct map_session_data *sd,va_list ap) {
if ((battle_config.natural_heal_weight_rate > 100 || sd->weight*100/sd->max_weight < battle_config.natural_heal_weight_rate) &&
!pc_isdead(sd) &&
!pc_ishiding(sd) &&
- sd->sc_data[SC_POISON].timer == -1 &&
+ !(sd->sc_data[SC_POISON].timer != -1 && sd->sc_data[SC_SLOWPOISON].timer == -1) &&
sd->sc_data[SC_BERSERK].timer == -1 ) {
pc_natural_heal_hp(sd);
if( sd->sc_data && sd->sc_data[SC_EXTREMITYFIST].timer == -1 && //ˆ¢C—…?‘Ô‚Å‚ÍSP‚ª‰ñ•œ‚µ‚È‚¢
diff --git a/src/map/skill.c b/src/map/skill.c
index ed0521aec..785da6224 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -5965,14 +5965,16 @@ int skill_unit_onplace(struct skill_unit *src,struct block_list *bl,unsigned int
int type=SkillStatusChangeTable[sg->skill_id];
if(sg->src_id == bl->id)
break;
- if(sc_data && sc_data[type].timer==-1)
- skill_status_change_start(bl,type,sg->skill_lv,sg->val1,sg->val2,
- (int)src,skill_get_time2(sg->skill_id,sg->skill_lv),0);
- else if( (unit2=(struct skill_unit *)sc_data[type].val4) && unit2 != src ){
- if( unit2->group && DIFF_TICK(sg->tick,unit2->group->tick)>0 )
+ if(sc_data) {
+ if (sc_data[type].timer==-1)
skill_status_change_start(bl,type,sg->skill_lv,sg->val1,sg->val2,
(int)src,skill_get_time2(sg->skill_id,sg->skill_lv),0);
- ts->tick-=sg->interval;
+ else if( (unit2=(struct skill_unit *)sc_data[type].val4) && unit2 != src ){
+ if( unit2->group && DIFF_TICK(sg->tick,unit2->group->tick)>0 )
+ skill_status_change_start(bl,type,sg->skill_lv,sg->val1,sg->val2,
+ (int)src,skill_get_time2(sg->skill_id,sg->skill_lv),0);
+ ts->tick-=sg->interval;
+ }
}
} break;