瀏覽代碼

- Fixed the reported map when there is an error in report_src (script.c)
- Earth attacks now work on hidden enemies.


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

skotlex 19 年之前
父節點
當前提交
36ff68ba2f
共有 3 個文件被更改,包括 20 次插入10 次删除
  1. 4 0
      Changelog-Trunk.txt
  2. 9 2
      src/map/script.c
  3. 7 8
      src/map/status.c

+ 4 - 0
Changelog-Trunk.txt

@@ -5,6 +5,10 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.  EV
 GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
 
 2006/02/03
+	* Fixed the debug script messages specifying the wrong mapname for NPCs.
+	  [Skotlex]
+	* Now you can't hide from earth elemental attacks (status_check_skilluse).
+	  [Skotlex]
 	* Grand Cross/Grand Darkness can no longer get the ignore defense -armor
 	  piercing bonuses from cards. [Skotlex]
 	* Loki's weil is now ignored by bosses. [Skotlex]

+ 9 - 2
src/map/script.c

@@ -723,10 +723,17 @@ static void report_src(struct script_state *st) {
 	if (!bl) return;
 	switch (bl->type) {
 		case BL_NPC:
-			ShowDebug("Source (NPC): %s at %s (%d,%d)\n", ((struct npc_data *)bl)->name, mapindex_id2name(bl->m), bl->x, bl->y);
+			if (bl->m >=0)
+				ShowDebug("Source (NPC): %s at %s (%d,%d)\n", ((struct npc_data *)bl)->name, map[bl->m].name, bl->x, bl->y);
+			else
+				ShowDebug("Source (NPC): %s (invisible/not on a map)\n", ((struct npc_data *)bl)->name);
+				
 		break;
 		default:
-			ShowDebug("Source (Non-NPC): %s (%d,%d)\n", mapindex_id2name(bl->m), bl->x, bl->y);
+			if (bl->m >=0)
+				ShowDebug("Source (Non-NPC): type %d at %s (%d,%d)\n", bl->type, map[bl->m].name, bl->x, bl->y);
+			else
+				ShowDebug("Source (Non-NPC): type %d (invisible/not on a map)\n", bl->type);
 		break;
 	}
 }

+ 7 - 8
src/map/status.c

@@ -726,15 +726,14 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
 			return 0;
 	}
 
-	if (src) {
-		race = status_get_race(src); 
-	} else { //Ground skill, only earth-elemental skills have detecting-hitting capabilities.
-		race = 0;
-		if(skill_get_pl(skill_num) == 2)
-			mode|= MD_DETECTOR;
-	}
-	hide_flag = flag?OPTION_HIDE:(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK); //If targetting, cloak+hide protect you, otherwise only hiding does.
+	race = src?status_get_race(src):0; 
+	//If targetting, cloak+hide protect you, otherwise only hiding does.
+	hide_flag = flag?OPTION_HIDE:(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK);
 		
+ 	//You cannot hide from ground skills.
+	if(skill_get_pl(skill_num) == 2)
+		hide_flag &= ~OPTION_HIDE;
+	
 	switch (target->type)
 	{
 	case BL_PC: