Selaa lähdekoodia

- Added iRO Valentine's Day 2009 Event.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13524 54d463be-8e91-2dee-dedb-b68131a5f0ec
Kisuka 16 vuotta sitten
vanhempi
commit
3944f69f1d
4 muutettua tiedostoa jossa 799 lisäystä ja 2 poistoa
  1. 10 1
      db/item_db2.txt
  2. 4 0
      db/item_trade.txt
  3. 782 0
      npc/events/valentinesday_2009.txt
  4. 3 1
      npc/scripts_athena.conf

+ 10 - 1
db/item_db2.txt

@@ -35,8 +35,17 @@
 //12200,Event_Cake,Event Cake,2,20,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ itemskill "PR_MAGNIFICAT",3; },{},{}
 //12238,New_Year_Rice_Cake_1,New Year Rice Cake,0,20,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 20,15; sc_start SC_STRFood,1200000,3; sc_start SC_INTFood,1200000,3; sc_start SC_LUKFood,1200000,3; sc_start SC_SpeedUp1,5000,0; },{},{}
 //12239,New_Year_Rice_Cake_2,New Year Rice Cake,0,20,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ percentheal 20,15; sc_start SC_DEXFood,1200000,3; sc_start SC_AGIFood,1200000,3; sc_start SC_VITFood,1200000,3; sc_start SC_SpeedUp1,5000,0; },{},{}
-//Requires St. Patrick's day event script.
+//Required for St. Patrick's Day (2008) event script.
 //12715,Black_Treasure_Chest,Black Treasure Chest,2,0,,200,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "F_08stpattyseventbox"; },{},{}
+//Required for Valentine's Day (2009) event script.
+//12742,Valentine_Gift_Box_M,Valentine Gift Box,2,10,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 7946,1; },{},{}
+//12743,Valentine_Gift_Box_F,Valentine Gift Box,2,10,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 7947,1; },{},{}
+//12744,Chocolate_Box,Chocolate Box,2,10,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 558,1; },{},{}
+//14466,Valentine's_Emblem_Box,Valentine's Emblem Box,2,10,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ getitem 5817,1; },{},{}
+//7946,Gold_Ring_Of_Valentine,Gold Ring Of Valentine,3,10,,0,,,,,,,,,,,,,{},{},{}
+//7947,Silver_Ring_Of_Valentine,Silver Ring Of Valentine,3,10,,0,,,,,,,,,,,,,{},{},{}
+//7948,Box,Box,3,10,,10,,,,,,,,,,,,,{},{},{}
+//5817,Valentine's_Emblem,Valentine's Emblem,5,10,,0,,3,,0,0xFFFFFFFF,7,2,136,,0,0,0,{ bonus bAtkRate,3; bonus bMatkRate,3; bonus bAllStats,2; bonus bFlee,10; bonus bAspd,1; bonus bMdef,3; bonus2 bSkillAtk,"AL_HEAL",10; bonus2 bSkillHeal,"AL_HEAL",10; bonus2 bSkillHeal,"AM_POTIONPITCHER",10; bonus2 bAddItemHealRate,IG_Potion,10; },{},{}
 
 // Old Tuxedo and Wedding Dress, will display the outfit when worn, un-comment to enable it
 //2338,Wedding_Dress,Wedding Dress,5,43000,,500,,0,,0,0xFFFFFFFE,7,0,16,,0,1,0,{},{ setoption Option_Wedding,1; },{ setoption Option_Wedding,0; }

+ 4 - 0
db/item_trade.txt

@@ -585,3 +585,7 @@
 //7915,123,100	// Bronze_Coin
 //7916,123,100	// Silver_Coin
 //12715,123,100	// Black_Treasure_Chest
+
+// "Valentine's Day (2009)" Event related items
+//5817,123,100
+//14466,123,100

+ 782 - 0
npc/events/valentinesday_2009.txt

@@ -0,0 +1,782 @@
+//===== eAthena Script =======================================
+//= iRO Valentine's Day Event (2009)
+//===== By: ==================================================
+//= Kisuka
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= eAthena SVN
+//===== Description: =========================================
+//= iRO Valentine's Day Event. (2009)
+//= Make Chocolate/Chocolate Boxes/Home-Made Chocolate.
+//= Make Valentine's Rings/Boxes.
+//= Trade rings to those of opposite gender.
+//= Register rings you have gotten for votes.
+//=
+//= The male and female with the most votes at the end of
+//= the event will receive item (14466) from GM team.
+//=
+//= Must enable the event items in item_db2 and item_trade!
+//===== Additional Comments: =================================
+//= 1.0 First version. [Kisuka]
+//============================================================
+
+// Marco Bassinio (Chocolate/Chocolate Box maker)
+prontera,164,174,4	script	Trader#Val09	58,{
+	mes "[Marco Bassinio]";
+	mes "Hey, folks! Here's something you don't see everyday!";
+	mes "Something you can never find in Rune-Midgarts!";
+	mes "Something that makes you happy with just one bite!";
+	next;
+	mes "[Marco Bassinio]";
+	mes "It's the perfect dessert and the perfect gift for loved ones.";
+	mes "High-quality, traditional homemade chocolate only 5000z each!";
+	next;
+	switch(select("I'll take it, please!:I want to wrap the chocolate!:End trading.")) {
+		case 1:
+			mes "[Marco Bassinio]";
+			mes "Ahaha, my dear.";
+			mes "This chocolate is";
+			mes "nothing like others.";
+			mes "Every piece bears the";
+			mes "devotion of the person";
+			mes "who made it!";
+			next;
+			mes "[Marco Bassinio]";
+			mes "So, that's why I can't sell";
+			mes "more than 5 of them at a time.";
+			mes "If you really really want more,";
+			mes "then talk to me again.";
+			mes "How many do you want anyway?";
+			next;
+			while(.@input <= 0 || .@input > 5) {
+				input .@input;
+				if (.@input < 1) {
+					mes "[Marco Bassinio]";
+					mes "Oh, it's such a shame!";
+					mes "I'm sure you'll miss";
+					mes "this opportunity and";
+					mes "regret you didn't buy it.";
+					next;
+					mes "[Marco Bassinio]";
+					mes "Remember, you can never";
+					mes "find this anywhere else!";
+					mes "Come back anytime,";
+					mes "when you change your mind.";
+					close;
+				}
+				if (.@val09choco > 5) {
+					mes "[Marco Bassinio]";
+					mes "Ugh.. Didn't I tell you?";
+					mes "5 is the maximum!";
+					mes "I can't sell more than";
+					mes "that to the same person.";
+					next;
+					mes "[Marco Bassinio]";
+					mes "And you know it's not";
+					mes "like an everyday meal.";
+					mes "Eating too much is not";
+					mes "really good for you.";
+					next;
+				}
+			}
+			if (!checkweight(558, .@input)) {
+				mes "[Marco Bassinio]";
+				mes "You're carrying too many items.";
+				mes "Please use the Kafra Services.";
+				close;
+			}
+			set .@price, .@input * 5000;
+			if (Zeny < .@price) {
+				mes "[Marco Bassinio]";
+				mes "Looks like you don't have";
+				mes "enough zeny with ya.";
+				mes "Maybe you should borrow";
+				mes "some zeny from a friend.";
+				mes "Cuz, I'm not gonna";
+				mes "be here everyday.";
+				close;
+			}else{
+				mes "[Marco Bassinio]";
+				mes "Good for you!";
+				mes "It's also perfect as a gift!";
+				mes "You know you can't get this";
+				mes "kind of chocolate normally.";
+				next;
+				mes "[Marco Bassinio]";
+				mes "If you want more,";
+				mes "you should come back.";
+				mes "Might be a good idea to";
+				mes "buy some more while";
+				mes "you have a chance...!";
+				set Zeny,Zeny - .@price;
+				getitem 558,.@input;
+				close;
+			}
+		case 2:
+			mes "[Marco Bassinio]";
+			mes "If you want to gift-wrap";
+			mes "the chocolate, of course,";
+			mes "you need chocolate,";
+			mes "plus, wrapping paper,";
+			mes "wrapping strap and a box.";
+			next;
+			mes "[Marco Bassinio]";
+			mes "You also need to pay";
+			mes "500 zeny to carve your";
+			mes "name on the box.";
+			mes "Are you all prepared...?";
+			next;
+			if(countitem(7175) < 1 || countitem(7174) < 1 || countitem(7948) < 1 || Zeny < 500) {
+				mes "[Marco Bassinio]";
+				mes "Hmm.. Looks like you don't";
+				mes "have enough materials to";
+				mes "decorate the gift box..";
+				mes "You can't just put your gift";
+				mes "into some plain looking box..";
+				mes "Don't you think?";
+				next;
+				mes "[Marco Bassinio]";
+				mes "You need to bring some";
+				mes "wrapping paper,";
+				mes "wrapping strap, and a box.";
+				mes "Oh, also bring 500 zeny,";
+				mes "and don't forget to bring your";
+				mes "true loving heart with you!!";
+				close;
+			}
+			if(countitem(558) < 1) {
+				mes "[Marco Bassinio]";
+				mes "Hey, look, adventurer!";
+				mes "I can't create something right away!";
+				mes "You know I'm not an alchemist or anything.";
+				next;
+				mes "[Marco Bassinio]";
+				mes "You're not saying that you";
+				mes "want an empty chocolate box";
+				mes "without any chocolate in it,";
+				mes "am I right?";
+				close;				
+			}
+			if (!checkweight(12744,1)) {
+				mes "[Marco Bassinio]";
+				mes "You're carrying too many items.";
+				mes "Please use the Kafra Services.";
+				close;
+			}
+			mes "[Marco Bassinio]";
+			mes "Here, look!";
+			mes "It's your chocolate box";
+			mes "with your name on it.";
+			mes "Isn't it fabulous?";
+			mes "See, your name looks";
+			mes "great on the box!";
+			next;
+			delitem 7175,1;
+			delitem 7174,1;
+			delitem 7948,1;
+			set Zeny,Zeny-500;
+			getnameditem 12744,strcharinfo(0);
+			mes "[Marco Bassinio]";
+			mes "Happy Valentine's Day!";
+			mes "Valentine's the reason I came back.";
+			close;
+		case 3:
+			mes "[Marco Bassinio]";
+			mes "Oh, it's such a shame!";
+			mes "I'm sure you'll miss";
+			mes "this opportunity and";
+			mes "regret you didn't buy it.";
+			next;
+			mes "[Marco Bassinio]";
+			mes "Remember, you can never";
+			mes "find this anywhere else!";
+			mes "Come back anytime,";
+			mes "when you change your mind.";
+			close;
+	}
+}
+
+// Packs Trader (Sells Wrapping Paper, Lace, and Box)
+prontera,147,171,5	script	Packs Trader#Val09	58,{
+	mes "[Packs Trader]";
+	mes "Hello.";
+	mes "I am a Packs Trader,";
+	mes "I sell paper boxes and";
+	mes "supplies for packing presents.";
+	next;
+	while(1) {
+		mes "[Packs Trader]";
+		mes "Do you have something to buy?";
+		next;
+		switch(select("Packing Paper:Packing Ribbon:Box:Cancel.")) {
+			case 1:
+				mes "[Packs Trader]";
+				mes "It's 200 zeny for";
+				mes "1 Packing Paper.";
+				mes "How many do you want?";
+				mes "You can't buy more";
+				mes "than 10 items at once.";
+				next;
+				input .@input;
+				if (.@input <= 0) {
+					mes "[Packs Trader]";
+					mes "Nothing to buy.";
+					mes "Come back when";
+					mes "you need something.";
+					close;
+				}
+				if (.@input > 10) {
+					mes "[Packs Trader]";
+					mes "I told you not to buy more than 10...";
+					next;
+					break;
+				}
+				if (!checkweight(7175,.@input)) {
+					mes "[Packs Trader]";
+					mes "You're carrying too many items.";
+					mes "Please use the Kafra Services.";
+					close;
+				}
+				set .@price, .@input * 200;
+				if (Zeny < .@price) {
+					mes "[Packs Trader]";
+					mes "You don't have enough money.";
+					mes "Please check your wallet.";
+					next;
+					break;
+				}else{
+					mes "[Packs Trader]";
+					mes "Here they are.";
+					mes "Hope it makes your";
+					mes "Valentine's Day";
+					mes "more pleasing!";
+					set Zeny,Zeny-.@price;
+					getitem 7175,.@input;
+					next;
+					break;
+				}
+			case 2:
+				mes "[Packs Trader]";
+				mes "It's 200 zeny for";
+				mes "1 Packing Ribbon.";
+				mes "How many do you want?";
+				mes "You can't buy more";
+				mes "than 10 items at once.";
+				next;
+				input .@input;
+				if (.@input <= 0) {
+					mes "[Packs Trader]";
+					mes "Nothing to buy.";
+					mes "Come back when";
+					mes "you need something.";
+					close;
+				}
+				if (.@input > 10) {
+					mes "[Packs Trader]";
+					mes "I told you not to buy more than 10...";
+					next;
+					break;
+				}
+				if (!checkweight(7174,.@input)) {
+					mes "[Packs Trader]";
+					mes "You're carrying too many items.";
+					mes "Please use the Kafra Services.";
+					close;
+				}
+				set .@price, .@input * 200;
+				if (Zeny < .@price) {
+					mes "[Packs Trader]";
+					mes "You don't have enough money.";
+					mes "Please check your wallet.";
+					next;
+					break;
+				}else{
+					mes "[Packs Trader]";
+					mes "Here they are.";
+					mes "Hope it makes your";
+					mes "Valentine's Day";
+					mes "more pleasing!";
+					set Zeny,Zeny-.@price;
+					getitem 7174,.@input;
+					next;
+					break;
+				}
+			case 3:
+				mes "[Packs Trader]";
+				mes "It's 600 zeny for";
+				mes "1 Box.";
+				mes "How many do you want?";
+				mes "You can't buy more";
+				mes "than 10 items at once.";
+				next;
+				input .@input;
+				if (.@input <= 0) {
+					mes "[Packs Trader]";
+					mes "Nothing to buy.";
+					mes "Come back when";
+					mes "you need something.";
+					close;
+				}
+				if (.@input > 10) {
+					mes "[Packs Trader]";
+					mes "I told you not to buy more than 10...";
+					next;
+					break;
+				}
+				if (!checkweight(7948,.@input)) {
+					mes "[Packs Trader]";
+					mes "You're carrying too many items.";
+					mes "Please use the Kafra Services.";
+					close;
+				}
+				set .@price, .@input * 600;
+				if (Zeny < .@price) {
+					mes "[Packs Trader]";
+					mes "You don't have enough money.";
+					mes "Please check your wallet.";
+					next;
+					break;
+				}else{
+					mes "[Packs Trader]";
+					mes "Here they are.";
+					mes "Hope it makes your";
+					mes "Valentine's Day";
+					mes "more pleasing!";
+					set Zeny,Zeny-.@price;
+					getitem 7948,.@input;
+					next;
+					break;
+				}	
+			case 4:
+				mes "[Packs Trader]";
+				mes "Goodbye!";
+				mes "And enjoy your";
+				mes "Valentine's Day.";
+				close;
+		}
+	}
+}
+
+// Event Ring Maker (Makes ring for players)
+prontera,154,185,5	script	Event Ring Maker#Val09	721,{
+	if (BaseLevel < 75) {
+		mes "[Event Ring Maker]";
+		mes "Hello, I only make the";
+		mes "Valentine rings to those";
+		mes "experienced adventurers";
+		mes "Level 75 or above.";
+		next;
+		mes "[Event Ring Maker]";
+		mes "You're not fully";
+		mes "experienced yet.";
+		mes "Come back when you're";
+		mes "experienced enough to";
+		mes "handle the quests.";
+		close;
+	}
+	
+	if (iROval09ring == 1) {
+		mes "[Event Ring Maker]";
+		mes "The box with the ring,";
+		mes "carved with your name,";
+		mes "is for the one you love.";
+		next;
+		mes "[Event Ring Maker]";
+		mes "As for the rings that you";
+		mes "receive from others, they";
+		mes "should all be registered";
+		mes "with the Vote Manager.";
+		mes "She is standing near";
+		mes "the Prontera Fountain.";
+		next;
+		mes "[Event Ring Maker]";
+		mes "Only the most popular";
+		mes "male and female are";
+		mes "subjected to getting rewards.";
+		mes "Be aware, and always";
+		mes "try to stay popular!";
+		close;
+	}
+	
+	mes "[Event Ring Maker]";
+	mes "Hi, there, how are ya?";
+	mes "Come to me if you're";
+	mes "interested in the event,";
+	mes "'Who's Valentine's Hottest?'";
+	next;
+	mes "[Event Ring Maker]";
+	mes "I make the most precious";
+	mes "rings that you can give";
+	mes "to your sweethearts.";
+	mes "Those rings are very special";
+	mes "because I carve";
+	mes "your names on them!";
+	next;
+	mes "[Event Ring Maker]";
+	mes "Isn't it exciting?";
+	mes "Isn't it such a brilliant idea?";
+	mes "Give these special rings";
+	mes "to your sweethearts!";
+	next;
+	mes "[Event Ring Maker]";
+	mes "You should hurry 'cuz";
+	mes "this event will only";
+	mes "last for two weeks.";
+	mes "Give that special someone";
+	mes "a gift of a Valentine's ring.";
+	next;
+	mes "[Event Ring Maker]";
+	mes "Remember, you can only";
+	mes "generate the ring once.";
+	mes "You also need Wrapping Paper,";
+	mes "Wrapping Strap and a Box";
+	mes "to make the ring.";
+	next;
+	mes "[Event Ring Maker]";
+	mes "So you better be sure";
+	mes "of who you give this to.";
+	mes "By the way,";
+	mes "It costs 1,000 zeny.";
+	mes "Would you like to make one?";
+	next;
+	if(select("Hmm.. I gotta give it a second thought...:Sure.") == 1) {
+		mes "[Event Ring Maker]";
+		mes "Alrighty!";
+		mes "You can't put a rush";
+		mes "on such a thing like this.";
+		mes "Think about what";
+		mes "you truly want.";
+		mes "Just follow your heart!";
+		close;
+	}
+	if(countitem(7175) < 1 || countitem(7174) < 1 || countitem(7948) < 1 || Zeny < 1000) {
+		mes "[Event Ring Maker]";
+		mes "Well, you don't have";
+		mes "enough materials";
+		mes "to make a gift box.";
+		mes "Check what you have,";
+		mes "and come back later";
+		mes "with all the materials.";
+		close;
+	}
+	mes "[Event Ring Maker]";
+	mes "Okie Dokie!";
+	mes "I'll make it right away.";
+	next;
+	delitem 7175,1;
+	delitem 7174,1;
+	delitem 7948,1;
+	set Zeny,Zeny-1000;
+	set iROval09ring,1;
+	if (Sex) {
+		getnameditem 12742,strcharinfo(0);
+	}else{
+		getnameditem 12743,strcharinfo(0);
+	}
+	mes "[Event Ring Maker]";
+	mes "Here, the most precious";
+	mes "ring in the world!";
+	mes "Don't forget, you can never";
+	mes "make this ring again.";
+	next;
+	mes "[Event Ring Maker]";
+	mes "You must pick out the one";
+	mes "that you really really love,";
+	mes "and give this ring";
+	mes "to that person.";
+	next;
+	mes "[Event Ring Maker]";
+	mes "Of course, you've got to";
+	mes "get rings from others,";
+	mes "that's the way you can";
+	mes "participate in the voting, right?";
+	mes "Challenge yourself to become";
+	mes "Valentine's Hottest!";
+	close;	
+}
+
+// Valentine Vote Manager (Registers votes)
+prontera,157,185,4	script	Valentine Vote Manager#v	113,{
+	mes "[Valentine Vote Manager]";
+	mes "Hello, I'm the Valentine's";
+	mes "Vote Manager.";
+	mes "I'm in charge of collecting";
+	mes "rings for this event!";
+	next;
+	mes "[Valentine Vote Manager]";
+	mes "I register the rings";
+	mes "you get from others";
+	mes "and I calculate the";
+	mes "total number of rings.";
+	next;
+	mes "[Valentine Vote Manager]";
+	mes "You know what I do besides";
+	mes "just counting those rings?";
+	mes "I can tell you the adventurer's";
+	mes "name who's got the";
+	mes "most number of votes.";
+	next;
+	mes "[Valentine Vote Manager]";
+	mes "Plus, you can also find out how";
+	mes "many votes he/she got.";
+	next;
+	while (1) {
+		mes "[Valentine Vote Manager]";
+		mes "So, what do you want?";
+		next;
+		switch(select("Please register my rings.:Please count my votes.:Nothing, for now.")) {
+			case 1:
+				mes "[Valentine Vote Manager]";
+				mes "Please tell me how many";
+				mes "rings you want to register.";
+				next;
+				mes "[Valentine Vote Manager]";
+				mes "When you write the";
+				mes "number of the rings,";
+				mes "the number shouldn't be";
+				mes "larger than the number of";
+				mes "rings you actually have.";
+				mes "'0', cancels everything.";
+				next;
+				input .@input;
+
+				if (.@input <= 0) {
+					mes "[Valentine Vote Manager]";
+					mes "You have entered 0.";
+					mes "Registration is cancelled.";
+					next;
+					break;
+				}
+				
+				if (Sex) {
+					if (countitem(7947) > .@input) {
+						mes "[Valentine Vote Manager]";
+						mes "Seems like the value you entered is too small.";
+						mes "I know you've got more. Be honest, dear.";
+						next;
+						break;
+					}
+					
+					if (countitem(7947) < .@input) {
+						mes "[Valentine Vote Manager]";
+						mes "Seems like the value you entered is too large.";
+						mes "I know you've got less. Be honest, dear.";
+						next;
+						break;
+					}
+					
+					mes "[Valentine Vote Manager]";
+					mes "I'll take those silver rings,";
+					mes "and count the votes for you.";
+					mes "Thank you for participating.";
+					delitem 7947,.@input;
+					set Val09Rings,Val09Rings+.@input;
+					if (Val09Rings > $Val09votes_M) {
+						set $Val09votes_M,Val09Rings;
+						set $Val09name_M$,strcharinfo(0);
+					}
+					next;
+					break;
+				}else{
+					if (countitem(7946) > .@input) {
+						mes "[Valentine Vote Manager]";
+						mes "Seems like the value you entered is too small.";
+						mes "I know you've got more. Be honest, dear.";
+						next;
+						break;
+					}
+					
+					if (countitem(7946) < .@input) {
+						mes "[Valentine Vote Manager]";
+						mes "Seems like the value you entered is too large.";
+						mes "I know you've got less. Be honest, dear.";
+						next;
+						break;
+					}
+					
+					mes "[Valentine Vote Manager]";
+					mes "I'll take those gold rings,";
+					mes "and count the votes for you.";
+					mes "Thank you for participating.";
+					delitem 7946,.@input;
+					set Val09Rings,Val09Rings+.@input;
+					if (Val09Rings > $Val09votes_F) {
+						set $Val09votes_F,Val09Rings;
+						set $Val09name_F$,strcharinfo(0);
+					}
+					next;
+					break;
+				}
+			case 2:
+				mes "[Valentine Vote Manager]";
+				mes "Let's see...";
+				mes "You have registered..";
+				mes ".."+Val09Rings+" rings so far.";
+				mes "and...";
+				next;
+				mes "[Valentine Vote Manager]";
+				mes "The current record shows... "+$Val09name_M$+" is the male vote leader who's registered the total of "+$Val09votes_M+" rings.";
+				next;
+				mes "[Valentine Vote Manager]";
+				mes "The current record shows... "+$Val09name_F$+" is the female vote leader who's registered the total of "+$Val09votes_F+" rings.";
+				next;
+				break;			
+
+			case 3:
+				mes "[Valentine Vote Manager]";
+				mes "Hey, you can be popular too!";
+				mes "Anyone can... really!";
+				mes "Though you have to try a lot";
+				mes "harder, but still~ Hahaha!";
+				close;
+		}
+	}
+}
+
+// Charles Orleans (Makes Home-Made Chocolates)
+prt_castle,42,35,3	script	Dessert Manager#Val09	47,{
+	if (Sex) {
+		mes "[Charles Orleans]";
+		mes "Monsieur~! What brings";
+		mes "you to my beautiful atelier?";
+		mes "What is it that you want?";
+		mes "Well, my sparkling eyes";
+		mes "get dried and lose their shine";
+		mes "if not for the pretty little lady.";
+		next;
+		mes "[Charles Orleans]";
+		mes "Please leave me alone unless";
+		mes "you have business with me.";
+		mes "Haaaa~ I'm a busy person.";
+		mes "Don't bother me....";
+		mes "Annoying, annoying, annoying~~!";
+		close;
+	}
+	
+	mes "[Charles Orleans]";
+	mes "Oh, Mademoiselle!";
+	mes "This little trifling space";
+	mes "felt like heaven the";
+	mes "minute you walked in!";
+	mes "Can I help you with";
+	mes "anything, if it's alright?";
+	next;
+	if(select("Please, make me some chocolate.:Don't bother. I'm just passing by.") == 2) {
+		mes "[Charles Orleans]";
+		mes "Ahhh, this is so heartbreaking.";
+		mes "How could you say that?";
+		mes "You're just so mean.";
+		mes "Don't bother? Just passing by?";
+		next;
+		mes "[Charles Orleans]";
+		mes "What can I do to make you";
+		mes "pay a little attention to me?";
+		mes "Please.. I feel like my soul is lost..";
+		close;
+	}
+	if(countitem(558) < 3) {
+		mes "[Charles Orleans]";
+		mes "Ahhh, Mademoiselle.";
+		mes "I'm not an alchemist,";
+		mes "or a magician.";
+		mes "I don't just make chocolate";
+		mes "out of anything.";
+		next;
+		mes "[Charles Orleans]";
+		mes "I always think of making";
+		mes "chocolate as artistic work.";
+		mes "You see, I'm no ordinary cook...";
+		mes "I make chocolate with feelings..";
+		mes "messages of loving hearts..";
+		next;
+		mes "[Charles Orleans]";
+		mes "I make masterpieces.";
+		mes "No one can imitate";
+		mes "the looks and the taste.";
+		mes "Yes, it's nothing like";
+		mes "ordinary chocolate!";
+		next;
+		mes "[Charles Orleans]";
+		mes "I'm afraid I can't make it";
+		mes "and prove it to you now.";
+		mes "This is really a shame!";
+		next;
+		mes "[Charles Orleans]";
+		mes "I really want to thank";
+		mes "you for visiting me";
+		mes "and if you only bring";
+		mes "^3152ff3 Chocolates^000000,";
+		mes "I'll make you chocolate";
+		mes "like you've never seen...";
+		next;
+		mes "[Charles Orleans]";
+		mes "never tasted before...";
+		mes "Mademoiselle, with your spirit,";
+		mes "I'm sure you can bring";
+		mes "3 pieces of chocolate.";
+		mes "I have no doubt at all.";
+		next;
+		mes "[Charles Orleans]";
+		mes "So... what do you think?";
+		mes "Can you bring ^3152ff3 Chocolates^000000?";
+		mes "I could get them myself,";
+		mes "but I'm tied up with so much";
+		mes "work as you see right now.";
+		next;
+		mes "[Charles Orleans]";
+		mes "Adios, Mademoiselle.....";
+		mes "I'll be waiting for you.";
+		close;
+	}else{
+		if (!checkweight(559,1)) {
+			mes "[Charles Orleans]";
+			mes "You're carrying too many items.";
+			mes "Please use the Kafra Services.";
+			close;
+		}
+		mes "[Charles Orleans]";
+		mes "Oh, Mademoiselle!";
+		mes "I'll make the best chocolate";
+		mes "with the pieces you've brought.";
+		mes "I'm going to put the light of";
+		mes "your eyes into this chocolate";
+		mes "that no one can resist.";
+		next;
+		mes "[Charles Orleans]";
+		mes "It'll be stronger than a";
+		mes "sweet sweet love potion.....";
+		next;
+		mes "[Charles Orleans]";
+		mes "Un, Deux, Trois, Quatre.....";
+		mes "Just like the ugly duckling that";
+		mes "turned to a beautiful swan-";
+		mes "Ordinary chocolate pieces are";
+		mes "becoming a piece of art!";
+		next;
+		mes "[Charles Orleans]";
+		mes "They're changing!";
+		mes "They're getting warm,";
+		mes "softly changing the shape,";
+		mes "getting stronger again!";
+		mes "Oh, is it a master piece or";
+		mes "what...!!";
+		next;
+		mes "[Charles Orleans]";
+		mes "Here you go, Mademoiselle!";
+		mes "Ahahahaha, just look at this!";
+		mes "I can't believe I made this.";
+		mes "Oh, I can't take my eyes off..!!";
+		delitem 558,3;
+		getitem 559,1;
+		next;
+		mes "[Charles Orleans]";
+		mes "Alright. Mademoiselle,";
+		mes "I hope this is just";
+		mes "what you wanted,";
+		mes "for it bears your";
+		mes "beautiful heart inside.";
+		close;
+	}
+	
+}

+ 3 - 1
npc/scripts_athena.conf

@@ -202,7 +202,9 @@ npc: npc/kafras/dts_warper.txt
 //Official St. Patrick's Day (2008) event (iRO)
 //npc: npc/events/StPatrick_2008.txt
 //Official Easter (2008) event (iRO)
-//npc: npc/events/Easter_2008.txt
+//npc: npc/events/easter_2008.txt
+//Official Valentine's Day (2009) event (iRO)
+//npc: npc/events/valentinesday_2009.txt
 
 //Novice WoE is a kRO Event, after the event, the scripts were disabled.
 //Novice Castles don't have real dungeons. They're connected to the common ones.