summaryrefslogblamecommitdiff
path: root/npc/events/easter_2010.txt
blob: 27e63ad5fadb6966f2e3f4fdd977d41d89da3cd4 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11










                                                                           

                                             













                                                                           
                       
                                                                           
                                              


                                                                           
 
                                                                
























                                                         

                                       













                                                                              
                                                                                     



















                                                                                  
                                                                        







                                                                     
                                                                 












                                                                             
                                   
                                                 
                                   

                                                                                                                                                                           














                                                                                   
                                                                 


                            
                                       
















                                                                       
                                                                                                      




















                                                                                                                   



                                                                                              

























                                                                      







                                                  
                                                           
                                     






                                                        
                                           

                                                                                                                       







                                                                                                                     
 
                                                                                                                  
                        








                                                                                                                     
 
                                                                                                     
                 


















                                                        
         









                                                 

























                                                                     

 
                                                           
                                   
          


                                                                  
                                                                  



                                                             
                                               







                                           
                                                   




                                                     
                                                   




                                                     
                                                   




                                                     
                                                                      
                      
                                   






                                                     
                                       





                                                             
                                                                    


                                                   
                                                           
                                                        
                                                           
                                    
                                                           
                              
                                                   
                                                                                                       










                                                                        
                                                                                 









                                                                                          

                                                  
                                          
                                                    





                                                                       
                                                               
                                                             
                                                            
                                                             
                                                                  
                                    
                                                                




                                                                               
                                                                   
                                    
                                                           








                                                                                       

                                                                  
                                        

                                                                    








                                                                          
                                                     









































                                                                      
                                                                                                           




















































                                                                                      
                                                                





                                                        
                                                                 
























                                                      
                                                                          


























                                                                      
                                                                


























                                                
//================= Hercules Script =======================================
//=       _   _                     _
//=      | | | |                   | |
//=      | |_| | ___ _ __ ___ _   _| | ___  ___
//=      |  _  |/ _ \ '__/ __| | | | |/ _ \/ __|
//=      | | | |  __/ | | (__| |_| | |  __/\__ \
//=      \_| |_/\___|_|  \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2012-2020 Hercules Dev Team
//= Copyright (C) Euphy
//=
//= Hercules is free software: you can redistribute it and/or modify
//= it under the terms of the GNU General Public License as published by
//= the Free Software Foundation, either version 3 of the License, or
//= (at your option) any later version.
//=
//= This program is distributed in the hope that it will be useful,
//= but WITHOUT ANY WARRANTY; without even the implied warranty of
//= MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//= GNU General Public License for more details.
//=
//= You should have received a copy of the GNU General Public License
//= along with this program.  If not, see <http://www.gnu.org/licenses/>.
//=========================================================================
//= Easter Event (2010)
//================= Description ===========================================
//= Lift Lina's curse for an Easter Egg Shell.
//================= Current Version =======================================
//= 1.0
//=========================================================================

prontera,202,297,3	script	Rina#Easter	4_F_JOB_HUNTER,{
	disable_items;
	if (BaseLevel < 40) {
		mes "[Rina]";
		mes "Hi~!";
		mes "You are an adventurer like me.";
		next;
		mes "[Rina]";
		mes "I am put under a curse.";
		mes "I know you want to help me,";
		mes "but your experience is not enough.";
		next;
		consumeitem 607; //Yggdrasilberry
		consumeitem 12068; //Luk_Dish03
		consumeitem 12063; //Dex_Dish03
		consumeitem 12053; //Vit_Dish03
		npcskill "AL_INCAGI",1,0,0;
		npcskill "AL_BLESSING",1,0,0;
		mes "[Rina]";
		mes "I am not in the good condition,";
		mes "so what I can do for you";
		mes "is just like this.";
		mes "Then, good bye.";
		mes "Take care~!";
		close;
	}
	.@quest1 = questprogress(9117);
	if (!.@quest1) {
		playbgm "30.mp3"; // One Step Closer
		mes "[Rina]";
		mes "Hi~!";
		mes "You are an adventurer like me.";
		mes "Well... In fact, I am";
		mes "put under a strange curse.";
		next;
		mes "[Rina]";
		mes "To release this curse,";
		mes "somebody needs to do ^800080Oath-taking ceremony^000000";
		mes "with me,";
		mes "and then needs to solve";
		mes "several problems instead of me.";
		next;
		if (select("Let's help ^800080Rina^000000.", "Just skip it.") == 2) {
			emotion e_sigh;
			mes "[Rina]";
			mes "To help me,";
			mes "I need a competent adventurer.";
			mes "If you know those people,";
			mes "I hope you to introduce them to me later.";
			close;
		}
		emotion e_awsm;
		mes "[Rina]";
		mes "Are you really going to help me?";
		mes "Thank you.";
		mes "You are so brave.";
		next;
		playbgm "01.mp3"; // Title
		mes "[Rina]";
		mes "Then I'll start ^800080Oath-taking ceremony^000000.";
		mes " ";
		mes "^787878( A mysterious atmosphere hangs in the air. )^000000";
		next;
		specialeffect(EF_COUPLECASTING, AREA, playerattached());
		next;
		mes "[Rina]";
		mes "Blah blah blah...";
		mes " ";
		mes "Blah blah blah...";
		mes " ";
		mes "^787878( ... This is a strange spell. )^000000";
		next;
		specialeffect(EF_SIGNUM, AREA, playerattached());
		mes "[Rina]";
		mes "Haaaaah~";
		mes "^800080Oath-taking ceremony^000000 is done enough now.";
		mes "Isn't that so simple?";
		next;
		emotion e_dum;
		mes "[Rina]";
		mes "Okay, from no on,";
		mes "you need to go on ^006400a real adventure";
		mes "to release my curse^000000.";
		mes "Let me know when you are ready.";
		setquest 9117;
		close;
	} else if (.@quest1 == 1) {
		callsub(L_HuntingInfo, .@quest1);
	} else if (.@quest1 == 2) {
		if (questprogress(9118) != 2 || questprogress(9119) != 2 || questprogress(9120) != 2 || questprogress(9121) != 2) {
			if (questprogress(9118,HUNTING) == 2 || questprogress(9119,HUNTING) == 2 || questprogress(9120,HUNTING) == 2 || questprogress(9121,HUNTING) == 2) {
				mes "[Rina]";
				mes "You did it.";
				mes "I can feel that my body is recovering.";
				mes "But it is not enough.";
				next;
				mes "[Rina]";
				mes "^006400You have one more thing to do.^000000";
				mes "Let me know when you're ready.";
				close2;
				completequest 9118;
				completequest 9119;
				completequest 9120;
				completequest 9121;
				setquest 9122;
			} else
				callsub(L_HuntingInfo, .@quest1);
			end;
		}
	}
	if (questprogress(9122) == 1) {
		mes "[Rina]";
		mes "I will check one thing.";
		mes "For this task,";
		mes "You need to feel the music.";
		next;
		mes "[Rina]";
		mes "You cannot complete the task";
		mes "without the music.";
		mes "do you have any problem?";
		next;
		mes "- Check! -";
		mes "^787878- BGM option should be turned on -^000000";
		mes "^787878- in the game option menu. -^000000";
		mes "^787878- Please check -^000000";
		mes "^787878- whether you can listen -^000000";
		mes "^787878- to the music sound. -^000000";
		next;
		if(select("[I'm ready to listen to the BGM.]", "[I can't listen to the BGM.]") == 2) {
			mes "[Rina]";
			mes "I am so shocked that";
			mes "you cannot feel the music.";
			mes "What should we do now...";
			close2;
			emotion e_sob;
			end;
		}
		mes "[Rina]";
		mes "Listen carefully";
		mes "the feelings of it...";
		mes "I can't hear it,";
		mes "but you can hear the sound.";
		next;
		if (oversea_event2 < 520 || oversea_event3 < 270 || oversea_event6 < 245 || oversea_event9 < 197) {
			     if (oversea_event2 == 520) playbgm "13.mp3"; // Theme of Geffen
			else if (oversea_event3 == 270) playbgm "59.mp3"; // Theme of Lutie
			else if (oversea_event6 == 245) playbgm "70.mp3"; // Theme of Juno
			else if (oversea_event9 == 197) playbgm "94.mp3"; // Theme of Rachel
			else {
				switch(rand(1,4)) {
					case 1: playbgm "13.mp3"; oversea_event2 = 520; break;
					case 2: playbgm "59.mp3"; oversea_event3 = 270; break;
					case 3: playbgm "70.mp3"; oversea_event6 = 245; break;
					case 4: playbgm "94.mp3"; oversea_event9 = 197; break;
				}
			}
		}
		mes "[Rina]";
		mes "^006400The music you're hearing now^000000";
		mes "has something to do with the one specific city.";
		mes "Think carefully ^006400what kind of city^000000";
		mes "has similar feeling with this music.";
		next;
		mes "[Rina]";
		mes "And...";
		mes "Go to ^006400the city";
		mes "where you can remind by this music^000000.";
		next;
		mes "[Rina]";
		mes "After that,";
		mes "find ^FF0000the strange mark^000000";
		mes "around the entrances of the city.";
		mes "Then you can release the curse on me.";
		next;
		mes "[Rina]";
		mes "It must be tough";
		mes "but I hope you good luck.";
		close2;
		emotion e_sigh;
		end;
	}
	if (questprogress(9123) == 1) {
		emotion e_kis;
		mes "[Rina]";
		mes "You're back~!";
		mes "My curse has been released.";
		mes "Thank you so much.";
		next;
		if (checkweight(Easter_Egg_Shell,1) == 0) {
			mes "[Rina]";
			mes "Your bag is too full.";
			mes "I have a present for you";
			mes "so make your bag lighter.";
			mes "I'll wait for you.";
			close;
		}
		completequest 9123;
		getitem Easter_Egg_Shell,1;
		.@BaseExp = (BaseLevel * (BaseLevel / 4)) * ((BaseLevel / 29) + (BaseLevel / 6)) + (5 * BaseLevel / 2);
		if (ADVJOB == 0) {
			if (BaseLevel < 40) .@nBaseExp = .@BaseExp;
			else if (BaseLevel < 50) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel);
			else if (BaseLevel < 60) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 20));
			else if (BaseLevel < 70) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 10));
			else if (BaseLevel < 80) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 5));
			else if (BaseLevel < 90) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 3));
			else if (BaseLevel < 99) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 2));
			else .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 2) * 2);

			.@nJobExp = (JobLevel * (JobLevel - 3) * (JobLevel / 25 + 1) + (16 - (JobLevel * 2))) * 2;
		} else {
			if (BaseLevel < 30) .@nBaseExp = .@BaseExp;
			else if (BaseLevel < 40) .@nBaseExp = .@BaseExp + (BaseLevel * 10);
			else if (BaseLevel < 50) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * 2);
			else if (BaseLevel < 60) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 10));
			else if (BaseLevel < 70) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 5));
			else if (BaseLevel < 80) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 3));
			else if (BaseLevel < 90) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * (BaseLevel / 2));
			else if (BaseLevel < 98) .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * BaseLevel);
			else .@nBaseExp = .@BaseExp + (BaseLevel * BaseLevel * BaseLevel * 2);

			.@nJobExp = (JobLevel * JobLevel * (JobLevel / 5 + 2) + (20 - JobLevel)) * 3;
		}
		getexp .@nBaseExp,.@nJobExp;
		mes "[Rina]";
		mes "This is the present for you.";
		mes "It's not a big one";
		mes "but please take it";
		mes "as a token of my gratitude.";
		next;
		mes "[Rina]";
		mes "I'll take a rest for a few days";
		mes "and then I'll go on an adventure.";
		mes "See you again.";
		close2;
		consumeitem 607; //Yggdrasilberry
		consumeitem 12068; //Luk_Dish03
		consumeitem 12063; //Dex_Dish03
		consumeitem 12053; //Vit_Dish03
		npcskill "AL_INCAGI",1,0,0;
		npcskill "AL_BLESSING",1,0,0;
		end;
	}
	mes "[Rina]";
	mes "Thank you for releasing my curse.";
	mes "I'll take a rest for a few days";
	mes "and then go on an adventure again.";
	mes "Have a happy day~!";
	close2;
	consumeitem 607; //Yggdrasilberry
	npcskill "AL_INCAGI",1,0,0;
	npcskill "AL_BLESSING",1,0,0;
	end;

L_HuntingInfo:
	mes "[Rina]";
	mes "What you need to do is";
	mes "to choose one monster among";
	mes "^FF0000DEVIRUCHI,^000000 ^FF0000WRAITH DEAD,^000000";
	mes "^FF0000DULLAHAN,^000000 ^FF0000NIGHTMARE TERROR^000000";
	mes "and then kill ^0000FF50^000000 monsters";
	mes "and come back to me.";
	next;
	mes "[Rina]";
	mes "It must be a tough task,";
	mes "but you are the right person";
	mes "who did the oath-taking ceremony.";
	mes "I hope you succeed.";
	if (getarg(0) < 2) {
		completequest 9117;
		setquest 9118;
		setquest 9119;
		setquest 9120;
		setquest 9121;
	}
	close2;
	npcskill "AL_INCAGI",1,0,0;
	npcskill "AL_BLESSING",1,0,0;
	end;
}

geffen,207,114,4	script	#Hiddne01Easter	CLEAR_NPC,{
	if (oversea_event2 > 519) {
OnRelease:
		specialeffect EF_PATTACK;
		mes "- I found ^0000FFthe strange mark^000000. -";
		next;
		specialeffect(EF_HOLYHIT, AREA, playerattached());
		mes "- I can definitely feel that";
		mes "- ^0000FFRina^000000 has been released";
		mes "- from the curse.";
		mes "- ^006400Let's go back to Rina!^000000";
		if (questprogress(9122) != 2) {
			completequest 9122;
			setquest 9123;
		}
		close;
	}
	end;
}

xmas,144,52,4	script	#Hiddne02Easter	CLEAR_NPC,{
	if (oversea_event3 > 269)
		doevent "#Hiddne01Easter::OnRelease";
	end;
}

yuno,164,46,4	script	#Hiddne03Easter	CLEAR_NPC,{
	if (oversea_event6 > 244)
		doevent "#Hiddne01Easter::OnRelease";
	end;
}

rachel,36,132,4	script	#Hiddne04Easter	CLEAR_NPC,{
	if (oversea_event9 > 196)
		doevent "#Hiddne01Easter::OnRelease";
	end;
}

prontera,204,297,3	script	Rina's Little Friend	4_DRAGON_EGG,{
	disable_items;
	if (!questprogress(9117)) {
		emotion e_swt2;
		mes "[Rina's Little Friend]";
		mes ".......";
		mes " ";
		mes "^787878( No response. )^000000";
		close;
	}
	if (questprogress(9123) == 2) {
		emotion e_meh;
		mes "[Rina's Little Friend]";
		mes "Hi.";
		mes "I guess you're the trustworthy friend.";
		mes "Are you here to make a deal with me?";
		next;
		switch(select("Yes.", "No.", "What do you mean?")) {
		case 1:
			if (ADVJOB == 0) {
				if (BaseLevel < 70)
					.@nCharge = 400000;
				else if (BaseLevel < 90)
					.@nCharge = 450000;
				else
					.@nCharge = 480000;
			} else
				.@nCharge = 500000;
			if (countitem(Egg) < 1 || countitem(Sparkling_Dust) < 20 || Zeny < .@nCharge) {
				mes "[Rina's Little Friend]";
				mes "Hmm.";
				mes "The material is not enough.";
				mes "Please check the things you need.";
				close;
			}
			mes "[Rina's Little Friend]";
			mes "Cool... if you give me the materials";
			mes "I will start it right now.";
			mes "Are you ready for it?";
			next;
			if(select("Yes, let's start it.", "No, stop it.") == 2) {
				mes "[Rina's Little Friend]";
				mes "Heh. It's boring.";
				close;
			}
			mes "[Rina's Little Friend]";
			mes "Okay, I will start it now.";
			mes " ";
			mes "^787878( A mysterious atmosphere hangs in the air. )^000000";
			next;
			specialeffect EF_ASPERSIO;
			delitem Egg,1;
			delitem Sparkling_Dust,20;
			Zeny -= .@nCharge;
			.@nPercentage = rand(1,100);
			if (.@nPercentage <= 41) {
				mes "[Rina's Little Friend]";
				mes "Life is given to the egg.";
				mes "Aaaaah~ I got to take some rest.";
				mes "Good bye~!";
				if (.@nPercentage <= 12)
					getitem Poporing_Egg,1;
				else if (.@nPercentage <= 24)
					getitem Picky_Egg,1;
				else if (.@nPercentage <= 36)
					getitem Savage_Bebe_Egg,1;
				else
					getitem Deviruchi_Egg,1;
				close2;
				emotion e_yawn;
				end;
			} else if (.@nPercentage <= 60) {
				if (.@nPercentage >= 42 && .@nPercentage <= 45)
					getitem Easter_Egg_Shell,1;
				else
					getitem Holy_Egg,5;
				mes "[Rina's Little Friend]";
				mes "It seems that you have quite interesting things.";
				mes "I need to take some rest.";
				mes "Good bye~!";
				close2;
				emotion e_yawn;
				end;
			} else if (.@nPercentage <= 85) {
				if (.@nPercentage >= 61 && .@nPercentage <= 75) {
					getitem Sparkling_Dust,20;
					getitem Yggdrasilberry,1;
				} else {
					getitem Egg,1;
					getitem Seed_Of_Yggdrasil,2;
				}
				mes "[Rina's Little Friend]";
				mes "There was no change.";
				mes "I didn't mean to do it,";
				mes "but I'm sorry...";
				mes "I hope to see you again, my friend.";
				emotion e_dum;
				close;
			} else {
				getitem Dex_Dish08,2;
				mes "[Rina's Little Friend]";
				mes "Hmm.";
				mes "It became a dish.";
				mes "Looks delicious.";
				mes "Then, good bye~!";
				close2;
				emotion e_rice;
				end;
			}
		case 2:
			mes "[Rina's Little Friend]";
			mes "You are here just to see my cute looks?";
			mes "Aren't you peeking at Rina";
			mes "pretending to see me?";
			mes "It's funny... haha~";
			close2;
			emotion e_gg;
			end;
		case 3:
			playbgm "23.mp3"; // Travel
			mes "[Rina's Little Friend]";
			mes "Huh?!";
			mes "I never told you before?";
			mes "Then listen carefully.";
			next;
			mes "[Rina's Little Friend]";
			mes "I have a";
			mes "special ability.";
			mes "It's to give a special strength";
			mes "to ^0000FFthe egg^000000.";
			next;
			mes "[Rina's Little Friend]";
			mes "Well, I cannot do that unlimitedly.";
			mes "There is no magic that is done forever.";
			mes "So I need some additional cost.";
			next;
			mes "[Rina's Little Friend]";
			mes "And I cannot sure";
			mes "to what the egg will be changed.";
			mes "It may be end in failure";
			mes "and it can be something like Pet Egg.";
			next;
			if(select("Ask the cost.", "Stop listening because it feels like a trick.") == 2) {
				mes "[Rina's Little Friend]";
				mes "Well... I don't really care.";
				mes "Good bye.";
				close2;
				playbgm "08.mp3"; // Theme of Prontera
				end;
			}
			mes "[Rina's Little Friend]";
			mes "Do you want to make a deal?";
			mes "You need";
			mes "^0000FF1 Egg^000000, ^0000FF20 Light Granule^000000 and";
			if (ADVJOB == 0) {
				if (BaseLevel < 70)
					mes "^B8860B400,000 Zeny.";
				else if (BaseLevel < 90)
					mes "^B8860B450,000 Zeny^000000.";
				else
					mes "^B8860B480,000 Zeny^000000.";
			} else
				mes "^B8860B500,000 Zeny^000000.";
			next;
			mes "[Rina's Little Friend]";
			mes "If you are interested";
			mes "make that zeny and come again.";
			mes "Haha...";
			mes "I'll be waiting for you.";
			close2;
			playbgm "08.mp3"; // Theme of Prontera
			emotion e_gg;
			end;
		}
	}
	emotion e_meh;
	mes "[Rina's Little Friend]";
	mes "Ahem!";
	mes "Why? Are you surprised to see me speaking?";
	mes "Well, I understand you.";
	mes "Only the person who did";
	mes "the oath-taking ceremony can talk with me.";
	next;
	mes "[Rina's Little Friend]";
	mes "If Rina's curse is released,";
	mes "I can also";
	mes "suggest you";
	mes "an interesting thing.";
	next;
	mes "[Rina's Little Friend]";
	mes "I will let you know";
	mes "the detailed explanation later.";
	mes "Then see you later, my friend.";
	close;
}

prontera,116,82,5	script	Traveler#01Easter	4_M_03,{
	mes "[Traveler]";
	mes "I'm a traveler";
	mes "and I often visit ^8B4513Prontera^000000.";
	mes "Hmm, I think I might";
	mes "see you around here before.";
	next;
	if(select("Listen some more.", "Just ignore it.") == 2) {
		mes "[Traveler]";
		mes "As I expected,";
		mes "you are a silent person. Ha ha.";
		mes "Good bye.";
		close;
	}
	mes "[Traveler]";
	mes "A few days ago,";
	mes "I saw a new adventurer";
	mes "who were standing";
	mes "near the ^8B4513Cathedral^000000.";
	next;
	emotion e_lv;
	mes "[Traveler]";
	mes "That adventurer seemed pretty.";
	mes "But...";
	mes "I feel some strange energy";
	mes "so I don't come close to that person.";
	next;
	mes "[Traveler]";
	mes "Look like";
	mes "you're interested in";
	mes "that new adventurer?";
	mes "Or that is just your face look. Ha ha.";
	next;
	if(select("I'm interested in it.", "I don't care at all.") == 2) {
		mes "[Traveler]";
		mes "Ah~ I see~!";
		mes "Then, Good bye.";
		close;
	}
	mes "[Traveler]";
	mes "Just as I expected!";
	mes "You can find";
	mes "that new adventurer";
	mes "on the way to the ^8B4513Cathedral^000000";
	mes "at the direction of 1o'clock in ^8B4513Prontera^000000.";
	next;
	mes "[Traveler]";
	mes "She was carrying";
	mes "^800080a big egg thing^000000.";
	mes "That's what I know.";
	close;
OnInit:
	initnpctimer;
	end;
OnTimer5000:
	emotion e_gasp;
	stopnpctimer;
	initnpctimer;
	end;
}

prontera,163,194,5	script	Traveler#02Easter	4_F_03,{
	mes "[Traveler]";
	mes "A while ago,";
	mes "I met a lady";
	mes "and she said she has been";
	mes "under a strange curse.";
	next;
	mes "[Traveler]";
	mes "I wanted to help her";
	mes "but my experience is not enough.";
	mes "So I couldn't help her.";
	next;
	mes "[Traveler]";
	mes "If you are more than";
	mes "level ^0000FF40^000000,";
	mes "go to the ^8B4513Cathedral^000000";
	mes "at the direction of 1'o clock.";
	mes "I hope you can help her...";
	close;
OnInit:
	initnpctimer;
	end;
OnTimer5000:
	emotion e_gasp;
	stopnpctimer;
	initnpctimer;
	end;
}