diff options
author | celest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-11-27 20:43:43 +0000 |
---|---|---|
committer | celest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-11-27 20:43:43 +0000 |
commit | 47d06ff92918539c0a05d91e1311bc15285a4214 (patch) | |
tree | bc18c67fdd659c7e4bbce78fd145043a47037002 /src | |
parent | 486b4f2a12b41507b67a1a93ae5871b3be447914 (diff) | |
download | hercules-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.c | 11 | ||||
-rw-r--r-- | src/map/skill.c | 14 |
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; |