summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-09-13 22:45:57 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-09-13 22:45:57 +0000
commit5021e16d2bd968ad3ea0649cdee6eb7884efe65f (patch)
tree50d462c88cf60861ba6726b4cf1fdf6341b15dc4 /src/map
parent4ba94b1074c913fc61678d06cc0e1779b7046cee (diff)
downloadhercules-5021e16d2bd968ad3ea0649cdee6eb7884efe65f.tar.gz
hercules-5021e16d2bd968ad3ea0649cdee6eb7884efe65f.tar.bz2
hercules-5021e16d2bd968ad3ea0649cdee6eb7884efe65f.tar.xz
hercules-5021e16d2bd968ad3ea0649cdee6eb7884efe65f.zip
- 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
Diffstat (limited to 'src/map')
-rw-r--r--src/map/skill.c5
-rw-r--r--src/map/status.c13
-rw-r--r--src/map/unit.c6
3 files changed, 11 insertions, 13 deletions
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]