Browse Source

* Fixed an incorrect loop in El Dicastes quests (bugreport:7343).
* Follow-up r17188, temporarily restored OPTION_MOUNTING to fix compiling errors and fixed a few other issues (bugreport:7342).
* Updated Hunting Missions script to v1.3, which adds a blacklist for rare monsters.

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

euphyy 12 years ago
parent
commit
7d0ea0c5c0

+ 2 - 1
conf/help.txt

@@ -119,7 +119,8 @@ jobchange: "Params: <job name|ID>\n" "Changes your job.\n"
 	"4104 Baby Minstrel          4105 Baby Wanderer   4106 Baby Sura             4107 Baby Genetic\n"
 	"4104 Baby Minstrel          4105 Baby Wanderer   4106 Baby Sura             4107 Baby Genetic\n"
 	"4108 Baby Shadow Chaser\n"
 	"4108 Baby Shadow Chaser\n"
 	"---- Modes And Others ----\n"
 	"---- Modes And Others ----\n"
-	" 22 Wedding            26 Christmas          27 Summer           4048 Star Gladiator (Union)\n"
+	" 22 Wedding            26 Christmas          27 Summer           28 Hanbok\n"
+	" 4048 Star Gladiator (Union)\n"
 option: "Params: <param1> <param2>(stackable) <param3>(stackable)\n" "Adds different visual effects on or around your character.\n"
 option: "Params: <param1> <param2>(stackable) <param3>(stackable)\n" "Adds different visual effects on or around your character.\n"
 " <param1>       <param2>        <param3>\n"
 " <param1>       <param2>        <param3>\n"
 "01: Stone      01: Sight       01: Sight          512: Cart Lv. 4\n"
 "01: Stone      01: Sight       01: Sight          512: Cart Lv. 4\n"

+ 8 - 2
npc/custom/quests/hunting_missions.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //===== By: ==================================================
 //= Euphy
 //= Euphy
 //===== Current Version: =====================================
 //===== Current Version: =====================================
-//= 1.2b
+//= 1.3
 //===== Compatible With: ===================================== 
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //= rAthena SVN
 //===== Description: =========================================
 //===== Description: =========================================
@@ -50,7 +50,7 @@ function Chk; function Cm;
 			close;
 			close;
 		}
 		}
 		mes "You must hunt:";
 		mes "You must hunt:";
-		query_sql("SELECT ID FROM mob_db WHERE left(Sprite, 4) != 'meta' AND left(Sprite, 2) != 'E_' AND ~Mode & 32 AND EXP > 0 AND MVP1id = 0 AND DropCardid > 4000 AND DropCardid < 5000 AND ID < 2000 ORDER BY rand() LIMIT "+.Quests, .@mob);
+		query_sql("SELECT ID FROM `mob_db` WHERE left(Sprite, 4) != 'meta' AND left(Sprite, 2) != 'E_' AND ~Mode & 32 AND EXP > 0 AND MVP1id = 0 AND DropCardid > 4000 AND DropCardid < 5000 AND ID < 2000 AND instr('"+.Blacklist$+"',ID) = 0 ORDER BY rand() LIMIT "+.Quests, .@mob);
 		for (set .@i,0; .@i<.Quests; set .@i,.@i+1) {
 		for (set .@i,0; .@i<.Quests; set .@i,.@i+1) {
 			setd "Mission"+.@i, .@mob[.@i];
 			setd "Mission"+.@i, .@mob[.@i];
 			setd "Mission"+.@i +"_",0;
 			setd "Mission"+.@i +"_",0;
@@ -268,6 +268,12 @@ OnInit:
 		getbattleflag("base_exp_rate")/100,getbattleflag("job_exp_rate")/100,60;
 		getbattleflag("base_exp_rate")/100,getbattleflag("job_exp_rate")/100,60;
 	setarray .Shop[0],	// Reward items: <ID>,<point cost> (about 10~20 points per hunt).
 	setarray .Shop[0],	// Reward items: <ID>,<point cost> (about 10~20 points per hunt).
 		512,1,513,1,514,1,538,5,539,5,558,10,561,10;
 		512,1,513,1,514,1,538,5,539,5,558,10,561,10;
+	set .Blacklist$,	// Blacklisted mob IDs.
+		"1062,1088,1183,1186,1200,1212,1220,1221,1234,1235,"+
+		"1244,1245,1250,1268,1290,1293,1294,1296,1298,1299,"+
+		"1300,1301,1303,1304,1305,1306,1308,1309,1311,1313,"+
+		"1515,1588,1618,1676,1677,1678,1679,1796,1797,1974,"+
+		"1975,1976,1977,1978,1979";
 
 
 	npcshopdelitem "mission_shop",512;
 	npcshopdelitem "mission_shop",512;
 	for(set .@i,0; .@i<getarraysize(.Shop); set .@i,.@i+2)
 	for(set .@i,0; .@i<getarraysize(.Shop); set .@i,.@i+2)

+ 2 - 2
npc/re/quests/quests_dicastes.txt

@@ -437,11 +437,11 @@ function	script	que_dic	{
 		delitem getarg(3), getarg(4); 
 		delitem getarg(3), getarg(4); 
 	}
 	}
 	else if (getarg(0) == 2) {
 	else if (getarg(0) == 2) {
-		for(set .@size, getargcount(); .@i <= .@size; set .@i, .@i + 1) {
+		for(set .@i,1; .@i<getargcount(); set .@i,.@i+1) {
 			if (checkquest(getarg(.@i)) >= 0)
 			if (checkquest(getarg(.@i)) >= 0)
 				erasequest getarg(.@i);
 				erasequest getarg(.@i);
 		}
 		}
-		return; 
+		return;
 	}
 	}
 	getexp getarg(2),0;
 	getexp getarg(2),0;
 	erasequest getarg(1);
 	erasequest getarg(1);

+ 1 - 1
src/map/atcommand.c

@@ -946,7 +946,7 @@ ACMD_FUNC(jobchange)
 		}
 		}
 	}
 	}
 
 
-    if (job == JOB_KNIGHT2 || job == JOB_CRUSADER2 || job == JOB_WEDDING || job == JOB_XMAS || job == JOB_SUMMER
+    if (job == JOB_KNIGHT2 || job == JOB_CRUSADER2 || job == JOB_WEDDING || job == JOB_XMAS || job == JOB_SUMMER || job == JOB_HANBOK
         || job == JOB_LORD_KNIGHT2 || job == JOB_PALADIN2 || job == JOB_BABY_KNIGHT2 || job == JOB_BABY_CRUSADER2 || job == JOB_STAR_GLADIATOR2
         || job == JOB_LORD_KNIGHT2 || job == JOB_PALADIN2 || job == JOB_BABY_KNIGHT2 || job == JOB_BABY_CRUSADER2 || job == JOB_STAR_GLADIATOR2
 		 || (job >= JOB_RUNE_KNIGHT2 && job <= JOB_MECHANIC_T2) || (job >= JOB_BABY_RUNE2 && job <= JOB_BABY_MECHANIC2)
 		 || (job >= JOB_RUNE_KNIGHT2 && job <= JOB_MECHANIC_T2) || (job >= JOB_BABY_RUNE2 && job <= JOB_BABY_MECHANIC2)
 	) // Deny direct transformation into dummy jobs
 	) // Deny direct transformation into dummy jobs

+ 0 - 1
src/map/clif.c

@@ -3054,7 +3054,6 @@ void clif_changelook(struct block_list *bl,int type,int val)
 			//Shoes? No packet uses this....
 			//Shoes? No packet uses this....
 		break;
 		break;
 		case LOOK_BODY:
 		case LOOK_BODY:
-		case LOOK_FLOOR:
 			// unknown purpose
 			// unknown purpose
 		break;
 		break;
 		case LOOK_ROBE:
 		case LOOK_ROBE:

+ 3 - 3
src/map/pc.c

@@ -9602,13 +9602,13 @@ int pc_readdb(void)
 	fclose(fp);
 	fclose(fp);
 	for (i = 0; i < JOB_MAX; i++) {
 	for (i = 0; i < JOB_MAX; i++) {
 		if (!pcdb_checkid(i)) continue;
 		if (!pcdb_checkid(i)) continue;
-		if (i == JOB_WEDDING || i == JOB_XMAS || i == JOB_SUMMER)
+		if (i == JOB_WEDDING || i == JOB_XMAS || i == JOB_SUMMER || i == JOB_HANBOK)
 			continue; //Classes that do not need exp tables.
 			continue; //Classes that do not need exp tables.
 		j = pc_class2idx(i);
 		j = pc_class2idx(i);
 		if (!max_level[j][0])
 		if (!max_level[j][0])
-			ShowWarning("Class %s (%d) does not has a base exp table.\n", job_name(i), i);
+			ShowWarning("Class %s (%d) does not have a base exp table.\n", job_name(i), i);
 		if (!max_level[j][1])
 		if (!max_level[j][1])
-			ShowWarning("Class %s (%d) does not has a job exp table.\n", job_name(i), i);
+			ShowWarning("Class %s (%d) does not have a job exp table.\n", job_name(i), i);
 	}
 	}
 	ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n","exp.txt");
 	ShowStatus("Done reading '"CL_WHITE"%s"CL_RESET"'.\n","exp.txt");
 
 

+ 1 - 1
src/map/status.h

@@ -1504,7 +1504,7 @@ enum {
 	OPTION_DRAGON3   = 0x01000000,
 	OPTION_DRAGON3   = 0x01000000,
 	OPTION_DRAGON4   = 0x02000000,
 	OPTION_DRAGON4   = 0x02000000,
 	OPTION_DRAGON5   = 0x04000000,
 	OPTION_DRAGON5   = 0x04000000,
-	OPTION_HANBOK    = 0x08000000,
+	OPTION_MOUNTING  = 0x08000000,
 
 
 #ifndef NEW_CARTS
 #ifndef NEW_CARTS
 	OPTION_CART1     = 0x00000008,
 	OPTION_CART1     = 0x00000008,

+ 0 - 1
src/map/vending.c

@@ -12,7 +12,6 @@
 #include "chrif.h"
 #include "chrif.h"
 #include "vending.h"
 #include "vending.h"
 #include "pc.h"
 #include "pc.h"
-#include "npc.h"
 #include "skill.h"
 #include "skill.h"
 #include "battle.h"
 #include "battle.h"
 #include "log.h"
 #include "log.h"