//===== eAthena Script =======================================
//= Lighthalzen
//===== By: ==================================================
//= Persian, Vicious_Pucca, Completed by aoa00
//===== Current Version: =====================================
//= 1.6
//===== Compatible With: =====================================
//= eAthena SVN
//===== Description: =========================================
//= Event for the Mobster respawn
//===== Additional Comments: =================================
//= Grammar/script check please. This was a quick job.
//= Things to add: Look at the thread "Lighthalzen Guard" in SVN script
//= 0.3 Initial Release
//= 0.5 Added mobsters spawn and Einbroch pollution. Alert lasts either 10 minutes or all mob killed.
//= 0.6 small bug fixes
//= 0.9 fix small bug. Added Bio-lab entrance Quest. Added Getting security-card Quest.
//= 1.0 Patched "mobsters spawn & Alert" like Real-RO.
//= 1.0a fixed rand(1,10) + comparision. There just can't be 'X < 1' [Lupus]
//= 1.1 Changed the mobster spawn to g_mobster to prevent exploits [MasterOfMuppets]
//= 1.2 Added the cube room quest by DeNy, translated by vicious_pucca. [MasterOfMuppets]
//= Thanks to Linuxwolf for a grammar check as well =).
//= 1.2a Moved Biolab entrance to lhz_dun warps. [Vicious]
//= 1.3 Fixed password bug, fixed endless item exploit, some typos [Lupus]
//= 1.4 Fixed password abuse. When people don't read the password under the picture
//= and enter Zero shit 8) (TODO: I saw some "Sticks" abuses, too.. where you couls skip
//= a part of quest...)
//= 1.5 Fixed Mobster's OnDead event(it has to start with "On"!) [Playtester]
//= 1.5a Fixed "free stick" bug, thx 2 Neouni [Lupus]
//= 1.6 Added Gywall's Pickpocket Quest
//============================================================
//= aoa's comment
//= In future, Need for new monsters. No-Drop, No-Exp, Weak "Mobster","VENOMOUS","NOXIOUS"
//= In future, Teleport skill is impossible in Lighthalzen.
//============================================================
lighthalzen.gat,1,1,7 script sneakAddSuber -1,{
OnInit:
set $@sneakchance, 3; // chance of successful sneak(0 = never, 10 = always)
set $@sneakguard, 0; // numbers of people who sneaked past guard
set $@threshold, 10; // numbers of sneakers before mob appears
set $@mob, 50; // Max respawn numbers of "mobsters"
set $@mobcount, 0; // current numbers of "mobsters"
set $@lhz_alert, 0; // Alert on Lighthalzen(0 = off, 1 = on)
set $@i, 0;
end;
OnMinute00:
OnMinute05:
OnMinute10:
OnMinute15:
OnMinute20:
OnMinute25:
OnMinute30:
OnMinute35:
OnMinute40:
OnMinute45:
OnMinute50:
OnMinute55:
if($@lhz_alert == 0) set $@sneakguard, $@sneakguard + rand(1,3);
if($@lhz_alert == 1) set $@sneakguard, $@sneakguard - 1; // Monsters will die after 5~10 min. (sneakAddSuber)
end;
}
lighthalzen.gat,1,1,7 script AlertChk -1,{
OnInit:
initnpctimer;
end;
OnTimer10000:
if($@sneakguard >= $@threshold) goto MakeMob;
if($@sneakguard == 0) goto ClearMob; // Monsters will die after 5~10 min. (sneakAddSuber)
setnpctimer 0;
end;
MakeMob:
if($@lhz_alert == 1) goto ChkEnd;
set $@mobcount, $@mob;
mapannounce "lighthalzen.gat","Maintenance Organization of the Public Order: Currently the security of the city has been compromized, We ask the citizens to be more careful. I repeat. We ask the citizens to be more careful.", 1;
for( set $@i, 0; $@i < $@mob; set $@i, $@i + 1 ) {
monster "lighthalzen.gat",0,0,"Mobster",1592,1,"AlertChk::OnMobKilled";
}
set $@lhz_alert, 1;
set $@sneakguard, 2; // Monsters will die after 5~10 min. (sneakAddSuber)
setnpctimer 0;
end;
ClearMob:
if($@lhz_alert == 0) goto ChkEnd;
set $@mobcount, 0;
mapannounce "lighthalzen.gat","Maintenance organization of the Public Order: We were able to get rid of all the trouble makers in the city. You may relax now.", 1;
killmonster "lighthalzen.gat","AlertChk::OnMobKilled";
set $@lhz_alert, 0;
set $@sneakguard, 0;
setnpctimer 0;
end;
OnMobKilled:
set $@mobcount, $@mobcount - 1;
if($@mobcount == 0) goto ClearMob;
setnpctimer 0;
end;
ChkEnd:
setnpctimer 0;
end;
}
lighthalzen.gat,267,200,3 script Security Guard 868,{
if(countitem(7350)>0) goto Lhzpass1;
if($@lhz_alert == 1) goto Lhzstop;
if((gettime(2)>00 && gettime(2)<10)) goto LhzTalk2;
if((gettime(2)>30 && gettime(2)<40)) goto LhzTalk2;
set @LhzTalk,rand(1,10);
if(@LhzTalk < 2 ) goto LhzTalk1;
LhzTalk:
mes "[Guard]";
mes "Hey! Where do you think you are going?";
mes "I can not send nobody to the slum district!";
mes "If we let suspecious people like you pass,";
mes "there is no point in piece keeping!";
close;
LhzTalk1:
mes "-Looks like the guard is doing something else";
mes "Now is a good time to sneak by.-";
next;
warp "lighthalzen.gat",297,227;
set $@sneakguard, $@sneakguard + 1;
close;
LhzTalk2:
set @LhzTalk,rand(1,10);
if(@LhzTalk < 2 ) goto LhzTalk;
mes "[Guard]";
mes "zzZ... zzZ... zzZ...";
mes "hmm. hmm... zzZ...";
next;
mes "-Looks like the guard is sleeping";
mes "Now is a good time to sneak by.-";
next;
warp "lighthalzen.gat",297,227;
close;
Lhzpass1:
mes "[Guard]";
mes "Who are you! ...Hmm? You have a pass?";
mes "I'm sorry. You look like an adventurer,";
mes "but I guess you got the authority.";
mes "You may pass.";
next;
warp "lighthalzen.gat",297,227;
close;
Lhzstop:
mes "[Guard]";
mes "Recently, there were too many people sneaking pass us,";
mes "so we raised the security level.";
mes "Who sneak past us anyway?";
mes "It's troublesome...";
close;
}
lighthalzen.gat,294,223,7 script Security Guard 868,{
if(countitem(7350)>0) goto Lhzpass1;
if($@lhz_alert == 1) goto Lhzstop;
if((gettime(2)>00 && gettime(2)<10)) goto LhzTalk2;
if((gettime(2)>30 && gettime(2)<40)) goto LhzTalk2;
set @LhzTalk,rand(1,10);
if(@LhzTalk < 2 ) goto LhzTalk1;
LhzTalk:
mes "[Guard]";
mes "Hey! Where do you think you are going?";
mes "I can not send nobody to the slum district!";
mes "If we let suspecious people like you pass,";
mes "there is no point in piece keeping!";
close;
LhzTalk1:
mes "-Looks like the guard is doing something else";
mes "Now is a good time to sneak by.-";
next;
warp "lighthalzen.gat",264,200;
set $@sneakguard, $@sneakguard + 1;
close;
LhzTalk2:
set @LhzTalk,rand(1,10);
if(@LhzTalk < 2 ) goto LhzTalk;
mes "[Guard]";
mes "zzZ... zzZ... zzZ...";
mes "hmm. hmm... zzZ...";
next;
mes "-Looks like the guard is sleeping";
mes "Now is a good time to sneak by.-";
next;
warp "lighthalzen.gat",264,200;
close;
Lhzpass1:
mes "[Guard]";
mes "Who are you! ...Hmm? You have a pass?";
mes "I'm sorry. You look like an adventurer,";
mes "but I guess you got the authority.";
mes "You may pass.";
next;
warp "lighthalzen.gat",264,200;
close;
Lhzstop:
mes "[Guard]";
mes "Recently, there were too many people sneaking pass us,";
mes "so we raised the security level.";
mes "Who sneak past us anyway?";
mes "It's troublesome...";
close;
}
//============================================================
// Cube Room
//============================================================
//--------------------------Piciburn--------------------------
lighthalzen.gat,341,224,4 script Piciburn 868,{
if (BaseLevel > 60) goto Lstart;
mes "[Piciburn]";
mes "Keep moving.";
close;
Lstart:
if (hzdun == 1) goto L_11;
if (piciburn == 7) goto L_10;
if (piciburn == 6) goto L_9;
if (piciburn == 5) goto L_6;
if (piciburn == 4) goto L_4;
if (piciburn == 3) goto L_3;
if (piciburn == 2) goto L_2;
if (piciburn == 1) goto L_1;
mes "[Piciburn]";
mes "Hmm...? What is it?";
mes "I am busy at the moment,";
mes "so stop bothering me.";
set piciburn,1;
close;
L_1:
mes "[Piciburn]";
mes "I'm getting distracted because";
mes "You keep staring at me!";
mes "Would you please leave me alone?";
set piciburn,piciburn+1;
close;
L_2:
mes "[Piciburn]";
mes "Hmm...? Oh, it's you..";
mes "You are really getting on my nerves.";
mes "You're weird, you know that?";
mes "What is it that you want from me?";
next;
mes "[" +strcharinfo(0) + "]";
mes "Nothing really...";
mes "Just looking around...";
mes "What are you doing?";
next;
mes "[Piciburn]";
mes "Oh, man...";
mes "If I just needed to show you this,";
mes "I wouldn't have got all worked up.";
next;
mes "[" +strcharinfo(0) + "]";
mes "I know. Haha.";
next;
mes "[Piciburn]";
mes "You really ARE a weird person...";
mes "Are you just going to stand there";
mes "and keep watching?";
next;
mes "[Piciburn]";
mes "... You're really annoying me!";
mes "What do you want from me?!";
next;
mes "[" +strcharinfo(0) + "]";
mes "I've aready told you.";
mes "I asked what you were doing.";
mes "This place is hot and sticky.";
next;
mes "[Piciburn]";
mes "Okay, okay..";
mes "I'll tell you what i'm doing,";
mes "but would you leave me in peace";
mes "if i did? Thanks.";
next;
mes "[Piciburn]";
mes "I'm.. um... doing something illegal...";
mes "Don't tell anyone about this!";
next;
mes "[Piciburn]";
mes "I am the only person who can make a route to";
mes "the industrial city's -^FF0000Laboratory^000000- or";
mes "places normal people wouldn't usually be able to get to.";
next;
mes "[" +strcharinfo(0) + "]";
mes "The -Laboratory?!!!-";
mes "Can you really get people in there?!!!";
next;
mes "[Piciburn]";
mes "Agh! Quieten down! What did i tell you?";
mes "I've told you what i do, now will you stop staring at me?";
mes "And be quiet~!";
mes "You're weird.. �_�";
next;
mes "[" +strcharinfo(0) + "]";
mes "Ah..Haha.. I'm sorry.";
mes "I really want to go there,";
mes "so I got excited when I heard you can get people in there";
next;
mes "[Piciburn]";
mes "Hmm? You were planning to get in there?";
next;
mes "[" +strcharinfo(0) + "]";
mes "Yeah, but i couldn't get in..";
next;
mes "[Piciburn]";
mes "Hmm...";
mes "This is troublesome...";
mes "I don't usually tell people i cannot";
mes "trust how to get into the Laboratory...";
next;
mes "[" +strcharinfo(0) + "]";
mes "What do I need to do?";
mes "How can I get into the laboratory?";
next;
mes "[Piciburn]";
mes "Geez~, I'm just giving people a route, not sending them there.";
next;
mes "[" +strcharinfo(0) + "]";
mes "Doesn't that mean the same thing?";
next;
mes "[Piciburn]";
mes "What I'm saying is,";
mes "I'm giving people the chance to get into the labs.";
next;
mes "[" +strcharinfo(0) + "]";
mes "You're really talented, huh.";
next;
mes "[Piciburn]";
mes "Hahaha! Damn right.";
mes "It's a piece of cake!";
mes "...";
mes "Actually, now i think about it, it's impossible..";
next;
mes "[" +strcharinfo(0) + "]";
mes "How's it impossible?";
mes "I haven't say anything yet~..";
next;
mes "[Piciburn]";
mes "Oh come on, you were going to BEG me to send you there~!!!";
next;
mes "[" +strcharinfo(0) + "]";
mes "Heh...";
mes "You really ARE clever.";
mes "Well...";
mes "Pretty please~~?";
next;
mes "[Piciburn]";
mes "I can never let you in~..";
mes "Never ever~!!!";
set piciburn,piciburn+1;
close;
L_3:
mes "[" +strcharinfo(0) + "]";
mes "Please?";
next;
mes "[Piciburn]";
mes "No way.";
set piciburn,piciburn+1;
close;
L_4:
mes "[" +strcharinfo(0) + "]";
mes "Pleaseeeee?";
next;
mes "[Piciburn]";
mes "No.";
next;
mes "[" +strcharinfo(0) + "]";
mes "Pleaseeeeeeeeeee?";
next;
mes "[Piciburn]";
mes "I don't want to.";
next;
mes "[" +strcharinfo(0) + "]";
mes "Do it!!!";
next;
mes "[Piciburn]";
mes "Never~!!!";
next;
mes "[" +strcharinfo(0) + "]";
mes "Why are you doing this to me?!!";
mes "What do you want from me !?!";
next;
mes "[Piciburn]";
mes "What do I want?";
mes "Heh heh.. One billion zeny.";
next;
mes "[" +strcharinfo(0) + "]";
mes "Are you crazy?!";
next;
mes "[Piciburn]";
mes "It's your choice.";
next;
mes "[" +strcharinfo(0) + "]";
mes "Sir, you know I don't have that much money.";
mes "Is there anything else you need?";
next;
mes "[Piciburn]";
mes "Hmm...";
mes "Okay fine...";
mes "Bring me 20 Jellopies.";
mes "'Kay?";
next;
mes "[" +strcharinfo(0) + "]";
mes "........";
mes "So that's what you really wanted to ask me?";
next;
mes "[Piciburn]";
mes "Hahaha...";
mes "Yeah~~...";
next;
mes "[" +strcharinfo(0) + "]";
mes "........";
next;
mes "[Piciburn]";
mes "So, what're you doing just standing there?";
mes "Are you going to do it or not?";
next;
menu "Definitely!",L_5,"No way! It's impossible!",-;
mes "[Piciburn]";
mes "Ah well, your loss,";
mes "Too bad!";
mes "Bye now~!!";
close;
L_5:
mes "[Piciburn]";
mes "Okay then, do as I said,";
mes "bring me 20 jellopies!";
mes "....";
mes "What're you waiting for?! GO!!";
set piciburn,piciburn+1;
close;
L_6:
mes "[Piciburn]";
mes "Did you get the items?";
next;
menu "Erm.. No..",-,"Hell yeah!",L_7,"What did you want again..?",L7_1;
mes "[Piciburn]";
mes "Hey, I don't feel like playing around anymore.";
mes "If you really want to get there, bring the damn items!";
close;
L_7:
if (countitem(909) >= 20) goto L_8;
mes "[Piciburn]";
mes "Are you joking?";
mes "If you keep doing this,";
mes "I may not keep the promise either.";
mes "So go and get them already!";
close;
L7_1:
mes "[Piciburn]";
mes "You're really stupid~!";
mes "It's 20 jellopies!";
mes "Don't forget this time~";
close;
L_8:
delitem 909,20;
mes "[Piciburn]";
mes "Hmm. You're more reliable than i thought.";
mes "Taking this errand into consideration,";
mes "i guess you really want to get in there?";
next;
mes "[Piciburn]";
mes "Coming to think of it,";
mes "you look different.";
mes "Should I say you look more... trustworthy..?";
next;
mes "[Piciburn]";
mes "Well... Anyway...";
mes "A promise is a promise.";
mes "I will tell you how to get there.";
next;
mes "[Piciburn]";
mes "As I told you earlier, all I can do is";
mes "give you the opportunity to get in.";
next;
mes "[Piciburn]";
mes "I used to be a manager working for the lab,";
mes "but time moves on, as people do,";
mes "and now I am working against the lab.";
next;
mes "[Piciburn]";
mes "Now... Answer honestly on all I ask here on out.";
mes "Where i send you all depends on how you answer.";
next;
mes "[Piciburn]";
mes "Somewhere in the place I'm going to send you";
mes "There will be things you must find,";
mes "So search well.";
next;
mes "[Piciburn]";
mes "Well, when you've made your mind up,";
mes "come back and talk to me. Okay?";
set piciburn,piciburn+1;
close;
L_9:
mes "[Piciburn]";
mes "Hmm... So...";
mes "Are you ready to go?";
next;
menu "No",-,"Yes",L9_1;
mes "[Piciburn]";
mes "Hmm... Not yet, huh...";
mes "Well, I guess it is to be expected.";
mes "But don't make me wait too long~!";
close;
L9_1:
mes "[Piciburn]";
mes "This is going to be hard~";
mes "Let's go!!!";
close2;
warp "lhz_cube.gat",248,184;
set piciburn,piciburn+1;
end;
L_10:
mes "[Piciburn]";
mes "Hah!";
mes "You failed in there, right? Hahahaha~.";
mes "Are you going to try again? Or is it too tough~";
next;
menu "No",-,"Yes",L10_1;
mes "[Piciburn]";
mes "It was that hard huh?";
mes "Well, come back if you change your mind.";
close;
L10_1:
mes "[Piciburn]";
mes "Okay..";
mes "I will send you there again..";
mes "Good luck!";
close2;
// warp "lhz_cube.gat",66,136;
warp "lhz_cube.gat",248,184;
end;
L_11:
mes "[Piciburn]";
mes "Oh~ I guess you found the entrance.";
mes "I'll tell you now...";
mes "If you want to go in there again";
next;
mes "[Piciburn]";
mes "You can get there by a sewer passage a bit south of the town.";
next;
mes "[" +strcharinfo(0) + "]";
mes "No waiiiii!!";
next;
mes "[Piciburn]";
mes "I know. I know...";
mes "It is dirty.";
mes "But it's only way in, so don't complain!";
next;
mes "[Piciburn]";
mes "Now, take care of yourself~.";
close;
}
//--------------------------Box--------------------------
lhz_cube.gat,248,179,0 script Box 111,{
if (axe == 1) goto L_2;
mes "There is an axe in the box.";
next;
menu "Take the axe.",L_1,"Leave it alone.",-;
close;
L_1:
mes "You acquired the ^FF0000axe^000000.";
set axe,1;
close;
L_2:
mes "There is a box that used to contain an ^FF0000axe^000000.";
close;
}
//--------------------------Barrel--------------------------
lhz_cube.gat,237,183,0 script Barrel 111,{
if (ykey == 1) goto L_4;
if (box == 1) goto L_2;
mes "There is a box that looks weak.";
if (axe == 0) close;
next;
input @axe$;
if (@axe$ == "axe") goto L_1;
mes "There is no change.";
close;
L_1:
mes "When you break the barrel with an axe,";
mes "you see that there's a box inside of it.";
next;
mes "On top of the box, there's a panel with the numbers 1~9";
set box,1;
close;
L_2:
mes "There is a box with numbers 1~9 on it's surface.";
next;
set @agree,0;
input @number;
if (num6 == @number) set @agree,@agree+1;
input @number;
if (num8 == @number) set @agree,@agree+1;
input @number;
if (num1 == @number) set @agree,@agree+1;
input @number;
if (num4 == @number) set @agree,@agree+1;
input @number;
if (num9 == @number) set @agree,@agree+1;
input @number;
if (num2 == @number) set @agree,@agree+1;
input @number;
if (num7 == @number) set @agree,@agree+1;
input @number;
if (num5 == @number) set @agree,@agree+1;
input @number;
if (num3 == @number) set @agree,@agree+1;
if (@agree == 9 && num1) goto L_3; //you can't enter correct numbers, till read them under that picture [Lupus]
mes "There is no change.";
close;
L_3:
mes "The box opened, making a metallic click.";
mes "Within the box, there is 'yellow key'.";
next;
mes "You acquired '^FF0000yellow key^000000'.";
set ykey,1;
close;
L_4:
mes "This box used to have the '^FF0000yellow key^000000'";
mes "The box is now empty.";
close;
}
//--------------------------Drawer--------------------------
lhz_cube.gat,242,201,0 script Drawer 111,{
if (knife == 1) goto L_3;
mes "The drawer is locked.";
if (redkey == 1) goto L_1;
close;
L_1:
input @key$;
if (@key$ == "red key") goto L_2;
mes "The drawer is locked, you need some kind of key.";
close;
L_2:
mes "The red key fits the lock perfectly,opening the drawer.";
mes "You found a 'small knife' inside.";
next;
mes "You acquired ^FF0000small knife^000000.";
set knife,1;
close;
L_3:
mes "It is the drawer you got ^FF0000small knife^000000 from.";
mes "There is nothing inside now.";
close;
}
//--------------------------Documents--------------------------
lhz_cube.gat,237,198,0 script Documents 111,{
if (redkey == 1) goto L_2;
mes "There are tons of documents here.";
next;
menu "Search the documents.",L_1,"Ignore.",-;
close;
L_1:
mes "As you look through the documents, a 'redkey' falls out.";
next;
mes "You acquired ^FF0000red key^000000.";
set redkey,1;
close;
L_2:
mes "This is where you acquired ^FF0000red key^000000.";
mes "There's nothing else to do here.";
close;
}
//--------------------------Bed--------------------------
lhz_cube.gat,247,198,0 script Bed 111,{
mes "There is a messy bed.";
next;
menu "Above bed",-,"Below bed",L_1;
mes "The blanket is messily placed.";
mes "There is nothing special here.";
close;
L_1:
if (quadrangle >= 1) goto L_3;
if (srod1 == 1) goto L_2;
mes "You look below the bed and see a 'small stick'.";
mes "It is within your grasp, but there is";
mes "Also another item hidden under the bed, which";
mes "You'll need some kind of long item to pull it out.";
next;
mes "You acquired the '^FF0000small stick^000000'.";
mes "It looks like this stick could be combined";
mes "With another stick to make it larger.";
if (srod2 == 1) goto L1_1;
if (srod1 == 0) set srod1,1;
close;
L1_1:
set srod1,1;
if (@bed == 0) next;
mes "It looks similar to the 'small stick' that you";
mes "found under the bed.";
next;
mes "You acquired '^FF0000long stick^000000'.";
set rod,1;
close;
L_2:
set @bed,1;
if (rod == 0 && srod1 == 1 && srod2 == 1) goto L1_1;
mes "As you look under the bed, you see that there";
mes "is a small object covered in dust.";
next;
input @bed$;
if (@bed$ == "long stick" && rod == 1) goto L2_1;
mes "It looks like you need some kind of long item to";
mes "Get the item out, you can't reach it!";
close;
L2_1:
mes "You used the long stick to pull it out.";
next;
mes "You acquired '^FF0000cube model^000000'.";
set quadrangle,1;
close;
L_3:
mes "This is the place where you got '^FF0000cube model^000000' from.";
mes "There is nothing down here now but dust.";
close;
}
//--------------------------Cup--------------------------
lhz_cube.gat,229,184,0 script Cup 111,{
if (fkey == 1) goto L_2;
mes "You see an empty bottle and a cup with something in it.";
next;
menu "Leave it alone.",-,"Look what is inside.",L_1;
close;
L_1:
mes "When you look inside, you see a 'rusty key'.";
next;
mes "You acquired the '^FF0000rusty key^000000'.";
set fkey,1;
close;
L_2:
mes "You got the '^FF0000rusty key^000000' here.";
mes "There's nothing but an empty cup and an empty bottle.";
close;
}
//--------------------------Shelf--------------------------
lhz_cube.gat,233,206,0 script Shelf 111,{
if (gkey == 1) goto L_2;
mes "There are lots of bottles filled with acids lined up";
mes "Along the shelf, they have different labels.";
next;
input @lathe$;
if (@lathe$ == "rusty key" && fkey == 1) goto L_1;
mes "Nothing happened.";
close;
L_1:
mes "As you put the 'rusty key' into a bottle, it fizzes";
mes "and bubbles, and all the liquid disappears.";
mes "All that's left is a clean, green key.";
next;
mes "You acquired the '^FF0000green key^000000'";
set gkey,1;
close;
L_2:
mes "There is an acid that changed corroded all the rust";
mes "off of your key.";
next;
mes "I don't see anything useful.";
close;
}
//--------------------------Closet--------------------------
lhz_cube.gat,249,191,0 script Closet 111,{
if (polygon >= 1) goto L_4;
mes "There is a closet with lots of drawers.";
if (gkey == 1) goto L_2;
if (gkey == 0) next;
menu "Leave it alone.",-,"Open one of the drawers.",L_1;
close;
L_1:
mes "There's nothing of any interest in this drawer.";
close;
L_2:
next;
input @gkey$;
if (@gkey$ == "green key") goto L_3;
mes "There's nothing of any interest in this drawer.";
close;
L_3:
mes "You put the 'green key' into a keyhole,";
mes "opening one of the locked drawers.";
mes "In the drawer, there is a model of";
mes "a polygon.";
next;
mes "'You acquired the ^FF0000polygon model^000000.";
set polygon,1;
close;
L_4:
mes "This is the closet where you got";
mes "the 'polygon model' from.";
next;
mes "The other draws will not open, there's";
mes "nothing else to do here.";
close;
}
//--------------------------Desk--------------------------
lhz_cube.gat,234,200,0 script Desk 111,{
mes "There is a desk with lots of objects scattered around.";
next;
menu "Above the desk",-,"Below the desk",L_1,"Drawer",L_2;
mes "There are lots of books, papers and";
mes "research equipment.";
close;
L_1:
if (rod == 1 || srod2 == 1) goto L1_2;
mes "When you look below the desk,";
mes "You see a decent sized stick.";
next;
mes "You acquired '^FF0000short stick^000000'.";
mes "It looks like this stick could be combined";
mes "With another stick to make it larger.";
if (srod2 == 0) set srod2,1;
if (srod2 == 0) close;
L1_1:
if (@desk == 0) next;
mes "It seems like the decently sized stick can be";
mes "combined with the 'short stick' from under the bed.";
mes "You put the two end to end, and they click into place.";
next;
mes "You acquired the '^FF0000long stick^000000'";
set rod,1;
close;
L1_2:
set @desk,1;
if (srod1 == 1 && srod2 == 1) goto L1_1;
mes "This is where you acquired the '^FF0000short stick^000000'.";
mes "There is nothing but dust now.";
close;
L_2:
mes "It is locked and can't be opened.";
close;
}
//--------------------------Picture--------------------------
lhz_cube.gat,237,206,0 script Picture 111,{
if (num1 > 0) goto L_2;
mes "There is a picture on the wall.";
next;
menu "Move it.",L_1,"Leave it alone.",-;
close;
L_1:
mes "It does not move.";
next;
input @knife$;
if (@knife$ == "small knife" && knife == 1) goto L1_1;
mes "Nothing happened.";
close;
L1_1:
mes "You slid the 'small knife' behind the frame";
mes "and used it to twist the picture.";
mes "As you turn the frame, the picture detatches and";
mes "falls from the wall.";
next;
set num1,rand(1,9);
Lset1:
set num2,rand(1,9);
if (num1 == num2) goto Lset1;
Lset2:
set num3,rand(1,9);
if (num1 == num3) goto Lset2;
if (num2 == num3) goto Lset2;
Lset3:
set num4,rand(1,9);
if (num1 == num4) goto Lset3;
if (num2 == num4) goto Lset3;
if (num3 == num4) goto Lset3;
Lset4:
set num5,rand(1,9);
if (num1 == num5) goto Lset4;
if (num2 == num5) goto Lset4;
if (num3 == num5) goto Lset4;
if (num4 == num5) goto Lset4;
Lset5:
set num6,rand(1,9);
if (num1 == num6) goto Lset5;
if (num2 == num6) goto Lset5;
if (num3 == num6) goto Lset5;
if (num4 == num6) goto Lset5;
if (num5 == num6) goto Lset5;
Lset6:
set num7,rand(1,9);
if (num1 == num7) goto Lset6;
if (num2 == num7) goto Lset6;
if (num3 == num7) goto Lset6;
if (num4 == num7) goto Lset6;
if (num5 == num7) goto Lset6;
if (num6 == num7) goto Lset6;
Lset7:
set num8,rand(1,9);
if (num1 == num8) goto Lset7;
if (num2 == num8) goto Lset7;
if (num3 == num8) goto Lset7;
if (num4 == num8) goto Lset7;
if (num5 == num8) goto Lset7;
if (num6 == num8) goto Lset7;
if (num7 == num8) goto Lset7;
Lset8:
set num9,rand(1,9);
if (num1 == num9) goto Lset8;
if (num2 == num9) goto Lset8;
if (num3 == num9) goto Lset8;
if (num4 == num9) goto Lset8;
if (num5 == num9) goto Lset8;
if (num6 == num9) goto Lset8;
if (num7 == num9) goto Lset8;
if (num8 == num9) goto Lset8;
goto L_2;
L_2:
mes "There is a number behind the picture.";
mes "" + num1 + "3 " + num2 + "6 " + num3 + "9 " + num4 + "4 " + num5 + "8 " + num6 + "1 " + num7 + "7 " + num8 + "2 " + num9 + "5";
mes "Perhaps you should write this number down somewhere...";
close;
}
//--------------------------generator--------------------------
lhz_cube.gat,224,192,0 script Generator 111,{
if (machine == 1) goto L_2;
mes "The big machine is running, making a huge noise.";
mes "There are lots weird symbols and";
mes "a small key hole beside them.";
next;
input @key$;
if (@key$ == "yellow key" && ykey == 1) goto L_1;
mes "There's nothing to do here.";
close;
L_1:
mes "You insert the 'yellow key' into the keyhole";
mes "and twist it.";
mes "The machine clicks, and becomes silent.";
next;
mes "When it was stopped, the lamp next to the bed";
mes "also turned off.";
set machine,1;
close;
L_2:
mes "The big machine sits quietly.";
close;
}
//--------------------------Lamp--------------------------
lhz_cube.gat,248,205,0 script Lamp 111,{
if (bkey == 1) goto L_3;
if (machine == 1) goto L_1;
mes "There is a bright lamp.";
mes "Seems like there is something inside";
mes "but it is too hot to touch.";
mes "It looks like you need to somehow turn the lamp off.";
close;
L_1:
mes "There is something inside of the bulb.";
next;
menu "Leave it alone.",-,"Break the bulb.",L_2;
close;
L_2:
mes "When you break the bulb, a";
mes "'black key' falls out.";
next;
mes "You acquired the '^FF0000black key^000000'.";
set bkey,1;
close;
L_3:
mes "There nothing but a broken bulb.";
close;
}
//--------------------------Box--------------------------
lhz_cube.gat,248,193,0 script Box 111,{
if (countitem(2657) > 0 || @gotkey || hzdun) goto L_5;
mes "There is a box with three holes.";
next;
if (ellipse == 2 && quadrangle == 2 && polygon == 2) goto L_4;
menu "Ellipse hole",L_1,"Square hole",L_2,"Polygonal hole",L_3;
L_1:
if (ellipse == 2) goto L1_2;
input @ellipse$;
if (@ellipse$ == "ellipse model" && ellipse == 1) goto L1_1;
mes "Nothing happened.";
close;
L1_1:
mes "You inserted the 'ellipse model' into the ellipse-shaped hole.";
mes "The box makes a metallic click.";
set ellipse,2;
close;
L1_2:
mes "You've already inserted the 'ellipse model'.";
close;
L_2:
if (quadrangle == 2) goto L2_2;
input @quadrangle$;
if (@quadrangle$ == "cube model" && quadrangle == 1) goto L2_1;
mes "Nothing happened.";
close;
L2_1:
mes "You inserted the 'cube model' into the square-shaped hole.";
mes "The box makes a metallic click.";
set quadrangle,2;
close;
L2_2:
mes "You already inserted the 'square model'.";
close;
L_3:
if (polygon == 2) goto L3_2;
input @polygon$;
if (@polygon$ == "polygon model" && polygon == 1) goto L3_1;
mes "Nothing happened.";
close;
L3_1:
mes "You inserted the 'polygon model' into the polygonal hole.";
mes "The box makes a metallic click.";
set polygon,2;
close;
L3_2:
mes "You've already inserted the 'polygon model'.";
close;
L_4:
mes "All holes are filled with keymodels.";
next;
menu "Leave it alone.",-,"Open the box.",L4_1;
close;
L4_1:
mes "There is a small card inside of it.";
next;
mes "You acquired the 'Laboratory Permit'.";
set @gotkey,1;
getitem 2657,1;
close;
L_5:
mes "There is an opened box.";
mes "There is nothing inside.";
close;
}
//--------------------------Test tube--------------------------
lhz_cube.gat,224,197,0 script Test Tube 111,{
if (countitem(2657) > 0) goto L_3;
if (ellipse >= 1) goto L_2;
mes "There is a weird test tube.";
mes "It seems like there is something inside.";
mes "There' a keyhole and a hole that fits a thin object.";
next;
input @key$;
if (@key$ == "black key" && bkey == 1) goto L_1;
mes "Nothing happened.";
close;
L_1:
mes "You inserted the 'black key' and turned it.";
mes "The glass window at the front of the machine opened,";
mes "Revealing an ellipse model.";
next;
mes "You acquired the '^FF0000ellipse model^000000'.";
set ellipse,1;
close;
L_2:
mes "This is where you got '^FF0000ellipse model^000000'.";
mes "There is a weird symbol on the bottom of the machine.";
mes "It looks like it could open as it has hinges on one side.";
close;
L_3:
mes "There is a rectangular hole in the front of the machine.";
next;
input @answer$;
if (@answer$ == "Laboratory Permit" || @answer$ == "permit") goto L_4;
mes "Nothing happened.";
close;
L_4:
mes "You inserted the 'Laboratory Keycard' in the hole,";
mes "and the stair leading down appeared on the floor.";
next;
menu "Go down.",L4_1,"Do not go down.",-;
close;
L4_1:
mes "It connected to a long staircase.";
close2;
set axe,0; set ykey,0; set box,0; set num1,0;
set num2,0; set num3,0; set num4,0; set num5,0;
set num6,0; set num7,0; set num8,0; set num9,0;
set knife,0; set redkey,0; set srod1,0; set srod2,0;
set fkey,0; set gkey,0; set polygon,0; set machine,0;
set bkey,0; set ellipse,0; set quadrangle,0; set rod,0;
set hzdun,1;
warp "lhz_cube.gat",177,13;
end;
}
// Lighthalzen Pickpocket Mini-Quest
// By Lord Gywall
// Version 1.0
// Tested on: eAthena SVN Stable (Unknown version)
// Version History:
// 1.0 - Completed and working
lighthalzen.gat,240,216,4 script Man#Pickpocket1 870,2,2,{
end;
OnTouch:
callfunc "F_LHZPick",33,1;
close;
}
lighthalzen.gat,220,169,4 script Man#Pickpocket2 870,2,2,{
end;
OnTouch:
callfunc "F_LHZPick",33,2;
close;
}
lighthalzen.gat,164,127,4 script Man#Pickpocket3 870,2,2,{
end;
OnTouch:
callfunc "F_LHZPick",20,3;
if(@caught!=1) close;
mes "[Strange Man]";
mes "Ayee! I'm trapped.";
mes "If you will forgive me,";
mes "I can give you something good.";
mes "["+strcharinfo(0)+"]";
mes "You're forgiven, now what is this";
mes "good thing you mentioned?";
next;
mes "[Strange Man]";
mes "The lower part of your body,";
mes "will produce a strong power";
mes "once you've taken the secret potion.";
mes "It's very useful";
mes "when you want to run quickly";
next;
mes "[Strange Man]";
mes "I will sell you them for a bargin";
mes "price of 15,000 zeny to a maximum";
mes "of three potions.";
mes "How many do you want?";
next;
input @number;
if(@number>3) set @number,3;
set @cost,15000*@number;
if(Zeny<@cost) goto L_Zeny;
//please check that you add the script to it.
set Zeny,zeny-@cost;
getitem 12016,@number; //Speed Potion
mes "[Strange Man]";
mes "Thanks for your money.";
if(rand(1,2)==1) goto L_Reset;
disablenpc "Man#Pickpocket3";
enablenpc "Man#Pickpocket2";
close;
L_Reset:
disablenpc "Man#Pickpocket3";
enablenpc "Man#Pickpocket1";
close;
L_Zeny:
mes "[Strange Man]";
mes "Too bad.";
mes "No zeny makes you a poor man.";
close;
OnInit:
disablenpc "Man#Pickpocket2";
disablenpc "Man#Pickpocket3";
}
function script F_LHZPick {
if(Zeny<100) set Zeny,0;
if(Zeny>=100) set Zeny,zeny-100;
mes "Pickpocket";
next;
if(rand(0,100)<getarg(0)) goto L_Caught;
mes "Hehehehe....";
return;
L_Caught:
mes "(You notice the man put his";
mes "hand in your pocket!)";
mes "["+strcharinfo(0)+"]";
mes "Eh!? What are you doing!";
mes "You are!! Stealing my money?!";
mes "[Strange Man]";
mes "Ah! I'm caught!";
mes "["+strcharinfo(0)+"]";
mes "You're a pickpocket?!?";
mes "[Strange Man]";
mes "Hehehehe....";
next;
set @rand,rand(1,4);
if(getarg(1)==1 && @rand<4) goto L_MoveB;
if(getarg(1)==2 && @rand<4) goto L_MoveA;
if(getarg(1)==1 && @rand==4) goto L_MoveC1;
if(getarg(1)==2 && @rand==4) goto L_MoveC2;
set @caught,1;
return;
L_MoveA:
disablenpc "Man#Pickpocket2";
enablenpc "Man#Pickpocket1";
return;
L_MoveB:
disablenpc "Man#Pickpocket1";
enablenpc "Man#Pickpocket2";
return;
L_MoveC1:
disablenpc "Man#Pickpocket1";
enablenpc "Man#Pickpocket3";
return;
L_MoveC2:
disablenpc "Man#Pickpocket2";
enablenpc "Man#Pickpocket3";
return;
}