瀏覽代碼

Expanded the poor "npc_touch_areanpc : some bug" with info about which cell exactly caused the problem.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12024 54d463be-8e91-2dee-dedb-b68131a5f0ec
ultramage 17 年之前
父節點
當前提交
a4007e12d4
共有 3 個文件被更改,包括 9 次插入8 次删除
  1. 1 1
      db/produce_db.txt
  2. 0 1
      db/skill_nocast_db.txt
  3. 8 6
      src/map/npc.c

+ 1 - 1
db/produce_db.txt

@@ -1,4 +1,4 @@
-// Blacksmith and Alchemist Produce Database
+// Item Produce Database
 //
 // Structure of Database:
 // ProduceItemID,ItemLV,RequireSkill,RequireSkillLv,MaterialID1,MaterialAmount1,......

+ 0 - 1
db/skill_nocast_db.txt

@@ -17,7 +17,6 @@
 //  512 = Cannot be used in zone 5 maps
 //  1024 = Cannot be used in zone 6 maps
 //  2048 = Cannot be used in zone 7 maps
-
 //
 // Example:
 // 8,6 = Endure cannot be used in PvP and GvG maps (2+4)

+ 8 - 6
src/map/npc.c

@@ -710,8 +710,9 @@ int npc_event(struct map_session_data* sd, const char* eventname, int mob_kill)
  *------------------------------------------*/
 int npc_touch_areanpc(struct map_session_data* sd, int m, int x, int y)
 {
-	int i,f=1;
 	int xs,ys;
+	int f = 1;
+	int i;
 
 	nullpo_retr(1, sd);
 
@@ -720,8 +721,8 @@ int npc_touch_areanpc(struct map_session_data* sd, int m, int x, int y)
 
 	for(i=0;i<map[m].npc_num;i++)
 	{
-		if (map[m].npc[i]->sc.option&OPTION_INVISIBLE) {	// –³Œø‰»‚³‚ê‚Ä‚¢‚é
-			f=0;
+		if (map[m].npc[i]->sc.option&OPTION_INVISIBLE) {
+			f=0; // a npc was found, but it is disabled; don't print warning
 			continue;
 		}
 
@@ -741,9 +742,10 @@ int npc_touch_areanpc(struct map_session_data* sd, int m, int x, int y)
 		&&  y >= map[m].npc[i]->bl.y-ys && y <= map[m].npc[i]->bl.y+ys )
 			break;
 	}
-	if (i==map[m].npc_num) {
-		if (f)
-			ShowError("npc_touch_areanpc : some bug \n");
+	if( i == map[m].npc_num )
+	{
+		if( f == 1 ) // no npc found
+			ShowError("npc_touch_areanpc : stray NPC cell on coordinates '%s',%d,%d\n", map[m].name, x, y);
 		return 1;
 	}
 	switch(map[m].npc[i]->subtype) {