You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2127 lines
83 KiB
Plaintext
2127 lines
83 KiB
Plaintext
//===== rAthena Script =======================================
|
|
//= Nightmare Biolab NPCs
|
|
//===== Description: =========================================
|
|
//= [Walkthrough Conversion]
|
|
//= Nightmare Biolab exchange NPCs
|
|
// NOTE: The nightmare biolab monsters are currently missing
|
|
// some items used in the file.
|
|
// Silent Energy Particles (ID: 25127)
|
|
// Weak Energy Particles (ID: 25128)
|
|
// Unstable Energy Particles (ID: 25129)
|
|
// Sinister Energy Particles (ID: 25130)
|
|
// Cursed Crystal (ID: 23080)
|
|
//===== Changelogs: ==========================================
|
|
//= 1.0 First version. [Capuche]
|
|
//= 1.1 Added some missing warp points and lore pieces [akaineko]
|
|
//============================================================
|
|
|
|
// Item Functions
|
|
//============================================================
|
|
function script F_Pieces_Of_Sentiment { // 22687
|
|
if (strcharinfo(3) == "lhz_dun_n")// usage forbidden on the same map
|
|
return;
|
|
specialeffect2 EF_HIT4;
|
|
.@r = rand(1,23);
|
|
if (.@r == 1)
|
|
warp "lhz_dun_n",140,89;
|
|
else if (.@r == 2)
|
|
warp "lhz_dun_n",75,138;
|
|
else if (.@r == 3)
|
|
warp "lhz_dun_n",198,151;
|
|
else if (.@r == 4)
|
|
warp "lhz_dun_n",200,189;
|
|
else if (.@r == 5)
|
|
warp "lhz_dun_n",87,84;
|
|
else if (.@r == 6)
|
|
warp "lhz_dun_n",201,101;
|
|
else if (.@r == 7)
|
|
warp "lhz_dun_n",230,138;
|
|
else if (.@r == 8)
|
|
warp "lhz_dun_n",239,220;
|
|
else if (.@r == 9)
|
|
warp "lhz_dun_n",162,252;
|
|
else if (.@r == 10)
|
|
warp "lhz_dun_n",99,106;
|
|
else if (.@r == 11)
|
|
warp "lhz_dun_n",40,212;
|
|
else if (.@r == 12)
|
|
warp "lhz_dun_n",140,191;
|
|
else if (.@r == 13)
|
|
warp "lhz_dun_n",164,77;
|
|
else if (.@r == 14)
|
|
warp "lhz_dun_n",124,138;
|
|
else if (.@r == 15)
|
|
warp "lhz_dun_n",28,140;
|
|
else if (.@r == 16)
|
|
warp "lhz_dun_n",78,189;
|
|
else if (.@r == 17)
|
|
warp "lhz_dun_n",137,262;
|
|
else if (.@r == 18)
|
|
warp "lhz_dun_n",115,253;
|
|
else if (.@r == 19)
|
|
warp "lhz_dun_n",140,39;
|
|
else if (.@r == 20)
|
|
warp "lhz_dun_n",240,64;
|
|
else if (.@r == 21)
|
|
warp "lhz_dun_n",131,235;
|
|
else if (.@r == 22)
|
|
warp "lhz_dun_n",34,70;
|
|
else
|
|
warp "lhz_dun_n",176,202;
|
|
delitem 22687,1;
|
|
return;
|
|
}
|
|
|
|
function script F_Cursed_Fragment { // 23016
|
|
.@r = rand(1,12);
|
|
if (.@r == 1) {
|
|
showscript "I will never forgive you...!";
|
|
sc_start SC_ATKPOTION,600000,50;
|
|
sc_start SC_MATKPOTION,600000,50;
|
|
}
|
|
else if (.@r == 2) {
|
|
showscript "Somebody please help me...";
|
|
sc_start SC_CURSE,10000,0;
|
|
}
|
|
else if (.@r == 3) {
|
|
showscript "Stop it... It hurts...";
|
|
sc_start SC_BLEEDING,5000,0;
|
|
}
|
|
else if (.@r == 4) {
|
|
showscript "It's so cold in here...";
|
|
sc_start SC_FREEZE,5000,0;
|
|
}
|
|
else if (.@r == 5) {
|
|
showscript "Please... Stay with me...";
|
|
itemskill "AL_TELEPORT",1;
|
|
}
|
|
else if (.@r == 6) {
|
|
showscript "Stay... here with me...";
|
|
itemskill "AL_TELEPORT",1;
|
|
}
|
|
else if (.@r == 7) {
|
|
showscript "You shouldn't have come here...";
|
|
sc_start SC_STUN,5000,0;
|
|
}
|
|
else if (.@r == 8) {
|
|
showscript "Hello... Is anyone there...?";
|
|
sc_start SC_BLIND,5000,0;
|
|
}
|
|
else if (.@r == 9) {
|
|
showscript "I am so scared....scared....";
|
|
sc_start SC_CONFUSION,10000,0;
|
|
}
|
|
else if (.@r == 10) {
|
|
showscript "Dear Odin...";
|
|
sc_start SC_ASSUMPTIO,100000,5;
|
|
specialeffect2 EF_ASSUMPTIO;
|
|
}
|
|
else if (.@r == 11) {
|
|
showscript "Wake up!";
|
|
percentheal 0,20;
|
|
}
|
|
else {
|
|
showscript "I am sorry... I will leave now... thank you...";
|
|
getitem 6820,1;// Energy_Fragment
|
|
}
|
|
return;
|
|
}
|
|
|
|
|
|
// Nightmare Biolab Entrances
|
|
lighthalzen,321,218,4 script Ohno Tohiro#1 4_M_RASWORD,{
|
|
disable_items;
|
|
mes "[Ohno Tohiro]";
|
|
.@r = rand(1,10);
|
|
if (.@r < 6)
|
|
mes "I was asked to collect some kind of research charts...";
|
|
else if (.@r < 7) {
|
|
mes "- I hear somebody talking - - remote communication -";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "Yes... everything is proceeding smoothly.";
|
|
mes "The status of the report collection is okay.";
|
|
mes "Yes, sir.";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "I'll immediately report the information related to the laboratory as a top priority.";
|
|
mes "Yes, sir... I'll do so.";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "Oh somebody has come! I'll call you again later.";
|
|
}
|
|
else {
|
|
mes "[Ohno Tohiro]";
|
|
mes "My shoulders are heavy.";
|
|
mes "Our long-cherished wish..";
|
|
mes "One by one, slowly..";
|
|
}
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "Uh...? I didn't realize someone is here already...";
|
|
mes "hmm... hmm...";
|
|
mes "Is there something you want from me?";
|
|
while(true) {
|
|
next;
|
|
switch( select( "End the conversation.", "Ask him about the tomb of honor.", "Return to the tomb of honor.", "Say that Zeny is not enough." ) ) {
|
|
case 1:
|
|
mes "[Ohno Tohiro]";
|
|
mes "There are many adventurers looking for this crevice, except for you!";
|
|
mes "If you change your mind, come back to me again!";
|
|
close;
|
|
case 2:
|
|
mes "[Ohno Tohiro]";
|
|
mes "You also heard about the crevice that leads to that place, right?";
|
|
mes "There are many adventurers like you these days!";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "I entered this crevice for the first time and guess what? It led to a place where there are so many monsters swarming around.";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "I gave a heads up to one adventurer I know. Then, he showed a high interest in it!";
|
|
mes "He kept muttering to himself about biomedical research, labs something like that.";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "He kept asking me to show him how to get there. I felt reluctant to let him know about this crevice because I didn't want others to know about it. But I traded this info for 100,000 Zeny.";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "Not much later, he came back with his body thoroughly injured. It was a miracle that he came back alive... It was horrible...";
|
|
mes "However, he was holding several items. At first glance, they looked so powerful that even I felt scared.";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "After that, many adventurers entered this dangerous place through this crevice after hearing the rumor. I hardly found any adventurers coming out of this crevice again. Since then, this place has been called the tomb of honor.";
|
|
mes "I earned some money thanks to them, though.";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "You want to know why I earned money?";
|
|
mes "I found this place for the first time, so its ownership belongs to me as well! You got a problem with that?";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "Hmm hmm... Anyway, give me 100,000 Zeny. Then, I'll open the door which leads to the crevice for adventurers like you...";
|
|
continue;
|
|
case 3:
|
|
if (Zeny < 100000) {
|
|
mes "[Ohno Tohiro]";
|
|
mes "You don't have enough money!";
|
|
mes "There is nothing free in this world!";
|
|
continue;
|
|
}
|
|
mes "[Ohno Tohiro]";
|
|
mes "Let me see... one... two... three";
|
|
mes "Alright. Now that I received the Zeny, I'll open the crevice.";
|
|
mes "I hope you can come back alive!...";
|
|
next;
|
|
if (Zeny >= 100000) {
|
|
Zeny -= 100000;
|
|
warp "lhz_dun_n",100,202;
|
|
}
|
|
end;
|
|
case 4:
|
|
mes "[Ohno Tohiro]";
|
|
mes "What? You don't have enough Zeny, but you want to enter?";
|
|
mes "Hmm... Then... by any chance, you have a research chart?";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "Hush, speak quietly. People around here may hear us. Do you have it or not?";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "Don't ask me why I need it. Just bring me 10 research charts. Then, I'll send you to the tomb of honor for nothing. What you do think?";
|
|
next;
|
|
if (select( "Go back to the previous menu.", "Hand over 10 research charts." ) == 1) {
|
|
mes "[Ohno Tohiro]";
|
|
mes "You got any other business with me?";
|
|
continue;
|
|
}
|
|
if (countitem(7347) < 10) {
|
|
mes "[Ohno Tohiro]";
|
|
mes "It seems 10 research charts are missing now.";
|
|
mes "Maybe you didn't pick them up from the warehouse.";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "Is there something else you want from me?";
|
|
continue;
|
|
}
|
|
mes "[Ohno Tohiro]";
|
|
mes "Oh... yes, this is it... This is what I need... hoo hoo...";
|
|
next;
|
|
mes "[Ohno Tohiro]";
|
|
mes "I'll send you to the crevice as promised.";
|
|
mes "I want you alive. See you again!";
|
|
next;
|
|
delitem 7347,10;// Lab_Staff_Record
|
|
warp "lhz_dun_n",100,202;
|
|
end;
|
|
}
|
|
}
|
|
}
|
|
|
|
lighthalzen,320,204,3 script A kid with black finger 4_F_04,{
|
|
disable_items;
|
|
mes "[Lunar]";
|
|
mes "What are you looking for? Are you looking for the place where all the dead men roam?";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "I can take you there if you want. You will need ^0000cd20 Sentimental Fragment and 150K Zeny^000000.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "Or you can just see sentiment safely without the interruption of the dead. That will cost you ^0000cd30 Sentimental Fragment and 2M Zeny^000000.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "Where do you want to go?";
|
|
next;
|
|
switch( select( "Where all the dead men roam.", "Only thoughts can be met.", "What kind of place is it?", "I don't mind." ) ) {
|
|
case 1:
|
|
mes "[Lunar]";
|
|
mes "You have everything right?";
|
|
next;
|
|
if (countitem(22687) < 20 || Zeny < 150000) {
|
|
mes "[Lunar]";
|
|
mes "Let me see.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "It's not enough. You need ^0000cd20 Sentimental Fragment and 150K Zeny^000000. I can't take you there for free.";
|
|
close;
|
|
}
|
|
mes "[Lunar]";
|
|
mes "You have everything right?";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "Good. You have everything. I'll take you there.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "But... I'm taking you there for money... you should be careful.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "So.. if you go inside, you'll see a ^0000cdStrange Machine that looks like a crystal^000000.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "This machine will recover your HP if you use it. It helped me survive. I have no idea why it's in that kind of place though...";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "I turned off the machine so no one can use it, but I'll let you use it as my special treat.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "Please be careful and use the machine if you need to!!";
|
|
delitem 22687,20;// Sentimental Fragment
|
|
Zeny = Zeny - 150000;
|
|
if (isbegin_quest(14683) > 0)
|
|
erasequest 14683;
|
|
setquest 14683;// Mysterious Device
|
|
close2;
|
|
warp "lhz_dun_n",162,254;
|
|
end;
|
|
case 2:
|
|
mes "[Lunar]";
|
|
mes "You've got all the items and money??";
|
|
next;
|
|
if (countitem(22687) < 30 || Zeny < 2000000) {
|
|
mes "[Lunar]";
|
|
mes "Let me see.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "It's not enough. ^0000cd30 Sentimental Fragment and 2M Zeny^000000 are needed. I can't take you for free.";
|
|
close;
|
|
}
|
|
mes "[Lunar]";
|
|
mes "Good. You have everything. I'll take you there.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "The exit is outside of the wall.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "^EE0000Well, I also have a warning. Your location can't be saved in there, so if you log off or get disconnected, you'll be moved to your save point.";
|
|
close2;
|
|
delitem 22687,30;
|
|
Zeny = Zeny - 2000000;
|
|
warp "lhz_d_n2",60,44;
|
|
end;
|
|
case 3:
|
|
mes "[Lunar]";
|
|
mes "I dug in the ground to find something to eat and I found something even better.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "The living can't survive there. Only the dead roam around.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "There's a rumor.. that people who went there never came back...";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "I was so scared but.. it became clear that it's a popular place for adventurers to visit.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "The place I arrived at was ^0000cdnear Strange Sentiment^000000.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "I ran away since so many dead men tried to kill me.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "But then I got lost and fell down to a weird place.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "The place was the same as where the dead men roam ^0000cdbut there are only sentiments^000000. I was so scared, so I got out right away.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "I will take you there if you give me the money and items.";
|
|
next;
|
|
mes "[Lunar]";
|
|
mes "You might go easier without his help.";
|
|
close;
|
|
case 4:
|
|
mes "[Lunar]";
|
|
mes "Please visit me any time. We have nothing to lose anyway.";
|
|
close;
|
|
}
|
|
}
|
|
|
|
lighthalzen,327,216,3 script Crevice#1 4_CRACK,{
|
|
end;
|
|
OnInit:
|
|
initnpctimer;
|
|
end;
|
|
OnTimer5000:
|
|
specialeffect EF_AGIUP3;
|
|
end;
|
|
OnTimer6000:
|
|
initnpctimer;
|
|
end;
|
|
}
|
|
|
|
// Dungeon exit
|
|
lhz_dun_n,96,203,3 script Dungeon gateway#1 4_CRACK,{
|
|
if (select( "Don't exit the dungeon.", "Exit the dungeon." ) == 1) {
|
|
mes "- You still have business to deal with here -";
|
|
close;
|
|
}
|
|
warp "lighthalzen",310,228;
|
|
end;
|
|
OnInit:
|
|
initnpctimer;
|
|
end;
|
|
OnTimer5000:
|
|
specialeffect EF_AGIUP3;
|
|
end;
|
|
OnTimer6000:
|
|
initnpctimer;
|
|
end;
|
|
}
|
|
|
|
// Lighthalzen Exchange NPCs
|
|
lighthalzen,319,213,4 script Veteran Adventurer#JCv2 4_M_MELODY,2,2,{
|
|
disable_items;
|
|
mes "[Veteran Adventurer]";
|
|
mes "Oh! You want to exchange mind or grudge pieces?";
|
|
next;
|
|
setarray .@items[0],
|
|
6469,200, // Will of Warrior
|
|
6470,200, // Blood Thirst
|
|
6471,300; // Ghost Chill
|
|
.@color$[0] = countitem(6820) < 200 ? "^777777" : "^000000";
|
|
.@color$[1] = countitem(6820) < 300 ? "^777777" : "^000000";
|
|
.@s = select( "Listen to the story.", .@color$[0] + "1 Will of Warrior (200 Energy pieces)", .@color$[0] + "1 Blood Thirst (200 energy pieces)", .@color$[1] + "1 Ghost Chill (300 energy pieces)^000000" ) - 2;
|
|
if (.@s == -1) {
|
|
emotion ET_QUESTION;
|
|
mes "[Veteran Adventurer]";
|
|
mes "You look like you have free time, don't you? Well, my business is slow these days too...";
|
|
next;
|
|
mes "[Veteran Adventurer]";
|
|
mes "One day, the guild master entered in my guild all of a sudden...";
|
|
next;
|
|
mes "[Veteran Adventurer]";
|
|
mes "'^1F294DI'll make all members in all guilds wear the Cloak of the Fallen Soldier!!^000000'.";
|
|
next;
|
|
mes "[Veteran Adventurer]";
|
|
mes "As you know, this equipment requires a large amount of material, so all guild members had no choice but to be stuck in the dungeon and forced to work.";
|
|
next;
|
|
mes "[Veteran Adventurer]";
|
|
mes "You never know what luck you eventually may have. I flung myself into this digging work with determination and found so many rare pieces.";
|
|
next;
|
|
mes "[Veteran Adventurer]";
|
|
mes "Ms. Sub-guild master sent me to exchange things with others as a pile kept forming.";
|
|
next;
|
|
mes "[Veteran Adventurer]";
|
|
mes "Of course, the amount of exchange was decided by the guild master emphasizing";
|
|
mes "'^1F294DI'll never accept it if it's below this amount!!^000000'...";
|
|
next;
|
|
emotion ET_HNG;
|
|
mes "[Veteran Adventurer]";
|
|
mes "Ms. Sub-guild master tried to throw dirt into the guild master's eyes. We really had a hard time stopping her.";
|
|
next;
|
|
mes "[Veteran Adventurer]";
|
|
mes "I guess we can take care of it quickly if he adjusts it to a low amount. (sigh)... That's what happened.";
|
|
close;
|
|
}
|
|
.@s *= 2;
|
|
mes "[Veteran Adventurer]";
|
|
mes "^3300661 " + getitemname(.@items[.@s]) + "^000000 is exchanged with ^CC3333" + .@items[.@s+1] + " Energy Pieces^000000.";
|
|
next;
|
|
if (select( "Exchange.", "Do not exchange." ) == 2) {
|
|
emotion ET_OTL;
|
|
mes "[Veteran Adventurer]";
|
|
mes "What?... I thought you were going to exchange it.";
|
|
close;
|
|
}
|
|
while(true) {
|
|
if (countitem(6820) < .@items[.@s+1]) {
|
|
emotion ET_SORRY;
|
|
mes "[Veteran Adventurer]";
|
|
mes "Sorry. I don't have a choice because the guild master ordered it. You need " + .@items[.@s+1] + " items, if he says no, I'm not at liberty to exchange it.";
|
|
close;
|
|
}
|
|
delitem 6820, .@items[.@s+1];// Energy Pieces
|
|
getitem .@items[.@s],1;
|
|
mes "[Veteran Adventurer]";
|
|
mes "Would you like to continue to exchange it?";
|
|
next;
|
|
if (select( "Continue with the exchange.", "Stop the exchange." ) == 2) {
|
|
emotion ET_THANKS;
|
|
mes "[Veteran Adventurer]";
|
|
mes "Thank you... I guess I won't be punished by the guild master, thanks to you.";
|
|
close;
|
|
}
|
|
}
|
|
end;
|
|
|
|
OnTouch:
|
|
.@r = rand(4);
|
|
if (.@r == 0)
|
|
npctalk "I would like to exchange 1 Will of Warrior for 200 energy pieces.", "", bc_self;
|
|
else if (.@r == 1)
|
|
npctalk "I would like to exchange 1 Ghost Chill with 300 energy pieces.", "", bc_self;
|
|
else if (.@r == 2)
|
|
npctalk "I would like to exchange 1 Blood Thirst with 200 energy pieces.", "", bc_self;
|
|
else {
|
|
emotion ET_OHNO;
|
|
npctalk "Oh!... Why is it so difficult to find pieces?", "", bc_self;
|
|
}
|
|
end;
|
|
}
|
|
|
|
lighthalzen,312,296,4 script Bully#JCv2 4_M_LGTPOOR,{
|
|
disable_items;
|
|
mes "[Bully]";
|
|
mes "Hey, buddy. Do you have some remaining Energy pieces? I'll exchange them with something appropriate if you want.";
|
|
next;
|
|
.@s = select(
|
|
"Listen to the story.",
|
|
( countitem(25127) < 2000 ? "^777777" : "^000000" ) + "1 Energy Fragment (2000 Silent E Particles)",
|
|
( countitem(25128) < 1000 ? "^777777" : "^000000" ) + "1 Energy Fragment (1000 Weak E Particles)",
|
|
( countitem(25129) < 500 ? "^777777" : "^000000" ) + "1 Energy Fragment (500 Unstable E Particles)",
|
|
( countitem(25130) < 500 ? "^777777" : "^000000" ) + "1 Energy Fragment (500 Sinister E Particles)",
|
|
( countitem(25131) < 50 ? "^777777" : "^000000" ) + "1 Energy Fragment (50 Fallen E Particles)",
|
|
( countitem(6820) < 50 ? "^777777" : "^000000" ) + "1 Sentimental Fragment (50 Energy Fragments)",
|
|
( countitem(6820) < 666 ? "^777777" : "^000000" ) + "1 Cursed Fragment (666 Energy Fragments)"
|
|
) - 2;
|
|
if (.@s == -1) {
|
|
emotion ET_THINK;
|
|
mes "[Bully]";
|
|
mes ". . . . . . .";
|
|
next;
|
|
mes "[Bully]";
|
|
mes "Hmm... this is quite unexpected.";
|
|
mes "Normally he ignores me and goes on to do his work.";
|
|
next;
|
|
mes "[Bully]";
|
|
mes "I'm sorry, but I've got nothing to say. I'm just doing this because I can earn lots of money.";
|
|
close;
|
|
}
|
|
setarray .@exchange[0],
|
|
6820, 25127,2000, // Silent Energy Particle -> Energy Fragment
|
|
6820, 25128,1000, // Weak Energy Particles -> Energy Fragment
|
|
6820, 25129,500, // Unstable Energy Particle -> Energy Fragment
|
|
6820, 25130,500, // Sinister Energy Particle -> Energy Fragment
|
|
6820, 25131,50, // Fallen Energy Particle -> Energy Fragment
|
|
22687, 6820,50, // Energy Fragment -> Sentimental Fragment
|
|
23016, 6820,666; // Energy Fragment -> Cursed Fragment
|
|
.@index = .@s * 3;
|
|
mes "[Bully]";
|
|
mes "Are you sure you want to exchange ^330066" + .@exchange[.@index+2] + " " + getitemname(.@exchange[.@index+1]) + "^000000 with ^CC33331 " + getitemname(.@exchange[.@index]) + "^000000?";
|
|
next;
|
|
if (select( "Exchange.", "Do not exchange." ) == 2) {
|
|
emotion ET_HNG;
|
|
mes "[Bully]";
|
|
mes "Well... if you don't like it, never mind.";
|
|
close;
|
|
}
|
|
while(true) {
|
|
if (countitem(.@exchange[.@index+1]) < .@exchange[.@index+2]) {
|
|
emotion ET_SCRATCH;
|
|
mes "[Bully]";
|
|
mes "No... No... you shouldn't do this.";
|
|
mes "You told me you would exchange it with " + .@exchange[.@index+2] + " (item)s.";
|
|
close;
|
|
}
|
|
delitem .@exchange[.@index+1], .@exchange[.@index+2];
|
|
getitem .@exchange[.@index], 1;
|
|
emotion ET_SEXY;
|
|
mes "[Bully]";
|
|
mes "Oh thank you. Is there something else you want to exchange?";
|
|
next;
|
|
if (select( "Continue with the exchange.", "Stop the exchange." ) == 2) {
|
|
mes "[Bully]";
|
|
mes "When you have some energy piece left, come to me again.";
|
|
close;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Enchants NPCs
|
|
lhz_dun_n,145,265,4 script Silent Mind#JCv2 4_CENERE,{
|
|
disable_items;
|
|
mes "[Silent Mind]";
|
|
mes ". . . . . .!";
|
|
mes "...";
|
|
mes "^FF0000*You can obtain the Death's Chest when you give 3 of the same types of souls to the mind.*^000000";
|
|
next;
|
|
setarray .@item[0],6814,6815,6816,6817,6818,6819;
|
|
for ( .@i = 0; .@i < 6; ++.@i ) {
|
|
if (countitem(.@item[.@i]) < 3)
|
|
.@menu$ += "^777777Not enough " + getitemname(.@item[.@i]) + ".^000000:";
|
|
else
|
|
.@menu$ += "Hand over 3 " + getitemname(.@item[.@i]) + ".:";
|
|
}
|
|
.@s = select(.@menu$) - 1;
|
|
while(true) {
|
|
if (countitem(.@item[.@s]) < 3) {
|
|
emotion ET_HNG;
|
|
mes "[Silent Mind]";
|
|
mes "!. . . . . .";
|
|
mes "^FF0000*You need 3 of the same types of souls to trade with the Death's Chest.*^000000";
|
|
close;
|
|
}
|
|
delitem .@item[.@s],3;
|
|
getitem 22679,1;// Chest_of_Death
|
|
emotion ET_HUNGRY;
|
|
mes "[Silent Mind]";
|
|
mes ". . . . . .";
|
|
mes "...";
|
|
mes "^FF0000*You've obtained the Death's Chest. Would you like to continue the trade?*^000000";
|
|
next;
|
|
if (select( "Continue with the exchange.", "Stop the exchange." ) == 2) {
|
|
mes "[Silent Mind]";
|
|
mes ". . . . . .";
|
|
close;
|
|
}
|
|
}
|
|
}
|
|
|
|
lhz_dun_n,134,265,2 script Wandering Mind#JCv2 4_CENERE,{
|
|
disable_items;
|
|
npctalk "Kkk... I can... sense...", "", bc_self;
|
|
mes "[Wandering Mind]";
|
|
mes "Kkk... I can... sense...the grudges...of countless...subjects...";
|
|
next;
|
|
npctalk "Who... am... I?...", "", bc_self;
|
|
mes "[Wandering Mind]";
|
|
mes "Where is... here?... here?... Aaargh... Who... am... I?... I cannot... remember...";
|
|
next;
|
|
mes "[Wandering Mind]";
|
|
mes "I need... grudge's... grudge's... strong... power... It will help... both me... and you... all... Kkk...";
|
|
next;
|
|
switch( select( "Old Helmet enchant", "Old Helmet reset", "Old Helmet enchant description" ) ) {
|
|
case 1:
|
|
npctalk "Hand over... grudge... grudge...", "", bc_self;
|
|
mes "[Wandering Mind]";
|
|
mes "Krrr... hehe... hand over... grudge's... grudge's... strong power... I'll enchant... a special power... into the helmet...";
|
|
mes "^FF0000*If you bring Cursed Fragment, you can enchant it into the Old Helmet.*^000000";
|
|
next;
|
|
.@equip_id = getequipid(EQI_HEAD_TOP);
|
|
switch(.@equip_id) {
|
|
case 18971:// Old_Rune_Circlet
|
|
case 18972:// Old_Mitra
|
|
case 18973:// Old_Driver_Band_R
|
|
case 18974:// Old_Driver_Band_Y
|
|
case 18975:// Old_Shadow_Handicraft
|
|
case 18976:// Old_Minstrel_Song_Hat
|
|
case 18977:// Old_Midas_Whisper
|
|
case 18978:// Old_Magic_Stone_Hat
|
|
case 18979:// Old_Blazing_Soul
|
|
case 18980:// Old_Wind_Whisper
|
|
case 18981:// Old_Dying_Swan
|
|
case 18982:// Old_Circlet_Of_Bone
|
|
case 18983:// Old_Protect_Of_Crown
|
|
case 18984:// Old_Camo_RabbitHood
|
|
break;
|
|
default:
|
|
npctalk "Destroy it... Destroy it...", "", bc_self;
|
|
mes "[Wandering Mind]";
|
|
mes "This is... interesting... In that helmet... there is no fragrance... filled with a special power... Do you want... destruction...? kkk...";
|
|
mes "^FF0000*Enchantment using Cursed Fragment is only possible in the Old Helmet.*^000000";
|
|
close;
|
|
}
|
|
mes "[Wandering Mind]";
|
|
|
|
.@requirement = 10; // 10 Cursed Fragments by default
|
|
setarray .@card[0], getequipcardid(EQI_HEAD_TOP,0), getequipcardid(EQI_HEAD_TOP,1), getequipcardid(EQI_HEAD_TOP,2), getequipcardid(EQI_HEAD_TOP,3);
|
|
.@refine = getequiprefinerycnt(EQI_HEAD_TOP);
|
|
|
|
if (.@card[3] == 0) {
|
|
.@slot = 3;
|
|
mes "How about... we begin... lightly?... Test... your luck... Kr..hehe...";
|
|
mes "^FF0000*Attempts enchantment to 4th slot. One of 6 statuses is randomly enchanted.*^000000";
|
|
}
|
|
else if (.@card[2] == 0) {
|
|
.@slot = 2;
|
|
mes "Kr... hehe... Do... you like... your... first... enchantment?...";
|
|
mes "^FF0000*Attempts enchantment to 3rd slot. One of 6 statuses is randomly enchanted.*^000000";
|
|
}
|
|
else if (.@card[1] == 0) {
|
|
.@slot = 1;
|
|
mes "Kr... hehe... Whether there will be... a door... to acquire... a much stronger power... will be... decided... now...";
|
|
mes "^FF0000*Attempts enchantment to 2nd slot.";
|
|
mes "Once you succeed in Mettle, Magic Essence, Acute, Master Archer, Adamantine, Affection enchantments, it can be reinforced.*^000000";
|
|
}
|
|
else {
|
|
// enchant leveling
|
|
switch( .@card[1] ) {
|
|
case 29061: // Ambition1Lv
|
|
case 29071: // Tab1Lv
|
|
case 29081: // Expect1Lv
|
|
case 29091: // ArchLine1Lv
|
|
case 29101: // Steel1Lv
|
|
case 29111: // Mercy1Lv
|
|
mes "Kr... he... he... You are... lucky... I wish... you all the success!... Only then... will you come and visit me... with more grudges... I suppose...";
|
|
.@requirement = 20;
|
|
.@enchant_level = 1;
|
|
.@enchant_rate = 80;
|
|
break;
|
|
case 29062: // Ambition2Lv
|
|
case 29072: // Tab2Lv
|
|
case 29082: // Expect2Lv
|
|
case 29092: // ArchLine2Lv
|
|
case 29102: // Steel2Lv
|
|
case 29112: // Mercy2Lv
|
|
mes "3rd... level... reinforcement?... If you succeed... you will... gain... much stronger powers... but if you fail... you'll lose the powers... that you've gathered... so far...";
|
|
.@requirement = 40;
|
|
.@enchant_level = 2;
|
|
.@enchant_rate = 70;
|
|
break;
|
|
case 29063: // Ambition3Lv
|
|
case 29073: // Tab3Lv
|
|
case 29083: // Expect3Lv
|
|
case 29093: // ArchLine3Lv
|
|
case 29103: // Steel3Lv
|
|
case 29113: // Mercy3Lv
|
|
mes "4th... level... reinforcement?... If you succeed... you will... gain... much stronger powers... but if you fail... you'll lose the powers... that you've gathered... so far...";
|
|
.@requirement = 50;
|
|
.@enchant_level = 3;
|
|
.@enchant_rate = 50;
|
|
break;
|
|
case 29064: // Ambition4Lv
|
|
case 29074: // Tab4Lv
|
|
case 29084: // Expect4Lv
|
|
case 29094: // ArchLine4Lv
|
|
case 29104: // Steel4Lv
|
|
case 29114: // Mercy4Lv
|
|
mes "5th... level... reinforcement?... Are you... ready... to control... such huge... powers?... but if you fail... the result will be... worth... seeing...";
|
|
.@requirement = 70;
|
|
.@enchant_level = 4;
|
|
.@enchant_rate = 20;
|
|
break;
|
|
case 29065: // Ambition5Lv
|
|
case 29075: // Tab5Lv
|
|
case 29085: // Expect5Lv
|
|
case 29095: // ArchLine5Lv
|
|
case 29105: // Steel5Lv
|
|
case 29115: // Mercy5Lv
|
|
mes "6th... level... reinforcement?... Are you... ready... to control... such huge... powers?... but if you fail... the result will be... worth... seeing...";
|
|
.@requirement = 100;
|
|
.@enchant_level = 5;
|
|
.@enchant_rate = 20; // unknown rates
|
|
break;
|
|
case 29066: // Ambition6Lv
|
|
case 29076: // Tab6Lv
|
|
case 29086: // Expect6Lv
|
|
case 29096: // ArchLine6Lv
|
|
case 29106: // Steel6Lv
|
|
case 29116: // Mercy6Lv
|
|
// custom text
|
|
mes "7th... level... reinforcement?... Are you... ready... to control... such huge... powers?... but if you fail... the result will be... worth... seeing...";
|
|
.@requirement = 150;
|
|
.@enchant_level = 6;
|
|
.@enchant_rate = 20; // unknown rates
|
|
break;
|
|
case 29067: // Ambition7Lv
|
|
case 29077: // Tab7Lv
|
|
case 29087: // Expect7Lv
|
|
case 29097: // ArchLine7Lv
|
|
case 29107: // Steel7Lv
|
|
case 29117: // Mercy7Lv
|
|
// custom text
|
|
mes "8th... level... reinforcement?... Are you... ready... to control... such huge... powers?... but if you fail... the result will be... worth... seeing...";
|
|
.@requirement = 250;
|
|
.@enchant_level = 7;
|
|
.@enchant_rate = 20; // unknown rates
|
|
break;
|
|
case 29068: // Ambition8Lv
|
|
case 29078: // Tab8Lv
|
|
case 29088: // Expect8Lv
|
|
case 29098: // ArchLine8Lv
|
|
case 29108: // Steel8Lv
|
|
case 29118: // Mercy8Lv
|
|
// custom text
|
|
mes "9th... level... reinforcement?... Are you... ready... to control... such huge... powers?... but if you fail... the result will be... worth... seeing...";
|
|
.@requirement = 500;
|
|
.@enchant_level = 8;
|
|
.@enchant_rate = 20; // unknown rates
|
|
break;
|
|
case 29069: // Ambition9Lv
|
|
case 29079: // Tab9Lv
|
|
case 29089: // Expect9Lv
|
|
case 29099: // ArchLine9Lv
|
|
case 29109: // Steel9Lv
|
|
case 29119: // Mercy9Lv
|
|
// custom text
|
|
mes "10th... level... reinforcement?... Are you... ready... to control... such huge... powers?... but if you fail... the result will be... worth... seeing...";
|
|
.@requirement = 1000;
|
|
.@enchant_level = 9;
|
|
.@enchant_rate = 20; // unknown rates
|
|
break;
|
|
case 29070: // Ambition10Lv
|
|
case 29080: // Tab10Lv
|
|
case 29090: // Expect10Lv
|
|
case 29100: // ArchLine10Lv
|
|
case 29110: // Steel10Lv
|
|
case 29120: // Mercy10Lv
|
|
// custom text
|
|
default:
|
|
mes "Krr hehe... It's impossible... to reinforce... this power... The only way left is... to reset...";
|
|
mes "^FF0000*Mettle, Magic Spirit, Vigor, Bull's Eye, Adamantine, Benevolence";
|
|
mes "You can reinforce the enchantment level only when the equipment is enchanted.*^000000";
|
|
close;
|
|
}
|
|
.@slot = 999;
|
|
}
|
|
next;
|
|
mes "[Wandering Mind]";
|
|
mes "However...before that happens... I need to check... whether or not you have... sufficient Cursed Fragments... ";
|
|
next;
|
|
mes "[Wandering Mind]";
|
|
mes "Cursed... Fragments..." + .@requirement + " are... needed... I wonder... whether... you can afford... them?... kk... kk...";
|
|
mes "^FF0000*In enchantment, " + .@requirement + " Cursed Fragment(s) is(are) required.*^000000";
|
|
next;
|
|
if (select( "Pay fee.", "Do not pay fee." ) == 2) {
|
|
mes "[Wandering Mind]";
|
|
mes "K...kk... It seems... you're not... ready to accept... such a huge power... yet...";
|
|
close;
|
|
}
|
|
if (countitem(23016) < .@requirement) {// Cursed Fragment
|
|
mes "[Wandering Mind]";
|
|
mes "K...kk... are you... kidding... me?... How come... you... crave for... the power... with such a trivial grudge?...";
|
|
mes "^FF0000*In enchantment, Cursed Fragment(s) 10 item(s) is(are) required.";
|
|
mes "Check the amount of Cursed Fragments you possess.*^000000";
|
|
close;
|
|
}
|
|
mes "[Wandering Mind]";
|
|
mes "Krr.. hehe... It's... the power of the grudge... I think... this power... is strong... enough to...";
|
|
mes "^FF0000*Equipment smelting level, card, equipment loss doesn't occur. However, the enchantment level may be downgraded, depending on the success or failure.*^000000";
|
|
next;
|
|
if (select( "Perform the enchantment.", "Do not perform the enchantment." ) == 2) {
|
|
mes "[Wandering Mind]";
|
|
mes "K...kk... It seems... you're not... ready to accept... such a huge power... yet...";
|
|
close;
|
|
}
|
|
progressbar "000000",1;
|
|
delitem 23016, .@requirement;// Cursed Fragment
|
|
|
|
// anti-hack
|
|
if (callfunc("F_IsEquipIDHack", EQI_HEAD_TOP, .@equip_id) || callfunc("F_IsEquipCardHack", EQI_HEAD_TOP, .@card[0], .@card[1], .@card[2], .@card[3]) || callfunc("F_IsEquipRefineHack", EQI_HEAD_TOP, .@refine))
|
|
close;
|
|
|
|
switch(.@slot) {
|
|
case 3:
|
|
case 2:
|
|
setarray .@enchant[0],
|
|
4700, // Strength1
|
|
4701, // Strength2
|
|
4702, // Strength3
|
|
4703, // Strength4
|
|
4704, // Strength5
|
|
4710, // Inteligence1
|
|
4711, // Inteligence2
|
|
4712, // Inteligence3
|
|
4713, // Inteligence4
|
|
4714, // Inteligence5
|
|
4720, // Dexterity1
|
|
4721, // Dexterity2
|
|
4722, // Dexterity3
|
|
4723, // Dexterity4
|
|
4724, // Dexterity5
|
|
4730, // Agility1
|
|
4731, // Agility2
|
|
4732, // Agility3
|
|
4733, // Agility4
|
|
4734, // Agility5
|
|
4740, // Vitality1
|
|
4741, // Vitality2
|
|
4742, // Vitality3
|
|
4743, // Vitality4
|
|
4744, // Vitality5
|
|
4750, // Luck1
|
|
4751, // Luck2
|
|
4752, // Luck3
|
|
4753, // Luck4
|
|
4754; // Luck5
|
|
.@card[.@slot] = .@enchant[ rand( getarraysize(.@enchant) ) ]; // unknown rates
|
|
break;
|
|
case 1:
|
|
setarray .@enchant[0],
|
|
4703, // Strength4
|
|
4704, // Strength5
|
|
4713, // Inteligence4
|
|
4714, // Inteligence5
|
|
4723, // Dexterity4
|
|
4724, // Dexterity5
|
|
4733, // Agility4
|
|
4734, // Agility5
|
|
4743, // Vitality4
|
|
4744, // Vitality5
|
|
4753, // Luck4
|
|
4754, // Luck5
|
|
29061, // Ambition1Lv
|
|
29071, // Tab1Lv
|
|
29081, // Expect1Lv
|
|
29091, // ArchLine1Lv
|
|
29101, // Steel1Lv
|
|
29111; // Mercy1Lv
|
|
.@card[1] = .@enchant[ rand( getarraysize(.@enchant) ) ]; // unknown rates
|
|
break;
|
|
case 999:
|
|
// enchant leveling
|
|
if (.@enchant_rate > rand(100))
|
|
.@level_dt = 1;
|
|
else
|
|
.@level_dt = -1;
|
|
.@enchant_level += .@level_dt;
|
|
.@card[1] += .@level_dt;
|
|
if (.@card[1] < 29061 || .@card[1] > 29120) {
|
|
mes "[Wandering Mind]";
|
|
mes "Something bad happened.";
|
|
close;
|
|
}
|
|
if (.@enchant_level < 1 || .@enchant_level > 10) {
|
|
// item not deleted
|
|
specialeffect2 EF_SUI_EXPLOSION;
|
|
mes "[Wandering Mind]";
|
|
mes "K..aargh...!! The power of the grudge... was driven... into a frenzy... However... fortunately it didn't explode because the power... was.... weak.";
|
|
close;
|
|
}
|
|
break;
|
|
default:
|
|
mes "[Wandering Mind]";
|
|
mes "Something bad happened.";
|
|
close;
|
|
}
|
|
delequip EQI_HEAD_TOP;
|
|
getitem2 .@equip_id,1,1,.@refine,0,.@card[0],.@card[1],.@card[2],.@card[3];
|
|
if (.@level_dt == -1) {// can only happens during enchant leveling
|
|
specialeffect2 EF_SUI_EXPLOSION;
|
|
mes "[Wandering Mind]";
|
|
mes "K..aargh...!! The power of the grudge... was driven... to a frenzy... The power... which used to be... stable... also fell... one level down...";
|
|
mes "^FF0000*Due to enchantment failure, it has been downgraded one level down.*^000000";
|
|
close;
|
|
}
|
|
specialeffect2 EF_FIREHIT;
|
|
mes "[Wandering Mind]";
|
|
mes "It... is a success. I can sense that the power of the grudge has become stronger.";
|
|
mes "^FF0000*Congratulation. You've succeeded in enchantment.*^000000";
|
|
close;
|
|
case 2:
|
|
.@equip_id = getequipid(EQI_HEAD_TOP);
|
|
switch(.@equip_id) {
|
|
case 18971:// Old_Rune_Circlet
|
|
case 18972:// Old_Mitra
|
|
case 18973:// Old_Driver_Band_R
|
|
case 18974:// Old_Driver_Band_Y
|
|
case 18975:// Old_Shadow_Handicraft
|
|
case 18976:// Old_Minstrel_Song_Hat
|
|
case 18977:// Old_Midas_Whisper
|
|
case 18978:// Old_Magic_Stone_Hat
|
|
case 18979:// Old_Blazing_Soul
|
|
case 18980:// Old_Wind_Whisper
|
|
case 18981:// Old_Dying_Swan
|
|
case 18982:// Old_Circlet_Of_Bone
|
|
case 18983:// Old_Protect_Of_Crown
|
|
case 18984:// Old_Camo_RabbitHood
|
|
break;
|
|
default:
|
|
npctalk "Destroy it... Destroy it...", "", bc_self;
|
|
mes "[Wandering Mind]";
|
|
mes "This is... interesting... In that helmet... there is no fragrance... filled with a special power... Do you want... destruction...? kkk...";
|
|
mes "^FF0000*Enchantment using Cursed Fragments is only possible in the Old Helmet.*^000000";
|
|
close;
|
|
}
|
|
setarray .@card[0], getequipcardid(EQI_HEAD_TOP,0), getequipcardid(EQI_HEAD_TOP,1), getequipcardid(EQI_HEAD_TOP,2), getequipcardid(EQI_HEAD_TOP,3);
|
|
.@refine = getequiprefinerycnt(EQI_HEAD_TOP);
|
|
|
|
if (.@card[3] < 1) {// one enchant required
|
|
npctalk "You are... very calm...", "", bc_self;
|
|
mes "[Wandering Mind]";
|
|
mes "kkk... You look pretty calm... There is no power... contained... in the thing... I gave... to you...";
|
|
mes "^FF0000*This helmet is not enchanted, so it cannot be reset.*^000000";
|
|
close;
|
|
}
|
|
npctalk "Krr... hehe... I will eat... well... today...", "", bc_self;
|
|
mes "[Wandering Mind]";
|
|
mes "Kkk... You don't... like this power?... Bring me 10 mind powers... Then, I'll make this power... disappear...";
|
|
mes "^FF0000*You need 10 Sentimental Fragments to reset it.";
|
|
mes "All enchantments applied to the helmet, except for the smelting level of equipment and 1 slot card, will be reset.*^000000";
|
|
next;
|
|
if (select( "Ignore him.", "Pay fee." ) == 1) {
|
|
npctalk "Forever...", "", bc_self;
|
|
mes "[Wandering Mind]";
|
|
mes "I'll... wait for... you... If you need me to... I'll wait for you... forever... kkk...";
|
|
close;
|
|
}
|
|
if (countitem(22687) < 10) {// Sentimental Fragment
|
|
mes "Kk..k... If you... don't bring...";
|
|
mes "10 mind powers... I will be... in trouble...";
|
|
mes "^FF0000*You need 10 Sentimental Fragments to reset it.";
|
|
mes "Check the amount of Sentimental Fragments that you possess.*^000000";
|
|
close;
|
|
}
|
|
npctalk "K... kk...", "", bc_self;
|
|
mes "[Wandering Mind]";
|
|
mes "Fine!... I'll... reset... the enchantment... of the old helmet... I think... we may be able to absorb... a strong mind...";
|
|
next;
|
|
progressbar "000000",2;
|
|
specialeffect2 EF_FIREHIT;
|
|
delitem 22687,10;// Sentimental Fragment
|
|
|
|
if (callfunc("F_IsEquipIDHack", EQI_HEAD_TOP, .@equip_id) || callfunc("F_IsEquipCardHack", EQI_HEAD_TOP, .@card[0], .@card[1], .@card[2], .@card[3]) || callfunc("F_IsEquipRefineHack", EQI_HEAD_TOP, .@refine))
|
|
close;
|
|
|
|
delequip EQI_HEAD_TOP;
|
|
getitem2 .@equip_id,1,1,.@refine,0,.@card[0],0,0,0;
|
|
mes "[Wandering Mind]";
|
|
mes "K..kk... The power... of a strong grudge... has been... absorbed... Things I've lost... K.. aargh...";
|
|
close;
|
|
case 3:
|
|
for ( .@i = 18971; .@i <= 18984; ++.@i ) {
|
|
if (.@i < 18977)
|
|
.@string$[0] += getitemname(.@i) + ", ";
|
|
else if (.@i < 18984)
|
|
.@string$[1] += getitemname(.@i) + ", ";
|
|
else
|
|
.@string$[2] = getitemname(.@i);
|
|
}
|
|
mes "[Wandering Mind]";
|
|
mes "Do you want... power?... If so, you... need to have... the old Helmet..";
|
|
mes "^FF0000*You can enchant it into the " + .@string$[0];
|
|
mes "" + .@string$[1];
|
|
mes "" + .@string$[2] + ".*^000000";
|
|
next;
|
|
mes "[Wandering Mind]";
|
|
mes "If you... bring grudge's... power... I'll... give you... great power...";
|
|
mes "^FF0000*You need Cursed Fragments in order to enchant it.*^000000";
|
|
next;
|
|
mes "[Wandering Mind]";
|
|
mes "Kkk... Of course... in order to obtain... great power... you may need... a countless amount of... grudge's... power...";
|
|
mes "^FF0000*Enchantment is proceeded in the order of 4, 3, 2 slots. You need 10 Cursed Fragments when you enchant each slot for the first time.*^000000";
|
|
next;
|
|
mes "[Wandering Mind]";
|
|
mes "If you have... the opportunity... you might be... able to upgrade... the enchantment level... ";
|
|
mes "^FF0000*When reinforcing the enchant level, 50, 70, 100, 150, 250, 500, 1000 Cursed Fragments are consumed, depending on the enchant level";
|
|
mes "increase after 20 Cursed Fragments in the 2nd step, and 40 Cursed Fragments in the 3rd step.*^000000";
|
|
close;
|
|
}
|
|
}
|
|
|
|
lhz_dun_n,143,269,4 script Victimized Soul's Mind#1 4_M_DEATH2,{
|
|
disable_items;
|
|
.@r = rand(5);
|
|
if (.@r == 0)
|
|
npctalk "You... are the ones... who turned... me... into a monster...", "", bc_self;
|
|
else if (.@r == 1)
|
|
npctalk "Please save me... I'll... do whatever... you order...", "", bc_self;
|
|
else if (.@r == 2)
|
|
npctalk "My beloved... wife and daughter... are waiting for... me... at home...", "", bc_self;
|
|
else if (.@r == 3)
|
|
npctalk "After such... a terrible thing.. you... did", "", bc_self;
|
|
else
|
|
npctalk "My...leg...my...arm...", "", bc_self;
|
|
mes "[Victimized Soul's Mind]";
|
|
mes "Countless... subjects'... minds...";
|
|
mes "Past...present...and revenge...";
|
|
mes "Who are you...";
|
|
mes "Can...you console... us who... are tormented in sadness?...";
|
|
next;
|
|
if (.@r == 0)
|
|
npctalk "Even after I die... or in my dream...", "", bc_self;
|
|
else if (.@r == 1)
|
|
npctalk "Please... save me... Please put away... that knife... It scares me...", "", bc_self;
|
|
else if (.@r == 2)
|
|
npctalk "Please... just... let me go... I'll give you money... as much as you want...", "", bc_self;
|
|
else if (.@r == 3)
|
|
npctalk "Aren't... you afraid of... God's... wrath?...", "", bc_self;
|
|
else
|
|
npctalk "Aargh... Ah... Urgh...", "", bc_self;
|
|
mes "[Victimized Soul's Mind]";
|
|
mes "If you... can... do it... maybe... I can... give... you guys help...";
|
|
next;
|
|
if (.@r == 0)
|
|
npctalk "I'll munch you... into pieces...", "", bc_self;
|
|
else if (.@r == 1)
|
|
npctalk "Please... Aaargh...", "", bc_self;
|
|
else if (.@r == 2)
|
|
npctalk "Please...", "", bc_self;
|
|
else if (.@r == 3)
|
|
npctalk "God... will protect... you... if you... repent... your sin... just now...", "", bc_self;
|
|
else
|
|
npctalk "...shrieking...", "", bc_self;
|
|
mes "[Victimized Soul's Mind]";
|
|
mes "Weapon which appears... to be filled with... strong minds... our sadness... and resentment...";
|
|
mes "If you... bring... one... I'll restore... it... to energy... pieces...";
|
|
while(true) {
|
|
next;
|
|
if (checkweight(2677,5) == 0) {
|
|
mes "[Victimized Soul's Mind]";
|
|
mes "Your backpack..";
|
|
mes "is filled...";
|
|
close;
|
|
}
|
|
if (select( "Hand over the weapon.", "End the conversation." ) == 2) {
|
|
mes "[Victimized Soul's Mind]";
|
|
mes "...You... will... find me... again...";
|
|
close;
|
|
}
|
|
mes "[Victimized Soul's Mind]";
|
|
mes "What kind... of mind... is contained... in this... weapon?...";
|
|
next;
|
|
while(true) {
|
|
switch( select( "Go back to previous menu.", "Katar", "Bow", "Axe, Mace, Book", "Wand", "Sword, Dagger", "Spear, Two-handed sword", "Musical instrument, Whip, Knuckle" ) ) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
callsub S_Exchange,
|
|
1284, // Krishna
|
|
1290, // Agent_Katar
|
|
1285, // Chakram
|
|
1291; // Guillotine_Katar
|
|
continue;
|
|
case 3:
|
|
callsub S_Exchange,
|
|
18109, // Catapult
|
|
18110, // Big_CrossBow
|
|
1745, // Falken_Blitz
|
|
18103, // Mystic_Bow
|
|
18111; // Creeper_Bow
|
|
continue;
|
|
case 4:
|
|
callsub S_Exchange,
|
|
1311, // Vecer_Axe
|
|
1392, // Ygnus_Stale
|
|
1393, // End_Sektura
|
|
16017, // Bloody_Cross
|
|
16010, // Red_Ether_Bag
|
|
2161, // Geffenia_Book_Water
|
|
1584, // Chilly_Spell_Book
|
|
16000, // Erde
|
|
16001; // Red_Square_Bag
|
|
continue;
|
|
case 5:
|
|
callsub S_Exchange,
|
|
2005, // Dea_Staff
|
|
2004, // Kronos
|
|
1647, // Croce_Staff
|
|
1659, // Recovery_Light
|
|
1646, // La'cryma_Stick
|
|
1654; // Mental_Stick
|
|
continue;
|
|
case 6:
|
|
callsub S_Exchange,
|
|
13431, // Chrome_Sword
|
|
13421, // Ruber
|
|
13061, // Black_Wing
|
|
13062, // Ancient_Dagger
|
|
13070, // Scarletto_Nail
|
|
13069, // Aztoe_Nail
|
|
13046, // Krieg
|
|
13047; // Weihna
|
|
continue;
|
|
case 7:
|
|
callsub S_Exchange,
|
|
1433, // Imperial_Spear
|
|
1435, // Cannon_Spear
|
|
1490, // Giant_Lance
|
|
1196, // Chrome_Twohand_Sword
|
|
1189; // Krasnaya
|
|
continue;
|
|
case 8:
|
|
callsub S_Exchange,
|
|
1930, // Green_Whistle
|
|
1984, // Stem_Whip
|
|
1985, // Rosebine
|
|
1830; // Sura_Rampage
|
|
continue;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
end;
|
|
|
|
S_Exchange:
|
|
.@size = getargcount();
|
|
.@menu$ = "Go back to previous menu.:";
|
|
for ( .@i = 0; .@i < .@size; .@i++ ) {
|
|
if (countitem(getarg(.@i)) < 1)
|
|
.@menu$ += "^999999Not enough " + getitemname(getarg(.@i)) + ".^000000:";
|
|
else
|
|
.@menu$ += "You have " + getitemname(getarg(.@i)) + ".:";
|
|
}
|
|
.@s = select(.@menu$) - 2;
|
|
if (.@s == -1)
|
|
return;
|
|
mes "[Victimized Soul's Mind]";
|
|
mes "You...have chosen... the weapon... which appears to be... filled with... strong minds... I'm... trying to restore it... into Energy Fragments... Do you... agree with it?";
|
|
next;
|
|
if (select( "Disagree with it.", "Acquire Energy Fragments." ) == 2) {
|
|
if (countitem(getarg(.@s)) < 1) {
|
|
mes "[Victimized Soul's Mind]";
|
|
mes "You don't... have... ^006400" + getitemname(getarg(.@s)) + "^000000...";
|
|
mes "Do you have... any other business... with me?...";
|
|
next;
|
|
return;
|
|
}
|
|
donpcevent strnpcinfo(0) + "::OnBar";
|
|
sleep2 5000;
|
|
specialeffect EF_BLACKBODY;
|
|
specialeffect EF_GUMGANG4;
|
|
specialeffect EF_DARKCASTING2;
|
|
specialeffect EF_RG_COIN7;
|
|
percentheal -50,-50;
|
|
specialeffect2 EF_POISONSMOKE;
|
|
specialeffect2 EF_NPC_BURNT;
|
|
delitem getarg(.@s),1;
|
|
.@r = rand(100);
|
|
if (.@r < 70)
|
|
.@amount = 1;
|
|
else if (.@r < 90)
|
|
.@amount = 2;
|
|
else
|
|
.@amount = 3;
|
|
getitem 6820, .@amount;// Energy Fragment
|
|
mes "[Victimized Soul's Mind]";
|
|
mes "I have made... Energy... Fragment... by restoring ^006400" + getitemname(getarg(.@s)) + "^000000...";
|
|
next;
|
|
mes "- I got critical damage - - by mind's powerful wavelength - - which seeped into my body. -";
|
|
next;
|
|
}
|
|
mes "[Victimized Soul's Mind]";
|
|
mes "Do you have... any other business... with me?...";
|
|
next;
|
|
return;
|
|
|
|
OnBar:
|
|
progressbar_npc "000000",5;
|
|
end;
|
|
}
|
|
|
|
lhz_dun_n,136,269,6 script Sorrowful Soul's Mind#1 4_M_DEATH,{
|
|
disable_items;
|
|
.@r = rand(5);
|
|
if (.@r == 0)
|
|
npctalk "Mom...It hurts...", "", bc_self;
|
|
else if (.@r == 1)
|
|
npctalk "Go to hell...all of you...", "", bc_self;
|
|
else if (.@r == 2)
|
|
npctalk "I don't get it. Why...me?...", "", bc_self;
|
|
else if (.@r == 3)
|
|
npctalk "Ughhh...I don't... deserve this...", "", bc_self;
|
|
else
|
|
npctalk "You guys are all...demons...", "", bc_self;
|
|
mes "[Sorrowful Soul's Mind]";
|
|
mes "Countless... subjects'... minds...";
|
|
mes "Past...present...and revenge...";
|
|
next;
|
|
if (.@r == 0)
|
|
npctalk "My heart... is too painful...", "", bc_self;
|
|
else if (.@r == 1)
|
|
npctalk "I... will... send you there...", "", bc_self;
|
|
else if (.@r == 2)
|
|
npctalk "I... don't have much time left... to stay here.", "", bc_self;
|
|
else if (.@r == 3)
|
|
npctalk "You thought... you would stay alive... after everything you've done?...", "", bc_self;
|
|
else
|
|
npctalk "I'm innocent... I... don't deserve this...", "", bc_self;
|
|
mes "[Sorrowful Soul's Mind]";
|
|
mes "Who are you?...";
|
|
mes "Can...you take back our souls again... tormented... in sadness?...";
|
|
next;
|
|
if (.@r == 0)
|
|
npctalk "I want to... go... home...", "", bc_self;
|
|
else if (.@r == 1)
|
|
npctalk "I'll... curse you... even after... I die...", "", bc_self;
|
|
else if (.@r == 2)
|
|
npctalk "I have...nothing...", "", bc_self;
|
|
else if (.@r == 3)
|
|
npctalk "What are you... thinking?...", "", bc_self;
|
|
else
|
|
npctalk "You... don't even... have... a family?...", "", bc_self;
|
|
mes "[Sorrowful Soul's Mind]";
|
|
mes "If you... can... do it... maybe... I can... give... you guys... what... you need...";
|
|
next;
|
|
setarray .@item_name$[0],
|
|
getitemname(18971), // Old_Rune_Circlet
|
|
getitemname(18972), // Old_Mitra
|
|
getitemname(18973), // Old_Driver_Band_R
|
|
getitemname(18974), // Old_Driver_Band_Y
|
|
getitemname(18975), // Old_Shadow_Handicraft
|
|
getitemname(18976), // Old_Minstrel_Song_Hat
|
|
getitemname(18977), // Old_Midas_Whisper
|
|
getitemname(18978), // Old_Magic_Stone_Hat
|
|
getitemname(18979), // Old_Blazing_Soul
|
|
getitemname(18980), // Old_Wind_Whisper
|
|
getitemname(18981), // Old_Dying_Swan
|
|
getitemname(18984), // Old_Camo_RabbitHood
|
|
getitemname(18982), // Old_Circlet_Of_Bone
|
|
getitemname(18983), // Old_Protect_Of_Crown
|
|
getitemname(20749); // Cloak of the Fallen Soldier[1]
|
|
while(true) {
|
|
if (checkweight(2677,5) == 0) {
|
|
mes "[Sorrowful Soul's Mind]";
|
|
mes "Your backpack..";
|
|
mes "is filled...";
|
|
close;
|
|
}
|
|
if (select( "Hand over the soul.", "End the conversation." ) == 2) {
|
|
mes "[Sorrowful Soul's Mind]";
|
|
mes "...I wish... you... can come back... to me again...";
|
|
close;
|
|
}
|
|
mes "[Sorrowful Soul's Mind]";
|
|
mes "If you hand over... our soul...I'll make something... filled with... special powers.. using a combination...";
|
|
mes "What... do you... want?...";
|
|
while(true) {
|
|
next;
|
|
switch( select( "Go back to the previous menu.", .@item_name$[0], .@item_name$[1], .@item_name$[2], .@item_name$[3], .@item_name$[4], .@item_name$[5], .@item_name$[6], .@item_name$[7], .@item_name$[8], .@item_name$[9], .@item_name$[10], .@item_name$[11], .@item_name$[12], .@item_name$[13], .@item_name$[14] + "[1]" ) ) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
mes "- " + .@item_name$[0] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1, MDEF+ 5^000000";
|
|
mes "^006400ATK + 4 per 1 refinement level increase^000000";
|
|
mes "^006400ASPD + 1 per 5 refinement level increase^000000";
|
|
mes "^006400Increases MHP, MSP by 1% 2 each refinement level increase^000000";
|
|
mes "^006400Increases Ignition Break damage by 20%^000000";
|
|
mes "^006400per 2 refinement level increase^000000";
|
|
mes "^006400Increases Hundred Spear damage by 15%^000000";
|
|
mes "^006400per 2 refinement level increase^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Rune Knight^000000";
|
|
callsub S_Make,
|
|
18971, // Old_Rune_Circlet
|
|
19961, // C_Rune_Circlet
|
|
6814; // Swordman_Soul
|
|
continue;
|
|
case 3:
|
|
mes "- " + .@item_name$[1] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1, MDEF+ 5^000000";
|
|
mes "^006400MATK + 2, ATK + 4, Heal Amount + 2% per 1 refinement level increase.^000000";
|
|
mes "^006400Increases MHP, MSP by 1% per 2 refinement level increase^000000";
|
|
mes "^006400Increases Judex damage by 20% per 2 refinement level increase.^000000";
|
|
mes "^006400Increases Magnus Exorcismus damage by 10% per 2 refinement level increase.^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Archbishop^000000";
|
|
callsub S_Make,
|
|
18972, // Old_Mitra
|
|
19962, // C_Mitra
|
|
6819; // Acolyte_Soul
|
|
continue;
|
|
case 4:
|
|
mes "- " + .@item_name$[2] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1^000000";
|
|
mes "^006400ATK + 4 per 1 refinement level increase^000000";
|
|
mes "^006400ASPD + 1 per 5 refinement level increase^000000";
|
|
mes "^006400Increases MHP, MSP by 1% per 2 refinement level increase^000000";
|
|
mes "^006400Increases Power Swing damage by 20% per 2 refinement level increase.^000000";
|
|
mes "^006400Increases Axe Tornado damage by 20% per 2 refinement level increase.^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Mechanic^000000";
|
|
callsub S_Make,
|
|
18973, // Old_Driver_Band_R
|
|
19963, // C_Driver_Band_R
|
|
6815; // Merchant_Soul
|
|
continue;
|
|
case 5:
|
|
mes "- " + .@item_name$[3] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1^000000";
|
|
mes "^006400ATK + 4 per 1 refinement level increase^000000";
|
|
mes "^006400ASPD + 1 per 5 refinement level increase^000000";
|
|
mes "^006400Increases MHP, MSP by 1% per 2 refinement level increase^000000";
|
|
mes "^006400Increases Arm Cannon damage by 5% per 2 refinement level increase.^000000";
|
|
mes "^006400Reduces Suicidal Destruction cooldown by 10 seconds per 4 refinement level increase.^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Mechanic^000000";
|
|
callsub S_Make,
|
|
18974, // Old_Driver_Band_Y
|
|
19964, // C_Driver_Band_Y
|
|
6815; // Merchant_Soul
|
|
continue;
|
|
case 6:
|
|
mes "- " + .@item_name$[4] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1^000000";
|
|
mes "^006400ATK + 4, MATK + 4 per each refinement level increase.^000000";
|
|
mes "^006400Increases MHP, MSP by 1% per 2 refinement level increase^000000";
|
|
mes "^006400Increases Triangle Shot damage by 25% per 2 refinement level increase.^000000";
|
|
mes "^006400Reduces Masquerade-unlock key, Enervation cooldown by 1 second when your character's refinement level reaches 6.^000000";
|
|
mes "^006400Reduces Masquerade-Laziness, Weakness cooldown by 1 second when your character's refinement level reaches 8.^000000";
|
|
mes "^006400Reduces Masquerade-Ignorance, Gloomy cooldown by 1 second when your character's refinement level reaches 10.^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Shadow_Chaser^000000";
|
|
callsub S_Make,
|
|
18975, // Old_Shadow_Handicraft
|
|
19965, // C_Shadow_Handicraft
|
|
6816; // Thief_Soul
|
|
continue;
|
|
case 7:
|
|
mes "- " + .@item_name$[5] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1^000000";
|
|
mes "^006400Increases ranged physical damage by 1% per each refinement level increase.^000000";
|
|
mes "^006400Increases MHP, MSP by 1% per 2 refinement level increase^000000";
|
|
mes "^006400Increases Arrow Vulcan damage by 20% per 2 refinement level increase.^000000";
|
|
mes "^006400Increases Severe Rainstorm damage by 5% per 2 refinement level increase.^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Minstrel^000000";
|
|
callsub S_Make,
|
|
18976, // Old_Minstrel_Song_Hat
|
|
19966, // C_Minstrel_Song_Hat
|
|
6818; // Archer_Soul
|
|
continue;
|
|
case 8:
|
|
mes "- " + .@item_name$[6] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1^000000";
|
|
mes "^006400ATK + 4 per 1 refinement level increase^000000";
|
|
mes "^006400Increases ranged physical damage by 1% per 2 refinement level increase.^000000";
|
|
mes "^006400Increases MHP, MSP by 1% per 2 refinement level increase^000000";
|
|
mes "^006400Increases Cart Cannon damage by 15% per 2 refinement level increase.^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Generic^000000";
|
|
callsub S_Make,
|
|
18977, // Old_Midas_Whisper
|
|
19967, // C_Midas_Whisper
|
|
6815; // Merchant_Soul
|
|
continue;
|
|
case 9:
|
|
mes "- " + .@item_name$[7] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1 MDEF+ 5^000000";
|
|
mes "^006400Increases SP regen by 20%.^000000";
|
|
mes "^006400MATK + 1% per each refinement level increase.^000000";
|
|
mes "^006400Increases MHP, MSP by 1% per 2 refinement level increase^000000";
|
|
mes "^006400Increases Soul Expansion damage by 5% per 2 refinement level increase.^000000";
|
|
mes "^006400Reduces Crimson Rock cooldown by 1 second.^000000";
|
|
mes "^006400Reduces Crimson Rock cooldown by 0.1 depending on refinement level.^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Warlock^000000";
|
|
callsub S_Make,
|
|
18978, // Old_Magic_Stone_Hat
|
|
19968, // C_Magic_Stone_Hat
|
|
6817; // Mage_Soul
|
|
continue;
|
|
case 10:
|
|
mes "- " + .@item_name$[8] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1^000000";
|
|
mes "^006400ATK + 4, CRI + 2 per each refinement level increase.^000000";
|
|
mes "^006400Increases MHP, MSP by 1% per 2 refinement level increase^000000";
|
|
mes "^006400Increases Rampage Blaster damage by 15% per 2 refinement level increase.^000000";
|
|
mes "^006400Increases Lightning Shot damage by 20% per 2 refinement level increase.^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Sura^000000";
|
|
callsub S_Make,
|
|
18979, // Old_Blazing_Soul
|
|
19969, // C_Blazing_Soul
|
|
6819; // Acolyte_Soul
|
|
continue;
|
|
case 11:
|
|
mes "- " + .@item_name$[9] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1 MDEF+ 5.^000000";
|
|
mes "^006400MATK + 1%, ATK + 4 per each refinement level increase.^000000";
|
|
mes "^006400Increases MHP, MSP by 1% per 2 refinement level increase^000000";
|
|
mes "^006400Increases Poison Burst damage by 15% per 2 refinement level increase.^000000";
|
|
mes "^006400Increases Varetyr Spear damage by 20% per 2 refinement level increase.^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Sorcerer^000000";
|
|
callsub S_Make,
|
|
18980, // Old_Wind_Whisper
|
|
19970, // C_Wind_Whisper
|
|
6817; // Mage_Soul
|
|
continue;
|
|
case 12:
|
|
mes "- " + .@item_name$[10] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1^000000";
|
|
mes "^006400Increases ranged physical damage by 1% per each refinement level increase.^000000";
|
|
mes "^006400Increases MHP, MSP by 1% per 2 refinement level increase^000000";
|
|
mes "^006400Increases Arrow Vulcan damage by 20% per 2 refinement level increase.^000000";
|
|
mes "^006400Increases Severe Rainstorm damage by 5% per 2 refinement level increase.^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Wanderer^000000";
|
|
callsub S_Make,
|
|
18981, // Old_Dying_Swan
|
|
19971, // C_Dying_Swan
|
|
6818; // Archer_Soul
|
|
continue;
|
|
case 13:
|
|
mes "- " + .@item_name$[11] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1^000000";
|
|
mes "^006400Increases ranged physical damage by 1% per each refinement level increase.^000000";
|
|
mes "^006400Complete evasion +1 per 3 refinement level increase.^000000";
|
|
mes "^006400Increases MHP, MSP by 1% per 2 refinement level increase^000000";
|
|
mes "^006400Increases Cluster Bomb damage by 15% per 2 refinement level increase.^000000";
|
|
mes "^006400Increases Warg Strike damage by 10% per 2 refinement level increase.^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Ranger^000000";
|
|
callsub S_Make,
|
|
18984, // Old_Camo_RabbitHood
|
|
19974, // C_Camouflage_RabbitHood
|
|
6818; // Archer_Soul
|
|
continue;
|
|
case 14:
|
|
mes "- " + .@item_name$[12] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1^000000";
|
|
mes "^006400Increases critical damage by 1% and attack speed per each refinement level increase (Reduces attack delay 1%)^000000";
|
|
mes "^006400Increases MHP, MSP by 1% per 2 refinement level increase^000000";
|
|
mes "^006400Increases Cross Impact damage by 10% per 2 refinement level increase.^000000";
|
|
mes "^006400Increases Cross Reaper Slash damage by 20% per 2 refinement level increase.^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Guillotine_Cross^000000";
|
|
callsub S_Make,
|
|
18982, // Old_Circlet_Of_Bone
|
|
19973, // C_Circlet_Of_Bone
|
|
6816; // Thief_Soul
|
|
continue;
|
|
case 15:
|
|
mes "- " + .@item_name$[13] + " -";
|
|
mes "^006400This item cannot be traded with other accounts.^000000";
|
|
mes "^006400All State + 1 MDEF+ 5.^000000";
|
|
mes "^006400ATK + 4 per 1 refinement level increase^000000";
|
|
mes "^006400ASPD + 1 per 5 refinement level increase^000000";
|
|
mes "^006400Increases MHP, MSP by 1% per 2 refinement level increase^000000";
|
|
mes "^006400Increases Cannon Spear damage by 20% per 2 refinement level increase.^000000";
|
|
mes "^006400Increases Over Brand damage by 5% per 2 refinement level increase.^000000";
|
|
mes "^006400Type: Helmet Defense: 10^000000";
|
|
mes "^006400Location: Top Weight: 10^000000";
|
|
mes "^006400SLOT: 1^000000";
|
|
mes "^006400Required Level: 170 Job: Royal Guard^000000";
|
|
callsub S_Make,
|
|
18983, // Old_Protect_Of_Crown
|
|
19972, // C_Protect_Of_Crown
|
|
6814; // Swordman_Soul
|
|
continue;
|
|
case 16:
|
|
mes "- " + .@item_name$[14] + "[1] -";
|
|
mes "^006400Legendary clock known to have been worn by those^000000 ^006400who fought bravely and were killed in the battle.";
|
|
mes "Increases MHP, MSP by 1% per 2 refinement level increase";
|
|
mes "ATK + 10 when your character's pure STR reaches 90.";
|
|
mes "(Additional ATK + 2 per each refinement level increase)";
|
|
mes "MATK + 20 when your character's pure INT reaches 90.";
|
|
mes "(Additional MATK + 3 per each refinement level increase)";
|
|
mes "when your character's pure VIT reaches 90";
|
|
mes "3% resistance against normal attack";
|
|
mes "(Additional 3% when refinement level reaches 8,";
|
|
mes "Additional 4% when refinement level reaches 10)";
|
|
mes "when your character's pure AGI reaches 90";
|
|
mes "Increased attack speed (3% attack delay reduction)";
|
|
mes "(Attack delay additionally decreased by 1% per 2 refinement level increase)";
|
|
mes "(Additional ASPD + 1 when your character's refinement level reaches 10.)";
|
|
mes "When your character's pure DEX reaches 90";
|
|
mes "Increases ranged attack power by 3%";
|
|
mes "(Additional 1% per 2 refinement level increase)";
|
|
mes "When your character's LUK reaches 90";
|
|
mes "Increases critical damage by 5%.";
|
|
mes "(Additional 1% per each refinement level increase)";
|
|
mes "Type: Robe Defense: 30";
|
|
mes "Weight: 60";
|
|
mes "SLOT: 1";
|
|
mes "Required Level: 170 Job: All^000000";
|
|
callsub S_Make,
|
|
20749, // Manteau_Of_Fallen_
|
|
20748, // Manteau_Of_Fallen
|
|
6471, // Goast_Chill
|
|
true;
|
|
continue;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
S_Make:
|
|
.@reward_id = getarg(0);
|
|
.@equipment_req = getarg(1);
|
|
.@item_misc_req = getarg(2);
|
|
if (getarg(3,0)) {
|
|
setarray .@string$[0], "chill", "cloak";
|
|
setarray .@material[0],20,100; // chill, energy
|
|
}
|
|
else {
|
|
setarray .@string$[0], "soul", "hat";
|
|
setarray .@material[0],1,20; // soul, energy
|
|
}
|
|
next;
|
|
mes "[Sorrowful Soul's Mind]";
|
|
mes "In order to make... ^006400" + getitemname(.@reward_id) + "^000000...";
|
|
mes "Bring their... wandering " + .@string$[0] + ", " + .@string$[1] + "... the vessel to hold the soul and... the dark energy... filling up this place...";
|
|
next;
|
|
mes "[Sorrowful Soul's Mind]";
|
|
mes "I need 1 " + getitemname(.@equipment_req) + ", " + .@material[0] + " " + getitemname(.@item_misc_req) + "... " + .@material[1] + " " + getitemname(6820) + "..";
|
|
mes "If 5 times of " + getitemname(6820) + " and " + .@string$[0] + "s are collected... you... will never fail...";
|
|
mes "How... would... you do it?";
|
|
next;
|
|
switch( select( "Go back to the previous menu.", "Use " + .@material[1] + " energies, " + .@material[0] + " " + .@string$[0], "Use " + (.@material[1] * 5) + " energies, " + (.@material[0] * 5) + " " + .@string$[0] + "s" ) ) {
|
|
case 1:
|
|
mes "[Sorrowful Soul's Mind]";
|
|
mes "I hoped that... you could... see... other things... as well...";
|
|
return;
|
|
case 2:
|
|
.@rate = 1;
|
|
break;
|
|
case 3:
|
|
.@rate = 5;
|
|
break;
|
|
}
|
|
if (countitem(.@equipment_req) < 1 || countitem(.@item_misc_req) < (.@material[0] * .@rate) || countitem(6820) < (.@material[1] * .@rate)) {
|
|
mes "[Sorrowful Soul's Mind]";
|
|
mes "You don't... have... enough material... to make... ^006400" + getitemname(.@reward_id) + "^000000...";
|
|
return;
|
|
}
|
|
progressbar "000000",5;
|
|
percentheal -50,-50;
|
|
specialeffect2 EF_POISONSMOKE;
|
|
specialeffect2 EF_NPC_BURNT;
|
|
delitem .@equipment_req, 1;
|
|
delitem .@item_misc_req, (.@material[0] * .@rate);
|
|
delitem 6820, (.@material[1] * .@rate);// Energy Fragment
|
|
|
|
if ((20*.@rate) > rand(100)) {
|
|
specialeffect EF_BLACKBODY;
|
|
specialeffect EF_GUMGANG4;
|
|
specialeffect EF_DARKCASTING2;
|
|
specialeffect EF_RG_COIN7;
|
|
mes "[Sorrowful Soul's Mind]";
|
|
mes "Here is... ^006400" + getitemname(.@reward_id) + "^000000...";
|
|
getitem .@reward_id,1;
|
|
}
|
|
else {
|
|
specialeffect EF_POISONSMOKE;
|
|
specialeffect EF_GUMGANG4;
|
|
mes "[Sorrowful Soul's Mind]";
|
|
mes "^006400" + getitemname(.@reward_id) + "^000000... failed...";
|
|
}
|
|
next;
|
|
mes "- I got critical damage - - by the mind's powerful wavelength - - which seeped into my body. -";
|
|
next;
|
|
mes "[Sorrowful Soul's Mind]";
|
|
mes "Is there... anything... I can... help you with?...";
|
|
return;
|
|
}
|
|
|
|
// Exchange npcs - safe map (no mobs)
|
|
lhz_d_n2,53,49,4 duplicate(Silent Mind#JCv2) Silent Mind#JCv2C 4_CENERE
|
|
lhz_d_n2,42,49,2 duplicate(Wandering Mind#JCv2) Wandering Mind#JCv2C 4_CENERE
|
|
lhz_d_n2,51,53,4 duplicate(Victimized Soul's Mind#1) Victimized Soul's Mind#1C 4_M_DEATH2
|
|
lhz_d_n2,44,53,6 duplicate(Sorrowful Soul's Mind#1) Sorrowful Soul's Mind#1C 4_M_DEATH
|
|
|
|
// Safe map - Exit
|
|
lhz_d_n2,34,45,3 script #lhzdw 1_SHADOW_NPC,{
|
|
mes "[Bastets]";
|
|
mes "You can see the exit.";
|
|
next;
|
|
if (select( "Go back to Lighthalzen.", "Don't go back." ) == 1)
|
|
warp "lighthalzen",310,228;
|
|
end;
|
|
}
|
|
|
|
// Heal
|
|
lhz_dun_n,167,259,2 script A Questionable Device#l 4_SYSTEM_BOX,3,3,{
|
|
if (isbegin_quest(14683) == 1) {
|
|
mes "[System Message]";
|
|
mes "Emergency Protocol activated. The user will be able to run RT-223.";
|
|
next;
|
|
if (select( "Do not run.", "Run." ) == 2) {
|
|
mes "[System Message]";
|
|
mes "All personnel should act in accordance with the emergency rules.";
|
|
close;
|
|
}
|
|
specialeffect EF_MAPPILLAR;
|
|
mes "[System Message]";
|
|
mes "Running RT-223 to the user. Standby mode will be activated after this process.";
|
|
specialeffect2 EF_BABY;
|
|
percentheal 100,100;
|
|
completequest 14683;// Mysterious Device
|
|
close;
|
|
}
|
|
end;
|
|
|
|
OnTouch:
|
|
npctalk "All personnel should act in accordance with the emergency rules.", "", bc_self;
|
|
end;
|
|
|
|
OnInit:
|
|
questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(14683) == 1" );
|
|
end;
|
|
}
|
|
|
|
// Misc
|
|
lhz_dun_n,75,121,0 script #Alphoccio_Basil_A1 HIDDEN_WARP_NPC,3,3,{
|
|
end;
|
|
OnTouch:
|
|
specialeffect EF_BAT2;
|
|
disablenpc();
|
|
initnpctimer;
|
|
end;
|
|
OnTimer1000:
|
|
.@npc_name$ = strnpcinfo(0);
|
|
if (.@npc_name$ == "#Alphoccio_Basil_A1") {
|
|
.@talker_name$ = "#lhz_dun_talk_A23";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "It was my mistake to think that this will be just traveling..."; break;
|
|
case 1: .@msg$ = "Hah... And so what?.. I listen to my wife..."; break;
|
|
case 2: .@msg$ = "What's wrong with them all here?.. Why such eyes?.."; break;
|
|
case 3: .@msg$ = "I can hear the sounds of music and songs.. Hah hah..."; break;
|
|
default: .@msg$ = "Where am I?.. Is there any exit?.."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Alphoccio_Basil_A2") {
|
|
.@talker_name$ = "#lhz_dun_talk_A24";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "I thought we could make songs and travel around the world forever..."; break;
|
|
case 1: .@msg$ = "It doesn't matter where are we while you're near me..."; break;
|
|
case 2: .@msg$ = "Trentini... Where are you..."; break;
|
|
case 3: .@msg$ = "The sound of the song is fading away..."; break;
|
|
default: .@msg$ = "And now... What is left for me?.."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Catherine Cheiron_A1") {
|
|
.@talker_name$ = "#lhz_dun_talk_A5";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "It's a very strange trick..."; break;
|
|
case 1: .@msg$ = "Sob sob... Somebody... Please.."; break;
|
|
case 2: .@msg$ = "It's cold... This place... Is it a warehouse?.."; break;
|
|
case 3: .@msg$ = "My voice... won't come out..."; break;
|
|
default: .@msg$ = "Friends... I'm scared..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Katrinn Chiron_A2") {
|
|
.@talker_name$ = "#lhz_dun_talk_A6";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "Seyren... Where are you..."; break;
|
|
case 1: .@msg$ = "Pain... Darkness... I'm scared..."; break;
|
|
case 2: .@msg$ = "The magic that was so hard for me to learn is now just... useless..."; break;
|
|
case 3: .@msg$ = "Those who are not humans..."; break;
|
|
default: .@msg$ = "Friends... Too dark..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Celia_Alde_A1") {
|
|
.@talker_name$ = "#lhz_dun_talk_A17";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "Crap... This is crazy... All of this..."; break;
|
|
case 1: .@msg$ = "I'm not sure I could tell who..."; break;
|
|
case 2: .@msg$ = "So poor spirit here... May it be..."; break;
|
|
case 3: .@msg$ = "This is ridiculous... How this could even happen..?"; break;
|
|
default: .@msg$ = "Darn it... This is beyond my analytical abilities... Impossible..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Celia_Alde_A2") {
|
|
.@talker_name$ = "#lhz_dun_talk_A18";
|
|
switch (rand(4)) {
|
|
case 0: .@msg$ = "Nobody around... What is..."; break;
|
|
case 1: .@msg$ = "My... survival... and escape... analysis results..."; break;
|
|
case 2: .@msg$ = "Where... what... No, no... Never..."; break;
|
|
default: .@msg$ = "I wanna get out of here as soon as possible..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Chen_Liu_A1") {
|
|
.@talker_name$ = "#lhz_dun_talk_A19";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "My head feels somewhat weird..."; break;
|
|
case 1: .@msg$ = "This place seems like an abandoned cellar..."; break;
|
|
case 2: .@msg$ = "There's a wound in my chest... What's goin..."; break;
|
|
case 3: .@msg$ = "I'm about to lose myself..."; break;
|
|
default: .@msg$ = "I'm a Monk... Agent of divine punishment..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Chen_Liu_A2") {
|
|
.@talker_name$ = "#lhz_dun_talk_A20";
|
|
switch (rand(4)) {
|
|
case 0: .@msg$ = "Enemies' faces... That's collegues' faces..."; break;
|
|
case 1: .@msg$ = "St Capitolina Abbey... There's still a work to be done..."; break;
|
|
case 2: .@msg$ = "My wound is sewed up... What the hell they have done to me?.."; break;
|
|
default: .@msg$ = "Holy power... Power of the mind..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Eremes_Guille_A1") {
|
|
.@talker_name$ = "#lhz_dun_talk_A7";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "Concentrate on survival..."; break;
|
|
case 1: .@msg$ = "I bear the Guillotine crest, I must survive!.."; break;
|
|
case 2: .@msg$ = "Don't give up... Remember the mission..."; break;
|
|
case 3: .@msg$ = "Exit is not near at all... I can't see it..."; break;
|
|
default: .@msg$ = "All of this... It was planned meticulously for sure..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Eremes_Guille_A2") {
|
|
.@talker_name$ = "#lhz_dun_talk_A8";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "Is Katrinn all right... I must protect..."; break;
|
|
case 1: .@msg$ = "I must complete my mission... My orders..."; break;
|
|
case 2: .@msg$ = "Assasin Guild waits for me..."; break;
|
|
case 3: .@msg$ = "I cannot believe I fell into a trap like this..."; break;
|
|
default: .@msg$ = "My eyes are blurred... I won't last long..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Flamel_Emule_A1") {
|
|
.@talker_name$ = "#lhz_dun_talk_A15";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "I've never felt so helpless before..."; break;
|
|
case 1: .@msg$ = "Celia... I'm scared..."; break;
|
|
case 2: .@msg$ = "My body is full of surgical scars..."; break;
|
|
case 3: .@msg$ = "Nobody showed up... Nobody... Here..."; break;
|
|
default: .@msg$ = "I can bear it..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Flamel_Emule_A2") {
|
|
.@talker_name$ = "#lhz_dun_talk_A16";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "My family... Geneticists... gonna be so embarassed..."; break;
|
|
case 1: .@msg$ = "I feel like... my consciousness... is no longer me..."; break;
|
|
case 2: .@msg$ = "My consciousness... is fading..."; break;
|
|
case 3: .@msg$ = "Now with the last remaining strength..."; break;
|
|
default: .@msg$ = "My body... what... No way..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Gertie_Wie_A1") {
|
|
.@talker_name$ = "#lhz_dun_talk_A21";
|
|
switch (rand(4)) {
|
|
case 0: .@msg$ = "We have been used..."; break;
|
|
case 1: .@msg$ = "What are you up to..."; break;
|
|
case 2: .@msg$ = "It's too wide... Can't see any exit..."; break;
|
|
default: .@msg$ = "Hah... Grand misfortune..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Gertie_Wie_A2") {
|
|
.@talker_name$ = "#lhz_dun_talk_A22";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "I should have received more money if I knew this would happen..."; break;
|
|
case 1: .@msg$ = "My cheeks are burning... Whatever happened to us... It's right..."; break;
|
|
case 2: .@msg$ = "My ages are gone... Young ones... Shall grow up into warriors..."; break;
|
|
case 3: .@msg$ = "I'll watch carefully... I should remember..."; break;
|
|
default: .@msg$ = "If we knew this would happen and we'd get this..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Harword_AltEisen_A1") {
|
|
.@talker_name$ = "#lhz_dun_talk_A9";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "What moves my body now... Is it really my will..?"; break;
|
|
case 1: .@msg$ = "Where is this plase?.. I was told nothing..."; break;
|
|
case 2: .@msg$ = "I won't go anywhere... I'll be by your side..."; break;
|
|
case 3: .@msg$ = "I must look for my sister Cecil... no matter what..."; break;
|
|
default: .@msg$ = "Dangerous... My mind shuts down..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Harword Alt-Eisen_A2") {
|
|
.@talker_name$ = "#lhz_dun_talk_A10";
|
|
switch (rand(3)) {
|
|
case 0: .@msg$ = "I cannot see my future anymore..."; break;
|
|
case 1: .@msg$ = "My eyes... just keep... closing..."; break;
|
|
default: .@msg$ = "Damn it... Cheer up... Don't loose the will..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Magaleta_Sorin_A1") {
|
|
.@talker_name$ = "#lhz_dun_talk_A3";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "Dear Odin... Let Seyren be all..."; break;
|
|
case 1: .@msg$ = "All of this terrifies me..."; break;
|
|
case 2: .@msg$ = "That's not my will... This is not me..."; break;
|
|
case 3: .@msg$ = "Holy power can't heal the black blood..."; break;
|
|
default: .@msg$ = "Dear Odin... May we... May he..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Magaleta_Sorin_A2") {
|
|
.@talker_name$ = "#lhz_dun_talk_A4";
|
|
switch (rand(4)) {
|
|
case 0: .@msg$ = "Dear Odin, be my strength remaining..."; break;
|
|
case 1: .@msg$ = "My body keeps loosing its strength..."; break;
|
|
case 2: .@msg$ = "Holy powers keep weakening..."; break;
|
|
default: .@msg$ = "My Seyren... Where are you..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Randel_Lawrence_A1") {
|
|
.@talker_name$ = "#lhz_dun_talk_A13";
|
|
switch (rand(4)) {
|
|
case 0: .@msg$ = "I was dispatched here as the commander..."; break;
|
|
case 1: .@msg$ = "Now it's impossible... Really..."; break;
|
|
case 2: .@msg$ = "I'll show you paladins strength..."; break;
|
|
default: .@msg$ = "Where is my crew..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Randel_Lawrence_A2") {
|
|
.@talker_name$ = "#lhz_dun_talk_A14";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "Dispatched crew... If any of you survive... You must make out of this... This is an order..."; break;
|
|
case 1: .@msg$ = "My powers are gone now..."; break;
|
|
case 2: .@msg$ = "What is that?.. I'm changing..."; break;
|
|
case 3: .@msg$ = "Am I the last survivor here?.."; break;
|
|
default: .@msg$ = "Have I fallen? It darkens before my eyes..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Seyren_Windsor_A1") {
|
|
.@talker_name$ = "#lhz_dun_talk_A1";
|
|
switch (rand(4)) {
|
|
case 0: .@msg$ = "I have to find my fellows... I must..."; break;
|
|
case 1: .@msg$ = "Where's Sorin?.. Are my friends all right?.."; break;
|
|
case 2: .@msg$ = "There is a traitor amongst our leaders... Nobody is safe to tell to..."; break;
|
|
default: .@msg$ = "My father should be informed of this..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Seyren_Windsor_A2") {
|
|
.@talker_name$ = "#lhz_dun_talk_A2";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "My guilt tightens..."; break;
|
|
case 1: .@msg$ = "I am Windsor, son of honor, I shall not defile my name..."; break;
|
|
case 2: .@msg$ = "Gotta flee from them... This should never..."; break;
|
|
case 3: .@msg$ = "We cannot die in such a place..."; break;
|
|
default: .@msg$ = "My love... Margaretha..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Shecil_Damon_A1") {
|
|
.@talker_name$ = "#lhz_dun_talk_A11";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "Keep calm... It's okay..."; break;
|
|
case 1: .@msg$ = "This hallway is not the exit too..."; break;
|
|
case 2: .@msg$ = "I'll come... Wait for me, Sorin..."; break;
|
|
case 3: .@msg$ = "I'm scared... Very... scared..."; break;
|
|
default: .@msg$ = "I still have my bow and arrows..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Shecil_Damon_A2") {
|
|
.@talker_name$ = "#lhz_dun_talk_A12";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "I cannot die like this here..."; break;
|
|
case 1: .@msg$ = "Sorin... Where did you go..."; break;
|
|
case 2: .@msg$ = "Friends... That's what I miss..."; break;
|
|
case 3: .@msg$ = "What's in that space?.. Where will come up..?"; break;
|
|
default: .@msg$ = "I can do this... It's not an end..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Trentini_A1") {
|
|
.@talker_name$ = "#lhz_dun_talk_A25";
|
|
switch (rand(5)) {
|
|
case 0: .@msg$ = "I can feel where he is..."; break;
|
|
case 1: .@msg$ = "What do I do now?.. My head aches too much..."; break;
|
|
case 2: .@msg$ = "It's my fault... I shoul break up with Alphoccio in the end..."; break;
|
|
case 3: .@msg$ = "It's an end, it's an oppression... That's the result..."; break;
|
|
default: .@msg$ = "I miss you... Very much..."; break;
|
|
}
|
|
}
|
|
else if (.@npc_name$ == "#Trentini_A2") {
|
|
.@talker_name$ = "#lhz_dun_talk_A26";
|
|
switch (rand(4)) {
|
|
case 0: .@msg$ = "Is anybody there?.. Friends, please... Ah..."; break;
|
|
case 1: .@msg$ = "That Taro reading was terrifying..."; break;
|
|
case 2: .@msg$ = "I liked all their voices so much..."; break;
|
|
default: .@msg$ = "My body won't move at all..."; break;
|
|
}
|
|
}
|
|
npctalk .@msg$, .@talker_name$;
|
|
end;
|
|
OnTimer40000:
|
|
stopnpctimer;
|
|
enablenpc();
|
|
end;
|
|
}
|
|
|
|
lhz_dun_n,92,102,0 duplicate(#Alphoccio_Basil_A1) #Alphoccio_Basil_A2 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,150,74,0 duplicate(#Alphoccio_Basil_A1) #Catherine Cheiron_A1 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,174,98,0 duplicate(#Alphoccio_Basil_A1) #Katrinn Chiron_A2 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,25,65,0 duplicate(#Alphoccio_Basil_A1) #Celia_Alde_A1 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,60,102,0 duplicate(#Alphoccio_Basil_A1) #Celia_Alde_A2 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,194,188,0 duplicate(#Alphoccio_Basil_A1) #Chen_Liu_A1 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,255,206,0 duplicate(#Alphoccio_Basil_A1) #Chen_Liu_A2 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,81,184,0 duplicate(#Alphoccio_Basil_A1) #Eremes_Guille_A1 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,113,191,0 duplicate(#Alphoccio_Basil_A1) #Eremes_Guille_A2 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,84,87,0 duplicate(#Alphoccio_Basil_A1) #Flamel_Emule_A1 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,39,55,0 duplicate(#Alphoccio_Basil_A1) #Flamel_Emule_A2 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,232,198,0 duplicate(#Alphoccio_Basil_A1) #Gertie_Wie_A1 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,130,148,0 duplicate(#Alphoccio_Basil_A1) #Gertie_Wie_A2 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,119,195,0 duplicate(#Alphoccio_Basil_A1) #Harword Alt-Eisen_A1 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,158,210,0 duplicate(#Alphoccio_Basil_A1) #Harword Alt-Eisen_A2 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,159,122,0 duplicate(#Alphoccio_Basil_A1) #Magaleta_Sorin_A1 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,133,39,0 duplicate(#Alphoccio_Basil_A1) #Magaleta_Sorin_A2 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,168,193,0 duplicate(#Alphoccio_Basil_A1) #Randel_Lawrence_A1 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,188,188,0 duplicate(#Alphoccio_Basil_A1) #Randel_Lawrence_A2 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,44,155,0 duplicate(#Alphoccio_Basil_A1) #Seyren Windsor_A1 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,54,221,0 duplicate(#Alphoccio_Basil_A1) #Seyren Windsor_A2 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,249,66,0 duplicate(#Alphoccio_Basil_A1) #Shecil_Damon_A1 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,213,97,0 duplicate(#Alphoccio_Basil_A1) #Shecil_Damon_A2 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,191,129,0 duplicate(#Alphoccio_Basil_A1) #Trentini_A1 HIDDEN_WARP_NPC,3,3
|
|
lhz_dun_n,259,132,0 duplicate(#Alphoccio_Basil_A1) #Trentini_A2 HIDDEN_WARP_NPC,3,3
|
|
|
|
lhz_dun_n,44,155,6 script #lhz_dun_talk_A1 CLEAR_NPC,{ end; }
|
|
lhz_dun_n,54,221,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A2 CLEAR_NPC
|
|
lhz_dun_n,159,122,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A3 CLEAR_NPC
|
|
lhz_dun_n,133,39,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A4 CLEAR_NPC
|
|
lhz_dun_n,150,74,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A5 CLEAR_NPC
|
|
lhz_dun_n,174,98,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A6 CLEAR_NPC
|
|
lhz_dun_n,81,184,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A7 CLEAR_NPC
|
|
lhz_dun_n,113,191,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A8 CLEAR_NPC
|
|
lhz_dun_n,119,195,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A9 CLEAR_NPC
|
|
lhz_dun_n,158,210,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A10 CLEAR_NPC
|
|
lhz_dun_n,249,66,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A11 CLEAR_NPC
|
|
lhz_dun_n,213,97,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A12 CLEAR_NPC
|
|
lhz_dun_n,168,193,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A13 CLEAR_NPC
|
|
lhz_dun_n,188,188,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A14 CLEAR_NPC
|
|
lhz_dun_n,84,87,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A15 CLEAR_NPC
|
|
lhz_dun_n,39,55,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A16 CLEAR_NPC
|
|
lhz_dun_n,25,65,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A17 CLEAR_NPC
|
|
lhz_dun_n,60,102,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A18 CLEAR_NPC
|
|
lhz_dun_n,194,188,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A19 CLEAR_NPC
|
|
lhz_dun_n,255,206,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A20 CLEAR_NPC
|
|
lhz_dun_n,232,198,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A21 CLEAR_NPC
|
|
lhz_dun_n,130,148,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A22 CLEAR_NPC
|
|
lhz_dun_n,75,121,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A23 CLEAR_NPC
|
|
lhz_dun_n,92,102,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A24 CLEAR_NPC
|
|
lhz_dun_n,191,129,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A25 CLEAR_NPC
|
|
lhz_dun_n,259,132,6 duplicate(#lhz_dun_talk_A1) #lhz_dun_talk_A26 CLEAR_NPC
|
|
|
|
// npc location -> quest ID inaccurate
|
|
lhz_dun_n,132,61,2 script A Questionable Device#14684 4_SYSTEM_BOX,5,5,{
|
|
end;
|
|
OnTouch:
|
|
.@quest_id = atoi(strnpcinfo(2));
|
|
switch( checkquest(.@quest_id,PLAYTIME) ) {
|
|
case -1:
|
|
break;
|
|
case 0:
|
|
case 1:
|
|
npctalk "... Current... Required... Cool.. Down..Time..";
|
|
end;
|
|
case 2:
|
|
erasequest .@quest_id;
|
|
break;
|
|
}
|
|
specialeffect EF_MAPPILLAR;
|
|
npctalk "Emergency Protocol... Activated.. to.. RT..017... Cooldown... 1 hour......";
|
|
specialeffect2 EF_BABY;
|
|
setquest .@quest_id;// Mysterious Device
|
|
switch( .@quest_id ) {
|
|
case 14684:
|
|
// atk dmg+10%, def+10% on monsters (inaccurates, unknown values)
|
|
// atk+: Swordman, Thief / def+: Acolyte, Merchant
|
|
sc_start2 SC_LHZ_DUN_N1,1800000,10,10,10000,SCSTART_NOTICKDEF; /// last 30 mins
|
|
break;
|
|
case 14685:
|
|
// atk+: Acolyte, Merchant / def+: Mage, Archer
|
|
sc_start2 SC_LHZ_DUN_N2,1800000,10,10,10000,SCSTART_NOTICKDEF;
|
|
break;
|
|
case 14686:
|
|
// atk+: Mage, Archer / def+: Swordman, Thief
|
|
sc_start2 SC_LHZ_DUN_N3,1800000,10,10,10000,SCSTART_NOTICKDEF;
|
|
break;
|
|
case 14687:
|
|
// atk+: MvPs / def+: MvPs
|
|
sc_start2 SC_LHZ_DUN_N4,1800000,10,10,10000,SCSTART_NOTICKDEF;
|
|
break;
|
|
}
|
|
end;
|
|
|
|
OnInit:
|
|
.@condition$ = "!isbegin_quest(" + strnpcinfo(2) + ")";
|
|
questinfo( QTYPE_QUEST, QMARK_YELLOW, .@condition$ );
|
|
end;
|
|
}
|
|
|
|
lhz_dun_n,53,127,2 duplicate(A Questionable Device#14684) A Questionable Device#14685 4_SYSTEM_BOX,5,5
|
|
lhz_dun_n,214,127,2 duplicate(A Questionable Device#14684) A Questionable Device#14686 4_SYSTEM_BOX,5,5
|
|
lhz_dun_n,148,148,2 duplicate(A Questionable Device#14684) A Questionable Device#14687 4_SYSTEM_BOX,5,5
|
|
|
|
/*
|
|
// Unknown effects
|
|
lhz_dun_n,130,204,2 script Dead Man#lhzd01 4_TOWER_06,5,5
|
|
lhz_dun_n,78,133,2 script Dead Man#lhzd02 4_TOWER_06,5,5
|
|
lhz_dun_n,47,65,2 script Dead Man#lhzd03 4_TOWER_06,5,5
|
|
lhz_dun_n,141,39,2 script Dead Man#lhzd04 4_TOWER_06,5,5
|
|
lhz_dun_n,123,85,2 script Dead Man#lhzd05 4_TOWER_06,5,5
|
|
lhz_dun_n,212,71,2 script Dead Man#lhzd06 4_TOWER_06,5,5
|
|
lhz_dun_n,213,109,2 script Dead Man#lhzd07 4_TOWER_06,5,5
|
|
lhz_dun_n,145,179,2 script Dead Man#lhzd08 4_TOWER_06,5,5
|
|
lhz_dun_n,233,135,2 script Dead Man#lhzd09 4_TOWER_06,5,5
|
|
lhz_dun_n,241,201,2 script Dead Man#lhzd10 4_TOWER_06,5,5
|
|
lhz_dun_n,150,211,2 script Dead Man#lhzd11 4_TOWER_03,5,5
|
|
lhz_dun_n,69,144,2 script Dead Man#lhzd12 4_TOWER_03,5,5
|
|
lhz_dun_n,113,81,2 script Dead Man#lhzd13 4_TOWER_03,5,5
|
|
lhz_dun_n,144,64,2 script Dead Man#lhzd14 4_TOWER_03,5,5
|
|
lhz_dun_n,157,93,2 script Dead Man#lhzd15 4_TOWER_03,5,5
|
|
lhz_dun_n,231,69,2 script Dead Man#lhzd16 4_TOWER_03,5,5
|
|
lhz_dun_n,179,107,2 script Dead Man#lhzd17 4_TOWER_03,5,5
|
|
lhz_dun_n,172,175,2 script Dead Man#lhzd18 4_TOWER_03,5,5
|
|
lhz_dun_n,228,149,2 script Dead Man#lhzd19 4_TOWER_03,5,5
|
|
lhz_dun_n,248,218,2 script Dead Man#lhzd20 4_TOWER_03,5,5
|
|
lhz_dun_n,139,233,2 script Dead Man#lhzd21 4_TOWER_08,5,5
|
|
lhz_dun_n,69,110,2 script Dead Man#lhzd22 4_TOWER_08,5,5
|
|
lhz_dun_n,100,109,2 script Dead Man#lhzd23 4_TOWER_08,5,5
|
|
lhz_dun_n,137,72,2 script Dead Man#lhzd24 4_TOWER_08,5,5
|
|
lhz_dun_n,169,85,2 script Dead Man#lhzd25 4_TOWER_08,5,5
|
|
lhz_dun_n,245,63,2 script Dead Man#lhzd26 4_TOWER_08,5,5
|
|
lhz_dun_n,182,126,2 script Dead Man#lhzd27 4_TOWER_08,5,5
|
|
lhz_dun_n,182,154,2 script Dead Man#lhzd28 4_TOWER_08,5,5
|
|
lhz_dun_n,246,141,2 script Dead Man#lhzd29 4_TOWER_08,5,5
|
|
lhz_dun_n,236,226,2 script Dead Man#lhzd30 4_TOWER_08,5,5
|
|
lhz_dun_n,38,200,2 script Dead Man#lhzd31 4_TOWER_11,5,5
|
|
lhz_dun_n,95,86,2 script Dead Man#lhzd32 4_TOWER_11,5,5
|
|
lhz_dun_n,98,138,2 script Dead Man#lhzd33 4_TOWER_11,5,5
|
|
lhz_dun_n,145,89,2 script Dead Man#lhzd34 4_TOWER_11,5,5
|
|
lhz_dun_n,186,92,2 script Dead Man#lhzd35 4_TOWER_11,5,5
|
|
lhz_dun_n,181,148,2 script Dead Man#lhzd36 4_TOWER_11,5,5
|
|
lhz_dun_n,181,148,2 script Dead Man#lhzd37 4_TOWER_11,5,5
|
|
lhz_dun_n,203,144,2 script Dead Man#lhzd38 4_TOWER_11,5,5
|
|
lhz_dun_n,240,134,2 script Dead Man#lhzd39 4_TOWER_11,5,5
|
|
lhz_dun_n,141,129,2 script Dead Man#lhzd40 4_TOWER_11,5,5
|
|
lhz_dun_n,81,160,2 script Dead Man#lhzd41 4_TOWER_13,5,5
|
|
lhz_dun_n,41,77,2 script Dead Man#lhzd42 4_TOWER_13,5,5
|
|
lhz_dun_n,99,162,2 script Dead Man#lhzd43 4_TOWER_13,5,5
|
|
lhz_dun_n,136,95,2 script Dead Man#lhzd44 4_TOWER_13,5,5
|
|
lhz_dun_n,184,80,2 script Dead Man#lhzd45 4_TOWER_13,5,5
|
|
lhz_dun_n,202,102,2 script Dead Man#lhzd46 4_TOWER_13,5,5
|
|
lhz_dun_n,157,143,2 script Dead Man#lhzd47 4_TOWER_13,5,5
|
|
lhz_dun_n,202,133,2 script Dead Man#lhzd48 4_TOWER_13,5,5
|
|
lhz_dun_n,220,178,2 script Dead Man#lhzd49 4_TOWER_13,5,5
|
|
lhz_dun_n,131,148,2 script Dead Man#lhzd50 4_TOWER_13,5,5
|
|
*/
|