123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070 |
- //===== rAthena Script =======================================
- //= Sky Fortress Invasion
- //===== Description: =========================================
- //= [Official Conversion]
- //= Sky Fortress Invasion Instance
- //===== Changelogs: ==========================================
- //= 1.0 First version. [Capuche]
- //============================================================
- prt_q,249,82,2 script Han#a1 8W_SOLDIER,{
- mes "[Han]";
- mes "There must be a ton of monsters";
- mes "attacking the center of Prontera.";
- mes "***";
- next;
- mes "[Han]";
- mes "My family...My friends...";
- mes "They're all there...";
- mes "I must protect them...";
- mes "But...I have an even more important";
- mes "job to do here...";
- next;
- mes "[Han]";
- mes "I, scientist Doyeon, can do it.";
- mes "I can obliterate that dirty source place,";
- mes "ceaselessly spawning the monsters...";
- mes "That's why I'm protecting him.";
- mes "***";
- next;
- mes "[Han]";
- mes "Protecting him and destroying this fortress";
- mes "is what ultimately protects my family";
- mes "and friends.";
- close;
- }
- prt_q,252,79,4 script Doek#a1 8W_SOLDIER,{
- mes "[Doek]";
- mes "Can this scientist you're seeing here";
- mes "really protect Prontera?";
- mes "Can she?";
- mes "Do you believe so?";
- next;
- mes "[Doek]";
- mes "Honestly, I don't...";
- mes "But...";
- next;
- mes "[Doek]";
- mes "All my loved ones were...";
- mes "...by those monsters....";
- next;
- mes "[Doek]";
- mes "This is the last hope I can have...";
- mes "This is the last.";
- mes "So please help me.";
- mes "Help Doyeon...";
- next;
- mes "- And then, she remained silent -";
- mes "- for quite a while. -";
- close;
- }
- prt_q,249,79,4 script Scientist Doyeon#a1 4_M_MAYOR,{
- if (!checkweight(2104,2)) {
- mes "- It's full of items";
- mes "so you can't proceed to conversation. -";
- close;
- }
- if (BaseLevel < 145) {
- mes "- You should be level 145 or higher";
- mes "to proceed. -";
- close;
- }
- switch( checkquest(9419,PLAYTIME) ) {
- case -1:
- if (is_party_leader() == false) {
- callsub S_Info;
- close;
- }
- if (isbegin_quest(9418) == 0) {// first entrance
- .@party_name$ = getpartyname(getcharid(1));
- mes "[Scientist Doyeon]";
- mes "I'm a scientist";
- mes "living in Prontera.";
- mes "I'm just an ordinary scientist";
- mes "teaching children and doing research.";
- mes "And then...things came up";
- mes "in Prontera all of a sudden....";
- while(true) {
- next;
- switch( select( "About Sky Fortress", "Enter the Sky Fortress.", "End the dialogue." ) ) {
- case 1:
- callsub S_Info;
- break;
- case 2:
- mes "[Scientist Doyeon]";
- mes "I think I can open the warp,";
- mes "at least for once, with the magic";
- mes "that I've been collecting so hard.";
- mes "I hope you would help me";
- mes "destroy the fortress and";
- mes "get back our Prontera.";
- next;
- if (select( "No", "Yes" ) == 1) {
- mes "[Scientist Doyeon]";
- mes "Come back";
- mes "if you change your mind...";
- mes "Just know that time is running out...";
- break;
- }
- mes "[Scientist Doyeon]";
- mes "There! I opened the warp";
- mes "to the Sky Fortress!";
- mes "The warp will be activated";
- mes "only for a limited period of time.";
- mes "Step inside it, quick!";
- if (instance_create("Sky Fortress Invasion") < 0) {
- mes "Party Name: " + .@party_name$;
- mes "Party Leader: " + strcharinfo(0);
- mes "^0000ffSky Fortress Invasion ^000000- Reservation Failed!";
- close;
- }
- close;
- case 3:
- mes "[Scientist Doyeon]";
- mes "I'm so worried about";
- mes "the future of Prontera...";
- mes "It appears this fortress";
- mes "must be the source of all evil...";
- close;
- }
- }
- }
- mes "You're back unscathed.";
- mes "So...whatever happened";
- mes "inside?";
- next;
- mes "- I told her everything that";
- mes "happened inside the Sky Fortress. -";
- next;
- mes "[Scientist Doyeon]";
- mes "How could that be...";
- mes "Still, I think we have every reason to remain hopeful";
- mes "for eliminating that huge Golem";
- mes "in the Sky Fortress.";
- next;
- mes "[Scientist Doyeon]";
- mes "Still, those filthy monsters";
- mes "keep spawning in Prontera.";
- mes "So I think what we've done";
- mes "must not be enough.";
- mes "***";
- next;
- mes "[Scientist Doyeon]";
- mes "To operate the warp,";
- mes "a lot of magic is required.";
- mes "Bring me the item called the -Dungeon Pass-,";
- mes "or I need about";
- mes "three days to collect magic.";
- next;
- mes "[Scientist Doyeon]";
- mes "I hope you'd enter the Sky Fortress";
- mes "and help us save";
- mes "Prontera.";
- completequest 9418;// Attack Sky Fortress Invading Prontera
- setquest 9419;// Attack Sky Fortress Invading Prontera
- if (isbegin_quest(9427) == 0) {
- setquest 9427;// Clearing the Sky Fortress for the Same Time
- completequest 9427;
- rentitem 14505,3600;// Sky Fortress Ticket
- }
- close;
- case 0:
- case 1:
- mes "[Scientist Doyeon]";
- mes "To operate the warp,";
- mes "a lot of magic is required.";
- mes "Bring me the item called the -Dungeon Pass-,";
- mes "or I need about";
- mes "three days to collect magic.";
- next;
- if (is_party_leader() == true) {
- .@party_name$ = getpartyname(getcharid(1));
- if (select( "End the dialogue.", "Show the -Dungeon Pass-." ) == 2) {
- if (rentalcountitem(14505) < 1 && rentalcountitem(14506) < 1) {// Sky Fortress Ticket
- mes "[Scientist Doyeon]";
- mes "I don't think this works";
- mes "without the -Dungeon Pass-.";
- mes "I can't open the warp without it.";
- close;
- }
- mes "[Scientist Doyeon]";
- mes "Oh! Where did you";
- mes "get the -Dungeon Pass-?";
- mes "With this item,";
- mes "I can pretty much open the warp.";
- next;
- if (select( "End the dialogue.", "Activate the warp." ) == 1) {
- mes "[Scientist Doyeon]";
- mes "Are you not going";
- mes "to help Prontera?";
- close;
- }
- mes "[Scientist Doyeon]";
- mes "There! I opened the warp";
- mes "to the Sky Fortress!";
- mes "The warp will be activated";
- mes "only for a limited period of time.";
- mes "Step inside it, quick!";
- if (instance_create("Sky Fortress Invasion") < 0) {
- mes "Party Name: " + .@party_name$;
- mes "Party Leader: " + strcharinfo(0);
- mes "^0000ffSky Fortress Invasion ^000000- Reservation Failed!";
- close;
- }
- close;
- }
- }
- mes "[Scientist Doyeon]";
- mes "I hope you'd enter the Sky Fortress";
- mes "and help us save";
- mes "Prontera.";
- close;
- case 2:
- mes "[Scientist Doyeon]";
- mes "You've come back! You didn't get away!";
- mes "Thanks so much!";
- next;
- mes "[Scientist Doyeon]";
- mes "But still...";
- mes "A ton of undead monsters kept swarming about";
- mes "from that entrance seen behind me";
- mes "as if the sap monster spits out the sap.";
- mes "They kept coming out";
- mes "no matter how many were killed.";
- next;
- mes "[Scientist Doyeon]";
- mes "I suppose the monsters are being made up";
- mes "inside the fortress.";
- mes "My guess is that if we can defeat their ringleader in the fortress,";
- mes "the monsters will go away";
- mes "and Prontera will become stabilized.";
- mes "***";
- next;
- mes "[Scientist Doyeon]";
- mes "I think I can open the warp,";
- mes "at least for once, with the magic";
- mes "that I've been collecting so hard.";
- mes "I hope you would help me";
- mes "destroy the fortress and";
- mes "get back our Prontera.";
- if (is_party_leader() == true) {
- .@party_name$ = getpartyname(getcharid(1));
- next;
- if (select( "No", "Yes" ) == 1) {
- mes "[Scientist Doyeon]";
- mes "Come back";
- mes "if you change your mind...";
- mes "Just know that time is running out...";
- close;
- }
- mes "[Scientist Doyeon]";
- mes "There! I opened the warp";
- mes "to the Sky Fortress!";
- mes "The warp will be activated";
- mes "only for a limited period of time.";
- mes "Step inside it, quick!";
- if (instance_create("Sky Fortress Invasion") < 0) {
- mes "Party Name: " + .@party_name$;
- mes "Party Leader: " + strcharinfo(0);
- mes "^0000ffSky Fortress Invasion ^000000- Reservation Failed!";
- close;
- }
- }
- close;
- }
- end;
- S_Info:
- mes "[Scientist Doyeon]";
- mes "I'm a scientist";
- mes "living in Prontera.";
- mes "I'm just an ordinary scientist";
- mes "teaching children and doing research.";
- next;
- mes "[Scientist Doyeon]";
- mes "But now...the life at least as I know it";
- mes "has become shattered.";
- next;
- mes "[Scientist Doyeon]";
- mes "Thanks to this fortress";
- mes "looking like a huge trash can,";
- mes "our village has turned into a trash heap";
- mes "that doesn't even decay.";
- next;
- mes "[Scientist Doyeon]";
- mes "Buildings fall down,";
- mes "people keep dying out...";
- mes "I have to wonder what the nobility and soldiers at the Prontera Palace";
- mes "are up to when things are like this.";
- next;
- mes "[Scientist Doyeon]";
- mes "A ton of undead monsters kept swarming about";
- mes "from that entrance seen behind me";
- mes "as if the sap monster spits out the sap.";
- mes "They kept coming out";
- mes "no matter how many were killed.";
- next;
- mes "[Scientist Doyeon]";
- mes "I suppose the monsters are being made up";
- mes "inside the fortress.";
- mes "My guess is that if we can defeat their ringleader in the fortress,";
- mes "the monsters will get away";
- mes "and Prontera will become stabilized.";
- mes "***";
- next;
- mes "[Scientist Doyeon]";
- mes "So I really wanted to enter the fortress";
- mes "but couldn't find any entrance.";
- mes "I studied day and night";
- mes "and finally located it.";
- next;
- mes "[Scientist Doyeon]";
- mes "To enter the fortress,";
- mes "the warp should be activated.";
- mes "To do so, a lot of magic";
- mes "is indispensable!";
- next;
- mes "[Scientist Doyeon]";
- mes "And then...I've been preparing";
- mes "a lot of magic necessary for the warp.";
- mes "Now I could use a warrior";
- mes "who can shatter the fortress";
- mes "and bring peace to Prontera.";
- return;
- }
- prt_q,243,75,3 script Fortress Entry Warp Portal#1 PORTAL,{
- if (BaseLevel < 145) {
- mes "- You should be level 145 or higher";
- mes "to proceed. -";
- close;
- }
- if (checkquest(9419,PLAYTIME) == 2 || (checkquest(9419,PLAYTIME) == -1 && isbegin_quest(9418) != 1)) {
- setarray .@menu$[0], "Don't step into the warp.", "Step into the warp.";
- .@type = 1;
- }
- else {
- mes "- The warp doesn't seem to work.";
- mes "You can't seem to enter... -";
- next;
- setarray .@menu$[0], "End the dialogue.", "", "Put the - Dungeon Pass - near to the warp.";
- }
- switch( select( .@menu$[0], .@menu$[1], .@menu$[2] ) ) {
- case 1:
- mes "- The warp is emanating bright lights. -";
- close;
- case 2:
- break;
- case 3:
- if (rentalcountitem(14505) < 1 && rentalcountitem(14506) < 1) {// Sky Fortress Ticket
- mes "- You don't have -";
- mes "- the Dungeon Pass. -";
- close;
- }
- break;
- }
- .@md_name$ = "Sky Fortress Invasion";
- switch( instance_enter(.@md_name$) ) {
- case IE_OTHER:
- mes "An unknown error occurred.";
- close;
- case IE_NOINSTANCE:
- mes "Memorial Dungeon " + .@md_name$ + " doesn't exist.";
- mes "Party leader hasn't created the Memorial Dungeon.";
- close;
- case IE_NOMEMBER:
- mes "Only the party members may enter the Memorial Dungeon.";
- close;
- case IE_OK:
- mapannounce "prt_q", "Party member " + strcharinfo(0) + " of party's " + getpartyname( getcharid(1) ) + " enters " + .@md_name$ + "", bc_map,0xFF99;
- if (.@type == 1) {
- if (isbegin_quest(9419) > 0)
- erasequest 9419;
- if (isbegin_quest(9418) > 0)
- erasequest 9418;
- setquest 9418;// Attack Sky Fortress Invading Prontera
- }
- fortress_entrance_loc = 0; // warp back to prt_q on exit
- // warp "1@sthb",54,67;
- end;
- }
- end;
- OnInit:
- while(true) {
- sleep 10000;
- specialeffect EF_ENHANCE;
- }
- end;
- }
- // Dali entrance
- dali02,115,61,3 script Fortress Entry Warp Portal#2 PORTAL,{
- if (BaseLevel < 145) {
- mes "- You should be level 145 or higher";
- mes "to proceed. -";
- close;
- }
- mes "- The warp doesn't seem to work.";
- mes "You can't seem to enter. -";
- next;
- if (select( "End the dialogue.", "Put the - Dungeon Pass - near to the warp." ) == 1) {
- mes "- The warp is emanating bright lights. -";
- close;
- }
- if (rentalcountitem(14505) < 1 && rentalcountitem(14506) < 1) {// Sky Fortress Ticket
- mes "- You don't have -";
- mes "- the Dungeon Pass. -";
- close;
- }
- .@md_name$ = "Sky Fortress Invasion";
- switch( instance_enter(.@md_name$) ) {
- case IE_OTHER:
- mes "An unknown error occurred.";
- close;
- case IE_NOINSTANCE:
- mes "Memorial Dungeon " + .@md_name$ + " doesn't exist.";
- mes "Party leader hasn't created the Memorial Dungeon.";
- close;
- case IE_NOMEMBER:
- mes "Only the party members may enter the Memorial Dungeon.";
- close;
- case IE_OK:
- mapannounce "prt_q", "Party member " + strcharinfo(0) + " of party's " + getpartyname( getcharid(1) ) + " enters " + .@md_name$ + "", bc_map,0xFF99;
- // warp "1@sthb",54,67;
- fortress_entrance_loc = 1; // warp back to dali02 on exit
- // note: no quest change when using tickets
- end;
- }
- end;
- OnInit:
- while(true) {
- sleep 10000;
- specialeffect EF_ENHANCE;
- }
- end;
- }
- dali02,122,63,2 script Scientist Doyeon#a2 4_M_MAYOR,{
- if (!checkweight(2104,2)) {
- mes "- It's full of items";
- mes "so you can't proceed to conversation. -";
- close;
- }
- if (BaseLevel < 145) {
- mes "- You should be level 145 or higher";
- mes "to proceed. -";
- close;
- }
- if (is_party_leader() == false) {
- mes "[Scientist Doyeon]";
- mes "I'm a scientist";
- mes "living in Prontera.";
- mes "I'm just an ordinary scientist";
- mes "teaching children and doing research.";
- next;
- mes "[Scientist Doyeon]";
- mes "But now...my normal life";
- mes "has become shattered.";
- next;
- mes "[Scientist Doyeon]";
- mes "Thanks to this fortress";
- mes "looking like a huge trash can,";
- mes "our village has turned into a trash heap";
- mes "that doesn't even decay.";
- next;
- mes "[Scientist Doyeon]";
- mes "Buildings fall down,";
- mes "people keep dying out...";
- mes "I have to wonder what the nobility and soldiers at the Prontera Palace";
- mes "are up to when things are like this.";
- next;
- mes "[Scientist Doyeon]";
- mes "A ton of undead monsters kept swarming about";
- mes "from that entrance seen behind me";
- mes "as if the sap monster spits out the sap.";
- mes "They kept coming out";
- mes "no matter how many were killed.";
- next;
- mes "[Scientist Doyeon]";
- mes "I suppose the monsters are being made up";
- mes "inside the fortress.";
- mes "My guess is that if we can defeat their ringleader in the fortress,";
- mes "the monsters will go away";
- mes "and Prontera will become stabilized.";
- mes "***";
- next;
- mes "[Scientist Doyeon]";
- mes "So I really wanted to enter the fortress";
- mes "but couldn't find any entrance.";
- mes "I studied day and night";
- mes "and finally located it.";
- next;
- mes "[Scientist Doyeon]";
- mes "To enter the fortress,";
- mes "the warp should be activated.";
- mes "To do so,";
- mes "the -Dungeon Pass-";
- mes "is indispensable!";
- next;
- mes "[Scientist Doyeon]";
- mes "And then...I've been preparing";
- mes "a lot of magic necessary for the warp.";
- mes "Now I could use a warrior";
- mes "who can shatter the fortress";
- mes "and bring peace to Prontera.";
- close;
- }
- .@party_name$ = getpartyname(getcharid(1));
- mes "[Scientist Doyeon]";
- mes "I'm a scientist";
- mes "living in Prontera.";
- mes "I teach children and perform research activities.";
- mes "But it has become";
- mes "so dangerous there,";
- mes "so I moved in here.";
- next;
- switch( select( "About Sky Fortress", "Enter the Sky Fortress.", "End the dialogue." ) ) {
- case 1:
- mes "[Scientist Doyeon]";
- mes "But now...my normal life";
- mes "has become shattered.";
- next;
- mes "[Scientist Doyeon]";
- mes "Thanks to this fortress";
- mes "looking like a huge trash can,";
- mes "our village has turned into a trash heap";
- mes "that doesn't even decay.";
- next;
- mes "[Scientist Doyeon]";
- mes "Buildings fall down,";
- mes "people keep dying out...";
- mes "I have to wonder what the nobility and soldiers at the Prontera Palace";
- mes "are up to when things are like this.";
- next;
- mes "[Scientist Doyeon]";
- mes "A ton of undead monsters kept swarming about";
- mes "as if the sap monster spits out the sap.";
- mes "They kept coming out";
- mes "no matter how many were killed.";
- mes "***";
- next;
- mes "[Scientist Doyeon]";
- mes "I suppose the monsters are being made up";
- mes "inside the fortress.";
- mes "My guess is that if we can defeat their ringleader in the fortress,";
- mes "the monsters will go away";
- mes "and Prontera will become stabilized.";
- mes "***";
- next;
- mes "[Scientist Doyeon]";
- mes "So I wanted to enter the fortress";
- mes "but couldn't find any entrance.";
- mes "I studied day and night";
- mes "and finally located it.";
- next;
- mes "[Scientist Doyeon]";
- mes "To enter the fortress,";
- mes "the warp should be activated.";
- mes "To do so, a lot of magic";
- mes "is indispensable!";
- next;
- mes "[Scientist Doyeon]";
- mes "And then...I've been preparing";
- mes "a lot of magic necessary for the warp.";
- mes "Now I could use a warrior";
- mes "who can shatter the fortress";
- mes "and bring peace to Prontera.";
- mes "That's why I'm here.";
- close;
- case 2:
- mes "[Scientist Doyeon]";
- mes "To operate the warp,";
- mes "a lot of magic is required.";
- mes "Don't forget to bring me";
- mes "the -Dungeon Pass-.";
- mes "That's the only way to open";
- mes "the warp to the Sky Fortress.";
- next;
- if (select( "End the dialogue.", "Show the -Dungeon Pass-." ) == 1) {
- mes "[Scientist Doyeon]";
- mes "Don't forget to bring me";
- mes "the -Dungeon Pass-.";
- mes "Enter the Sky Fortress";
- mes "and help us save";
- mes "the invaded Prontera.";
- close;
- }
- if (rentalcountitem(14505) < 1 && rentalcountitem(14506) < 1) {// Sky Fortress Ticket
- mes "[Scientist Doyeon]";
- mes "I don't think this works";
- mes "without the -Dungeon Pass-.";
- mes "I can't open the warp without it.";
- close;
- }
- mes "[Scientist Doyeon]";
- mes "Oh! Where did you";
- mes "get the -Dungeon Pass-?";
- mes "This item is enough";
- mes "to open the warp.";
- next;
- if (select( "End the dialogue.", "Activate the warp." ) == 1) {
- mes "[Scientist Doyeon]";
- mes "Are you not going";
- mes "to help Prontera?";
- close;
- }
- mes "[Scientist Doyeon]";
- mes "There! I opened the warp";
- mes "to the Sky Fortress!";
- mes "The warp will be activated";
- mes "only for a limited period of time.";
- mes "Step inside it, quick!";
- if (instance_create("Sky Fortress Invasion") < 0) {
- mes "Party Name: " + .@party_name$;
- mes "Party Leader: " + strcharinfo(0);
- mes "^0000ffSky Fortress Invasion ^000000- Reservation Failed!";
- close;
- }
- close;
- case 3:
- close;
- }
- }
- // Warps
- 1@sthb,73,71,0 warp2 #sthd_move_01_01 3,3,1@sthb,73,84
- 1@sthb,93,77,0 warp2 #sthd_move_02_01 2,2,1@sthb,210,96
- 1@sthb,190,54,0 warp2 #sthd_move_02_02 2,2,1@sthd,103,71
- // Main event - step 1
- 1@sthb,64,67,4 script Stefan.J.E.Wolf#sthd_01 4_AS_RAGGED_GOLEM,{
- end;
- OnStart:
- enablenpc instance_npcname("Stefan.J.E.Wolf#sthd_01");
- initnpctimer;
- end;
- OnTimer1000:
- npctalk "Stefan: ~Grunts~";
- end;
- OnTimer3000:
- npctalk "Earnest: What a bunch of menacing worms...!";
- end;
- OnTimer5000:
- mapannounce 'sthb_map$, "Stefan Jack Earnest Wolf: Guard...the Sky Fortress...Immortal...beings...", bc_map,0xEBFF;
- end;
- OnTimer6000:
- donpcevent instance_npcname("#sthd_event_2") + "::OnStart";
- end;
- OnTimer7000:
- disablenpc instance_npcname("Stefan.J.E.Wolf#sthd_01");
- stopnpctimer;
- end;
- }
- 1@sthb,64,67,4 duplicate(dummy_npc) Stefan.J.E.Wolf#sthd_02 4_AS_RAGGED_GOLEM
- 1@sthb,56,71,0 script #sthd_event_1 HIDDEN_WARP_NPC,8,8,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_1");
- .@stefan$ = instance_npcname("Stefan.J.E.Wolf#sthd_01");
- setpcblock PCBLOCK_NPC, true;
- unittalk getcharid(3), "" + strcharinfo(0) + " : Is this what caused the invasion into Prontera? Inside the Sky Fortress?";
- sleep2 2000;
- enablenpc .@stefan$;
- sleep2 2000;
- cutin "stephan_j_e_w.bmp",2;
- npctalk "Wolf: Trespassers... Sky Fortress...", .@stefan$;
- specialeffect2 EF_LOCKON;
- sleep2 2000;
- npctalk "Jack: Bijou...told me...to impede the intruders...", .@stefan$;
- sleep2 2000;
- unittalk getcharid(3), "" + strcharinfo(0) + " : What's that...huge lump?";
- npctalk "Earnest: Little...human...Greenhorn...Away...", .@stefan$;
- sleep2 2000;
- setpcblock PCBLOCK_NPC, false;
- cutin "",255;
- specialeffect2 EF_LOCKON;
- donpcevent instance_npcname("#sthd_event_1_boss") + "::OnStefanHp";
- disablenpc .@stefan$;
- end;
- }
- 1@sthb,1,1,0 script #sthd_event_1_boss HIDDEN_WARP_NPC,{
- end;
- OnStefanHp:
- enablenpc instance_npcname("#sthd_event_1_boss");
- monster 'sthb_map$,64,67, "Stefan.J.E.Wolf",3484,1, instance_npcname("#sthd_event_1_boss") + "::OnMobDead"; // AS_D_RAGGED_GOLEM
- 'boss_id = $@mobid[0];
- initnpctimer;
- end;
- OnTimer2000:
- getunitdata 'boss_id, .@data;
- if (.@data[UMOB_HP] >= 19000000)
- end;
- // fall through
- OnMobDead:
- stopnpctimer;
- killmonster 'sthb_map$, instance_npcname("#sthd_event_1_boss") + "::OnMobDead";
- donpcevent instance_npcname("Stefan.J.E.Wolf#sthd_01") + "::OnStart";
- disablenpc instance_npcname("#sthd_event_1_boss");
- end;
- OnTimer3000:
- initnpctimer;
- end;
- }
- // 1@sthb,68,65,0 script #sthd_event_2 HIDDEN_WARP_NPC,{ // official coord
- 1@sthb,1,1,0 script #sthd_event_2 HIDDEN_WARP_NPC,{
- end;
- OnStart:
- enablenpc instance_npcname("#sthd_event_2");
- initnpctimer;
- .@label$ = instance_npcname("#sthd_event_2") + "::OnMobDead";
- monster 'sthb_map$,48,75,"Immortal Zombie Soldier",3476,1, .@label$;// AS_ZOMBIE
- monster 'sthb_map$,56,75,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,63,74,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,63,67,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,63,61,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,56,60,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,48,60,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,48,67,"Immortal Zombie Soldier",3476,1, .@label$;
- end;
- OnTimer3000:
- if (mobcount( 'sthb_map$, instance_npcname("#sthd_event_2") + "::OnMobDead" ) > 0) {
- initnpctimer;
- end;
- }
- stopnpctimer;
- disablenpc instance_npcname("#sthd_event_2");
- donpcevent instance_npcname("#sthd_event_3") + "::OnStart";
- end;
- OnMobDead:
- end;
- }
- // 1@sthb,68,66,0 script #sthd_event_3 HIDDEN_WARP_NPC,{ // official coord
- 1@sthb,1,1,0 script #sthd_event_3 HIDDEN_WARP_NPC,{
- end;
- OnStart:
- enablenpc instance_npcname("#sthd_event_3");
- initnpctimer;
- .@label$ = instance_npcname("#sthd_event_3") + "::OnMobDead";
- monster 'sthb_map$,48,75,"Immortal Zombie Soldier",3476,1, .@label$;// AS_ZOMBIE
- monster 'sthb_map$,56,75,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,63,74,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,63,67,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,63,61,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,56,60,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,48,60,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,48,67,"Immortal Zombie Soldier",3476,1, .@label$;
- end;
- OnTimer3000:
- if (mobcount( 'sthb_map$, instance_npcname("#sthd_event_3") + "::OnMobDead" ) > 0) {
- initnpctimer;
- end;
- }
- stopnpctimer;
- disablenpc instance_npcname("#sthd_event_3");
- donpcevent instance_npcname("#sthd_event_4") + "::OnStart";
- end;
- OnMobDead:
- end;
- }
- // 1@sthb,68,67,0 script #sthd_event_4 HIDDEN_WARP_NPC,{ // official coord
- 1@sthb,1,1,0 script #sthd_event_4 HIDDEN_WARP_NPC,{
- end;
- OnStart:
- enablenpc instance_npcname("#sthd_event_4");
- initnpctimer;
- .@label$ = instance_npcname("#sthd_event_4") + "::OnMobDead";
- monster 'sthb_map$,48,75,"Immortal Zombie Soldier",3476,1, .@label$;// AS_ZOMBIE
- monster 'sthb_map$,56,75,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,63,74,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,63,67,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,63,61,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,56,60,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,48,60,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,48,67,"Immortal Zombie Soldier",3476,1, .@label$;
- monster 'sthb_map$,56,79,"Sky Fortress Key Keeper",3478,1, .@label$; // AS_ZOMBIE_SLAUGHTER
- end;
- OnTimer3000:
- if (mobcount( 'sthb_map$, instance_npcname("#sthd_event_4") + "::OnMobDead" ) > 0) {
- initnpctimer;
- end;
- }
- stopnpctimer;
- disablenpc instance_npcname("#sthd_event_4");
- enablenpc instance_npcname("#Stefan_Action1");
- enablenpc instance_npcname("Stefan.J.E.Wolf#sthd_02");
- end;
- OnMobDead:
- end;
- }
- 1@sthb,64,67,0 script #Stefan_Action1 HIDDEN_WARP_NPC,8,8,{
- end;
- OnTouch:
- disablenpc instance_npcname("#Stefan_Action1");
- setpcblock PCBLOCK_NPC, true;
- sleep2 1000;
- cutin "stephan_j_e_w.bmp",2;
- unittalk getcharid(3), "" + strcharinfo(0) + " : I believe that huge Golem is what plays an important role in the Sky Fortress.";
- sleep2 2000;
- npctalk "Wolf: Every subordinate at the fortress...Intruders...Stop them...Bijou's...order...", instance_npcname("Stefan.J.E.Wolf#sthd_02");
- specialeffect2 EF_LOCKON;
- sleep2 2000;
- unittalk getcharid(3), "" + strcharinfo(0) + " : What on earth is happening inside?";
- sleep2 2000;
- unittalk getcharid(3), "" + strcharinfo(0) + " : Let's head to top! I believe there must be something there.";
- sleep2 2000;
- setpcblock PCBLOCK_NPC, false;
- specialeffect2 EF_LOCKON;
- specialeffect EF_BAKU,AREA, instance_npcname("Stefan.J.E.Wolf#sthd_02");
- cutin "",255;
- disablenpc instance_npcname("Stefan.J.E.Wolf#sthd_02");
- for ( .@i = 1; .@i <= 6; .@i++ ) {
- enablenpc instance_npcname("Deactivated Warp#sthd_mov_" + .@i);
- enablenpc instance_npcname("#sthd_move_back_a_" + .@i);
- }
- enablenpc instance_npcname("#sthd_move_01_01");
- enablenpc instance_npcname("#sthd_move_02_01");
- enablenpc instance_npcname("#sthd_move_02_02");
- enablenpc instance_npcname("#Stefan_Action2"); // 2nd map
- enablenpc instance_npcname("Stefan.J.E.Wolf#sthd_03");
- // Mobs spots
- for ( .@i = 5; .@i <= 18; .@i++ )
- enablenpc instance_npcname("#sthd_event_" + .@i);
- // Room Shuffle
- donpcevent instance_npcname("#sthd_key_control") + "::OnShuffle";
- end;
- }
- // Shuffle warp room
- 1@sthb,68,80,0 script #sthd_key_control HIDDEN_WARP_NPC,{
- end;
- OnShuffle:
- switch( rand(6) ) {
- case 0:
- // 'warp_list[ <from room X> ] = <to room Y>;
- setarray 'warp_list[1], 5,1,3,4,6,2;
- break;
- case 1:
- setarray 'warp_list[1], 2,6,4,3,1,5;
- break;
- case 2:
- setarray 'warp_list[1], 3,5,1,6,2,4;
- break;
- case 3:
- setarray 'warp_list[1], 6,4,2,5,3,1;
- break;
- case 4:
- setarray 'warp_list[1], 1,3,5,2,4,6;
- break;
- case 5:
- setarray 'warp_list[1], 4,2,6,1,5,3;
- break;
- }
- end;
- }
- // Room exit
- 1@sthc,66,88,0 script #sthd_move_back_a_1 WARPNPC,2,2,{
- end;
- OnTouch:
- setarray .@coord[2],
- 39,85, // Activated Warp#sthd_mov_1
- 83,95, // Activated Warp#sthd_mov_2
- 28,39, // Activated Warp#sthd_mov_3
- 210,79, // Activated Warp#sthd_mov_4
- 143,87, // Activated Warp#sthd_mov_5
- 179,47; // Activated Warp#sthd_mov_6
- .@room_num = atoi( replacestr( strnpcinfo(2), "sthd_move_back_a_", "" ) );
- .@index = inarray( 'warp_list[1], .@room_num ) * 2;
- warp 'sthb_map$, .@coord[.@index], .@coord[ .@index+1 ];
- end;
- }
- 1@sthc,116,88,0 duplicate(#sthd_move_back_a_1) #sthd_move_back_a_2 WARPNPC,2,2
- 1@sthc,16,6,0 duplicate(#sthd_move_back_a_1) #sthd_move_back_a_3 WARPNPC,2,2
- 1@sthc,115,6,0 duplicate(#sthd_move_back_a_1) #sthd_move_back_a_4 WARPNPC,2,2
- 1@sthc,66,6,0 duplicate(#sthd_move_back_a_1) #sthd_move_back_a_5 WARPNPC,2,2
- 1@sthc,15,88,0 duplicate(#sthd_move_back_a_1) #sthd_move_back_a_6 WARPNPC,2,2
- // Room entrance
- 1@sthb,34,86,1 script Activated Warp#sthd_mov_1 1_SHADOW_NPC,{
- if (select( "Don't step into the warp.", "Step into the warp." ) == 1) {
- mes "- Dreary warp -";
- mes "- Black light is shining. -";
- close;
- }
- mes "- Black Warp is swirling about. -";
- close2;
- setarray .@coord[2],
- 66,96, // #sthd_move_back_a_1, #sthd_event_13
- 116,96, // #sthd_move_back_a_2, #sthd_event_14
- 16,13, // #sthd_move_back_a_3, #sthd_event_18, Immortal Wind Ghost
- 115,14, // #sthd_move_back_a_4, #sthd_event_15
- 66,14, // #sthd_move_back_a_5, #sthd_event_16
- 15,96; // #sthd_move_back_a_6, #sthd_event_17, Immortal Cursed Knight
- .@room_num = atoi( replacestr( strnpcinfo(2), "sthd_mov_", "" ) );
- .@index = 'warp_list[.@room_num] * 2;
- warp 'sthc_map$, .@coord[.@index], .@coord[ .@index+1 ];
- end;
- }
- 1@sthb,84,99,1 duplicate(Activated Warp#sthd_mov_1) Activated Warp#sthd_mov_2 1_SHADOW_NPC
- 1@sthb,24,40,1 duplicate(Activated Warp#sthd_mov_1) Activated Warp#sthd_mov_3 1_SHADOW_NPC
- 1@sthb,206,80,1 duplicate(Activated Warp#sthd_mov_1) Activated Warp#sthd_mov_4 1_SHADOW_NPC
- 1@sthb,147,86,1 duplicate(Activated Warp#sthd_mov_1) Activated Warp#sthd_mov_5 1_SHADOW_NPC
- 1@sthb,179,51,1 duplicate(Activated Warp#sthd_mov_1) Activated Warp#sthd_mov_6 1_SHADOW_NPC
- 1@sthb,34,85,1 script Deactivated Warp#sthd_mov_1 4_ENERGY_WHITE,{
- if (select( "Desactivate the warp.", "Activate the warp." ) == 1) {
- mes "- Move the fortress to a special place -";
- mes "- Accessible door -";
- mes "- You seen an accessible door -";
- close;
- }
- if (countitem(6960) < 1) {
- mes "- To operate the warp -";
- mes "- You need a key to the Sky Fortress. -";
- close;
- }
- delitem 6960,1;
- mes "- Warp has been -";
- mes "- successfully activated -";
- mes "- Dreary warp -";
- mes "- is brought up -";
- mes "- shining in black -";
- disablenpc();
- enablenpc instance_npcname("Activated Warp#" + strnpcinfo(2));
- close;
- }
- 1@sthb,83,99,1 duplicate(Deactivated Warp#sthd_mov_1) Deactivated Warp#sthd_mov_2 4_ENERGY_WHITE
- 1@sthb,24,39,1 duplicate(Deactivated Warp#sthd_mov_1) Deactivated Warp#sthd_mov_3 4_ENERGY_WHITE
- 1@sthb,206,79,1 duplicate(Deactivated Warp#sthd_mov_1) Deactivated Warp#sthd_mov_4 4_ENERGY_WHITE
- 1@sthb,147,87,1 duplicate(Deactivated Warp#sthd_mov_1) Deactivated Warp#sthd_mov_5 4_ENERGY_WHITE
- 1@sthb,178,51,1 duplicate(Deactivated Warp#sthd_mov_1) Deactivated Warp#sthd_mov_6 4_ENERGY_WHITE
- // Spawn in the rooms
- 1@sthc,66,94,0 script #sthd_event_13 HIDDEN_WARP_NPC,8,8,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_13");
- .@label$ = instance_npcname("#sthd_event_13") + "::OnMobDead";
- monster 'sthc_map$,62,108,"Immortal Nightmare Shadow",3481,1, .@label$;// AS_EVIL_SHADOW1
- monster 'sthc_map$,70,108,"Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,70,101,"Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,66,115,"Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,70,116,"Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,69,127,"Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,64,132,"Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,61,127,"Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,61,101,"Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,62,116,"Immortal Nightmare Shadow",3481,1, .@label$;
- initnpctimer;
- end;
- OnTimer2000:
- if (mobcount( 'sthc_map$, instance_npcname("#sthd_event_13") + "::OnMobDead" ) > 0) {
- initnpctimer;
- end;
- }
- stopnpctimer;
- enablenpc instance_npcname("Sky Fortress Gold Treasure#1");
- end;
- OnMobDead:
- end;
- }
- 1@sthc,116,94,0 script #sthd_event_14 HIDDEN_WARP_NPC,8,8,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_14");
- .@label$ = instance_npcname("#sthd_event_14") + "::OnMobDead";
- monster 'sthc_map$,112,101, "Immortal Angry Shadow",3482,1, .@label$;// AS_EVIL_SHADOW2
- monster 'sthc_map$,120,101, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,119,110, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,115,115, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,114,128, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,112,110, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,118,120, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,110,130, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,111,120, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,120,130, "Immortal Angry Shadow",3482,1, .@label$;
- initnpctimer;
- end;
- OnTimer2000:
- if (mobcount( 'sthc_map$, instance_npcname("#sthd_event_14") + "::OnMobDead" ) > 0) {
- initnpctimer;
- end;
- }
- stopnpctimer;
- enablenpc instance_npcname("Sky Fortress Gold Treasure#2");
- end;
- OnMobDead:
- end;
- }
- 1@sthc,115,12,0 script #sthd_event_15 HIDDEN_WARP_NPC,8,8,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_15");
- .@label$ = instance_npcname("#sthd_event_15") + "::OnMobDead";
- monster 'sthc_map$,120,27, "Immortal Nightmare Shadow",3481,1, .@label$;// AS_EVIL_SHADOW1
- monster 'sthc_map$,120,19, "Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,111,27, "Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,115,33, "Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,111,36, "Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,111,45, "Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,114,49, "Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,119,36, "Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,119,45, "Immortal Nightmare Shadow",3481,1, .@label$;
- monster 'sthc_map$,116,18, "Immortal Nightmare Shadow",3481,1, .@label$;
- initnpctimer;
- end;
- OnTimer2000:
- if (mobcount( 'sthc_map$, instance_npcname("#sthd_event_15") + "::OnMobDead" ) > 0) {
- initnpctimer;
- end;
- }
- stopnpctimer;
- enablenpc instance_npcname("Sky Fortress Gold Treasure#3");
- end;
- OnMobDead:
- end;
- }
- 1@sthc,66,12,0 script #sthd_event_16 HIDDEN_WARP_NPC,8,8,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_16");
- .@label$ = instance_npcname("#sthd_event_16") + "::OnMobDead";
- monster 'sthc_map$,70,18, "Immortal Angry Shadow",3482,1, .@label$;// AS_EVIL_SHADOW2
- monster 'sthc_map$,61,18, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,65,34, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,62,38, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,69,37, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,72,29, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,69,47, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,62,47, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,61,30, "Immortal Angry Shadow",3482,1, .@label$;
- monster 'sthc_map$,64,50, "Immortal Angry Shadow",3482,1, .@label$;
- initnpctimer;
- end;
- OnTimer2000:
- if (mobcount( 'sthc_map$, instance_npcname("#sthd_event_16") + "::OnMobDead" ) > 0) {
- initnpctimer;
- end;
- }
- stopnpctimer;
- enablenpc instance_npcname("Sky Fortress Gold Treasure#4");
- end;
- OnMobDead:
- end;
- }
- // Cursed Knight room
- 1@sthc,15,94,0 script #sthd_event_17 HIDDEN_WARP_NPC,8,8,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_17");
- donpcevent instance_npcname("Sky Fortress Treasure Box") + "::OnStart"; // enabled regardless of the monster count
- monster 'sthc_map$,19,106, "Immortal Death Shadow",3483,1;// AS_EVIL_SHADOW3
- monster 'sthc_map$,12,105, "Immortal Death Shadow",3483,1;
- areamonster 'sthc_map$,11,113,15,117, "Immortal Death Shadow",3483,2;
- areamonster 'sthc_map$,18,116,22,120, "Immortal Death Shadow",3483,2;
- areamonster 'sthc_map$,10,125,14,129, "Immortal Death Shadow",3483,2;
- areamonster 'sthc_map$,17,125,21,129, "Immortal Death Shadow",3483,2;
- end;
- }
- // Wind Ghost room
- 1@sthc,16,11,0 script #sthd_event_18 HIDDEN_WARP_NPC,8,8,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_18");
- donpcevent instance_npcname("Wind Ghost in Experiment") + "::OnStart"; // enabled regardless of the monster count
- monster 'sthc_map$,19,21, "Immortal Death Shadow",3483,1;// AS_EVIL_SHADOW3
- monster 'sthc_map$,12,21, "Immortal Death Shadow",3483,1;
- areamonster 'sthc_map$,9,28,13,32, "Immortal Death Shadow",3483,2;
- areamonster 'sthc_map$,17,29,21,33, "Immortal Death Shadow",3483,2;
- areamonster 'sthc_map$,13,35,17,39, "Immortal Death Shadow",3483,2;
- areamonster 'sthc_map$,13,43,17,47, "Immortal Death Shadow",3483,2;
- end;
- }
- // Chest
- 1@sthc,66,137,4 script Sky Fortress Gold Treasure#1 4_TREASURE_BOX,{
- mes "- You've found -";
- mes "- the Shining Treasure Box. -";
- next;
- if (select( "Open the box.", "Do not open the box." ) == 2) {
- mes "- If you open the box, -";
- mes "- there must be some good items. -";
- close;
- }
- if (is_party_leader() == false) {
- mes "- Those other than the party leader -";
- mes "- don't seem to be able to open the box. -";
- close;
- }
- if (checkweight(5128,1) == 0) {
- mes "- It's full of items -";
- mes "- so you can't open the box. -";
- close;
- }
- donpcevent instance_npcname( strnpcinfo(0) ) + "::OnBar";
- sleep2 3000;
- if (is_party_leader() == false)
- end;
- disablenpc();
- mes "- In that treasure box, -";
- .@r = rand(100);
- if (.@r < 32) {
- .@item_id = 985; // Oridecon
- specialeffect EF_ENHANCE;
- }
- else if (.@r < 64) {
- .@item_id = 984; // Elunium
- specialeffect EF_ENHANCE;
- }
- else if (.@r < 84) {
- .@item_id = 608; // Seed_Of_Yggdrasil
- specialeffect EF_ENHANCE;
- }
- else if (.@r < 94) {
- .@item_id = 607; // Yggdrasilberry
- specialeffect EF_ENHANCE;
- }
- else if (.@r < 99) {
- .@item_id = 616; // Old_Card_Album
- specialeffect EF_ENHANCE;
- }
- else if (.@r == 99) {
- .@item_id = 12246; // Magic_Card_Album
- specialeffect EF_GUMGANG2;
- specialeffect EF_VOLCANO;
- specialeffect EF_PNEUMA;
- }
- getitem .@item_id, 1;
- mes "- you've found the " + getitemname(.@item_id) + ". -";
- close;
- OnBar:
- progressbar_npc "000000",3;
- end;
- }
- 1@sthc,116,137,4 duplicate(Sky Fortress Gold Treasure#1) Sky Fortress Gold Treasure#2 4_TREASURE_BOX
- 1@sthc,116,55,4 duplicate(Sky Fortress Gold Treasure#1) Sky Fortress Gold Treasure#3 4_TREASURE_BOX
- 1@sthc,66,55,4 duplicate(Sky Fortress Gold Treasure#1) Sky Fortress Gold Treasure#4 4_TREASURE_BOX
- // Cursed Knight
- 1@sthc,16,132,4 script Sky Fortress Treasure Box CLEAR_NPC,{
- mes "- You've found -";
- mes "- the Shining Treasure Box. -";
- next;
- if (select( "Open the box.", "Do not open the box." ) == 2) {
- mes "- If you open the box, -";
- mes "- there must be some good items. -";
- close;
- }
- if (is_party_leader() == false) {
- mes "- Those other than the party leader -";
- mes "- don't seem to be able to open the box. -";
- close;
- }
- if (checkweight(2655,1) == 0) {
- mes "- It's full of items -";
- mes "- so you can't open the box. -";
- close;
- }
- mes "- The treasure box is opening up -";
- mes "- and something suddenly -";
- mes "- showed up in the front. -";
- specialeffect EF_SILENT_BREEZE;
- specialeffect EF_LOCKON;
- unittalk getcharid(3), "" + strcharinfo(0) + " : You may have touched something wrong...";
- disablenpc instance_npcname("Sky Fortress Treasure Box");
- stopnpctimer;
- donpcevent instance_npcname("Immortal Cursed Knight#") + "::OnEvent";
- close;
- OnStart:
- enablenpc instance_npcname("Sky Fortress Treasure Box");
- initnpctimer;
- end;
- OnTimer8000:
- specialeffect EF_LIGHTSPHERE2;
- end;
- OnTimer9000:
- initnpctimer;
- end;
- }
- 1@sthc,16,129,4 script Immortal Cursed Knight# 4_AS_BLOODY_KNIGHT,{
- end;
- OnEvent:
- enablenpc instance_npcname("Immortal Cursed Knight#");
- sleep 2000;
- npctalk "Immortal Cursed Knight: What kind of intruder is trying to wake me up...";
- sleep 2000;
- npctalk "Immortal Cursed Knight: Doom to the petty thief coveting the treasure at the fortress...";
- sleep 2000;
- disablenpc instance_npcname("Immortal Cursed Knight#");
- monster 'sthc_map$,16,129,"Immortal Cursed Knight",3474,1, instance_npcname("Immortal Cursed Knight#") + "::OnKnightB"; // AS_BLOODY_KNIGHT
- 'cursed_knight = $@mobid[0];
- initnpctimer;
- end;
- OnTimer2000:
- if (mobcount('sthd_map$, instance_npcname("Immortal Cursed Knight#") + "::OnKnightB") < 1) {
- stopnpctimer;
- 'cursed_knight = 0;
- mapannounce 'sthc_map$, "Stefan Jack Earnest Wolf: Fell down... Immortal Cursed Knight... Sad... Will kill... The intruder...", bc_map,0xEBFF;
- end;
- }
- if ('cursed_knight > 0) {
- .@r = rand(30);
- if (.@r == 0)
- unittalk 'cursed_knight, "Immortal Cursed Knight: Glory to Bijou! Death to the intruders!";
- else if (.@r == 1)
- unittalk 'cursed_knight, "Immortal Cursed Knight: The perishable is nothing but a handful of ash before the Immortal Knight!";
- else if (.@r == 2)
- unittalk 'cursed_knight, "Immortal Cursed Knight: I can't...I can't seem to control the power!";
- }
- end;
- OnTimer3000:
- initnpctimer;
- end;
- OnKnightB:
- end;
- }
- // Wind Ghost
- 1@sthc,16,54,4 script Wind Ghost in Experiment CLEAR_NPC,{
- if (select( "Examine the test tube.", "Do not examine the test tube." ) == 2) {
- mes "- I'm sure there is something -";
- mes "- extremely fearsome. -";
- close;
- }
- if (is_party_leader() == false) {
- mes "- Those other than the party leader -";
- mes "- don't seem to be able operate the test tube. -";
- close;
- }
- mes "- The test tube is opening up -";
- mes "- and something suddenly -";
- mes "- showed up in the front. -";
- specialeffect EF_SILENT_BREEZE;
- specialeffect EF_LOCKON;
- unittalk getcharid(3), "" + strcharinfo(0) + " : What...what is this?";
- donpcevent instance_npcname("Immortal Wind Ghost#01") + "::OnEvent";
- stopnpctimer;
- disablenpc instance_npcname("Wind Ghost in Experiment");
- close;
- OnStart:
- enablenpc instance_npcname("Wind Ghost in Experiment");
- initnpctimer;
- end;
- OnTimer8000:
- specialeffect EF_LIGHTSPHERE2;
- end;
- OnTimer9000:
- initnpctimer;
- end;
- }
- 1@sthc,15,49,4 script Immortal Wind Ghost#01 4_AS_WIND_GHOST,{
- end;
- OnEvent:
- enablenpc instance_npcname("Immortal Wind Ghost#01");
- sleep 2000;
- npctalk "Immortal Wind Ghost: Foolish human...You're praying for death...";
- sleep 2000;
- npctalk "Immortal Wind Ghost: The power boiling inside my body...It sure feels good...";
- sleep 2000;
- disablenpc instance_npcname("Immortal Wind Ghost#01");
- monster 'sthc_map$,15,49,"Immortal Wind Ghost",3475,1, instance_npcname("Immortal Wind Ghost#01") + "::OnWindDead"; // AS_WIND_GHOST
- 'wind_ghost = $@mobid[0];
- initnpctimer;
- end;
- OnTimer2000:
- if (mobcount('sthd_map$, instance_npcname("Immortal Wind Ghost#01") + "::OnWindDead") < 1) {
- stopnpctimer;
- 'wind_ghost = 0;
- mapannounce 'sthc_map$, "Stefan Jack Earnest Wolf: Experiment... Became stronger... Immortal Wind Ghost...is dead...Death to all...", bc_map,0xEBFF;
- end;
- }
- if ('wind_ghost > 0) {
- .@r = rand(30);
- if (.@r == 0)
- unittalk 'wind_ghost, "Immortal Wind Ghost: I feel more power filling up inside...";
- else if (.@r == 1)
- unittalk 'wind_ghost, "Immortal Wind Ghost: I will kill you slowly...from the deep side of your lung...";
- else if (.@r == 2)
- unittalk 'wind_ghost, "Immortal Wind Ghost: Only death awaits the humans who dare to go against me...";
- }
- end;
- OnTimer3000:
- initnpctimer;
- end;
- OnWindDead:
- end;
- }
- // Spawn stairs - step 1
- 1@sthb,65,86,0 script #sthd_event_5 HIDDEN_WARP_NPC,5,5,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_5");
- monster 'sthb_map$,61,84,"Immortal Fortress Legionnaire",3477,1; // AS_IMMORTAL_CORPS
- monster 'sthb_map$,51,87,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,37,81,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,41,85,"Immortal Zombie Assault",3479,1; // AS_ZOMBIE_MASTER
- monster 'sthb_map$,41,49,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,52,50,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,82,50,"Immortal Cursed Zombie",3480,1; // AS_CURSED_SOLDIER
- areamonster 'sthb_map$,34,57,38,61,"Immortal Cursed Zombie",3480,2;
- if (rand(100) < 20)
- monster 'sthb_map$,80,49,"Sky Fortress Key Keeper",3478,1; // AS_ZOMBIE_SLAUGHTER
- end;
- }
- 1@sthb,62,49,0 script #sthd_event_6 HIDDEN_WARP_NPC,5,5,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_6");
- monster 'sthb_map$,79,48,"Immortal Fortress Legionnaire",3477,1; // AS_IMMORTAL_CORPS
- monster 'sthb_map$,67,50,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,85,60,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,82,74,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,83,49,"Immortal Zombie Assault",3479,1; // AS_ZOMBIE_MASTER
- monster 'sthb_map$,83,71,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,79,96,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,69,95,"Immortal Zombie Assault",3479,1;
- areamonster 'sthb_map$,82,92,86,96,"Immortal Cursed Zombie",3480,2; // AS_CURSED_SOLDIER
- areamonster 'sthb_map$,83,84,87,88,"Immortal Cursed Zombie",3480,2;
- if (rand(100) < 20)
- monster 'sthb_map$,73,96,"Sky Fortress Key Keeper",3478,1;
- end;
- }
- 1@sthb,57,96,0 script #sthd_event_7 HIDDEN_WARP_NPC,5,5,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_7");
- monster 'sthb_map$,52,94,"Immortal Fortress Legionnaire",3477,1; // AS_IMMORTAL_CORPS
- monster 'sthb_map$,42,98,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,29,91,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,25,78,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,28,96,"Immortal Zombie Assault",3479,1; // AS_ZOMBIE_MASTER
- monster 'sthb_map$,27,69,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,26,55,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,32,41,"Immortal Zombie Assault",3479,1;
- areamonster 'sthb_map$,27,65,31,69,"Immortal Cursed Zombie",3480,2; // AS_CURSED_SOLDIER
- areamonster 'sthb_map$,25,41,29,45,"Immortal Cursed Zombie",3480,2;
- if (rand(100) < 20)
- monster 'sthb_map$,27,54,"Sky Fortress Key Keeper",3478,1;
- end;
- }
- 1@sthb,32,39,0 script #sthd_event_8 HIDDEN_WARP_NPC,5,5,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_8");
- monster 'sthb_map$,53,38,"Immortal Fortress Legionnaire",3477,1; // AS_IMMORTAL_CORPS
- monster 'sthb_map$,64,41,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,78,38,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,43,41,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,28,40,"Immortal Zombie Assault",3479,1; // AS_ZOMBIE_MASTER
- monster 'sthb_map$,59,40,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,92,45,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,95,57,"Immortal Zombie Assault",3479,1;
- areamonster 'sthb_map$,92,37,96,41,"Immortal Cursed Zombie",3480,2; // AS_CURSED_SOLDIER
- areamonster 'sthb_map$,87,39,91,43,"Immortal Cursed Zombie",3480,2;
- if (rand(100) < 20)
- monster 'sthb_map$,75,40,"Sky Fortress Key Keeper",3478,1;
- end;
- }
- // Spawn stairs - step 2
- 1@sthb,209,64,0 script #sthd_event_9 HIDDEN_WARP_NPC,5,5,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_9");
- monster 'sthb_map$,207,50,"Immortal Fortress Legionnaire",3477,1; // AS_IMMORTAL_CORPS
- monster 'sthb_map$,205,38,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,195,36,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,209,38,"Immortal Zombie Assault",3479,1; // AS_ZOMBIE_MASTER
- monster 'sthb_map$,161,39,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,150,36,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,144,38,"Immortal Cursed Zombie",3480,1; // AS_CURSED_SOLDIER
- areamonster 'sthb_map$,169,34,173,38,"Immortal Cursed Zombie",3480,2;
- if (rand(100) < 20)
- monster 'sthb_map$,163,38,"Sky Fortress Key Keeper",3478,1;
- end;
- }
- 1@sthb,144,47,0 script #sthd_event_10 HIDDEN_WARP_NPC,5,5,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_10");
- monster 'sthb_map$,142,61,"Immortal Fortress Legionnaire",3477,1; // AS_IMMORTAL_CORPS
- monster 'sthb_map$,145,71,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,142,83,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,147,94,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,143,64,"Immortal Zombie Assault",3479,1; // AS_ZOMBIE_MASTER
- monster 'sthb_map$,144,78,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,165,95,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,173,92,"Immortal Zombie Assault",3479,1;
- areamonster 'sthb_map$,154,90,158,94,"Immortal Cursed Zombie",3480,2; // AS_CURSED_SOLDIER
- areamonster 'sthb_map$,141,92,145,96,"Immortal Cursed Zombie",3480,2;
- if (rand(100) < 20)
- monster 'sthb_map$,154,96,"Sky Fortress Key Keeper",3478,1;
- end;
- }
- 1@sthb,178,94,0 script #sthd_event_11 HIDDEN_WARP_NPC,5,5,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_11");
- monster 'sthb_map$,187,92,"Immortal Fortress Legionnaire",3477,1; // AS_IMMORTAL_CORPS
- monster 'sthb_map$,200,90,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,198,81,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,201,72,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,199,94,"Immortal Zombie Assault",3479,1; // AS_ZOMBIE_MASTER
- monster 'sthb_map$,199,70,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,195,48,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,185,47,"Immortal Zombie Assault",3479,1;
- areamonster 'sthb_map$,196,60,200,64,"Immortal Cursed Zombie",3480,2; // AS_CURSED_SOLDIER
- areamonster 'sthb_map$,198,45,202,49,"Immortal Cursed Zombie",3480,2;
- if (rand(100) < 20)
- monster 'sthb_map$,202,56,"Sky Fortress Key Keeper",3478,1;
- end;
- }
- 1@sthb,179,48,0 script #sthd_event_12 HIDDEN_WARP_NPC,5,5,{
- end;
- OnTouch:
- disablenpc instance_npcname("#sthd_event_12");
- monster 'sthb_map$,168,49,"Immortal Fortress Legionnaire",3477,1; // AS_IMMORTAL_CORPS
- monster 'sthb_map$,159,46,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,154,52,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,152,65,"Immortal Fortress Legionnaire",3477,1;
- monster 'sthb_map$,155,48,"Immortal Zombie Assault",3479,1; // AS_ZOMBIE_MASTER
- monster 'sthb_map$,154,73,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,159,84,"Immortal Zombie Assault",3479,1;
- monster 'sthb_map$,171,82,"Immortal Zombie Assault",3479,1;
- areamonster 'sthb_map$,151,82,155,86,"Immortal Cursed Zombie",3480,2; // AS_CURSED_SOLDIER
- areamonster 'sthb_map$,153,75,157,79,"Immortal Cursed Zombie",3480,2;
- if (rand(100) < 20)
- monster 'sthb_map$,156,46,"Sky Fortress Key Keeper",3478,1;
- end;
- }
- // Main event - 2nd step
- 1@sthb,207,83,0 script #Stefan_Action2 HIDDEN_WARP_NPC,6,6,{
- end;
- OnTouch:
- disablenpc instance_npcname("#Stefan_Action2");
- setpcblock PCBLOCK_NPC, true;
- sleep2 1000;
- cutin "stephan_j_e_w.bmp",2;
- npctalk "Stefan: ~Grunts~", instance_npcname("Stefan.J.E.Wolf#sthd_03");
- sleep2 2000;
- npctalk "Earnest: Filthy humans...Stop them...Guard...the holy fortress...", instance_npcname("Stefan.J.E.Wolf#sthd_03");
- specialeffect2 EF_LOCKON;
- sleep2 2000;
- unittalk getcharid(3), "" + strcharinfo(0) + " : It's extremely vigilant of me.";
- sleep2 2000;
- unittalk getcharid(3), "" + strcharinfo(0) + " : I think there must be something if we keep following";
- sleep2 2000;
- unittalk getcharid(3), "" + strcharinfo(0) + " : that Golem's trace!";
- sleep2 2000;
- setpcblock PCBLOCK_NPC, false;
- mapannounce 'sthb_map$, "Stefan Jack Earnest Wolf: Holy fortress...Intruders...How wicked...Stop them...", bc_map,0xEBFF;
- cutin "",255;
- specialeffect2 EF_LOCKON;
- disablenpc instance_npcname("Stefan.J.E.Wolf#sthd_03");
- enablenpc instance_npcname("#Stefan for display3");
- enablenpc instance_npcname("Stefan.J.E.Wolf#sthd_04");
- end;
- }
- 1@sthb,207,83,8 duplicate(dummy_npc) Stefan.J.E.Wolf#sthd_03 4_AS_RAGGED_GOLEM
- // Final step
- 1@sthd,103,115,6 duplicate(dummy_npc) Stefan.J.E.Wolf#sthd_04 4_AS_RAGGED_GOLEM
- 1@sthd,103,115,0 script #Stefan for display3 HIDDEN_WARP_NPC,10,10,{
- end;
- OnTouch:
- .@stephan$ = instance_npcname("Stefan.J.E.Wolf#sthd_04");
- disablenpc instance_npcname("#Stefan for display3");
- setpcblock PCBLOCK_NPC, true;
- unittalk getcharid(3), "" + strcharinfo(0) + " : So this is finally the last...I suppose he must be the cause of Prontera Invasion, isn't he?";
- sleep2 2000;
- cutin "stephan_j_e_w.bmp",2;
- npctalk "Wolf: Adventurers...A bunch of foolish greenhorns...", .@stephan$;
- sleep2 2000;
- npctalk "Jack: I must follow...order...from Bijou...", .@stephan$;
- sleep2 2000;
- unittalk getcharid(3), "" + strcharinfo(0) + " : Bijou? So, was Golem the mere guardian around here? Is that it...?";
- sleep2 2000;
- npctalk "Stefan: ~Growls~", .@stephan$;
- sleep2 2000;
- npctalk "Earnest: Filthy worms...Can't lead life as intended...Immortal power...My body...", .@stephan$;
- sleep2 2000;
- unittalk getcharid(3), "" + strcharinfo(0) + " : I'd better defeat it first.";
- sleep2 2000;
- mapannounce 'sthd_map$, "Stefan Jack Earnest Wolf: Soldiers...Bijou's...fortress...Cut them all...I'll step up...I'll kill them...all...", bc_map,0xEBFF;
- sleep2 2000;
- cutin "",255;
- specialeffect EF_LOCKON;
- sleep2 2000;
- setpcblock PCBLOCK_NPC, false;
- disablenpc .@stephan$;
- donpcevent instance_npcname("#Last_Boss") + "::OnStart";
- areamonster 'sthd_map$,84,76,124,116,"Zombie Soldier of Bijou",3476,10, instance_npcname("#Stefan for display3") + "::OnMobDead"; // AS_ZOMBIE
- initnpctimer;
- end;
- OnTimer30000:
- stopnpctimer;
- mapannounce 'sthd_map$, "Stefan Jack Earnest Wolf: Cursed soldiers...Come...Bring it on...", bc_map,0xEBFF;
- monster 'sthd_map$,0,0,"Cursed Soldier of Bijou",3485,5, instance_npcname("#Stefan for display3") + "::OnMobDead"; // AS_D_CURSED_SOLDIER
- end;
- OnStop:
- killmonster 'sthd_map$, instance_npcname("#Stefan for display3") + "::OnMobDead";
- stopnpctimer;
- end;
- OnMobDead:
- end;
- }
- 1@sthd,96,127,0 script #Last_Boss HIDDEN_WARP_NPC,{
- end;
- OnStart:
- monster 'sthd_map$,103,115,"Stefan.J.E.Wolf",3473,1, instance_npcname("#Last_Boss") + "::OnBossDead"; // AS_RAGGED_GOLEM
- 'boss_id = $@mobid[0];
- initnpctimer;
- end;
- OnBossDead:
- end;
- OnTimer1000:
- if ('boss_id < 1 || mobcount( 'sthd_map$, instance_npcname("#Last_Boss") + "::OnBossDead" ) < 1) {
- 'boss_id = 0;
- 'pantheon_event[0] = 1;
- 'pantheon_event[1] = 1;
- donpcevent instance_npcname("#Last_Boss") + "::OnLastWord";
- donpcevent instance_npcname("#Last_Boss_Monster") + "::OnReset";
- donpcevent instance_npcname("#Last_Boss2_Monster") + "::OnReset";
- donpcevent instance_npcname("#Stefan for display3") + "::OnStop";
- donpcevent instance_npcname("Sky Fortress Escape Warp#end_warp") + "::OnEnable";
- stopnpctimer;
- end;
- }
- getunitdata 'boss_id, .@data;
- .@hp = .@data[UMOB_HP];
- if (.@hp > 6000000 && .@hp < 14000000) {
- if ('pantheon_event[0] == 0) {
- 'pantheon_event[0] = 1;
- donpcevent instance_npcname("#Last_Boss2_Monster") + "::OnStart";
- mapannounce 'sthd_map$, "Stefan Jack Earnest Wolf: Strong...Adventurer... ~Growls~ My... soliders... Get out...", bc_map,0xEBFF;
- }
- }
- else if (.@hp > 5000000 && .@hp < 6000001)
- mapannounce 'sthd_map$, "Stefan Jack Earnest Wolf: I'll destroy you...I'll be smashing you...Come, the Cursed Soldiers...Ground-shaking...", bc_map,0xEBFF;
- else if (.@hp < 5000001) {
- if ('pantheon_event[1] == 0) {
- 'pantheon_event[1] = 1;
- donpcevent instance_npcname("#Last_Boss2_Monster") + "::OnReset";
- donpcevent instance_npcname("#Last_Boss_Monster") + "::OnStart";
- }
- .@bomb[0] = rand(1,7);
- .@bomb[1] = rand(1,7);
- .@bomb[2] = rand(1,8);
- .@bomb[3] = rand(1,7);
- .@bomb[4] = rand(1,8);
- .@bomb[5] = rand(1,7);
- if (.@bomb[0] == 1) {
- .@pant[0] = 1;
- if (.@bomb[3] == 1) setarray .@pant[1],8,23;
- else if (.@bomb[3] == 2) setarray .@pant[1],9,21;
- else if (.@bomb[3] == 3) setarray .@pant[1],10,24;
- else if (.@bomb[3] == 4) setarray .@pant[1],11;
- else if (.@bomb[3] == 5) setarray .@pant[1],12;
- else if (.@bomb[3] == 6) setarray .@pant[1],13;
- else if (.@bomb[3] == 7) setarray .@pant[1],14,27;
- }
- else if (.@bomb[0] == 2) {
- .@pant[0] = 2;
- if (.@bomb[3] == 1) setarray .@pant[1],8,23;
- else if (.@bomb[3] == 2) setarray .@pant[1],9,1;
- else if (.@bomb[3] == 3) setarray .@pant[1],10,21;
- else if (.@bomb[3] == 4) setarray .@pant[1],11,24;
- else if (.@bomb[3] == 5) setarray .@pant[1],12,27;
- else if (.@bomb[3] == 6) setarray .@pant[1],13;
- else if (.@bomb[3] == 7) setarray .@pant[1],14;
- }
- else if (.@bomb[0] == 3) {
- .@pant[0] = 3;
- if (.@bomb[3] == 1) setarray .@pant[1],8,23;
- else if (.@bomb[3] == 2) setarray .@pant[1],9,24;
- else if (.@bomb[3] == 3) setarray .@pant[1],10,1;
- else if (.@bomb[3] == 4) setarray .@pant[1],11,21;
- else if (.@bomb[3] == 5) setarray .@pant[1],12,27;
- else if (.@bomb[3] == 6) setarray .@pant[1],13;
- else if (.@bomb[3] == 7) setarray .@pant[1],14;
- }
- else if (.@bomb[0] == 4) {
- .@pant[0] = 4;
- if (.@bomb[3] == 1) setarray .@pant[1],8,23;
- else if (.@bomb[3] == 2) setarray .@pant[1],9,24;
- else if (.@bomb[3] == 3) setarray .@pant[1],10;
- else if (.@bomb[3] == 4) setarray .@pant[1],11,1;
- else if (.@bomb[3] == 5) setarray .@pant[1],12,21;
- else if (.@bomb[3] == 6) setarray .@pant[1],13,27;
- else if (.@bomb[3] == 7) setarray .@pant[1],14;
- }
- else if (.@bomb[0] == 5) {
- .@pant[0] = 5;
- if (.@bomb[3] == 1) setarray .@pant[1],8,23;
- else if (.@bomb[3] == 2) setarray .@pant[1],9,24;
- else if (.@bomb[3] == 3) setarray .@pant[1],10;
- else if (.@bomb[3] == 4) setarray .@pant[1],11,27;
- else if (.@bomb[3] == 5) setarray .@pant[1],12,1;
- else if (.@bomb[3] == 6) setarray .@pant[1],13,21;
- else if (.@bomb[3] == 7) setarray .@pant[1],14;
- }
- else if (.@bomb[0] == 6) {
- setarray .@pant[0],6,26;
- if (.@bomb[3] == 1) setarray .@pant[2],8,23;
- else if (.@bomb[3] == 2) setarray .@pant[2],9,24;
- else if (.@bomb[3] == 3) setarray .@pant[2],10;
- else if (.@bomb[3] == 4) setarray .@pant[2],11,27;
- else if (.@bomb[3] == 5) setarray .@pant[2],12;
- else if (.@bomb[3] == 6) setarray .@pant[2],13,1;
- else if (.@bomb[3] == 7) setarray .@pant[2],14,21;
- }
- else if (.@bomb[0] == 7) {
- .@pant[0] = 7;
- if (.@bomb[3] == 1) setarray .@pant[1],8,23;
- else if (.@bomb[3] == 2) setarray .@pant[1],9,21;
- else if (.@bomb[3] == 3) setarray .@pant[1],10,24;
- else if (.@bomb[3] == 4) setarray .@pant[1],11;
- else if (.@bomb[3] == 5) setarray .@pant[1],12,27;
- else if (.@bomb[3] == 6) setarray .@pant[1],13;
- else if (.@bomb[3] == 7) setarray .@pant[1],14,1;
- }
- .@s = getarraysize(.@pant);
- if (.@bomb[1] == 1) {
- setarray .@pant[.@s],8,23;
- .@s += 2;
- if (.@bomb[4] == 1) setarray .@pant[.@s],15,5;
- else if (.@bomb[4] == 2) setarray .@pant[.@s],16,25;
- else if (.@bomb[4] == 3) setarray .@pant[.@s],17;
- else if (.@bomb[4] == 4) setarray .@pant[.@s],18;
- else if (.@bomb[4] == 5) setarray .@pant[.@s],19;
- else if (.@bomb[4] == 6) setarray .@pant[.@s],20;
- else if (.@bomb[4] == 7) setarray .@pant[.@s],21;
- else if (.@bomb[4] == 8) setarray .@pant[.@s],22;
- }
- else if (.@bomb[1] == 2) {
- setarray .@pant[.@s],9,24;
- .@s += 2;
- if (.@bomb[4] == 1) setarray .@pant[.@s],15;
- else if (.@bomb[4] == 2) setarray .@pant[.@s],16,5;
- else if (.@bomb[4] == 3) setarray .@pant[.@s],17,25;
- else if (.@bomb[4] == 4) setarray .@pant[.@s],18;
- else if (.@bomb[4] == 5) setarray .@pant[.@s],19;
- else if (.@bomb[4] == 6) setarray .@pant[.@s],20;
- else if (.@bomb[4] == 7) setarray .@pant[.@s],21;
- else if (.@bomb[4] == 8) setarray .@pant[.@s],22;
- }
- else if (.@bomb[1] == 3) {
- .@pant[.@s] = 10;
- .@s++;
- if (.@bomb[4] == 1) setarray .@pant[.@s],15;
- else if (.@bomb[4] == 2) setarray .@pant[.@s],16;
- else if (.@bomb[4] == 3) setarray .@pant[.@s],17,5;
- else if (.@bomb[4] == 4) setarray .@pant[.@s],18,25;
- else if (.@bomb[4] == 5) setarray .@pant[.@s],19;
- else if (.@bomb[4] == 6) setarray .@pant[.@s],20;
- else if (.@bomb[4] == 7) setarray .@pant[.@s],21;
- else if (.@bomb[4] == 8) setarray .@pant[.@s],22;
- }
- else if (.@bomb[1] == 4) {
- .@pant[.@s] = 11;
- .@s++;
- if (.@bomb[4] == 1) setarray .@pant[.@s],15;
- else if (.@bomb[4] == 2) setarray .@pant[.@s],16;
- else if (.@bomb[4] == 3) setarray .@pant[.@s],17;
- else if (.@bomb[4] == 4) setarray .@pant[.@s],18,5;
- else if (.@bomb[4] == 5) setarray .@pant[.@s],19,25;
- else if (.@bomb[4] == 6) setarray .@pant[.@s],20;
- else if (.@bomb[4] == 7) setarray .@pant[.@s],21;
- else if (.@bomb[4] == 8) setarray .@pant[.@s],22;
- }
- else if (.@bomb[1] == 5) {
- .@pant[.@s] = 12;
- .@s++;
- if (.@bomb[4] == 1) setarray .@pant[.@s],15;
- else if (.@bomb[4] == 2) setarray .@pant[.@s],16;
- else if (.@bomb[4] == 3) setarray .@pant[.@s],17;
- else if (.@bomb[4] == 4) setarray .@pant[.@s],18;
- else if (.@bomb[4] == 5) setarray .@pant[.@s],19,5;
- else if (.@bomb[4] == 6) setarray .@pant[.@s],20,25;
- else if (.@bomb[4] == 7) setarray .@pant[.@s],21;
- else if (.@bomb[4] == 8) setarray .@pant[.@s],22;
- }
- else if (.@bomb[1] == 6) {
- .@pant[.@s] = 13;
- .@s++;
- if (.@bomb[4] == 1) setarray .@pant[.@s],15;
- else if (.@bomb[4] == 2) setarray .@pant[.@s],16;
- else if (.@bomb[4] == 3) setarray .@pant[.@s],17;
- else if (.@bomb[4] == 4) setarray .@pant[.@s],18;
- else if (.@bomb[4] == 5) setarray .@pant[.@s],19;
- else if (.@bomb[4] == 6) setarray .@pant[.@s],20,5;
- else if (.@bomb[4] == 7) setarray .@pant[.@s],21,25;
- else if (.@bomb[4] == 8) setarray .@pant[.@s],22;
- }
- else if (.@bomb[1] == 7) {
- .@pant[.@s] = 14;
- .@s++;
- if (.@bomb[4] == 1) setarray .@pant[.@s],15;
- else if (.@bomb[4] == 2) setarray .@pant[.@s],16;
- else if (.@bomb[4] == 3) setarray .@pant[.@s],17;
- else if (.@bomb[4] == 4) setarray .@pant[.@s],18;
- else if (.@bomb[4] == 5) setarray .@pant[.@s],19;
- else if (.@bomb[4] == 6) setarray .@pant[.@s],20;
- else if (.@bomb[4] == 7) setarray .@pant[.@s],21,5;
- else if (.@bomb[4] == 8) setarray .@pant[.@s],22,25;
- }
- if (.@bomb[2] == 1) {
- .@pant[.@s] = 15;
- .@s++;
- if (.@bomb[5] == 1) setarray .@pant[.@s],1,22;
- else if (.@bomb[5] == 2) setarray .@pant[.@s],2,23;
- else if (.@bomb[5] == 3) setarray .@pant[.@s],3,26;
- else if (.@bomb[5] == 4) setarray .@pant[.@s],4;
- else if (.@bomb[5] == 5) setarray .@pant[.@s],5;
- else if (.@bomb[5] == 6) setarray .@pant[.@s],6;
- else if (.@bomb[5] == 7) setarray .@pant[.@s],7;
- }
- else if (.@bomb[2] == 2) {
- .@pant[.@s] = 16;
- .@s++;
- if (.@bomb[5] == 1) setarray .@pant[.@s],1;
- else if (.@bomb[5] == 2) setarray .@pant[.@s],2,22;
- else if (.@bomb[5] == 3) setarray .@pant[.@s],3,23;
- else if (.@bomb[5] == 4) setarray .@pant[.@s],4,26;
- else if (.@bomb[5] == 5) setarray .@pant[.@s],5;
- else if (.@bomb[5] == 6) setarray .@pant[.@s],6;
- else if (.@bomb[5] == 7) setarray .@pant[.@s],7;
- }
- else if (.@bomb[2] == 3) {
- setarray .@pant[.@s],17,25;
- .@s += 2;
- if (.@bomb[5] == 1) setarray .@pant[.@s],1;
- else if (.@bomb[5] == 2) setarray .@pant[.@s],2;
- else if (.@bomb[5] == 3) setarray .@pant[.@s],3,22;
- else if (.@bomb[5] == 4) setarray .@pant[.@s],4,23;
- else if (.@bomb[5] == 5) setarray .@pant[.@s],5,26;
- else if (.@bomb[5] == 6) setarray .@pant[.@s],6;
- else if (.@bomb[5] == 7) setarray .@pant[.@s],7;
- }
- else if (.@bomb[2] == 4) {
- .@pant[.@s] = 18;
- .@s++;
- if (.@bomb[5] == 1) setarray .@pant[.@s],1;
- else if (.@bomb[5] == 2) setarray .@pant[.@s],2;
- else if (.@bomb[5] == 3) setarray .@pant[.@s],3;
- else if (.@bomb[5] == 4) setarray .@pant[.@s],4,22;
- else if (.@bomb[5] == 5) setarray .@pant[.@s],5,23;
- else if (.@bomb[5] == 6) setarray .@pant[.@s],6,26;
- else if (.@bomb[5] == 7) setarray .@pant[.@s],7;
- }
- else if (.@bomb[2] == 5) {
- setarray .@pant[.@s],19,27;
- .@s += 2;
- if (.@bomb[5] == 1) setarray .@pant[.@s],1;
- else if (.@bomb[5] == 2) setarray .@pant[.@s],2;
- else if (.@bomb[5] == 3) setarray .@pant[.@s],3;
- else if (.@bomb[5] == 4) setarray .@pant[.@s],4;
- else if (.@bomb[5] == 5) setarray .@pant[.@s],5,22;
- else if (.@bomb[5] == 6) setarray .@pant[.@s],6,23;
- else if (.@bomb[5] == 7) setarray .@pant[.@s],7,26;
- }
- else if (.@bomb[2] == 6) {
- .@pant[.@s] = 20;
- .@s++;
- if (.@bomb[5] == 1) setarray .@pant[.@s],1,26;
- else if (.@bomb[5] == 2) setarray .@pant[.@s],2;
- else if (.@bomb[5] == 3) setarray .@pant[.@s],3;
- else if (.@bomb[5] == 4) setarray .@pant[.@s],4;
- else if (.@bomb[5] == 5) setarray .@pant[.@s],5;
- else if (.@bomb[5] == 6) setarray .@pant[.@s],6,22;
- else if (.@bomb[5] == 7) setarray .@pant[.@s],7,23;
- }
- else if (.@bomb[2] == 7) {
- .@pant[.@s] = 21;
- .@s++;
- if (.@bomb[5] == 1) setarray .@pant[.@s],1,23;
- else if (.@bomb[5] == 2) setarray .@pant[.@s],2;
- else if (.@bomb[5] == 3) setarray .@pant[.@s],3,26;
- else if (.@bomb[5] == 4) setarray .@pant[.@s],4;
- else if (.@bomb[5] == 5) setarray .@pant[.@s],5;
- else if (.@bomb[5] == 6) setarray .@pant[.@s],6;
- else if (.@bomb[5] == 7) setarray .@pant[.@s],7,22;
- }
- else if (.@bomb[2] == 8) {
- .@pant[.@s] = 22;
- .@s++;
- if (.@bomb[5] == 1) setarray .@pant[.@s],1;
- else if (.@bomb[5] == 2) setarray .@pant[.@s],2,23;
- else if (.@bomb[5] == 3) setarray .@pant[.@s],3,26;
- else if (.@bomb[5] == 4) setarray .@pant[.@s],4;
- else if (.@bomb[5] == 5) setarray .@pant[.@s],5;
- else if (.@bomb[5] == 6) setarray .@pant[.@s],6;
- else if (.@bomb[5] == 7) setarray .@pant[.@s],7;
- }
- .@s = getarraysize(.@pant);
- for ( .@i = 0; .@i < .@s; ++.@i ) {
- if (.@tmp[.@pant[.@i]]) // prevent to trigger the same event multiple times
- continue;
- .@tmp[.@pant[.@i]] = true;
- donpcevent instance_npcname("#pantheon_damage" + .@pant[.@i]) + "::OnEvent";
- }
- }
- end;
- OnTimer1500:
- .@r = rand(1,30);
- if (.@r == 1)
- unittalk 'boss_id, "Wolf: Don't get away... Come closer... I'll kill you...";
- else if (.@r < 11)
- unittalk 'boss_id, "Stefan: ~Groans~ ~Growls~";
- else if (.@r == 20)
- unittalk 'boss_id, "Jack: I'm hurt... I'm scared... I take courage... I hit you...";
- else if (.@r == 30)
- unittalk 'boss_id, "Earnest: I'm angry... It's noisy... I'll wipe them all up...";
- end;
- OnTimer3000:
- OnTimer4500:
- if ('boss_id < 1 || mobcount( 'sthd_map$, instance_npcname("#Last_Boss") + "::OnBossDead" ) < 1) {
- 'boss_id = 0;
- 'pantheon_event[0] = 1;
- 'pantheon_event[1] = 1;
- donpcevent instance_npcname("#Last_Boss") + "::OnLastWord";
- donpcevent instance_npcname("#Last_Boss_Monster") + "::OnReset";
- donpcevent instance_npcname("#Last_Boss2_Monster") + "::OnReset";
- donpcevent instance_npcname("#Stefan for display3") + "::OnStop";
- donpcevent instance_npcname("Sky Fortress Escape Warp#end_warp") + "::OnEnable";
- stopnpctimer;
- }
- end;
- OnTimer6000:
- initnpctimer;
- end;
- OnLastWord:
- mapannounce 'sthd_map$, "Stefan Jack Earnest Wolf: Dead...I was...But...I won't be dead...", bc_map,0xEBFF;
- sleep 3000;
- mapannounce 'sthd_map$, "Stefan Jack Earnest Wolf: Comes back...the power of Bijou...Eternal body...Again...", bc_map,0xEBFF;
- end;
- }
- // hp > 6000000 && hp < 14000000
- 1@sthd,99,128,0 script #Last_Boss2_Monster HIDDEN_WARP_NPC,{
- end;
- OnStart:
- OnTimer10000:
- initnpctimer;
- end;
- OnTimer1000:
- if (mobcount( 'sthd_map$, instance_npcname("#Last_Boss2_Monster") + "::OnMobDead" ) < 8)
- areamonster 'sthd_map$,89,81,119,111,"Zombie Soldier of Bijou",3476,3, instance_npcname("#Last_Boss2_Monster") + "::OnMobDead"; // AS_ZOMBIE
- end;
- OnReset:
- killmonster 'sthd_map$, instance_npcname("#Last_Boss2_Monster") + "::OnMobDead";
- stopnpctimer;
- end;
- OnMobDead:
- end;
- }
- // hp < 5000001
- 1@sthd,99,127,0 script #Last_Boss_Monster HIDDEN_WARP_NPC,{
- end;
- OnStart:
- OnTimer10000:
- initnpctimer;
- end;
- OnReset:
- killmonster 'sthd_map$, instance_npcname("#Last_Boss_Monster") + "::OnMobDead";
- stopnpctimer;
- end;
- OnTimer1000:
- OnTimer8000:
- OnTimer16000:
- OnTimer24000:
- OnTimer32000:
- // no count check
- areamonster 'sthd_map$,84,76,124,116,"Cursed Soldier of Bijou",3485,2, instance_npcname("#Last_Boss_Monster") + "::OnMobDead"; // AS_D_CURSED_SOLDIER
- end;
- OnTimer33000:
- stopnpctimer;
- end;
- OnMobDead:
- end;
- }
- // Kill the player
- 1@sthd,94,119,0 script #pantheon_damage1 HIDDEN_WARP_NPC,6,5,{
- end;
- OnTouch:
- unitkill getcharid(3);
- end;
- OnEvent:
- specialeffect EF_GUMGANG4;
- progressbar_npc "000000",4;
- specialeffect EF_NPC_EARTHQUAKE;
- cloakoffnpc();
- initnpctimer;
- end;
- OnTimer1000:
- cloakonnpc();
- end;
- OnTimer2000:
- stopnpctimer;
- end;
- }
- 1@sthd,96,109,0 duplicate(#pantheon_damage1) #pantheon_damage2 HIDDEN_WARP_NPC,6,5
- 1@sthd,104,110,0 duplicate(#pantheon_damage1) #pantheon_damage3 HIDDEN_WARP_NPC,6,5
- 1@sthd,110,110,0 duplicate(#pantheon_damage1) #pantheon_damage4 HIDDEN_WARP_NPC,6,5
- 1@sthd,113,117,0 duplicate(#pantheon_damage1) #pantheon_damage5 HIDDEN_WARP_NPC,6,5
- 1@sthd,112,103,0 duplicate(#pantheon_damage1) #pantheon_damage6 HIDDEN_WARP_NPC,6,5
- 1@sthd,104,103,0 duplicate(#pantheon_damage1) #pantheon_damage7 HIDDEN_WARP_NPC,6,5
- 1@sthd,97,103,0 duplicate(#pantheon_damage1) #pantheon_damage8 HIDDEN_WARP_NPC,6,5
- 1@sthd,92,97,0 duplicate(#pantheon_damage1) #pantheon_damage9 HIDDEN_WARP_NPC,6,5
- 1@sthd,99,95,0 duplicate(#pantheon_damage1) #pantheon_damage10 HIDDEN_WARP_NPC,6,5
- 1@sthd,108,95,0 duplicate(#pantheon_damage1) #pantheon_damage11 HIDDEN_WARP_NPC,6,5
- 1@sthd,116,95,0 duplicate(#pantheon_damage1) #pantheon_damage12 HIDDEN_WARP_NPC,6,5
- 1@sthd,112,87,0 duplicate(#pantheon_damage1) #pantheon_damage13 HIDDEN_WARP_NPC,6,5
- 1@sthd,104,88,0 duplicate(#pantheon_damage1) #pantheon_damage14 HIDDEN_WARP_NPC,6,5
- 1@sthd,95,87,0 duplicate(#pantheon_damage1) #pantheon_damage15 HIDDEN_WARP_NPC,6,5
- 1@sthd,96,78,0 duplicate(#pantheon_damage1) #pantheon_damage16 HIDDEN_WARP_NPC,6,5
- 1@sthd,94,72,0 duplicate(#pantheon_damage1) #pantheon_damage17 HIDDEN_WARP_NPC,6,5
- 1@sthd,104,81,0 duplicate(#pantheon_damage1) #pantheon_damage18 HIDDEN_WARP_NPC,6,5
- 1@sthd,111,81,0 duplicate(#pantheon_damage1) #pantheon_damage19 HIDDEN_WARP_NPC,6,5
- 1@sthd,114,72,0 duplicate(#pantheon_damage1) #pantheon_damage20 HIDDEN_WARP_NPC,6,5
- 1@sthd,126,96,0 duplicate(#pantheon_damage1) #pantheon_damage21 HIDDEN_WARP_NPC,6,6
- 1@sthd,81,96,0 duplicate(#pantheon_damage1) #pantheon_damage22 HIDDEN_WARP_NPC,6,6
- 1@sthd,100,71,0 duplicate(#pantheon_damage1) #pantheon_damage23 HIDDEN_WARP_NPC,6,6
- 1@sthd,91,101,0 duplicate(#pantheon_damage1) #pantheon_damage24 HIDDEN_WARP_NPC,6,6
- 1@sthd,117,101,0 duplicate(#pantheon_damage1) #pantheon_damage25 HIDDEN_WARP_NPC,6,6
- 1@sthd,117,90,0 duplicate(#pantheon_damage1) #pantheon_damage26 HIDDEN_WARP_NPC,6,6
- 1@sthd,90,90,0 duplicate(#pantheon_damage1) #pantheon_damage27 HIDDEN_WARP_NPC,6,6
- 1@sthd,104,96,4 script Sky Fortress Escape Warp#end_warp 1_SHADOW_NPC,{
- if (select( "Do not go outside of the Sky Fortress.", "Go outside of the Sky Fortress." ) == 1) {
- mes "- The warp is emanating bright lights. -";
- close;
- }
- mes "- You start to transport. -";
- close2;
- if (fortress_entrance_loc == 0)
- warp "prt_q",244,81;
- else {
- warp "dali02",117,69;
- fortress_entrance_loc = 0;
- }
- end;
- OnEnable:
- initnpctimer;
- enablenpc instance_npcname("Sky Fortress Escape Warp#end_warp");
- end;
- OnTimer2000:
- specialeffect EF_ENHANCE;
- end;
- OnTimer3000:
- initnpctimer;
- end;
- OnInstanceInit:
- 'status_event = 0;
- 'boss_id = 0;
- 'pantheon_event[0] = 0;
- 'pantheon_event[1] = 0;
- 'sthb_map$ = instance_mapname("1@sthb");
- 'sthc_map$ = instance_mapname("1@sthc");
- 'sthd_map$ = instance_mapname("1@sthd");
- // Warps
- disablenpc instance_npcname("#sthd_move_01_01");
- disablenpc instance_npcname("#sthd_move_02_01");
- disablenpc instance_npcname("#sthd_move_02_02");
- disablenpc instance_npcname("#sthd_event_1_boss");
- disablenpc instance_npcname("Stefan.J.E.Wolf#sthd_01");
- disablenpc instance_npcname("Stefan.J.E.Wolf#sthd_02");
- disablenpc instance_npcname("#Stefan_Action1");
- for ( .@i = 1; .@i <= 6; .@i++ ) {
- disablenpc instance_npcname("Activated Warp#sthd_mov_" + .@i);
- disablenpc instance_npcname("Deactivated Warp#sthd_mov_" + .@i);
- disablenpc instance_npcname("#sthd_move_back_a_" + .@i);
- }
- disablenpc instance_npcname("#sthd_event_2");
- disablenpc instance_npcname("#sthd_event_3");
- disablenpc instance_npcname("#sthd_event_4");
- for ( .@i = 5; .@i <= 18; .@i++ )
- disablenpc instance_npcname("#sthd_event_" + .@i);
- disablenpc instance_npcname("#sthd_key_control");
- disablenpc instance_npcname("Sky Fortress Gold Treasure#1");
- disablenpc instance_npcname("Sky Fortress Gold Treasure#2");
- disablenpc instance_npcname("Sky Fortress Gold Treasure#3");
- disablenpc instance_npcname("Sky Fortress Gold Treasure#4");
- disablenpc instance_npcname("Sky Fortress Treasure Box");
- disablenpc instance_npcname("Wind Ghost in Experiment");
- disablenpc instance_npcname("Immortal Cursed Knight#");
- disablenpc instance_npcname("Immortal Wind Ghost#01");
- disablenpc instance_npcname("#Stefan_Action2");
- disablenpc instance_npcname("Stefan.J.E.Wolf#sthd_03");
- // Boss room
- disablenpc instance_npcname("#Stefan for display3");
- disablenpc instance_npcname("Stefan.J.E.Wolf#sthd_04");
- disablenpc instance_npcname("#Last_Boss");
- disablenpc instance_npcname("#Last_Boss2_Monster");
- disablenpc instance_npcname("#Last_Boss_Monster");
- disablenpc instance_npcname("Sky Fortress Escape Warp#end_warp");
- for ( .@i = 1; .@i <= 27; .@i++ )
- cloakonnpc instance_npcname("#pantheon_damage" + .@i);
- end;
- }
|