summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
authorKisuka <Kisuka@54d463be-8e91-2dee-dedb-b68131a5f0ec>2009-10-31 07:10:45 +0000
committerKisuka <Kisuka@54d463be-8e91-2dee-dedb-b68131a5f0ec>2009-10-31 07:10:45 +0000
commit0fe8162ecbe64ec04fd27b046f6949a4bdf1559f (patch)
tree69a4b75869506597cca1f4527b457cd0bf16c053 /npc
parent09ec9946e686f75252eab2447ef61b753a3f18f1 (diff)
downloadhercules-0fe8162ecbe64ec04fd27b046f6949a4bdf1559f.tar.gz
hercules-0fe8162ecbe64ec04fd27b046f6949a4bdf1559f.tar.bz2
hercules-0fe8162ecbe64ec04fd27b046f6949a4bdf1559f.tar.xz
hercules-0fe8162ecbe64ec04fd27b046f6949a4bdf1559f.zip
- Added 2008 & 2009 iRO Halloween Events (Happy Halloween eAthena).
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14112 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'npc')
-rw-r--r--npc/events/halloween_2008.txt312
-rw-r--r--npc/events/halloween_2009.txt441
-rw-r--r--npc/scripts_athena.conf4
3 files changed, 757 insertions, 0 deletions
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.