summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2009-03-25 21:59:55 +0000
committerultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec>2009-03-25 21:59:55 +0000
commit7d88aa25325ec2013323a31b606525edc02553ef (patch)
tree49111b5c11e3bf4cf3d464631d7506aa14a3c5b3
parentdbf2fd23c69608ead75e968d5ede7e5ebf9fcea9 (diff)
downloadhercules-7d88aa25325ec2013323a31b606525edc02553ef.tar.gz
hercules-7d88aa25325ec2013323a31b606525edc02553ef.tar.bz2
hercules-7d88aa25325ec2013323a31b606525edc02553ef.tar.xz
hercules-7d88aa25325ec2013323a31b606525edc02553ef.zip
Added correct packets for the food item creation window.
Added script command 'cooking' to activate this window and applied it to the 5 cooking kit items. Renamed the cooking quest variable to cooking_q to avoid a naming collision with the new script command. (You need to manually rename all occurences of this variable in your txt-savefile/sql-database if you want to preserve player progress.) The code still relies on the messy skill_produce_mix logic and still uses completely custom equations. To be fixed in a separate commit. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13628 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--db/Changelog.txt2
-rw-r--r--db/item_db.txt10
-rw-r--r--db/packet_db.txt2
-rw-r--r--npc/Changelog.txt2
-rw-r--r--npc/quests/cooking_quest.txt81
-rw-r--r--src/map/clif.c61
-rw-r--r--src/map/clif.h1
-rw-r--r--src/map/script.c17
8 files changed, 129 insertions, 47 deletions
diff --git a/db/Changelog.txt b/db/Changelog.txt
index b33688da5..fb712f2ca 100644
--- a/db/Changelog.txt
+++ b/db/Changelog.txt
@@ -41,6 +41,8 @@
=======================
2009/03/25
+ * Added cooking packets to packet_db.txt
+ * Changed the cooking kit items to use the new 'cooking' function [ultramage]
* Added missing 12.1 drops to the monsters [Playtester]
* Fixed Sonic Blow's and Arrow Vulcan's aftercast delay being reducable by Bragi [Playtester]
2009/03/24
diff --git a/db/item_db.txt b/db/item_db.txt
index 1a7eabb96..0a5ab6165 100644
--- a/db/item_db.txt
+++ b/db/item_db.txt
@@ -3568,11 +3568,11 @@
12123,Honey_Pastry,Honey Pastry,0,2,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_FleeFood,1200000,30; },{},{}
12124,Rainbow_Cake,Rainbow Cake,0,2,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_BATKFood,1200000,10; sc_start SC_MATKFood,120000,10; },{},{}
// Cooking Sets
-12125,Outdoor_Cooking_Kits,Outdoor Cooking Kit,2,500,,20,,,,,0xFFFFFFFF,7,2,,,,,,{ produce 11; },{},{}
-12126,Indoor_Cooking_Kits,Home Cooking Kit,2,1000,,30,,,,,0xFFFFFFFF,7,2,,,,,,{ produce 12; },{},{}
-12127,High_end_Cooking_Kits,Professional Cooking Kit,2,2000,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ produce 13; },{},{}
-12128,Imperial_Cooking_Kits,Royal Cooking Kit,2,5000,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ produce 14; },{},{}
-12129,Fantastic_Cooking_Kits,Fantastic Cooking Kit,2,10000,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ produce 15; },{},{}
+12125,Outdoor_Cooking_Kits,Outdoor Cooking Kit,2,500,,20,,,,,0xFFFFFFFF,7,2,,,,,,{ cooking 11; },{},{}
+12126,Indoor_Cooking_Kits,Home Cooking Kit,2,1000,,30,,,,,0xFFFFFFFF,7,2,,,,,,{ cooking 12; },{},{}
+12127,High_end_Cooking_Kits,Professional Cooking Kit,2,2000,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ cooking 13; },{},{}
+12128,Imperial_Cooking_Kits,Royal Cooking Kit,2,5000,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ cooking 14; },{},{}
+12129,Fantastic_Cooking_Kits,Fantastic Cooking Kit,2,10000,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ cooking 15; },{},{}
//
12130,Cookie_Bag,Cookie Bag,2,2,,70,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem groupranditem(IG_CookieBag),1; getitem groupranditem(IG_CookieBag),1; getitem groupranditem(IG_CookieBag),1; },{},{}
12131,Lucky_Potion,Lucky Potion,0,2,,100,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{}
diff --git a/db/packet_db.txt b/db/packet_db.txt
index acf1b6fa7..30cdb02ae 100644
--- a/db/packet_db.txt
+++ b/db/packet_db.txt
@@ -819,7 +819,7 @@ packet_ver: 19
//2005-10-10aSakexe
0x020e,32
0x025a,-1
-0x025b,-1
+0x025b,6,cooking,0
//2005-10-13aSakexe
0x007a,6
diff --git a/npc/Changelog.txt b/npc/Changelog.txt
index a974f8201..156f5fe54 100644
--- a/npc/Changelog.txt
+++ b/npc/Changelog.txt
@@ -1,6 +1,8 @@
Date Added
======
2009/03/25
+ * Renamed the cooking quest variable to cooking_q to avoid a naming collision. [ultramage]
+ - You need to manually rename all occurences of this variable in your txt-savefile/sql-database if you want to preserve player progress.
* Fixed Thief Training Quest [Playtester]
2009/03/18
* Fixed Moscovia mob names in the spawn file [Playtester]
diff --git a/npc/quests/cooking_quest.txt b/npc/quests/cooking_quest.txt
index cd3a9d83c..21ba2e0a1 100644
--- a/npc/quests/cooking_quest.txt
+++ b/npc/quests/cooking_quest.txt
@@ -3,7 +3,7 @@
//===== By: ==================================================
//= Reddozen; L0ne_W0lf
//===== Current Version: =====================================
-//= 1.7
+//= 1.8
//===== Compatible With: =====================================
//= eAthena SVN
//===== Description: =========================================
@@ -25,6 +25,7 @@
//= 1.6a Corrected a bad cutin, a Typo error ";;" and a bad delitem (bugreport:911) [Samuray22]
//= 1.6b Corrected a "donpcevent" missing a ":". (bugreport:962) [Samuray22]
//= 1.7 Replaced effect numerics with constants. [L0ne_W0lf]
+//= 1.8 Renamed the variable cooking to cooking_q [ultramage]
//============================================================
prt_castle,43,30,3 script Charles Orleans#cook 878,{
@@ -229,7 +230,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
mes "reluctantly bid you adieu.";
goto L_End;
}
- else if (cooking == 0) {
+ else if (cooking_q == 0) {
cutin "orleans_5",0;
emotion e_dots;
mes "[Charles Orleans]";
@@ -319,7 +320,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
cutin "orleans_6",0;
set .@cook_m1,rand(1,6);
if (.@cook_m1 == 1) {
- set cooking,1;
+ set cooking_q,1;
mes "[Charles Orleans]";
mes "Ahhh, how about";
mes "'Fried Grasshopper Legs?'";
@@ -336,7 +337,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
goto L_End;
}
else if (.@cook_m1 == 2) {
- set cooking,2;
+ set cooking_q,2;
mes "[Charles Orleans]";
mes "Ah, I've got it!";
mes "Let's make ''Grape Juice";
@@ -353,7 +354,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
goto L_End;
}
else if (.@cook_m1 == 3) {
- set cooking,3;
+ set cooking_q,3;
mes "[Charles Orleans]";
mes "I've got it~";
mes "We can make";
@@ -369,7 +370,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
goto L_End;
}
else if (.@cook_m1 == 4) {
- set cooking,4;
+ set cooking_q,4;
mes "[Charles Orleans]";
mes "Mmm, why don't we";
mes "make ''Frog Egg and";
@@ -387,7 +388,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
goto L_End;
}
else if (.@cook_m1 == 5) {
- set cooking,5;
+ set cooking_q,5;
mes "[Charles Orleans]";
mes "Ah, I know what";
mes "would be perfect right";
@@ -403,7 +404,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
mes "^4D4DFF1 Yellow Potion^000000.";
goto L_End;
}
- set cooking,6;
+ set cooking_q,6;
mes "[Charles Orleans]";
mes "Ooh, you know what";
mes "would be scrumptious?";
@@ -419,7 +420,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
mes "^4D4DFF1 Cooking Oil^000000.";
goto L_End;
}
- else if (cooking == 1) {
+ else if (cooking_q == 1) {
if (countitem(940) > 4 && countitem(7031) > 0 && countitem(7457) > 0) {
cutin "orleans_4",0;
emotion e_an;
@@ -456,7 +457,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
delitem 940,5; //Grasshopper's_Leg
delitem 7031,1; //Old_Frying_Pan
delitem 7457,1; //Cooking_Oil
- set cooking,7;
+ set cooking_q,7;
getitem 12041,1; //Str_Dish01
goto L_End;
}
@@ -479,7 +480,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
mes "legs off--but be humane about it! ";
goto L_End;
}
- else if (cooking == 2) {
+ else if (cooking_q == 2) {
if (countitem(514) > 2 && countitem(501) > 1) {
cutin "orleans_4",0;
mes "[Charles Orleans]";
@@ -513,7 +514,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
mes "and practice on your own now.";
delitem 514,3; //Grape
delitem 501,2; //Red_Potion
- set cooking,7;
+ set cooking_q,7;
getitem 12046,1; //Int_Dish01
goto L_End;
}
@@ -536,7 +537,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
mes "be humane when you hunt them...";
goto L_End;
}
- else if (cooking == 3) {
+ else if (cooking_q == 3) {
if (countitem(518) > 0 && countitem(514) > 1 && countitem(501) > 0) {
cutin "orleans_4",0;
mes "[Charles Orleans]";
@@ -574,7 +575,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
delitem 518,1; //Honey
delitem 514,2; //Grape
delitem 501,1; //Red_Potion
- set cooking,7;
+ set cooking_q,7;
getitem 12061,1; //Dex_Dish01
goto L_End;
}
@@ -598,7 +599,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
mes "of that Honey around.";
goto L_End;
}
- else if (cooking == 4) {
+ else if (cooking_q == 4) {
if (countitem(577) > 0 && countitem(908) > 9 && countitem(1024) > 0) {
cutin "orleans_4",0;
mes "[Charles Orleans]";
@@ -635,7 +636,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
delitem 577,1; //Grain
delitem 908,10; //Spawn
delitem 1024,1; //Chinese_ink
- set cooking,7;
+ set cooking_q,7;
getitem 12056,1; //Agi_Dish01
goto L_End;
}
@@ -658,7 +659,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
mes "decidely less than magnifique.";
goto L_End;
}
- else if (cooking == 5) {
+ else if (cooking_q == 5) {
if (countitem(960) > 9 && countitem(511) > 9 && countitem(503) > 0) {
cutin "orleans_4",0;
mes "[Charles Orleans]";
@@ -695,7 +696,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
delitem 960,10; //Nipper
delitem 511,10; //Green_Herb
delitem 503,1; //Yellow_Potion
- set cooking,7;
+ set cooking_q,7;
getitem 12051,1; //Vit_Dish01
goto L_End;
}
@@ -719,7 +720,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
mes "their Nippers. That sounds strange, I know, but just do it.";
goto L_End;
}
- else if (cooking == 6) {
+ else if (cooking_q == 6) {
if (countitem(942) > 4 && countitem(7031) > 0 && countitem(7457) > 0) {
cutin "orleans_4",0;
mes "[Charles Orleans]";
@@ -756,7 +757,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
delitem 942,5; //Yoyo_Tail
delitem 7031,1; //Old_Frying_Pan
delitem 7457,1; //Cooking_Oil
- set cooking,7;
+ set cooking_q,7;
getitem 12066,1; //Luk_Dish01
goto L_End;
}
@@ -781,7 +782,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
mes "allow you to be inhumane!";
goto L_End;
}
- else if (cooking == 7) {
+ else if (cooking_q == 7) {
cutin "orleans_7",0;
mes "[Charles Orleans]";
mes "Oh... I'm so exhausted!";
@@ -801,7 +802,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
mes "It will take some time...";
goto L_End;
}
- else if (cooking == 8) {
+ else if (cooking_q == 8) {
cutin "orleans_5",0;
mes "[Charles Orleans]";
mes "Strange, strange...";
@@ -891,7 +892,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
goto L_End;
}
}
- else if (cooking == 9) {
+ else if (cooking_q == 9) {
cutin "orleans_5",0;
emotion e_an;
mes "[Charles Orleans]";
@@ -1022,7 +1023,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
mes "lady... Madam Wickebine...";
goto L_End;
}
- else if (cooking == 10) {
+ else if (cooking_q == 10) {
cutin "orleans_5",0;
mes "[Charles Orleans]";
mes "It's been bothering";
@@ -1064,7 +1065,7 @@ prt_castle,43,30,3 script Charles Orleans#cook 878,{
mes "Long live King Tristram III!";
goto L_End;
}
- else if (cooking == 11) {
+ else if (cooking_q == 11) {
cutin "orleans_5",0;
emotion e_dots;
mes "[Charles Orleans]";
@@ -1542,7 +1543,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 886,{
//EnableItemMove
end;
}
- if (cooking == 0) {
+ if (cooking_q == 0) {
mes "[Madeleine Chu]";
mes "Oh, hello~";
mes "I'm Madeleine Chu,";
@@ -1640,7 +1641,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 886,{
close;
}
}
- else if (cooking > 0 && cooking < 7) {
+ else if (cooking_q > 0 && cooking_q < 7) {
mes "[Madeleine Chu]";
mes "Hello, is there any";
mes "way I can help you today?";
@@ -1712,7 +1713,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 886,{
mes "the recipe as soon as you can~";
close;
}
- else if (cooking == 7) {
+ else if (cooking_q == 7) {
mes "[Madeleine Chu]";
mes "Sir Charles taught you";
mes "a recipe? That's great!";
@@ -1742,7 +1743,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 886,{
mes "improve as you practice. ";
mes "Please take this cookbook";
mes "with the basic Level 1 recipes.";
- set cooking,8;
+ set cooking_q,8;
getitem 7472,1; //Cookbook01
next;
mes "[Madeleine Chu]";
@@ -1753,7 +1754,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 886,{
getitem 12125,10; //Outdoor_Cooking_Kits
close;
}
- else if (cooking == 8) {
+ else if (cooking_q == 8) {
mes "[Madeleine Chu]";
mes "So how has your cooking";
mes "been coming along? You'll";
@@ -1820,7 +1821,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 886,{
delitem 12056,1; //Agi_Dish01
delitem 12051,1; //Vit_Dish01
delitem 12066,1; //Luk_Dish01
- set cooking,9;
+ set cooking_q,9;
getitem 12111,1; //Food_Package
mes "[Madeleine Chu]";
mes "There you go, it's ready";
@@ -1876,7 +1877,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 886,{
close;
}
}
- else if (cooking == 9) {
+ else if (cooking_q == 9) {
if (countitem(12111) > 0) {
mes "[Madeleine Chu]";
mes "Please find my friend";
@@ -1917,7 +1918,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 886,{
mes "very ashamed of you...";
next;
delitem 7472,1; //Cookbook01
- set cooking,0;
+ set cooking_q,0;
mes "[Madeleine Chu]";
mes "First of all, I'd like";
mes "you to return my cookbook.";
@@ -1935,7 +1936,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 886,{
close;
}
}
- else if (cooking == 10) {
+ else if (cooking_q == 10) {
mes "[Madeleine Chu]";
mes "I just received a";
mes "message from Chulsoo";
@@ -1951,7 +1952,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 886,{
mes "skills are the most important";
mes "factor in quality cuisine.";
next;
- set cooking,11;
+ set cooking_q,11;
getitem 12126,10; //Indoor_Cooking_Kits
mes "[Madeleine Chu]";
mes "Please try these Indoor";
@@ -1968,7 +1969,7 @@ prt_castle,45,35,5 script Madeleine Chu#cook 886,{
mes "good luck, and I'll see you later~ ";
close;
}
- else if (cooking == 11) {
+ else if (cooking_q == 11) {
mes "[Madeleine Chu]";
mes "How are you? I hope";
mes "that you've been honing";
@@ -2259,7 +2260,7 @@ payon,209,127,3 script Servant 88,{
//EnableItemMove;
end;
}
- if (cooking == 10) {
+ if (cooking_q == 10) {
mes "[Chulsoo]";
mes "When you get the chance,";
mes "please give Madeline my";
@@ -2268,7 +2269,7 @@ payon,209,127,3 script Servant 88,{
mes "make amends with Sir Charles.";
close;
}
- else if (cooking == 9) {
+ else if (cooking_q == 9) {
mes "[Chulsoo]";
mes "How would you like";
mes "to buy a Rice Cake?";
@@ -2378,7 +2379,7 @@ payon,209,127,3 script Servant 88,{
mes "to tell me. In return, please have one of my humble Rice Cakes.";
next;
delitem 12111,1; //Food_Package
- set cooking,10;
+ set cooking_q,10;
getitem 555,1; //Rice_Cake
mes "[Chulsoo]";
mes "I better visit Prontera";
@@ -2403,7 +2404,7 @@ payon,209,127,3 script Servant 88,{
close;
}
}
- else if (cooking == 8) {
+ else if (cooking_q == 8) {
mes "[Chulsoo]";
mes "Lately, it seems that";
mes "no one wants to buy my";
diff --git a/src/map/clif.c b/src/map/clif.c
index 131d870bc..51ca50264 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -4507,6 +4507,47 @@ int clif_skill_produce_mix_list(struct map_session_data *sd, int trigger)
}
/*==========================================
+ *
+ *------------------------------------------*/
+void clif_cooking_list(struct map_session_data *sd, int trigger)
+{
+ int fd;
+ int i, c;
+ int view;
+
+ nullpo_retv(sd);
+ fd = sd->fd;
+
+ WFIFOHEAD(fd, 6 + 2*MAX_SKILL_PRODUCE_DB);
+ WFIFOW(fd,0) = 0x25a;
+ WFIFOW(fd,4) = 1; // list type
+
+ c = 0;
+ for( i = 0; i < MAX_SKILL_PRODUCE_DB; i++ )
+ {
+ if( !skill_can_produce_mix(sd,skill_produce_db[i].nameid,trigger, 1) )
+ continue;
+
+ if( (view = itemdb_viewid(skill_produce_db[i].nameid)) > 0 )
+ WFIFOW(fd, 6+2*c)= view;
+ else
+ WFIFOW(fd, 6+2*c)= skill_produce_db[i].nameid;
+
+ c++;
+ }
+
+ WFIFOW(fd,2) = 6 + 2*c;
+ WFIFOSET(fd,WFIFOW(fd,2));
+
+ //TODO: replace with proper solution
+ if( c > 0 )
+ {
+ sd->menuskill_id = AM_PHARMACY;
+ sd->menuskill_val = trigger;
+ }
+}
+
+/*==========================================
* Sends a status change packet to the object only, used for loading status changes. [Skotlex]
*------------------------------------------*/
int clif_status_load(struct block_list *bl,int type, int flag)
@@ -9698,6 +9739,23 @@ void clif_parse_ProduceMix(int fd,struct map_session_data *sd)
sd->menuskill_val = sd->menuskill_id = 0;
}
/*==========================================
+ *
+ *------------------------------------------*/
+void clif_parse_Cooking(int fd,struct map_session_data *sd)
+{
+ int type = RFIFOW(fd,2); // '1' for cooking
+ int nameid = RFIFOW(fd,4);
+
+ if (pc_istrading(sd)) {
+ //Make it fail to avoid shop exploits where you sell something different than you see.
+ clif_skill_fail(sd,sd->ud.skillid,0,0);
+ sd->menuskill_val = sd->menuskill_id = 0;
+ return;
+ }
+ skill_produce_mix(sd,0,nameid,0,0,0,1);
+ sd->menuskill_val = sd->menuskill_id = 0;
+}
+/*==========================================
* •ŠíC—
*------------------------------------------*/
void clif_parse_RepairItem(int fd, struct map_session_data *sd)
@@ -13371,7 +13429,7 @@ static int packetdb_readdb(void)
12, 26, 9, 11, -1, -1, 10, 2, 282, 11, 4, 36, -1, -1, 4, 2,
//#0x0240
-1, -1, -1, -1, -1, 3, 4, 8, -1, 3, 70, 4, 8, 12, 4, 10,
- 3, 32, -1, 3, 3, 5, 5, 8, 2, 3, -1, -1, 4, -1, 4, 0,
+ 3, 32, -1, 3, 3, 5, 5, 8, 2, 3, -1, 6, 4, -1, 4, 0,
6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
//#0x0280
@@ -13438,6 +13496,7 @@ static int packetdb_readdb(void)
{clif_parse_UseSkillMap,"useskillmap"},
{clif_parse_RequestMemo,"requestmemo"},
{clif_parse_ProduceMix,"producemix"},
+ {clif_parse_Cooking,"cooking"},
{clif_parse_NpcSelectMenu,"npcselectmenu"},
{clif_parse_NpcNextClicked,"npcnextclicked"},
{clif_parse_NpcAmountInput,"npcamountinput"},
diff --git a/src/map/clif.h b/src/map/clif.h
index 7d866a801..ad00176b6 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -232,6 +232,7 @@ void clif_skill_warppoint(struct map_session_data* sd, short skill_num, short sk
void clif_skill_memomessage(struct map_session_data* sd, int type);
void clif_skill_teleportmessage(struct map_session_data* sd, int type);
int clif_skill_produce_mix_list(struct map_session_data *sd, int trigger);
+void clif_cooking_list(struct map_session_data *sd, int trigger);
int clif_produceeffect(struct map_session_data* sd,int flag,int nameid);
diff --git a/src/map/script.c b/src/map/script.c
index 82c8079d1..8e2d54f3b 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -7246,6 +7246,22 @@ BUILDIN_FUNC(produce)
return 0;
}
/*==========================================
+ *
+ *------------------------------------------*/
+BUILDIN_FUNC(cooking)
+{
+ int trigger;
+ TBL_PC* sd;
+
+ sd = script_rid2sd(st);
+ if( sd == NULL )
+ return 0;
+
+ trigger=script_getnum(st,2);
+ clif_cooking_list(sd, trigger);
+ return 0;
+}
+/*==========================================
* NPC‚Ńyƒbƒgì‚é
*------------------------------------------*/
BUILDIN_FUNC(makepet)
@@ -13716,6 +13732,7 @@ struct script_function buildin_func[] = {
BUILDIN_DEF(guildopenstorage,"*"),
BUILDIN_DEF(itemskill,"vi"),
BUILDIN_DEF(produce,"i"),
+ BUILDIN_DEF(cooking,"i"),
BUILDIN_DEF(monster,"siisii*"),
BUILDIN_DEF(getmobdrops,"i"),
BUILDIN_DEF(areamonster,"siiiisii*"),