summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/maps_athena.conf3
-rw-r--r--db/item_db2.txt17
-rw-r--r--db/map_index.txt1
-rw-r--r--db/mob_avail.txt4
-rw-r--r--db/mob_db2.txt13
-rw-r--r--db/mob_skill_db2.txt6
-rw-r--r--npc/events/halloween_2008.txt312
-rw-r--r--npc/events/halloween_2009.txt441
-rw-r--r--npc/scripts_athena.conf4
9 files changed, 797 insertions, 4 deletions
diff --git a/conf/maps_athena.conf b/conf/maps_athena.conf
index 7d96b5c6d..ce176a4d2 100644
--- a/conf/maps_athena.conf
+++ b/conf/maps_athena.conf
@@ -897,6 +897,9 @@ map: spl_fild01
map: spl_in01
map: spl_in02
+// Event Maps
+map: evt_zombie
+
//------------------------- Clone Maps ---------------------------
//------------------------- Extra Maps ---------------------------
diff --git a/db/item_db2.txt b/db/item_db2.txt
index 33158c663..76858c7fd 100644
--- a/db/item_db2.txt
+++ b/db/item_db2.txt
@@ -35,9 +35,13 @@
//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; },{},{}
-//Required for St. Patrick's Day (2008) event script.
+
+// iRO St. Patrick's Day Event 2008
+//=============================================================
//12715,Black_Treasure_Chest,Black Treasure Chest,2,0,,200,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc "F_08stpattyseventbox"; },{},{}
-//Required for Valentine's Day (2009) event script.
+
+// iRO Valentine's Day Event 2009
+//=============================================================
//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; },{},{}
@@ -47,6 +51,13 @@
//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
+// iRO Halloween Event 2009
+//=============================================================
+//5668,Weird_Pumpkin_Hat,Weird Pumpkin Hat,5,20,,0,,5,,0,0xFFFFFFFF,7,2,256,,0,1,206,{ bonus bMdef,5; bonus2 bAddMonsterDropItem,12192,2500; },{},{}
+//6298,Crushed_Pumpkin,Crushed Pumpkin,3,0,,0,,,,,,,,,,,,,{},{},{}
+//6299,Worn_Fabric,Worn Fabric,3,0,,0,,,,,,,,,,,,,{},{},{}
+
+// Old Tuxedo and Wedding Dress, will display the outfit when worn.
+//==================================================================
//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; }
//7170,Tuxedo,Tuxedo,5,43000,,10,,0,,0,0xFFFFFFFE,7,1,16,,0,1,0,{},{ setoption Option_Wedding,1; },{ setoption Option_Wedding,0; }
diff --git a/db/map_index.txt b/db/map_index.txt
index 619ef0ccb..48da1f700 100644
--- a/db/map_index.txt
+++ b/db/map_index.txt
@@ -753,6 +753,7 @@ spl_in02
bat_c01
bat_c02
bat_c03
+evt_zombie
// Only add maps under this line if they are not standard maps!
diff --git a/db/mob_avail.txt b/db/mob_avail.txt
index ae623a192..539c35638 100644
--- a/db/mob_avail.txt
+++ b/db/mob_avail.txt
@@ -24,3 +24,7 @@
//1903,4012,1,21,0,1720,0,102,184,57,16,0
// Sentry
//1904,1286,0
+
+// iRO Halloween Event 2009
+//3000,1179,0
+//3001,1272,0
diff --git a/db/mob_db2.txt b/db/mob_db2.txt
index 9097b6671..a97448bde 100644
--- a/db/mob_db2.txt
+++ b/db/mob_db2.txt
@@ -25,9 +25,20 @@
//1175,TAROU,Tarou,Tarou,11,284,0,57,28,1,34,45,0,0,1,20,11,10,24,5,10,12,0,2,27,0x91,150,1744,1044,684,0,0,0,0,0,0,0,0,1016,9000,919,3000,949,800,528,1000,701,2,7869,2500,0,0,0,0,0,0,4028,1
//1209,CRAMP,Cramp,Cramp,56,4720,0,2300,1513,1,395,465,0,5,1,85,35,5,65,60,10,12,0,2,45,0x3095,100,1000,500,1000,0,0,0,0,0,0,0,0,7007,4656,528,1000,726,80,746,110,568,250,510,70,984,95,7869,1500,0,0,4296,1
-//St. Patricks 2008 Eent Monster overrides
+//iRO St. Patricks Day 2008 Event Monster overrides
//Uncomment if event is enabled, as these drops modifications are nessecary.
//1841,G_SNAKE_,Snake Lord's Minon,Snake Lord's Minon,15,471,0,72,48,1,46,55,0,0,1,15,15,10,35,5,10,12,1,2,22,0x81,200,1576,576,576,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0
//1842,G_ANACONDAQ_,Snake Lord's Minon,Snake Lord's Minon,23,1109,0,300,149,1,124,157,0,0,1,23,28,10,36,5,10,12,1,2,25,0x91,200,1576,576,576,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0
//1843,SIDE_WINDER_,Snake Lord's Minon,Snake Lord's Minon,43,4929,0,1996,993,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0
//1844,G_ISIS_,Snake Lord's Minon,Snake Lord's Minon,47,7003,0,3709,1550,1,423,507,10,35,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,8,0,0,0,0,0,0,0,0,0,0,0,0
+
+//iRO Halloween 2009 Event
+//Uncomment if event is enabled. Uncomment the skills for Halloween Whisper in mob_skill_db2.
+//3000,HALLOWEEN_WHISPER,Halloween Whisper,Halloween Whisper,1,800,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,0,6,68,0x81,150,1960,960,504,0,0,0,0,0,0,0,0,12396,150,6299,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+//3001,HALLOWEEN_DARK_LORD,Halloween Dark Lord,Halloween Dark Lord,1,45,0,0,0,1,10,13,0,45,1,51,14,0,60,0,10,12,2,6,89,0x81,100,868,768,480,0,0,0,0,0,0,0,0,12396,800,12397,5335,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+
+//iRO Halloween 2008 Event
+//Uncomment if event is enabled.
+//3000,ZOMBIE,Zombie,Zombie,15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1
+//3001,GHOUL,Ghoul,Ghoul,40,5418,0,1088,622,1,420,500,5,20,1,20,29,0,45,20,10,12,1,1,49,0x3885,250,2456,912,504,0,0,0,0,0,0,0,0,958,6000,756,110,509,700,511,800,2609,60,934,150,1260,1,0,0,0,0,4110,1
+//3002,ZOMBIE_MASTER,Zombie Master,Zombie Master,62,14211,0,7610,2826,1,824,1084,37,26,25,20,30,5,77,35,10,12,1,1,29,0x3695,175,2612,912,288,0,0,0,0,0,0,0,0,7071,4413,938,1500,958,1500,723,200,727,100,1260,1,2324,2,0,0,0,0,4274,1 \ No newline at end of file
diff --git a/db/mob_skill_db2.txt b/db/mob_skill_db2.txt
index b3504bd5a..7cfd56a4e 100644
--- a/db/mob_skill_db2.txt
+++ b/db/mob_skill_db2.txt
@@ -131,4 +131,10 @@
//1239,Fire Poring@RG_STRIPSHIELD,attack,216,5,2000,0,3000,yes,target,always,0,,,,,,
//1239,Fire Poring@RG_STRIPWEAPON,attack,215,5,2000,0,3000,yes,target,always,0,,,,,,
+//iRO Halloween Event 2009
+//3000,Halloween Whisper@AS_CLOAKING,idle,135,1,2000,200,5000,yes,self,always,0,,,,,,
+//3000,Halloween Whisper@AS_CLOAKING,chase,135,1,2000,200,5000,yes,self,always,0,,,,,,
+//3000,Halloween Whisper@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,,,,,,
+//3000,Halloween Whisper@NPC_EMOTION,chase,197,1,200,0,5000,yes,self,always,0,19,0x81,,,,
+
// Here you can place your custom mob skills
diff --git a/npc/events/halloween_2008.txt b/npc/events/halloween_2008.txt
new file mode 100644
index 000000000..1ff63a693
--- /dev/null
+++ b/npc/events/halloween_2008.txt
@@ -0,0 +1,312 @@
+//===== eAthena Script =======================================
+//= iRO Halloween (2008)
+//===== By: ==================================================
+//= Kisuka
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= eAthena SVN
+//===== Description: =========================================
+//= iRO Halloween (2008)
+//= Run away from the zombies for tickets.
+//= Redeem tickets for prizes.
+//===== Notes: ===============================================
+//= You must enable the event monsters in mob_db2.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Kisuka]
+//============================================================
+
+payon,162,176,4 script Halloween Magician#iRO08 704,{
+
+ if(Hallow08 < 1) {
+ mes "[Halloween Magician]";
+ mes "Kkkkkkkkk!";
+ mes "I have a special event this";
+ mes "Halloween that tests your luck and";
+ mes "agility.";
+ mes "Are you interested?";
+ next;
+ mes "[Halloween Magician]";
+ mes "Come on! Don't be a wuss!";
+ mes "If you collect enough tickets";
+ mes "you can get good prizes!";
+ mes "So what do you say?";
+ next;
+ goto MainMenu;
+ }
+
+ if (Hallow08Kill == 1) {
+ mes "[Halloween Magician]";
+ mes "You a 'fraidy cat or something?!";
+ mes "You know you want to try again...";
+ mes "Do you know the rules?";
+ next;
+ set Hallow08Kill,0;
+ if(select("Yes, I know.:No, I don't know.") == 2) {
+ goto Rules;
+ }
+ goto Participate;
+ }
+
+ if (Hallow08Kill == 2) {
+ mes "[Halloween Magician]";
+ mes "Oh, well done! You are alright!";
+ mes "Isn't it fun with zombies??";
+ mes "You know, zombies were people too!";
+ mes "Ha!";
+ mes "Kkkkkkk.";
+ next;
+ getitem 7941,1;
+ set Hallow08Kill,0;
+ mes "[Halloween Magician]";
+ mes "As I promised";
+ mes "You can get Halloween tickets";
+ mes "for cool items.";
+ close;
+ }
+
+ if(Hallow08 > 0) {
+ mes "[Halloween Magician]";
+ mes "Well, do you want to hear the rules";
+ mes "again or,";
+ mes "just get back to it...";
+ next;
+ goto MainMenu2;
+ }
+
+ Rules:
+ mes "[Halloween Magician]";
+ mes "This village is like a virtual";
+ mes "Payon. There are zombies and ghouls";
+ mes "roaming around";
+ mes "and three southern exits, but only";
+ mes "one works.";
+ mes "That's up to you to find out.";
+ next;
+ mes "[Halloween Magician]";
+ mes "You can't use any skills";
+ mes "to kill the ghouls or zombies.";
+ mes "And one more thing...";
+ mes "you shouldn't forget...";
+ next;
+ mes "[Halloween Magician]";
+ mes "All participants";
+ mes "should be wearing nothing.";
+ mes "Put all belongings in your storage";
+ mes "and come back here when your weight";
+ mes "is '0'.";
+ next;
+ mes "[Halloween Magician]";
+ mes "Oh and one more thing!";
+ mes "You can't be riding a PecoPeco or";
+ mes "have a Cart.";
+ mes "If you are, then I will remove them";
+ mes "before you enter.";
+ mes "Got it?";
+ next;
+ mes "[Halloween Magician]";
+ mes "Remember, there are three exits but";
+ mes "only one works randomly,";
+ mes "the zombies and ghouls roaming";
+ mes "around there can't be killed";
+ mes "and you can't be wearing anything.";
+ next;
+ if (Hallow08 > 0) {
+ mes "[Halloween Magician]";
+ mes "Hey...";
+ mes "Come back once you're ready.";
+ close;
+ }else{
+ goto MainMenu;
+ }
+
+ Participate:
+ mes "[Halloween Magician]";
+ mes "Ok, you are ready.";
+ mes "Let me check your weight.";
+ next;
+ if (Weight > 0) {
+ mes "[Halloween Magician]";
+ mes "Gosh!";
+ mes "There's always a black sheep";
+ mes "anywhere.";
+ next;
+ mes "[Halloween Magician]";
+ mes "You think I wouldn't notice that";
+ mes "your weight is above '0'?";
+ mes "You're overweight...";
+ close;
+ }else{
+ mes "[Halloween Magician]";
+ mes "You seem good to go,";
+ mes "and your weight is just right.";
+ next;
+ mes "[Halloween Magician]";
+ mes "I was quite swamped with my work,";
+ mes "so I'm exhausted.";
+ next;
+ mes "[Halloween Magician]";
+ mes "I sometimes forget to send you";
+ mes "there...";
+ next;
+ mes "[Halloween Magician]";
+ mes "I hope you come back well.";
+ close2;
+ if (Hallow08 < 1) {
+ set Hallow08,1;
+ }
+ set Hallow08Kill,1;
+ set @Hallow08Warp, rand(1,3);
+ percentheal -98,0;
+ setriding 0;
+ setcart 0;
+ warp "evt_zombie",155,246;
+ end;
+ }
+
+ TicketExchange:
+ mes "[Halloween Magician]";
+ mes "You want to exchange tickets for";
+ mes "prizes?";
+ mes "Good job! Kkkkkk!";
+ next;
+ mes "[Halloween Magician]";
+ mes "Lemme tell you what items you can";
+ mes "exchange for.";
+ next;
+ mes "[Halloween Magician]";
+ mes "5 tickets for Pumpkin Pie.";
+ mes "20 tickets for Pumpkin-Head.";
+ mes "50 tickets for Old Blue Box.";
+ mes "70 tickets for Old Purple Box.";
+ mes "200 tickets for Old Card Album.";
+ next;
+ mes "[Halloween Magician]";
+ mes "What would you like to exchange";
+ mes "for?";
+ next;
+ switch(select("Pumpkin Pie:Pumpkin-Head:Old Blue Box:Old Purple Box:Old Card Album")) {
+ case 1:
+ if(countitem(7941) < 5) {
+ goto NotEnough;
+ }else{
+ delitem 7941,5;
+ getitem 12192,1;
+ goto Enough;
+ }
+ break;
+ case 2:
+ if(countitem(7941) < 20) {
+ goto NotEnough;
+ }else{
+ delitem 7941,20;
+ getitem 5134,1;
+ goto Enough;
+ }
+ break;
+ case 3:
+ if(countitem(7941) < 50) {
+ goto NotEnough;
+ }else{
+ delitem 7941,50;
+ getitem 603,1;
+ goto Enough;
+ }
+ break;
+ case 4:
+ if(countitem(7941) < 70) {
+ goto NotEnough;
+ }else{
+ delitem 7941,70;
+ getitem 617,1;
+ goto Enough;
+ }
+ break;
+ case 5:
+ if(countitem(7941) < 200) {
+ goto NotEnough;
+ }else{
+ delitem 7941,200;
+ getitem 616,1;
+ goto Enough;
+ }
+ }
+
+ NextTime:
+ mes "[Halloween Magician]";
+ mes "Ok, see you then.";
+ mes "Kkkkkkkk.";
+ close;
+
+ MainMenu:
+ menu "Explain it to me.",Rules,"I want to participate.",Participate,"I want to exchange tickets for prizes.",TicketExchange,"I'll come back next time.",NextTime;
+
+ MainMenu2:
+ menu "Get me back there now!",Participate,"Please, tell me the rules",Rules,"I want to exchange tickets for prizes.",TicketExchange,"I'll come back next time.",NextTime;
+
+ NotEnough:
+ mes "[Halloween Magician]";
+ mes "You don't have enough tickets!";
+ mes "Can't you even count?";
+ mes "Please come here with the right";
+ mes "number of tickets.";
+ close;
+
+ Enough:
+ mes "[Halloween Magician]";
+ mes "Here it is.";
+ mes "Do you need...";
+ mes "anything else?";
+ next;
+ if (Hallow08 == 1) {
+ goto MainMenu2;
+ }else{
+ goto MainMenu;
+ }
+}
+
+// --------------- MapFlags ---------------
+
+evt_zombie mapflag nightenabled
+evt_zombie mapflag nobranch
+evt_zombie mapflag nomemo
+evt_zombie mapflag nopenalty
+evt_zombie mapflag pvp off
+evt_zombie mapflag noreturn
+evt_zombie mapflag nosave SavePoint
+evt_zombie mapflag noskill
+evt_zombie mapflag noteleport
+
+evt_zombie,16,142,1 script zombiewarp001 45,2,2,{
+ OnTouch:
+ if (@Hallow08Warp == 1) {
+ set Hallow08Kill,2;
+ specialeffect 16;
+ warp "payon",28,142;
+ }
+ end;
+}
+
+evt_zombie,122,27,1 script zombiewarp002 45,2,2,{
+ OnTouch:
+ if (@Hallow08Warp == 2) {
+ set Hallow08Kill,2;
+ specialeffect 16;
+ warp "payon",121,40;
+ }
+ end;
+}
+
+evt_zombie,267,89,1 script zombiewarp003 45,2,2,{
+ OnTouch:
+ if (@Hallow08Warp == 3) {
+ set Hallow08Kill,2;
+ specialeffect 16;
+ warp "payon",253,95;
+ }
+ end;
+}
+
+evt_zombie,0,0,0,0 monster Zombie 3000,150,0,0,0
+evt_zombie,0,0,0,0 monster Ghoul 3001,80,0,0,0
+evt_zombie,0,0,0,0 monster Zombie Master 3002,20,0,0,0 \ No newline at end of file
diff --git a/npc/events/halloween_2009.txt b/npc/events/halloween_2009.txt
new file mode 100644
index 000000000..1e1f7ef9b
--- /dev/null
+++ b/npc/events/halloween_2009.txt
@@ -0,0 +1,441 @@
+//===== eAthena Script =======================================
+//= iRO Halloween (2009)
+//===== By: ==================================================
+//= Kisuka
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= eAthena SVN
+//===== Description: =========================================
+//= iRO Halloween (2009)
+//= Quest for Weird Pumpkin Hat.
+//= Exchange treats for buffs.
+//= Summon event monsters in towns.
+//===== Notes: ===============================================
+//= You must enable the event items in item_db2.
+//= You must enable the event mobs in mob_db2, mob_avail, and
+//= their skills in mob_skill_db2.
+//===== Additional Comments: =================================
+//= 1.0 First version. [Kisuka]
+//============================================================
+
+// Headgear Quest - Pumpkin Hat
+// ============================
+prontera,152,192,5 script Pumpkin Hat Researcher 712,{
+ if(BaseLevel < 45) {
+ mes "[Pumpkin Hat Researcher]";
+ mes "Shoo, I don't need a child. Shoo! I don't talk to novices.";
+ next;
+ mes "[Pumpkin Hat Researcher]";
+ mes "Go reach a level that can fight with stronger monsters and come back.";
+ close;
+ }
+ mes "[Pumpkin Hat Researcher]";
+ mes "Say do you like Pumpkin Pies?";
+ next;
+ mes "[Pumpkin Hat Researcher]";
+ mes "I'm a Pumpkin Hat researcher, Why don't you listen to my story?";
+ next;
+ while(1) {
+ switch(select("Listen to the story.:Ask about Pumpkin Hat.:Get a Pumpkin Hat.:Stop the conversation.")) {
+ case 1:
+ mes "[Pumpkin Hat Researcher]";
+ mes "I've been studying about an upgraded Pumpkin Hat.";
+ mes "I have discovered that it is a very simple process.";
+ next;
+ mes "[Pumpkin Hat Researcher]";
+ mes "The process is quite simple.";
+ mes "If you bring me ^4a4aff20 Jack o' Pumpkin^000000 I can show you.";
+ mes "Isn't that a tempting proposal?";
+ next;
+ break;
+ case 2:
+ mes "[Pumpkin Hat Researcher]";
+ mes "This upgraded pumpkin hat is powerful stuff!";
+ next;
+ mes "[Pumpkin Hat Researcher]";
+ mes "It can make a Pumpkin Pie that restores a large percentage of HP & SP using condensed energy to the person who wears it.";
+ next;
+ mes "[Pumpkin Hat Researcher]";
+ mes "All you need is ^4a4aff20 Jack o' Pumpkin^000000s.";
+ next;
+ break;
+ case 3:
+ mes "[Pumpkin Hat Researcher]";
+ mes "Do you want to get Pumpkin Pies? Okay, let me count the Jack o' Pumpkins you've brought.";
+ next;
+ if(countitem(1062) < 20) {
+ mes "[Pumpkin Hat Researcher]";
+ mes "I need ^4a4aff20 Jack o' Pumpkin^000000.";
+ mes "I'm not an alchemist or a wizard to create something from nothing.";
+ next;
+ mes "[Pumpkin Hat Researcher]";
+ mes "Okay, go hunting monsters and come back.";
+ mes "I'm going to stay here for a while so take your time.";
+ next;
+ break;
+ }else{
+ mes "[Pumpkin Hat Researcher]";
+ mes "I hope this will be useful to you. Don't forget to wear it while fighting to get your Pumpkin Pies.";
+ delitem 1062,20; // Jack o' Pumpkin
+ getitem 5668,1; // Weird Pumpkin Hat
+ next;
+ mes "[Pumpkin Hat Researcher]";
+ mes "I guess that I should get back to my research.";
+ close;
+ }
+ case 4:
+ mes "[Pumpkin Hat Researcher]";
+ mes "Bye, until we'll see each other again.";
+ mes "I wish you well...";
+ close;
+ }
+ }
+}
+
+// Buffs - Trick or Treaters
+// =========================
+- script Trick or Treater::09Treats 706,2,2,{
+OnTouch:
+ hideoffnpc ""+strnpcinfo(0)+"";
+ initnpctimer;
+ mes "[Trick or Treater]";
+ mes "Hooray! hooray! Hooray!";
+ mes "Trick or Treat?";
+ next;
+ if(select("Trick.:Treat.") == 1) {
+ mes "[Trick or Treater]";
+ mes "!!!!";
+ mes "Fine. I have no choice but to trick you back!";
+ sc_start SC_Stun,5000,0;
+ close;
+ }
+ mes "[Trick or Treater]";
+ mes "Oh yay! What kind of treat do you have?";
+ next;
+ switch(select("Candy:Candy Cane:Well-baked Cookie:Nothing")) {
+ case 1:
+ if(countitem(529) > 0) {
+ mes "[Trick or Treater]";
+ mes "Yay thank you!";
+ mes "Here, take this for being so nice!";
+ sc_start SC_STRFood, 1800000, 5;
+ sc_start SC_INTFood, 1800000, 5;
+ sc_start SC_VITFood, 1800000, 5;
+ sc_start SC_AGIFood, 1800000, 5;
+ sc_start SC_DEXFood, 1800000, 5;
+ sc_start SC_LUKFood, 1800000, 5;
+ sc_start SC_FLEEFOOD, 1800000, 15;
+ delitem 529,1; // Candy
+ close;
+ }else{
+ mes "[Trick or Treater]";
+ mes "At least a Candy, a Candy Cane or a Well-baked Cookie is all I ask for a treat.";
+ mes "Fine. I have no choice but to trick you!";
+ sc_start SC_Stun,5000,0;
+ close;
+ }
+ case 2:
+ if(countitem(530) > 0) {
+ mes "[Trick or Treater]";
+ mes "Yay thank you!";
+ mes "Here, take this for being so nice!";
+ sc_start SC_STRFood, 1800000, 5;
+ sc_start SC_INTFood, 1800000, 5;
+ sc_start SC_VITFood, 1800000, 5;
+ sc_start SC_AGIFood, 1800000, 5;
+ sc_start SC_DEXFood, 1800000, 5;
+ sc_start SC_LUKFood, 1800000, 5;
+ sc_start SC_FLEEFOOD, 1800000, 15;
+ delitem 530,1; // Candy Cane
+ close;
+ }else{
+ mes "[Trick or Treater]";
+ mes "At least a Candy, a Candy Cane or a Well-baked Cookie is all I ask for a treat.";
+ mes "Fine. I have no choice but to trick you!";
+ sc_start SC_Stun,5000,0;
+ close;
+ }
+ case 3:
+ if(countitem(538) > 0) {
+ mes "[Trick or Treater]";
+ mes "Yay thank you!";
+ mes "Here, take this for being so nice!";
+ sc_start SC_STRFood, 1800000, 5;
+ sc_start SC_INTFood, 1800000, 5;
+ sc_start SC_VITFood, 1800000, 5;
+ sc_start SC_AGIFood, 1800000, 5;
+ sc_start SC_DEXFood, 1800000, 5;
+ sc_start SC_LUKFood, 1800000, 5;
+ sc_start SC_FLEEFOOD, 1800000, 15;
+ delitem 528,1; // Well-baked Cookie
+ close;
+ }else{
+ mes "[Trick or Treater]";
+ mes "At least a Candy, a Candy Cane or a Well-baked Cookie is all I ask for a treat.";
+ mes "Fine. I have no choice but to trick you!";
+ sc_start SC_Stun,5000,0;
+ close;
+ }
+ case 4:
+ mes "[Trick or Treater]";
+ mes "At least a Candy, a Candy Cane or a Well-baked Cookie is all I ask for a treat.";
+ mes "Fine. I have no choice but to trick you!";
+ sc_start SC_Stun,5000,0;
+ close;
+ }
+OnInit:
+ hideonnpc "Trick or Treater#iRO1";
+ hideonnpc "Trick or Treater#iRO2";
+ hideonnpc "Trick or Treater#iRO3";
+ hideonnpc "Trick or Treater#iRO4";
+ hideonnpc "Trick or Treater#iRO5";
+ hideonnpc "Trick or Treater#iRO6";
+ hideonnpc "Trick or Treater#iRO7";
+ hideonnpc "Trick or Treater#iRO8";
+ end;
+
+OnEnableTreat:
+ enablenpc ""+strnpcinfo(0)+"";
+ hideonnpc ""+strnpcinfo(0)+"";
+ end;
+
+OnTimer15000:
+ hideonnpc ""+strnpcinfo(0)+"";
+ disablenpc ""+strnpcinfo(0)+"";
+ end;
+
+OnTimer300000:
+ donpcevent ""+strnpcinfo(0)+"::OnEnableTreat";
+ stopnpctimer;
+ end;
+}
+prontera,151,173,5 duplicate(09Treats) Trick or Treater#iRO1 706,2,2
+prontera,270,350,5 duplicate(09Treats) Trick or Treater#iRO2 706,2,2
+prontera,234,310,5 duplicate(09Treats) Trick or Treater#iRO3 706,2,2
+prontera,156,321,5 duplicate(09Treats) Trick or Treater#iRO4 706,2,2
+prontera,156,283,5 duplicate(09Treats) Trick or Treater#iRO5 706,2,2
+prontera,142,214,5 duplicate(09Treats) Trick or Treater#iRO6 706,2,2
+prontera,134,125,5 duplicate(09Treats) Trick or Treater#iRO7 706,2,2
+prontera,220,72,5 duplicate(09Treats) Trick or Treater#iRO8 706,2,2
+
+// Monster Summoning - Halloween Wizard
+// ====================================
+- script Halloween Wizard#iRO09::09HallowWiz 737,{
+ mes "[Halloween Wizard]";
+ mes "...";
+ mes "Do you want to play a trick on someone?";
+ next;
+ while(1) {
+ switch(select("What trick?:Sure:No.")) {
+ case 1:
+ mes "[Halloween Wizard]";
+ mes "I can summon monsters in other parts of the world with just a few materials.";
+ next;
+ mes "[Halloween Wizard]";
+ mes "Sounds interesting huh?";
+ next;
+ mes "[Halloween Wizard]";
+ mes "If you bring me Fabric, Jack o' Pumpkins, Worn Fabric, or Crushed Pumpkins I can summon the monsters.";
+ next;
+ break;
+ case 2:
+ mes "[Halloween Wizard]";
+ mes "Which town do you want to play a trick on?";
+ next;
+ getmapxy(.@mapname$,.@mapx,.@mapy,0,""+strcharinfo(0)+"");
+ if (.@mapname$ == "prontera") {
+ switch(select("Geffen:Payon:Alberta:Aldebaran")) {
+ case 1:
+ set .@HallowTown,3;
+ break;
+ case 2:
+ set .@HallowTown,2;
+ break;
+ case 3:
+ set .@HallowTown,4;
+ break;
+ case 4:
+ set .@HallowTown,5;
+ break;
+ }
+ }
+ else if (.@mapname$ == "payon") {
+ switch(select("Prontera:Geffen:Alberta:Aldebaran")) {
+ case 1:
+ set .@HallowTown,1;
+ break;
+ case 2:
+ set .@HallowTown,3;
+ break;
+ case 3:
+ set .@HallowTown,4;
+ break;
+ case 4:
+ set .@HallowTown,5;
+ break;
+ }
+ }
+ else if (.@mapname$ == "geffen") {
+ switch(select("Prontera:Payon:Alberta:Aldebaran")) {
+ case 1:
+ set .@HallowTown,1;
+ break;
+ case 2:
+ set .@HallowTown,2;
+ break;
+ case 3:
+ set .@HallowTown,4;
+ break;
+ case 4:
+ set .@HallowTown,5;
+ break;
+ }
+ }
+ else if (.@mapname$ == "alberta") {
+ switch(select("Prontera:Geffen:Payon:Aldebaran")) {
+ case 1:
+ set .@HallowTown,1;
+ break;
+ case 2:
+ set .@HallowTown,3;
+ break;
+ case 3:
+ set .@HallowTown,2;
+ break;
+ case 4:
+ set .@HallowTown,5;
+ break;
+ }
+ }
+ else if (.@mapname$ == "aldebaran") {
+ switch(select("Prontera:Geffen:Payon:Alberta")) {
+ case 1:
+ set .@HallowTown,1;
+ break;
+ case 2:
+ set .@HallowTown,3;
+ break;
+ case 3:
+ set .@HallowTown,2;
+ break;
+ case 4:
+ set .@HallowTown,4;
+ break;
+ }
+ }
+ setarray .@HallowTowns$[1],"prontera","payon","geffen","alberta","aldebaran";
+ mes "[Halloween Wizard]";
+ mes "Ok then let's go to the next step.";
+ next;
+ mes "[Halloween Wizard]";
+ mes "How many Fabrics or Jack o' Pumpkins do you want to use? Don't go over 100 because that is the max amount that I can use.";
+ next;
+ input .@input;
+ if (.@input == 0) {
+ mes "[Halloween Wizard]";
+ mes "You have no definite idea.";
+ mes "It's not a big deal.";
+ mes "Let me know.";
+ next;
+ break;
+ }
+ else if (.@input > 100) {
+ mes "[Halloween Wizard]";
+ mes "I told you that it must be between 1 to 100!";
+ mes "You didn't pay attention!";
+ next;
+ break;
+ }
+ else {
+ set .@fabric,countitem(1059);
+ set .@jack,countitem(1062);
+ set .@worn,countitem(6299);
+ set .@crushed,countitem(6298);
+ set .@whispers,0;
+ set .@darklords,0;
+
+ set .@total,.@fabric + .@jack + .@worn + .@crushed;
+
+ if(.@total < .@input) {
+ mes "[Halloween Wizard]";
+ mes "Recount the number of items you have and tell me the total.";
+ mes "Huhuhuhuhuhu...";
+ next;
+ break;
+ }
+
+ if(.@fabric > 0) {
+ if(.@fabric >= .@input) {
+ delitem 1059,.@input;
+ set .@whispers,.@whispers+.@input;
+ set .@input,0;
+ }
+ else{
+ delitem 1059,.@fabric;
+ set .@input,.@input - .@fabric;
+ set .@whispers,.@whispers+.@fabric;
+ }
+ }
+ if(.@worn > 0 && .@input != 0) {
+ if(.@worn >= .@input) {
+ delitem 6299,.@fabric;
+ set .@whispers,.@whispers+.@input;
+ set .@input,0;
+ }
+ else{
+ delitem 6299,.@worn;
+ set .@input,.@input - .@worn;
+ set .@whispers,.@whispers+.@worn;
+ }
+ }
+ if(.@jack > 0 && .@input != 0) {
+ if(.@jack >= .@input) {
+ delitem 1062,.@input;
+ set .@darklords,.@darklords+.@input;
+ set .@input,0;
+ }
+ else{
+ delitem 1062,.@jack;
+ set .@input,.@input - .@jack;
+ set .@darklords,.@darklords+.@jack;
+ }
+ }
+ if(.@crushed > 0 && .@input != 0) {
+ if(.@crushed >= .@input) {
+ delitem 6298,.@input;
+ set .@darklords,.@darklords+.@input;
+ set .@input,0;
+ }
+ else{
+ delitem 6298,.@crushed;
+ set .@input,.@input - .@crushed;
+ set .@darklords,.@darklords+.@crushed;
+ }
+ }
+ if (.@input > 0) {
+ mes "Theres a problem.";
+ close;
+ }
+ monster ""+.@HallowTowns$[.@HallowTown]+"",0,0,"Halloween Whisper",3014,.@whispers;
+ monster ""+.@HallowTowns$[.@HallowTown]+"",0,0,"Halloween Dark Lord",3015,.@darklords;
+ mes "[Halloween Wizard]";
+ mes "Here's what you wanted.";
+ mes "Imagine what the people must be thinking in the other villages?";
+ mes "Muahahaha";
+ close;
+ }
+ case 3:
+ mes "[Halloween Wizard]";
+ mes "If you change your mind, come back here...";
+ mes "I'll stay here for a while...";
+ mes "Kkkk...";
+ close;
+ }
+ }
+}
+prontera,156,195,5 duplicate(09HallowWiz) Halloween Wizard#1 737
+geffen,133,122,5 duplicate(09HallowWiz) Halloween Wizard#2 737
+payon,156,196,5 duplicate(09HallowWiz) Halloween Wizard#3 737
+alberta,96,57,5 duplicate(09HallowWiz) Halloween Wizard#4 737
+aldebaran,146,122,5 duplicate(09HallowWiz) Halloween Wizard#5 737 \ No newline at end of file
diff --git a/npc/scripts_athena.conf b/npc/scripts_athena.conf
index c8309ddca..af12689f2 100644
--- a/npc/scripts_athena.conf
+++ b/npc/scripts_athena.conf
@@ -225,6 +225,10 @@ npc: npc/kafras/dts_warper.txt
//npc: npc/events/christmas_2008.txt
//Official Memorial Day (2009) event (iRO)
//npc: npc/events/MemorialDay_2008.txt
+//Official Halloween (2008) event (iRO)
+//npc: npc/events/halloween_2008.txt
+//Official Halloween (2009) event (iRO)
+//npc: npc/events/halloween_2009.txt
npc: npc/events/god_se_festival.txt
//Novice WoE is a kRO Event, after the event, the scripts were disabled.