Przeglądaj źródła

- 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://svn.code.sf.net/p/rathena/svn/trunk@11193 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 17 lat temu
rodzic
commit
d672552159

+ 7 - 0
Changelog-Trunk.txt

@@ -3,6 +3,13 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
+2007/09/13
+	* 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. [Skotlex]
 2007/09/12
 	* Fixed a typo in r11179 causing party invitation to fail
 	* Added SI_STEELBODY properly (value from packet capture) [ultramage]

+ 2 - 0
conf-tmpl/Changelog.txt

@@ -1,5 +1,7 @@
 Date	Added
 
+2007/09/13
+	* Trigger rate Miracle of the Sun, Moon and Stars is now 0.02% [Skotlex]
 2007/09/10
 	* Added 'quest_exp_rate', adjusts exp gained by 'getexp' [ultramage]
 2007/09/05

+ 1 - 1
conf-tmpl/battle/skill.conf

@@ -260,7 +260,7 @@ allow_skill_without_day: no
 allow_es_magic_player: no
 
 // Miracle of the Sun, Moon and Stars skill ratio (100% = 10000)
-sg_miracle_skill_ratio: 1
+sg_miracle_skill_ratio: 2
 
 // Miracle of the Sun, Moon and Stars skill duration in milliseconds
 sg_miracle_skill_duration: 3600000

+ 5 - 0
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;

+ 6 - 7
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;
 }
 

+ 0 - 6
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]