From 5021e16d2bd968ad3ea0649cdee6eb7884efe65f Mon Sep 17 00:00:00 2001 From: skotlex Date: Thu, 13 Sep 2007 22:45:57 +0000 Subject: - Corrected SG Miracle to trigger per attack, not per walked tile. Trigger rate is now 0.02% - Corrected the warmth skills not clearing up correctly the previous field when you place another one down. - Corrected vit not affecting the HP bonus that Super Novices, Ninjas and Gunslingers get. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11193 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/skill.c | 5 +++++ src/map/status.c | 13 ++++++------- src/map/unit.c | 6 ------ 3 files changed, 11 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/map/skill.c b/src/map/skill.c index f27d29298..c2aa881f4 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1600,6 +1600,10 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list * break; } + if(sd && (sd->class_&MAPID_UPPERMASK) == MAPID_STAR_GLADIATOR && + rand()%10000 < battle_config.sg_miracle_skill_ratio) //SG_MIRACLE [Komurka] + sc_start(src,SC_MIRACLE,100,1,battle_config.sg_miracle_skill_duration); + if(sd && skillid && attack_type&BF_MAGIC && status_isdead(bl) && !(skill_get_inf(skillid)&(INF_GROUND_SKILL|INF_SELF_SKILL)) && (rate=pc_checkskill(sd,HW_SOULDRAIN))>0 @@ -6374,6 +6378,7 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s case SG_SUN_WARM: case SG_MOON_WARM: case SG_STAR_WARM: + skill_clear_unitgroup(src); if ((sg = skill_unitsetting(src,skillid,skilllv,src->x,src->y,0))) sc_start4(src,type,100,skilllv,0,0,(int)sg,skill_get_time(skillid,skilllv)); flag|=1; diff --git a/src/map/status.c b/src/map/status.c index 1ea721640..b1e2bb1df 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1528,14 +1528,7 @@ static void status_calc_sigma(void) static unsigned int status_base_pc_maxhp(struct map_session_data* sd, struct status_data* status) { unsigned int val; - val = 35 + sd->status.base_level*hp_coefficient2[sd->status.class_]/100 + hp_sigma_val[sd->status.class_][sd->status.base_level]; - val += val * status->vit/100; // +1% per each point of VIT - - if (sd->class_&JOBL_UPPER) - val += val * 25/100; //Trans classes get a 25% hp bonus - else if (sd->class_&JOBL_BABY) - val -= val * 30/100; //Baby classes get a 30% hp penalty if((sd->class_&MAPID_UPPERMASK) == MAPID_NINJA || (sd->class_&MAPID_UPPERMASK) == MAPID_GUNSLINGER) val += 100; //Since their HP can't be approximated well enough without this. @@ -1544,6 +1537,12 @@ static unsigned int status_base_pc_maxhp(struct map_session_data* sd, struct sta if((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.base_level >= 99) val += 2000; //Supernovice lvl99 hp bonus. + val += val * status->vit/100; // +1% per each point of VIT + + if (sd->class_&JOBL_UPPER) + val += val * 25/100; //Trans classes get a 25% hp bonus + else if (sd->class_&JOBL_BABY) + val -= val * 30/100; //Baby classes get a 30% hp penalty return val; } diff --git a/src/map/unit.c b/src/map/unit.c index dc57dfd38..b92804459 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -186,12 +186,6 @@ static int unit_walktoxy_timer(int tid,unsigned int tick,int id,int data) map_foreachinrange(skill_guildaura_sub, bl,2, BL_PC, bl->id, sd->status.guild_id, strvit, agidex); } - if ( - (sd->class_&MAPID_UPPERMASK) == MAPID_STAR_GLADIATOR && - !(ud->walk_count%WALK_SKILL_INTERVAL) && - rand()%10000 < battle_config.sg_miracle_skill_ratio - ) //SG_MIRACLE [Komurka] - sc_start(&sd->bl,SC_MIRACLE,100,1,battle_config.sg_miracle_skill_duration); } else if (md) { if(battle_config.mob_warp&1 && map_getcell(bl->m,x,y,CELL_CHKNPC) && npc_touch_areanpc2(bl)) // Enable mobs to step on warps. [Skotlex] -- cgit v1.2.3-70-g09d2