Prechádzať zdrojové kódy

* 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 rokov pred
rodič
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"
 	"4108 Baby Shadow Chaser\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"
 " <param1>       <param2>        <param3>\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: ==================================================
 //= Euphy
 //===== Current Version: =====================================
-//= 1.2b
+//= 1.3
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: =========================================
@@ -50,7 +50,7 @@ function Chk; function Cm;
 			close;
 		}
 		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) {
 			setd "Mission"+.@i, .@mob[.@i];
 			setd "Mission"+.@i +"_",0;
@@ -268,6 +268,12 @@ OnInit:
 		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).
 		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;
 	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); 
 	}
 	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)
 				erasequest getarg(.@i);
 		}
-		return; 
+		return;
 	}
 	getexp getarg(2),0;
 	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_RUNE_KNIGHT2 && job <= JOB_MECHANIC_T2) || (job >= JOB_BABY_RUNE2 && job <= JOB_BABY_MECHANIC2)
 	) // 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....
 		break;
 		case LOOK_BODY:
-		case LOOK_FLOOR:
 			// unknown purpose
 		break;
 		case LOOK_ROBE:

+ 3 - 3
src/map/pc.c

@@ -9602,13 +9602,13 @@ int pc_readdb(void)
 	fclose(fp);
 	for (i = 0; i < JOB_MAX; i++) {
 		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.
 		j = pc_class2idx(i);
 		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])
-			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");
 

+ 1 - 1
src/map/status.h

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

+ 0 - 1
src/map/vending.c

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