Pārlūkot izejas kodu

- Hopefully fixed for sure mobs getting extra stats when changing-class due to the mobs level up setting.
- Removed a piece of code that should no longer be needed due to the combo-skill setting
- Added a status_check_skilluse call in Sightblaster to prevent it from hitting hidden/cloaked/act-dead/etc players.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7018 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 19 gadi atpakaļ
vecāks
revīzija
8cd413cc34
3 mainītis faili ar 11 papildinājumiem un 7 dzēšanām
  1. 8 0
      Changelog-Trunk.txt
  2. 0 5
      src/map/skill.c
  3. 3 2
      src/map/status.c

+ 8 - 0
Changelog-Trunk.txt

@@ -4,6 +4,14 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/06/06
+	* Hopefully fixed for sure mobs getting extra stats when changing-class due
+	  to the mobs level up setting. [Skotlex]
+	* Removed a piece of code that should no longer be needed due to the
+	  combo-skill setting (inf = self, inf2 = no-target-self) which is blocking
+	  self-skills from being used on others (pets/mobs should be allowed to do
+	  that)  [Skotlex]
+	* Added a status_check_skilluse call in Sightblaster to prevent it from
+	  hitting hidden/cloaked/act-dead/etc players. [Skotlex]
 	* Fixed firewall counter going down by 2 each hit rather than 1. [Skotlex]
 	* Fixed Soul Burn not zapping away all SP. [Skotlex]
 	* The monsters can level up setting will not take effect when the mob's

+ 0 - 5
src/map/skill.c

@@ -3155,11 +3155,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 			return skill_castend_pos2(src,src->x,src->y,skillid,skilllv,tick,0);
 	}
 
-	//Self skill with target changed? We assume these are offensive auto-select-target skills. [Skotlex]
-	//But only do this on the first call (flag&~1)
-	if (!(flag&1) && skill_get_inf(skillid)&INF_SELF_SKILL && src != bl && !(skill_get_nk(skillid)&NK_NO_DAMAGE))
-		return skill_castend_damage_id (src, bl, skillid, skilllv, tick, flag);
-	
 	if (skillid > 0 && skillid < MAX_SKILL)
 		type = SkillStatusChangeTable[skillid];
 	

+ 3 - 2
src/map/status.c

@@ -1029,7 +1029,7 @@ int status_calc_mob(struct mob_data* md, int first)
 
 	if(first)
 	{	//Set basic level on respawn.
-		if (md->spawn && !(flag&2))
+		if (md->spawn && !(first&2))
 		  	md->level = md->spawn->level;
 		else
 			md->level = md->db->lv; // [Valaris]
@@ -6124,7 +6124,8 @@ int status_change_timer_sub(struct block_list *bl, va_list ap )
 		break;
 	case SC_SIGHTBLASTER:
 		{
-			if (sc && sc->count && sc->data[type].val2 > 0 && battle_check_target( src, bl, BCT_ENEMY ) > 0)
+			if (sc && sc->count && sc->data[type].val2 > 0 && battle_check_target( src, bl, BCT_ENEMY ) > 0 &&
+				status_check_skilluse(src, bl, WZ_SIGHTBLASTER, 2))
 			{	//sc_ check prevents a single round of Sight Blaster hitting multiple opponents. [Skotlex]
 				skill_attack(BF_MAGIC,src,src,bl,WZ_SIGHTBLASTER,1,tick,0);
 				sc->data[type].val2 = 0; //This signals it to end.