瀏覽代碼

* Added the "Catalog Magician" NPC to merchants/buying_shops.txt, thanks to Muad_Dib!
* Changed all commands in atcommands.txt to their defined names, not aliases, and added two more common aliases.
* Documented 'makerune' in script_commands.txt.
* Documented '@accinfo' in atcommands.txt.
* Follow-up r16965, database update for rune crafting formula.
* Updated Magic Mushroom DB according to 3CeAM revision 703.

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

euphyy 12 年之前
父節點
當前提交
e5253aa7c6

+ 2 - 0
conf/atcommand_athena.conf

@@ -53,6 +53,8 @@ aliases: {
 	monsterignore: ["battleignore"]
 	raise: ["revive"]
 	kill: ["die"]
+	guildstorage: ["gstorage"]
+	accinfo: ["accountinfo"]
 }
 
 /* Commands help file */

+ 3 - 2
db/magicmushroom_db.txt

@@ -18,9 +18,10 @@
 151	//TF_PICKSTONE
 157	//MG_ENERGYCOAT
 249	//CR_AUTOGUARD
-261	//MO_CALLSPIRITS
 256	//CR_PROVIDENCE
-318	//BA_FROSTJOKER
+261	//MO_CALLSPIRITS
+270	//MO_EXPLOSIONSPIRITS
+326	//DC_SCREAM
 500	//GS_GLITTERING
 527	//NJ_TATAMIGAESHI
 531	//NJ_UTSUSEMI

+ 5 - 5
db/pre-re/item_db.txt

@@ -5161,11 +5161,11 @@
 12733,Runstone_Hagalas,Hagalaz Rune,11,100,,100,,,,,0xFFFFFFFF,8,2,,,,,,{ itemskill "RK_STONEHARDSKIN",1; },{},{}
 
 // Rune Knight Rune Ores
-12734,Runstone_Quality,Luxurious Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 1; },{},{}
-12735,Runstone_Ancient,Ancient Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 2; },{},{}
-12736,Runstone_Mystic,Mystic Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 3; },{},{}
-12737,Runstone_Ordinary,General Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 4; },{},{}
-12738,Runstone_Rare,Rare Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 5; },{},{}
+12734,Runstone_Quality,Luxurious Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 5; },{},{}
+12735,Runstone_Ancient,Ancient Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 11; },{},{}
+12736,Runstone_Mystic,Mystic Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 14; },{},{}
+12737,Runstone_Ordinary,General Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 2; },{},{}
+12738,Runstone_Rare,Rare Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 8; },{},{}
 
 12739,Snow_Flower,Snow Flowers,2,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
 12740,Inc_Str_Scroll,Amplification Scroll,2,1,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}

+ 5 - 5
db/re/item_db.txt

@@ -5688,11 +5688,11 @@
 12733,Runstone_Hagalas,Hagalaz Rune,11,100,,100,,,,,0xFFFFFFFF,8,2,,,,,,{ itemskill "RK_STONEHARDSKIN",1; },{},{}
 
 // Rune Knight Rune Ores
-12734,Runstone_Quality,Luxurious Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 1; },{},{}
-12735,Runstone_Ancient,Ancient Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 2; },{},{}
-12736,Runstone_Mystic,Mystic Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 3; },{},{}
-12737,Runstone_Ordinary,General Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 4; },{},{}
-12738,Runstone_Rare,Rare Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 5; },{},{}
+12734,Runstone_Quality,Luxurious Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 5; },{},{}
+12735,Runstone_Ancient,Ancient Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 11; },{},{}
+12736,Runstone_Mystic,Mystic Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 14; },{},{}
+12737,Runstone_Ordinary,General Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 2; },{},{}
+12738,Runstone_Rare,Rare Rune,0,2,,100,,,,,0x00000080,8,2,,,,,,{ makerune 8; },{},{}
 
 12739,Snow_Flower,Snow Flowers,2,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
 12740,Inc_Str_Scroll,Amplification Scroll,2,1,,0,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}

+ 26 - 7
doc/atcommands.txt

@@ -281,7 +281,7 @@ prontera (x= 165, y= 198) 01 00 00 00 00
 | 2. Database Commands |
 ========================
 
-@monsterinfo <mob name/ID>
+@mobinfo <mob name/ID>
 
 Displays monster information (rates, stats, drops, MVP data).
 
@@ -505,6 +505,25 @@ If @jail was used, the chat window will display "You have been jailed indefinite
 
 ---------------------------------------
 
+@accinfo <player name/account id>
+
+Searches for an account by ID or a character name, and outputs detailed information.
+To search partial names, "%" can be used as a wildcard.
+
+Example:
+@accinfo Test%
+
+Output:
+-- Account 2000001 --
+User: user123 | GM Group: 0 | State: 0
+Password: password123
+Account e-mail: a@a.com
+Last IP: 127.0.0.1 (Unknown)
+This user has logged 27 times, the last time were at 2012-11-24 17:29:07
+-- Character Details --
+[Slot/CID: 0/150001] Test1 | High Swordsman | Level: 99/50 | Off
+[Slot/CID: 1/150002] Test2 | Rune Knight | Level: 150/50 | On
+
 ======================
 | 4. Action Commands |
 ======================
@@ -705,7 +724,7 @@ If no coordinates are entered, a random location will be chosen.
 
 ---------------------------------------
 
-@goto <player name/ID>
+@jumpto <player name/ID>
 @follow <player name>
 
 Warps to the specified player.
@@ -791,7 +810,7 @@ Resets a Star Gladiator's marked maps.
 
 ---------------------------------------
 
-@job <job name/ID>
+@jobchange <job name/ID>
 
 Changes your job.
 If no job is given, a list of all available jobs will be returned.
@@ -914,7 +933,7 @@ Additionally, @disguiseall/@undisguiseall will disguise all online players.
 
 ---------------------------------------
 
-@battleignore
+@monsterignore
 
 Makes you immune to attacks (monsters/players/skills cannot target/hit you).
 
@@ -1228,7 +1247,7 @@ You must be the guildmaster to use this command.
 
 ---------------------------------------
 
-@gstorage
+@guildstorage
 
 Opens your guild storage.
 
@@ -1319,7 +1338,7 @@ Creates the specified homunculus.
 
 ---------------------------------------
 
-@homevolve
+@homevolution
 
 Evolves your homunculus, if possible.
 
@@ -1362,7 +1381,7 @@ Command what the player's homunculus will say.
 
 ---------------------------------------
 
-@hlvl <+/- amount>
+@homlevel <+/- amount>
 
 Changes homunculus level by the specified amount.
 

+ 13 - 1
doc/script_commands.txt

@@ -4494,12 +4494,24 @@ Valid dish levels are:
 19 - Level 9 Dish
 20 - Level 10 Dish
 
-Altough it's required to set a dish level, it doesn't matter if you set it to 1
+Although it's required to set a dish level, it doesn't matter if you set it to 1
 and you want to cook a level 10 dish, as long as you got the required incredients
 to cook the dish the command works.
 
 ---------------------------------------
 
+*makerune <% success bonus>;
+
+This command will open a rune crafting window on the client connected to the
+invoking character. Since this command is officially used in rune ores, a bonus
+success rate must be specified (which adds to the base formula).
+
+You can see the full list of runes that can be produced in 'db/produce_db.txt'.
+The window will not be empty only if the invoking character can actually produce
+the items of that type and has the appropriate raw materials in their inventory.
+
+---------------------------------------
+
 *successremovecards <equipment slot>;
 
 This command will remove all cards from the item found in the specified 

+ 178 - 91
npc/merchants/buying_shops.txt

@@ -1,105 +1,102 @@
 //===== rAthena Script =======================================
-//= Buying Shop Licenses
+//= Buying Shop Scripts
 //===== By: ==================================================
-//= Kisuka
+//= Kisuka, skyiing, Scriptor
 //===== Current Version: =====================================
-//= 1.0
+//= 1.1
 //===== Compatible With: =====================================
 //= rAthena SVN
 //===== Description: =========================================
-//= Buying Shop Licenses
+//= Buying Shop licenses and catalogs.
 //===== Additional Comments: =================================
 //= 1.0 First version. [Kisuka]
+//= 1.1 Added Catalog Magician. [Euphy]
 //============================================================ 
 
 // Black Marketeer (Buy Licenses - Non-Merchant Classes)
 //============================================================ 
 que_job01,68,84,1	script	Black Marketeer#Buying	881,{
-	if(getskilllv("ALL_BUYING_STORE") == 1) {
+	if (getskilllv("ALL_BUYING_STORE") == 1) {
 		mes "[Mr. Jass]";
 		mes "Hey, you already made a contract with Hugh.";
 		mes "I don't have any business with you.";
 		close;
-	}else{
+	}
+	mes "[Mr. Jass]";
+	mes "You must need something badly to come to find me.";
+	mes "What do you want?";
+	next;
+	switch(select("Bulk Buyer Shop License:Who are you?:Nothing, nothing!")) {
+	case 1:
 		mes "[Mr. Jass]";
-		mes "You must need something badly to come to find me.";
-		mes "What do you want?";
+		mes "I knew it!";
+		mes "Sure, I can make it for you.";
+		mes "Mine looks just like the authentic one that Merchants get from that bastard Mr. Hugh!";
 		next;
-		switch(select("Bulk Buyer Shop License:Who are you?:Nothing, nothing!")) {
-		case 1:
-			mes "[Mr. Jass]";
-			mes "I knew it!";
-			mes "Sure, I can make it for you.";
-			mes "Mine looks just like the authentic one that Merchants get from that bastard Mr. Hugh!";
-			next;
-			mes "[Mr. Jass]";
-			mes "And my license is better 'cuz you don't need ta' learn any skills.";
-			mes "How many do you want?";
-			next;
+		mes "[Mr. Jass]";
+		mes "And my license is better 'cuz you don't need ta' learn any skills.";
+		mes "How many do you want?";
+		next;
+		mes "[Mr. Jass]";
+		mes "Just so you know, I can only make them in small quantities, up to 10 at a time.";
+		mes "It'll cost 500 zeny for each one.";
+		next;
+		while(1) {
+			input .@input;
 			mes "[Mr. Jass]";
-			mes "Just so you know, I can only make them in small quantities, up to 10 at a time.";
-			mes "It'll cost 500 zeny for each one.";
-			next;
-			while(1) {
-				input .@input;
-				mes "[Mr. Jass]";
-				if(.@input == 0) {
-					mes "Don't you need those licenses?";
-					close;
-				}
-				else if(.@input > 10) {
-					mes "I can only make up to 10 at a time, you know.";
+			if (.@input == 0) {
+				mes "Don't you need those licenses?";
+				close;
+			} else if (.@input > 10) {
+				mes "I can only make up to 10 at a time, you know.";
+				next;
+			} else {
+				mes "It'll cost "+(.@input*500)+" zeny.";
+				if (Zeny < (.@input*500)) {
+					mes "but you don't have enough money.";
 					next;
+					mes "[Mr. Jass]";
+					mes "Don't you know the basics of business? Everything has a price.";
+					mes "If you want something, you gotta pay for it.";
+				} else {
+					mes "Ha... Ha ha ha!";
+					mes "Mr. Hugh, I'll take over your license business. You'll see!";
+					mes "*Giggle Giggle*";
+					getitem 12548,.@input; //Shabby_Purchase_Street
+					set Zeny,Zeny-(.@input*500);
 				}
-				else {
-					mes "It'll cost "+(.@input*500)+" zeny.";
-					if(Zeny < (.@input*500)) {
-						mes "but you don't have enough money.";
-						next;
-						mes "[Mr. Jass]";
-						mes "Don't you know the basics of business? Everything has a price.";
-						mes "If you want something, you gotta pay for it.";
-					}else{
-						mes "Ha... Ha ha ha!";
-						mes "Mr. Hugh, I'll take over your license business. You'll see!";
-						mes "*Giggle Giggle*";
-						getitem 12548,.@input;	// Shabby_Purchase_Street
-						set Zeny,Zeny-(.@input*500);
-					}
-					close;
-				}
+				close;
 			}
-
-		case 2:
-			mes "[Mr. Jass]";
-			mes "I left my hometown a long time ago.";
-			mes "It's meaningless to ask who I am because all I've got left now is my hatred.";
-			next;
-			mes "[Mr. Jass]";
-			mes "...";
-			mes "Hugh is a corrupt merchant with no sense of business ethics.";
-			mes "My sole purpose in life is to destroy Hugh.";
-			next;
-			mes "[Mr. Jass]";
-			mes "Aw, I drank too much... (*Hic*)";
-			mes "That's just the alohol talking.";
-			mes "Please forget anything I said.";
-			close;
-		case 3:
-			mes "[Mr. Jass]";
-			mes "Alright, alright! You don't have to yell.";
-			mes "Just leave me alone if you've got no business with me.";
-			close;
 		}
+	case 2:
+		mes "[Mr. Jass]";
+		mes "I left my hometown a long time ago.";
+		mes "It's meaningless to ask who I am because all I've got left now is my hatred.";
+		next;
+		mes "[Mr. Jass]";
+		mes "...";
+		mes "Hugh is a corrupt merchant with no sense of business ethics.";
+		mes "My sole purpose in life is to destroy Hugh.";
+		next;
+		mes "[Mr. Jass]";
+		mes "Aw, I drank too much... (*Hic*)";
+		mes "That's just the alohol talking.";
+		mes "Please forget anything I said.";
+		close;
+	case 3:
+		mes "[Mr. Jass]";
+		mes "Alright, alright! You don't have to yell.";
+		mes "Just leave me alone if you've got no business with me.";
+		close;
 	}
 }
 
 // Purchasing Team (Learn Skill - Merchant Classes)
 //============================================================ 
 alberta_in,58,52,4	script	Purchasing Team#Buying	59,{
-	if(BaseClass == Job_Merchant && getskilllv("MC_VENDING") >= 1) {
-		if(getskilllv("ALL_BUYING_STORE") == 1) {
-			mes "[Mr. Hugh]";
+	mes "[Mr. Hugh]";
+	if (BaseClass == Job_Merchant && getskilllv("MC_VENDING") >= 1) {
+		if (getskilllv("ALL_BUYING_STORE") == 1) {
 			mes "I'm Hugh from the Purchasing Team.";
 			mes "How may I help you today?";
 			next;
@@ -116,29 +113,26 @@ alberta_in,58,52,4	script	Purchasing Team#Buying	59,{
 			while(1) {
 				input .@input;
 				mes "[Mr. Hugh]";
-				if(.@input == 0) {
+				if (.@input == 0) {
 					mes "You have cancelled the trade.";
 					mes "Have a good day.";
 					close;
-				}
-				if(.@input > 50) {
+				} else if (.@input > 50) {
 					mes "Please enter a value of 50 or less.";
 					next;
-				}
-				else{
+				} else {
 					mes "It'll cost "+(.@input*200)+" zeny for "+.@input+" licenses.";
-					if(Zeny < (.@input*200)) {
+					if (Zeny < (.@input*200)) {
 						mes "but you don't seem to have enough money.";
-					}else{
+					} else {
 						mes "Thank you for your patronage.";
-						getitem 6377,.@input;	// Buy_Stall_Permit
+						getitem 6377,.@input; //Buy_Stall_Permit
 						set Zeny,Zeny-(.@input*200);
 					}
 					close;
 				}
 			}
-		}else{
-			mes "[Mr. Hugh]";
+		} else {
 			mes "I'm Hugh from the Purchasing Team at the Alberta Merchant Guild.";
 			mes "You're...";
 			next;
@@ -204,11 +198,11 @@ alberta_in,58,52,4	script	Purchasing Team#Buying	59,{
 				close;
 			}
 			mes "[Mr. Hugh]";
-			if(Zeny < 10000) {
+			if (Zeny < 10000) {
 				mes "The registration fee is 10,000 zeny.";
 				mes "Please have the fee ready first.";
 				close;
-			}else{
+			} else {
 				mes "You've made a good decision.";
 				mes "Please give me the registration fee, and sign right here....";
 				next;
@@ -218,7 +212,7 @@ alberta_in,58,52,4	script	Purchasing Team#Buying	59,{
 				mes "I like your handwriting.";
 				mes "Okay, you're now approved to open the Bulk Buyer Shop.";
 				set Zeny,Zeny-10000;
-				getitem 6377,5;	// Buy_Stall_Permit
+				getitem 6377,5; //Buy_Stall_Permit
 				skill "ALL_BUYING_STORE",1,0;
 				next;
 				mes "[Mr. Hugh]";
@@ -236,13 +230,106 @@ alberta_in,58,52,4	script	Purchasing Team#Buying	59,{
 				close;
 			}
 		}
-	}else{
-		mes "[Mr. Hugh]";
-		mes "I'm Hugh from the Purchasing Team at the Alberta Merchant Guild.";
-		mes "I'd love to chat, but I'm too busy at the moment.";
+	}
+	mes "I'm Hugh from the Purchasing Team at the Alberta Merchant Guild.";
+	mes "I'd love to chat, but I'm too busy at the moment.";
+	next;
+	mes "[Mr. Hugh]";
+	mes "My time is solely dedicated to our customers in the Merchant industry.";
+	close;
+}
+
+// Catalog Magician
+//============================================================ 
+moc_para01,22,16,5	script	Catalog Magician#catal01	704,{
+	if (!checkweight(1201,2)) {
+		mes "- You have too many items. Please make space. -";
+		close;
+	}
+	set .@ticket_cost, 200;
+	mes "[Catalog Magician]";
+	mes "Look... the Magic Academy";
+	mes "in Geffen is now directly";
+	mes "selling the brand new";
+	mes "^007777Universal Catalog Silver^000000!";
+	next;
+	mes "He is looking at the words";
+	mes "written on his hand.";
+	mes "Seems like he's too busy";
+	mes "to look at you.";
+	next;
+	mes "[Catalog Magician]";
+	mes "A brand new catalog";
+	mes "has just come out!";
+	mes "You can check what";
+	mes "items can be traded";
+	mes "and what items are on";
+	mes "sale from the vendor.";
+	next;
+	mes "[Catalog Magician]";
+	mes "^007777Universal Catalog Silver^000000~";
+	mes "It costs only 200z each!";
+	mes "You can buy it up to 50";
+	mes "pieces at once!";
+	next;
+	switch(select("Buy ^007777Universal Catalog Silver^000000:I don't need it!:You don't look like a vendor...")) {
+	case 1:
+		mes "[Catalog Magician]";
+		mes "You... want all 50 pieces?";
+		mes "Or how many do you need?";
+		next;
+		while (1) {
+			input .@input;
+			mes "[Catalog Magician]";
+			if (.@input == 0) {
+				mes "Trade has been stopped!";
+				mes "I don't know what to do next...";
+				mes "What should I do?";
+				emotion e_swt2,1;
+				close;
+			} else if (.@input < 1 || .@input > 50) {
+				mes "It should be less than 50 pieces.";
+				next;
+			} else break;
+		}
+		set .@sell, .@ticket_cost * .@input;
+		mes "Total number of catalog(s) that";
+		mes "you're trying to purchase is";
+		mes .@input + " pieces and it costs " + .@sell + " z.";
+		if (Zeny < .@sell) {
+			mes "It seems you don't have enough money.";
+			mes "You can sell your equips";
+			mes "to make more money... if you want.";
+			close;
+		}
+		mes "Okie, here you go.";
+		set Zeny, Zeny - .@sell;
+		getitem 12580,.@input; //Vending_Search_Scroll
+		close;
+	case 2:
+		mes "[Catalog Magician]";
+		mes "Argh... you really need this";
+		mes "item... Do you want me to";
+		mes "explain again? I don't know";
+		mes "what to do next...";
+		mes "What should I do?";
+		emotion e_swt2,1;
+		close;
+	case 3:
+		mes "[Catalog Magician]";
+		mes "My real job is a magician.";
+		mes "I was going to ask the merchant";
+		mes "guild to sell them, but they were";
+		mes "trying use them as an appendix";
+		mes "into broom sales. That's why";
+		mes "I'm selling these by myself.";
 		next;
-		mes "[Mr. Hugh]";
-		mes "My time is solely dedicated to our customers in the Merchant industry.";
+		mes "[Catalog Magician]";
+		mes "There are many adventurers";
+		mes "here coming and going. I'm";
+		mes "pretty sure that I can sell them";
+		mes "all soon. Don't you think so?";
+		mes "So... let's start!! Buy more of them, please! PLEASE...!";
 		close;
 	}
 }

+ 5 - 5
sql-files/item_db.sql

@@ -5192,11 +5192,11 @@ REPLACE INTO `item_db` VALUES (12732,'Runstone_Pertz','Wyrd Rune',11,100,NULL,10
 REPLACE INTO `item_db` VALUES (12733,'Runstone_Hagalas','Hagalaz Rune',11,100,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,8,2,NULL,NULL,NULL,NULL,NULL,'itemskill "RK_STONEHARDSKIN",1;',NULL,NULL);
 
 # Rune Knight Rune Ores
-REPLACE INTO `item_db` VALUES (12734,'Runstone_Quality','Luxurious Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 1;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (12735,'Runstone_Ancient','Ancient Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 2;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (12736,'Runstone_Mystic','Mystic Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 3;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (12737,'Runstone_Ordinary','General Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 4;',NULL,NULL);
-REPLACE INTO `item_db` VALUES (12738,'Runstone_Rare','Rare Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 5;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (12734,'Runstone_Quality','Luxurious Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 5;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (12735,'Runstone_Ancient','Ancient Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 11;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (12736,'Runstone_Mystic','Mystic Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 14;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (12737,'Runstone_Ordinary','General Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 2;',NULL,NULL);
+REPLACE INTO `item_db` VALUES (12738,'Runstone_Rare','Rare Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 8;',NULL,NULL);
 
 REPLACE INTO `item_db` VALUES (12739,'Snow_Flower','Snow Flowers',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
 REPLACE INTO `item_db` VALUES (12740,'Inc_Str_Scroll','Amplification Scroll',2,1,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);

+ 5 - 5
sql-files/item_db_re.sql

@@ -5719,11 +5719,11 @@ REPLACE INTO `item_db_re` VALUES (12732,'Runstone_Pertz','Wyrd Rune',11,100,NULL
 REPLACE INTO `item_db_re` VALUES (12733,'Runstone_Hagalas','Hagalaz Rune',11,100,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,8,2,NULL,NULL,NULL,NULL,NULL,'itemskill "RK_STONEHARDSKIN",1;',NULL,NULL);
 
 # Rune Knight Rune Ores
-REPLACE INTO `item_db_re` VALUES (12734,'Runstone_Quality','Luxurious Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 1;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (12735,'Runstone_Ancient','Ancient Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 2;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (12736,'Runstone_Mystic','Mystic Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 3;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (12737,'Runstone_Ordinary','General Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 4;',NULL,NULL);
-REPLACE INTO `item_db_re` VALUES (12738,'Runstone_Rare','Rare Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 5;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (12734,'Runstone_Quality','Luxurious Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 5;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (12735,'Runstone_Ancient','Ancient Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 11;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (12736,'Runstone_Mystic','Mystic Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 14;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (12737,'Runstone_Ordinary','General Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 2;',NULL,NULL);
+REPLACE INTO `item_db_re` VALUES (12738,'Runstone_Rare','Rare Rune',0,2,NULL,100,NULL,NULL,NULL,NULL,0x00000080,8,2,NULL,NULL,NULL,NULL,NULL,'makerune 8;',NULL,NULL);
 
 REPLACE INTO `item_db_re` VALUES (12739,'Snow_Flower','Snow Flowers',2,NULL,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
 REPLACE INTO `item_db_re` VALUES (12740,'Inc_Str_Scroll','Amplification Scroll',2,1,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);

+ 1 - 1
src/map/skill.c

@@ -15998,7 +15998,7 @@ int skill_produce_mix (struct map_session_data *sd, int skill_id, int nameid, in
 			    {
 				int A = 100 * (51 + 2 * pc_checkskill(sd, skill_id));
 				int B = 100 * status->dex / 30 + 10 * (status->luk + sd->status.job_level);
-				int C = cap_value(sd->itemid,0,10000); //itemid depend on used rune ()
+				int C = 100 * cap_value(sd->itemid,0,100); //itemid depend on makerune()
 				int D = 0;
 				switch (nameid) { //rune rank it_diff 9 craftable rune
 				    case ITEMID_BERKANA:

+ 1 - 1
src/map/skill.h

@@ -1821,7 +1821,7 @@ int skill_block_check(struct block_list *bl, enum sc_type type, int skillid);
 /**
  * Guilottine Cross
  **/
-#define MAX_SKILL_MAGICMUSHROOM_DB 22
+#define MAX_SKILL_MAGICMUSHROOM_DB 23
 struct s_skill_magicmushroom_db {
 	int skillid;
 };