Переглянути джерело

* Fixed quest_check checking exactly 3 quest objectives instead of MAX_QUEST_OBJECTIVES (since r13959).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14800 54d463be-8e91-2dee-dedb-b68131a5f0ec
Gepard 14 роки тому
батько
коміт
e9be30aea1
2 змінених файлів з 10 додано та 12 видалено
  1. 2 0
      Changelog-Trunk.txt
  2. 8 12
      src/map/quest.c

+ 2 - 0
Changelog-Trunk.txt

@@ -1,5 +1,7 @@
 Date	Added
 
+2011/04/20
+	* Fixed quest_check checking exactly 3 quest objectives instead of MAX_QUEST_OBJECTIVES (since r13959). [Gepard]
 2011/04/17
 	* Updated packet for the view players' equip feature for 2010-11-24aRagexeRE+ and made it support robes (follow up to r14797). [Ai4rei]
 	- Fixed spawn/walking packets using wrong variable for shifting buffer reference (since r14797).

+ 8 - 12
src/map/quest.c

@@ -279,17 +279,13 @@ int quest_check(TBL_PC * sd, int quest_id, quest_check_type type)
 		return (sd->quest_log[i].time < (unsigned int)time(NULL) ? 2 : sd->quest_log[i].state == Q_COMPLETE ? 1 : 0);
 	case HUNTING:
 		{
-			int j = sd->quest_index[i];
-
-			if( sd->quest_log[i].count[0] < quest_db[j].count[0] || sd->quest_log[i].count[1] < quest_db[j].count[1] || sd->quest_log[i].count[2] < quest_db[j].count[2] )
-			{
-				if( sd->quest_log[i].time < (unsigned int)time(NULL) )
-					return 1;
-
-				return 0;
-			}
-			
-			return 2;
+			int j;
+			ARR_FIND(0, MAX_QUEST_OBJECTIVES, j, sd->quest_log[i].count[j] < quest_db[sd->quest_index[i]].count[j]);
+			if( j == MAX_QUEST_OBJECTIVES )
+				return 2;
+			if( sd->quest_log[i].time < (unsigned int)time(NULL) )
+				return 1;
+			return 0;
 		}
 	default:
 		ShowError("quest_check_quest: Unknown parameter %d",type);
@@ -334,7 +330,7 @@ int quest_read_db(void)
 				continue;
 			else
 			{
-				ShowError("quest_read_db: insufficient columes in line %s\n", line);
+				ShowError("quest_read_db: insufficient columns in line %s\n", line);
 				continue;
 			}
 		}