//================= Hercules Script =======================================
//= _ _ _
//= | | | | | |
//= | |_| | ___ _ __ ___ _ _| | ___ ___
//= | _ |/ _ \ '__/ __| | | | |/ _ \/ __|
//= | | | | __/ | | (__| |_| | | __/\__ \
//= \_| |_/\___|_| \___|\__,_|_|\___||___/
//================= License ===============================================
//= This file is part of Hercules.
//= http://herc.ws - http://github.com/HerculesWS/Hercules
//=
//= Copyright (C) 2012-2015 Hercules Dev Team
//= Copyright (C) Lupus
//= Copyright (C) Kisuka
//=
//= 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/>.
//=========================================================================
//= iRO Halloween (2009)
//================= Description ===========================================
//= iRO Halloween (2009)
//= Quest for Weird Pumpkin Hat.
//= Exchange treats for buffs.
//= Summon event monsters in towns.
//================= Current Version =======================================
//= 1.1
//================= Additional Comments ===================================
//= 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.
//=========================================================================
//== Headgear Quest - Pumpkin Hat ==========================
prontera,152,192,5 script Pumpkin Hat Researcher 4_M_05,{
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(Pumpkin_Head) < 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 Pumpkin_Head,20; // Jack o' Pumpkin
getitem Weird_Pumpkin_Hat,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 4_M_KID1,2,2,{
OnTouch:
hideoffnpc strnpcinfo(NPC_NAME_UNIQUE);
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(Candy) > 0) {
mes "[Trick or Treater]";
mes "Yay thank you!";
mes "Here, take this for being so nice!";
sc_start SC_FOOD_STR, 1800000, 5;
sc_start SC_FOOD_INT, 1800000, 5;
sc_start SC_FOOD_VIT, 1800000, 5;
sc_start SC_FOOD_AGI, 1800000, 5;
sc_start SC_FOOD_DEX, 1800000, 5;
sc_start SC_FOOD_LUK, 1800000, 5;
sc_start SC_FOOD_BASICAVOIDANCE, 1800000, 15;
delitem Candy,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(Candy_Striper) > 0) {
mes "[Trick or Treater]";
mes "Yay thank you!";
mes "Here, take this for being so nice!";
sc_start SC_FOOD_STR, 1800000, 5;
sc_start SC_FOOD_INT, 1800000, 5;
sc_start SC_FOOD_VIT, 1800000, 5;
sc_start SC_FOOD_AGI, 1800000, 5;
sc_start SC_FOOD_DEX, 1800000, 5;
sc_start SC_FOOD_LUK, 1800000, 5;
sc_start SC_FOOD_BASICAVOIDANCE, 1800000, 15;
delitem Candy_Striper,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(Well_Baked_Cookie) > 0) {
mes "[Trick or Treater]";
mes "Yay thank you!";
mes "Here, take this for being so nice!";
sc_start SC_FOOD_STR, 1800000, 5;
sc_start SC_FOOD_INT, 1800000, 5;
sc_start SC_FOOD_VIT, 1800000, 5;
sc_start SC_FOOD_AGI, 1800000, 5;
sc_start SC_FOOD_DEX, 1800000, 5;
sc_start SC_FOOD_LUK, 1800000, 5;
sc_start SC_FOOD_BASICAVOIDANCE, 1800000, 15;
delitem Well_Baked_Cookie,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(NPC_NAME_UNIQUE);
hideonnpc strnpcinfo(NPC_NAME_UNIQUE);
end;
OnTimer15000:
hideonnpc strnpcinfo(NPC_NAME_UNIQUE);
disablenpc strnpcinfo(NPC_NAME_UNIQUE);
end;
OnTimer300000:
donpcevent strnpcinfo(NPC_NAME_UNIQUE)+"::OnEnableTreat";
stopnpctimer;
end;
}
prontera,151,173,5 duplicate(09Treats) Trick or Treater#iRO1 4_M_KID1,2,2
prontera,270,350,5 duplicate(09Treats) Trick or Treater#iRO2 4_M_KID1,2,2
prontera,234,310,5 duplicate(09Treats) Trick or Treater#iRO3 4_M_KID1,2,2
prontera,156,321,5 duplicate(09Treats) Trick or Treater#iRO4 4_M_KID1,2,2
prontera,156,283,5 duplicate(09Treats) Trick or Treater#iRO5 4_M_KID1,2,2
prontera,142,214,5 duplicate(09Treats) Trick or Treater#iRO6 4_M_KID1,2,2
prontera,134,125,5 duplicate(09Treats) Trick or Treater#iRO7 4_M_KID1,2,2
prontera,220,72,5 duplicate(09Treats) Trick or Treater#iRO8 4_M_KID1,2,2
//== Monster Summoning - Halloween Wizard ==================
- script Halloween Wizard#iRO09::09HallowWiz 4_DARKLORD,{
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, UNITTYPE_PC, strcharinfo(PC_NAME));
if (.@mapname$ == "prontera") {
switch(select("Geffen", "Payon", "Alberta", "Aldebaran")) {
case 1:
.@HallowTown = 3;
break;
case 2:
.@HallowTown = 2;
break;
case 3:
.@HallowTown = 4;
break;
case 4:
.@HallowTown = 5;
break;
}
}
else if (.@mapname$ == "payon") {
switch(select("Prontera", "Geffen", "Alberta", "Aldebaran")) {
case 1:
.@HallowTown = 1;
break;
case 2:
.@HallowTown = 3;
break;
case 3:
.@HallowTown = 4;
break;
case 4:
.@HallowTown = 5;
break;
}
}
else if (.@mapname$ == "geffen") {
switch(select("Prontera", "Payon", "Alberta", "Aldebaran")) {
case 1:
.@HallowTown = 1;
break;
case 2:
.@HallowTown = 2;
break;
case 3:
.@HallowTown = 4;
break;
case 4:
.@HallowTown = 5;
break;
}
}
else if (.@mapname$ == "alberta") {
switch(select("Prontera", "Geffen", "Payon", "Aldebaran")) {
case 1:
.@HallowTown = 1;
break;
case 2:
.@HallowTown = 3;
break;
case 3:
.@HallowTown = 2;
break;
case 4:
.@HallowTown = 5;
break;
}
}
else if (.@mapname$ == "aldebaran") {
switch(select("Prontera", "Geffen", "Payon", "Alberta")) {
case 1:
.@HallowTown = 1;
break;
case 2:
.@HallowTown = 3;
break;
case 3:
.@HallowTown = 2;
break;
case 4:
.@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 {
.@fabric = countitem(Transparent_Cloth);
.@jack = countitem(Pumpkin_Head);
.@worn = countitem(Worn_Cloth_Piece);
.@crushed = countitem(Pumpkin_Head_Crushed);
.@whispers = 0;
.@darklords = 0;
.@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;
.@whispers += .@input;
.@input = 0;
}
else{
delitem 1059,.@fabric;
.@input -= .@fabric;
.@whispers += .@fabric;
}
}
if(.@worn > 0 && .@input != 0) {
if(.@worn >= .@input) {
delitem 6299,.@input;
.@whispers += .@input;
.@input = 0;
}
else{
delitem 6299,.@worn;
.@input -= .@worn;
.@whispers += .@worn;
}
}
if(.@jack > 0 && .@input != 0) {
if(.@jack >= .@input) {
delitem 1062,.@input;
.@darklords += .@input;
.@input = 0;
}
else{
delitem 1062,.@jack;
.@input -= .@jack;
.@darklords += .@jack;
}
}
if(.@crushed > 0 && .@input != 0) {
if(.@crushed >= .@input) {
delitem 6298,.@input;
.@darklords += .@input;
.@input = 0;
}
else{
delitem 6298,.@crushed;
.@input -= .@crushed;
.@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 4_DARKLORD
geffen,133,122,5 duplicate(09HallowWiz) Halloween Wizard#2 4_DARKLORD
payon,156,196,5 duplicate(09HallowWiz) Halloween Wizard#3 4_DARKLORD
alberta,96,57,5 duplicate(09HallowWiz) Halloween Wizard#4 4_DARKLORD
aldebaran,146,122,5 duplicate(09HallowWiz) Halloween Wizard#5 4_DARKLORD