//===== 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 */