From 6aeb035c372488df8b3775f8258c49772e682167 Mon Sep 17 00:00:00 2001 From: MasterOfMuppets Date: Sun, 20 Aug 2006 20:01:16 +0000 Subject: Implemented the Einbroch polution script. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8384 54d463be-8e91-2dee-dedb-b68131a5f0ec --- npc/Changelog.txt | 1 + npc/cities/einbroch.txt | 127 ++++++++++++++++++++ npc/quests/quests_ein.txt | 294 +++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 420 insertions(+), 2 deletions(-) diff --git a/npc/Changelog.txt b/npc/Changelog.txt index 84725b857..8b8435681 100644 --- a/npc/Changelog.txt +++ b/npc/Changelog.txt @@ -36,6 +36,7 @@ Playtester Date Added ====== 08/20 + * Implemented the Einbroch polution script. [MasterOfMuppets] * Implemented the official 2005 headgear quests. [MasterOfMuppets] 08/19 * Uncommented Homunculus shop for Homunculus in Trunk [Evera] diff --git a/npc/cities/einbroch.txt b/npc/cities/einbroch.txt index 17c79aa83..8689a78bb 100644 --- a/npc/cities/einbroch.txt +++ b/npc/cities/einbroch.txt @@ -25,6 +25,7 @@ //= 1.1 Split quests into quests/cities_einbroch.txt [Evera] //= 1.2 Split more quests into above file [Evera] //= 1.3 Added (finally) the Garrison quest npc [erKURITA] +//= 1.4 Implemented the polution script. [MasterOfMuppets] //============================================================ @@ -146,18 +147,48 @@ einbroch.gat,176,172,5 script Khemko 855,{ set @Tower_Name$,"Khemko"; callfunc "Ein_Tower"; end; + +OnHide: + specialeffect 16; + disablenpc "Khemko"; + end; + +OnUnhide: + misceffect 215; + end; + } einbroch.gat,218,198,5 script Mark 855,{ set @Tower_Name$,"Mark"; callfunc "Ein_Tower"; end; + +OnHide: + specialeffect 16; + disablenpc "Mark"; + end; + +OnUnhide: + misceffect 215; + end; + } einbroch.gat,174,228,5 script Oberu 855,{ set @Tower_Name$,"Oberu"; callfunc "Ein_Tower"; end; + +OnHide: + specialeffect 16; + disablenpc "Oberu"; + end; + +OnUnhide: + misceffect 215; + end; + } einbroch.gat,175,196,5 script Morei 854,{ @@ -195,6 +226,16 @@ s_Goback: if(@towerwarp == 1)warp "einbroch.gat",178,172; if(@towerwarp == 3)warp "einbroch.gat",172,228; end; + +OnHide: + specialeffect 16; + disablenpc "Morei"; + end; + +OnUnhide: + misceffect 215; + end; + } einbroch.gat,208,208,3 script Kesunboss 850,{ @@ -227,6 +268,17 @@ einbroch.gat,208,208,3 script Kesunboss 850,{ mes "here if you wish to marvel in its"; mes "beauty and elegance."; close; + +OnHide: + specialeffect 16; + disablenpc "Kesunboss"; + end; + +OnUnhide: + misceffect 215; + end; + + } einbroch.gat,232,255,5 script Khowropher 847,{ @@ -253,6 +305,17 @@ einbroch.gat,232,255,5 script Khowropher 847,{ mes "fate to suffer from this fould air"; mes "until the day I die.^6A6A6A*Sigh...*"; close; + +OnHide: + specialeffect 16; + disablenpc "Khowropher"; + end; + +OnUnhide: + misceffect 215; + end; + + } einbroch.gat,259,327,5 script Leslie 846,{ @@ -276,6 +339,16 @@ einbroch.gat,259,327,5 script Leslie 846,{ mes "pricks! But they sell stuff"; mes "here I can't buy back home..."; close; + +OnHide: + specialeffect 16; + disablenpc "Leslie"; + end; + +OnUnhide: + misceffect 215; + end; + } einbroch.gat,232,272,3 script Train Station Staff#01::EinbrochTrain 852,{ @@ -332,6 +405,15 @@ s_Enviroment: mes "the Einbroch Smog Alert, you"; mes "should find shelter immediately!"; close; + +OnHide: + specialeffect 16; + end; + +OnUnhide: + misceffect 215; + end; + } einbroch.gat,252,301,3 duplicate(EinbrochTrain) Train Station Staff#02 852 @@ -357,6 +439,16 @@ einbroch.gat,228,121,5 script Little Toby 855,{ mes "going?! Dont leave"; mes "me, I'm all alone...!"; close; + +OnHide: + specialeffect 16; + disablenpc "Little Toby"; + end; + +OnUnhide: + misceffect 215; + end; + } einbroch.gat,229,149,3 script Sleik 854,{ @@ -375,6 +467,16 @@ einbroch.gat,229,149,3 script Sleik 854,{ mes "still, I guess having our own"; mes "Train Station is a good thing"; close; + +OnHide: + specialeffect 16; + disablenpc "Sleik"; + end; + +OnUnhide: + misceffect 215; + end; + } einbroch.gat,236,191,3 script Tan 855,{ @@ -399,6 +501,16 @@ einbroch.gat,236,191,3 script Tan 855,{ mes "If you'll be here a while,"; mes "you should carry one with you."; close; + +OnHide: + specialeffect 16; + disablenpc "Tan"; + end; + +OnUnhide: + misceffect 215; + end; + } ein_in01.gat,31,217,3 script Cendadt 851,{ @@ -432,6 +544,7 @@ ein_in01.gat,31,217,3 script Cendadt 851,{ mes "before I get"; mes "in trouble..."; close; + } ein_in01.gat,36,204,3 script Rombell 851,{ @@ -459,6 +572,7 @@ ein_in01.gat,36,204,3 script Rombell 851,{ mes "worse. How can we"; mes "solve this problem?"; close; + } ein_in01.gat,49,202,3 script Dorf 851,{ @@ -483,6 +597,7 @@ ein_in01.gat,49,202,3 script Dorf 851,{ mes "thing keeps working the"; mes "way I want it to!"; close; + } ein_in01.gat,48,220,3 script Lowe 851,{ @@ -514,6 +629,7 @@ ein_in01.gat,48,220,3 script Lowe 851,{ mes "of reaction's an old"; mes "habit for me, adventurer."; close; + } ein_in01.gat,43,253,4 script Canphotii 852,{ @@ -539,6 +655,7 @@ ein_in01.gat,43,253,4 script Canphotii 852,{ mes "in! This requires extreme"; mes "disciplinary action!"; close; + } ein_in01.gat,68,209,4 script Khashurantze 852,{ @@ -763,6 +880,16 @@ einbroch.gat,188,72,3 script Keneshiotz 855,{ mes "know that money makes"; mes "the world go 'round?"; close; + +OnHide: + specialeffect 16; + disablenpc "Keneshiotz"; + end; + +OnUnhide: + misceffect 215; + end; + } ein_in01.gat,206,224,2 script Hotel Employee 855,{ diff --git a/npc/quests/quests_ein.txt b/npc/quests/quests_ein.txt index d37bef20f..0a89cb33b 100644 --- a/npc/quests/quests_ein.txt +++ b/npc/quests/quests_ein.txt @@ -14,6 +14,7 @@ //= 1.1 Added more quests [Evera] //= 1.2 Added quest bits from Einbech and renamed file to //= quests_ein.txt [Evera] +//= 1.3 Implemented the polution quest. [MasterOfMuppets] //============================================================ //============================================================ @@ -730,6 +731,16 @@ einbroch.gat,51,56,6 script Laboratory Soldier#01 852,{ mes "Please leave"; mes "immediately"; close; + +OnHide: + specialeffect 16; + disablenpc "Laboratory Soldier#01"; + end; + +OnUnhide: + misceffect 215; + end; + } einbroch.gat,51,47,6 script Laboratory Soldier#02 852,{ mes "[Laboratory Soldier]"; @@ -737,6 +748,16 @@ einbroch.gat,51,47,6 script Laboratory Soldier#02 852,{ mes "Please leave"; mes "immediately"; close; + +OnHide: + specialeffect 16; + disablenpc "Laboratory Soldier#02"; + end; + +OnUnhide: + misceffect 215; + end; + } ein_in01.gat,254,35,1 script Scientist 749,{ mes "[Scientist]"; @@ -2715,13 +2736,231 @@ s_Giveclothes: } +//============================================================ +//=========================================== Einbroch Polution +//============================================================ + +einbroch.gat,1,1,0 script #PolutionNPC -1,{ +OnPolution: + + donpcevent "Liotzburg::OnHide"; + donpcevent "Morei::OnHide"; + donpcevent "Mark::OnHide"; + donpcevent "Khemko::OnHide"; + donpcevent "Oberu::OnHide"; + donpcevent "Khowroper::OnHide"; + donpcevent "Kesunboss::OnHide"; + donpcevent "Train Station Staff#01::OnHide"; + donpcevent "Train Station Staff#02::OnHide"; + donpcevent "Leslie::OnHide"; + donpcevent "Little Toby::OnHide"; + donpcevent "Tan::OnHide"; + donpcevent "Keneshiotz::OnHide"; + donpcevent "Sleik::OnHide"; + donpcevent "Uwe Kleine::OnHide"; + donpcevent "Laboratory Soldier#01::OnHide"; + donpcevent "Laboratory Soldier#02::OnHide"; + disablenpc "Paddler"; + disablenpc "Head Gear Dealer"; + + mapannounce "einbroch.gat","This is a state of emercency! Harmful smog is reaching high levels of saturation. Residents of Einbroch must find shelter immediately.",bc_map; + monster "einbroch.gat",82,332,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",99,328,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",122,317,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",138,319,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",147,312,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",159,316,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",173,315,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",161,311,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",147,296,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",168,282,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",175,271,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",146,274,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",160,272,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",155,256,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",179,262,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",192,248,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",212,255,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",230,250,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",246,251,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",262,254,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",253,240,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",202,245,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",181,251,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",172,238,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",146,242,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",186,226,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",173,239,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",124,248,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",120,234,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",98,234,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",101,219,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",89,208,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",96,191,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",76,194,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",60,196,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",45,194,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",34,201,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",40,184,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",64,173,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",96,173,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",41,155,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",46,131,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",46,108,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",38,93,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",55,86,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",81,81,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",107,82,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",107,104,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",123,73,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",132,87,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",125,63,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",142,64,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",150,52,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",157,37,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",179,39,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",197,46,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",217,67,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",246,54,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",228,110,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",250,118,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",273,127,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",288,138,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",281,160,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",281,192,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",291,201,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",283,218,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",268,216,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",273,196,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",262,164,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",241,180,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",216,205,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",209,198,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",224,177,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",227,163,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",208,166,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",132,87,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",149,119,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",119,36,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",84,155,"Toxic Fog",1621,1,"#PolutionNPC::OnMobChk"; + monster "einbroch.gat",82,107,"Red Fog",1620,1,"#PolutionNPC::OnMobChk"; + initnpctimer; + end; + +OnMobChk: + if(mobcount("einbroch.gat","#PolutionNPC::OnMobChk"))end; + +OnTimer600000: + killmonster "einbroch.gat","#PolutionNPC::OnMobChk"; + mapannounce "einbroch.gat","Emergency status is now cancelled. Air pollution levels are now within the safety zone.",bc_map; + enablenpc "Liotzburg"; + donpcevent "Liotzburg::OnUnHide"; + enablenpc "Morei"; + donpcevent "Morei::OnUnHide"; + enablenpc "Mark"; + donpcevent "Mark::OnUnHide"; + enablenpc "Khemko"; + donpcevent "Khemko::OnUnHide"; + enablenpc "Oberu"; + donpcevent "Oberu::OnUnHide"; + enablenpc "Khowroper"; + donpcevent "Khowroper::OnUnHide"; + enablenpc "Kesunboss"; + donpcevent "Kesunboss::OnUnHide"; + enablenpc "Train Station Staff#01"; + donpcevent "Train Station Staff#01::OnUnHide"; + enablenpc "Train Station Staff#02"; + donpcevent "Train Station Staff#02::OnUnHide"; + enablenpc "Leslie"; + donpcevent "Leslie::OnUnHide"; + enablenpc "Little Toby"; + donpcevent "Little Toby::OnUnHide"; + enablenpc "Tan"; + donpcevent "Tan::OnUnHide"; + enablenpc "Keneshiotz"; + donpcevent "Keneshiotz::OnUnHide"; + enablenpc "Sleik"; + donpcevent "Sleik::OnUnHide"; + enablenpc "Uwe Kleine"; + donpcevent "Uwe Kleine::OnUnHide"; + enablenpc "Laboratory Soldier#01"; + donpcevent "Laboratory Soldier#01::OnUnHide"; + enablenpc "Laboratory Soldier#02"; + donpcevent "Laboratory Soldier#02::OnUnHide"; + enablenpc "Paddler"; + enablenpc "Head Gear Dealer"; + set $EinPolution,0; + end; + +} + +sec_in02.gat,127,86,3 script Einbroch Polution 851,{ + + if(getgmlevel() > 79) + { + mes "[Einbroch Polution Variable Management]"; + mes "$EinPolution is currently: " + $EinPolution + "."; + mes "What would you like to do?"; + next; + menu "Reset $EinPolution to 0",s_0,"Input My Own Value",s_Input,"Cancel.",-; + + close; + +s_0: + mes "[Einbroch Polution Variable Management]"; + mes "$EinPolution has been reset to 0."; + close; + +s_Input: + mes "[Einbroch Polution Variable Management]"; + mes "Insert a number you want $EinFactory"; + mes "to be replaced with. Type '0' to cancel."; + input @temppol; + if(@temppol < 0)goto s_Error; + if(@temppol == 0)close; + set $EinPolution,@temppol; + mes "[Einbroch Polution Variable Management]"; + mes "$EinPolution has been set to: " + $EinPolution + "."; + close; + + } + else + { + mes "[Einbroch Polution Variable Management]"; + mes "Sorry you don't have authorization"; + mes "to use this NPC."; + close; + } + +} + //============================================================ //=========================================== Einbroch Factory //====================================================== Quest + einbroch.gat,132,84,3 script Liotzburg 853,{ -if(EinFactory > 13)goto s_Budget2; -if(EinFactory == 13)goto s_Budget; + if($EinPolution > 9) + { + mes "[Liotzburg]"; + mes "What's going on?!"; + mes "Who's responsible?!"; + mes "God, I can't believe"; + mes "this is happening!"; + mes "^333333*Cough Cough!*^000000"; + next; + mes "[Liotzburg]"; + mes "I need to get out of here!"; + mes "You! D-do something and"; + mes "fix this! I gotta hide and find"; + mes "someplace safe!"; + close2; + donpcevent "#PolutionNPC::OnPolution"; + end; + } + + if(EinFactory > 13)goto s_Budget2; + if(EinFactory == 13)goto s_Budget; mes "[Liotzburg]"; mes "I'm the plant"; mes "superintendant of this"; @@ -2777,9 +3016,50 @@ s_Budget2: next; goto s_Budget; +OnHide: + specialeffect 16; + disablenpc "Liotzburg"; + end; + +OnUnhide: + misceffect 215; + end; + } ein_in01.gat,67,243,3 script Zelmeto 851,{ + + if($EinPolution > 9) + { + mes "[Zelmeto]"; + mes "We've got a big problem"; + mes "here! I appreciate that you've"; + mes "been gathering the materials,"; + mes "but the machines have been"; + mes "broken for too long!"; + next; + mes "[Zelmeto]"; + mes "Right when I tried to"; + mes "fix it, a huge shortout"; + mes "occurred. Our town is"; + mes "probably filled with"; + mes "toxic fog right now!"; + next; + mes "[Zelmeto]"; + mes "I'll try my best to fix"; + mes "this, but we really should"; + mes "have allocated some funds"; + mes "to fix this machine earlier!"; + next; + mes "[Zelmeto]"; + mes "The most important"; + mes "thing is that you get"; + mes "out of here and find"; + mes "shelter! Right now!"; + close2; + warp "einbroch.gat",131,83; + end; + } if(EinFactory > 0)goto s_Switches; mes "[Zelmeto]"; @@ -3314,6 +3594,7 @@ s_Switches: delitem 7317,10; delitem 7319,10; set EinFactory,16; + set $EinPolution,$EinPolution+1; if (BaseLevel < 41) set BaseExp,BaseExp+615; if ((BaseLevel >= 41) && (BaseLevel < 51)) set BaseExp,BaseExp+3075; if ((BaseLevel >= 51) && (BaseLevel < 61)) set BaseExp,BaseExp+6604; @@ -3872,4 +4153,13 @@ s_Cooking: next; goto s_Menu3; +OnHide: + specialeffect 16; + disablenpc "Uwe Kleine"; + end; + +OnUnhide: + misceffect 215; + end; + } \ No newline at end of file -- cgit v1.2.3-70-g09d2