소스 검색

Fixed various quest-related script commands - including: setquest, erasequest, completequest, checkquest - to fix crashes caused of null pointers (sd).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16866 54d463be-8e91-2dee-dedb-b68131a5f0ec
cookiecrumbs 12 년 전
부모
커밋
a45c1dc469
1개의 변경된 파일11개의 추가작업 그리고 5개의 파일을 삭제
  1. 11 5
      src/map/script.c

+ 11 - 5
src/map/script.c

@@ -15682,7 +15682,8 @@ Questlog script commands
 
 BUILDIN_FUNC(setquest)
 {
-	TBL_PC * sd = script_rid2sd(st);
+	struct map_session_data *sd = script_rid2sd(st);
+	nullpo_ret(sd);
 
 	quest_add(sd, script_getnum(st, 2));
 	return 0;
@@ -15690,7 +15691,8 @@ BUILDIN_FUNC(setquest)
 
 BUILDIN_FUNC(erasequest)
 {
-	TBL_PC * sd = script_rid2sd(st);
+	struct map_session_data *sd = script_rid2sd(st);
+	nullpo_ret(sd);
 
 	quest_delete(sd, script_getnum(st, 2));
 	return 0;
@@ -15698,7 +15700,8 @@ BUILDIN_FUNC(erasequest)
 
 BUILDIN_FUNC(completequest)
 {
-	TBL_PC * sd = script_rid2sd(st);
+	struct map_session_data *sd = script_rid2sd(st);
+	nullpo_ret(sd);
 
 	quest_update_status(sd, script_getnum(st, 2), Q_COMPLETE);
 	return 0;
@@ -15706,7 +15709,8 @@ BUILDIN_FUNC(completequest)
 
 BUILDIN_FUNC(changequest)
 {
-	TBL_PC * sd = script_rid2sd(st);
+	struct map_session_data *sd = script_rid2sd(st);
+	nullpo_ret(sd);
 
 	quest_change(sd, script_getnum(st, 2),script_getnum(st, 3));
 	return 0;
@@ -15714,9 +15718,11 @@ BUILDIN_FUNC(changequest)
 
 BUILDIN_FUNC(checkquest)
 {
-	TBL_PC * sd = script_rid2sd(st);
+	struct map_session_data *sd = script_rid2sd(st);
 	quest_check_type type = HAVEQUEST;
 
+	nullpo_ret(sd);
+
 	if( script_hasdata(st, 3) )
 		type = (quest_check_type)script_getnum(st, 3);