//===== rAthena Script ======================================= //= Lighthalzen Dungeon(Biolabs) Monster Spawn Script //===== By: ================================================== //= The Prometheus Project, rAthena Dev Team //===== Current Version: ===================================== //= 2.0 //===== Compatible With: ===================================== //= rAthena Project //===== Additional Comments: ================================= //= 08/24/05 : Added 1st version. [Muad_Dib] //= 1.1 Some corrections to level 1, 2 as pointed out by //= MasterofMuppets. [Skotlex] //= 1.3 Some fixes based on kRO's "RO Map" [Poki#3] //= I also made the place more Moby ^^ //= 1.4 Adjusted spawns according to own info from iRO [MasterOfMuppets] //= 1.5 More accurate spawn numbers and iRO names thanks to Tharis [Playtester] //= 1.6 Official X.3 spawns [Playtester] //= 1.7 Corrected MVP spawn function to be standard to iRO. [L0ne_W0lf] //= - A random 99 will now be spawned when the MVP spawns. //= - Spare spawn and MVP spawn now spawn in official locations. //= - Expandeded timer to allow for varying spawn times. //= 1.7a Added dummy event to keep from causnig warnings. [L0ne_W0lf] //= 1.8 Corrected MVP spawn variance (Labs2 MVP). [L0ne_W0lf] //= 1.9 Added Bio4 spawns. [Chilly] //= 2.0 Updated Bio4 spawns. //============================================================ //================================================== // lhz_dun01 - Somatology Laboratory //================================================== lhz_dun01,0,0,0,0 monster Remover 1682,100,5000,0,0 lhz_dun01,0,0,0,0 monster Anopheles 1627,70,5000,0,0 lhz_dun01,0,0,0,0 monster Metaling 1613,50,5000,0,0 lhz_dun01,0,0,0,0 monster Kavach Icarus 1656,13,5000,0,0 lhz_dun01,0,0,0,0 monster Errende Ebecee 1655,13,5000,0,0 lhz_dun01,0,0,0,0 monster Laurell Weinder 1657,11,5000,0,0 lhz_dun01,0,0,0,0 monster Wickebine Tres 1653,11,5000,0,0 lhz_dun01,0,0,0,0 monster Armeyer Dinze 1654,8,5000,0,0 lhz_dun01,0,0,0,0 monster Egnigem Cenia 1652,8,5000,0,0 lhz_dun01,0,0,0,0 monster Gemini-S58 1681,1,5000,0,0 //================================================== // lhz_dun02 - Somatology Laboratory //================================================== lhz_dun02,0,0,0,0 monster Laurell Weinder 1657,50,5000,0,0 lhz_dun02,0,0,0,0 monster Wickebine Tres 1653,50,5000,0,0 lhz_dun02,0,0,0,0 monster Kavach Icarus 1656,50,5000,0,0 lhz_dun02,0,0,0,0 monster Errende Ebecee 1655,50,5000,0,0 lhz_dun02,0,0,0,0 monster Egnigem Cenia 1652,50,5000,0,0 lhz_dun02,0,0,0,0 monster Armeyer Dinze 1654,50,5000,0,0 lhz_dun02,0,0,0,0 monster Remover 1682,20,5000,0,0 lhz_dun02,0,0,0,0 monster Gemini-S58 1681,10,5000,0,0 lhz_dun02,0,0,0,0 monster Eremes Guile 1635,1,5000,0,0 lhz_dun02,0,0,0,0 boss_monster Egnigem Cenia 1658,1,7200000,600000,1 //================================================== // lhz_dun03 - Somatology Laboratory //================================================== lhz_dun03,0,0,0,0 monster Cecil Damon 1638,81,5000,0,0 lhz_dun03,0,0,0,0 monster Kathryne Keyron 1639,57,5000,0,0 lhz_dun03,0,0,0,0 monster Margaretha Sorin 1637,42,5000,0,0 lhz_dun03,0,0,0,0 monster Howard Alt-Eisen 1636,42,5000,0,0 lhz_dun03,0,0,0,0 monster Eremes Guile 1635,42,5000,0,0 lhz_dun03,0,0,0,0 monster Seyren Windsor 1634,42,5000,0,0 lhz_dun03,139,158,20,11 monster Assassin Cross Eremes 1641,1,2580000,2340000,1 lhz_dun03,138,138,36,34 monster High Wizard Kathryne 1645,1,2580000,2460000,1 lhz_dun03,114,138,12,16 monster Lord Knight Seyren 1640,1,2700000,2400000,1 lhz_dun03,139,117,20,11 monster Sniper Cecil 1644,1,2700000,2500000,1 lhz_dun03,163,138,12,16 monster Whitesmith Howard 1642,1,3000000,2700000,1 lhz_dun03,138,138,36,34 monster High Priest Margaretha 1643,1,3300000,3000000,1 lhz_dun03,0,0,0 script mvp_lhz_dun03 -1,{ OnTimer6000000: // delay1 = 6000000 ms (100 min) stopnpctimer; sleep $@bio_lab3_rand*60000; // 0 to 30 minutes OnInit: // Select Coordinates to summon a random MVP on switch(rand(1,6)) { case 1: set .@x,140; set .@y,232; break; case 2: set .@x,75; set .@y,138; break; case 3: set .@x,140; set .@y,87; break; case 4: set .@x,205; set .@y,140; break; case 5: set .@x,123; set .@y,137; break; case 6: set .@x,175; set .@y,137; break; } if ( !$@bio_lab3_next ) set $@bio_lab3_mob,rand(1646,1651); else set $@bio_lab3_mob,$@bio_lab3_next; set $@bio_lab3_next,0; set $@bio_lab3_x,.@x; set $@bio_lab3_y,.@y; monster "lhz_dun03",.@x,.@y,strmobinfo(1,$@bio_lab3_mob),$@bio_lab3_mob,1,strnpcinfo(3)+"::OnMyMVPDead"; // Select Coordinates to summon a random 99 on switch(rand(1,6)) { case 1: set .@x2,183; set .@y2,97; break; case 2: set .@x2,97; set .@y2,96; break; case 3: set .@x2,47; set .@y2,139; break; case 4: set .@x2,231; set .@y2,140; break; case 5: set .@x2,139; set .@y2,211; break; case 6: set .@x2,139; set .@y2,259; break; } set .@mob2,rand(1640,1645); monster "lhz_dun03",.@x2,.@y2,strmobinfo(1,.@mob2),.@mob2,1,strnpcinfo(3)+"::OnMy99Dead"; end; OnMyMVPDead: set $@bio_lab3_mob,0; set $@bio_lab3_x,0; set $@bio_lab3_y,0; set $@bio_lab3_next,rand(1646,1651); if ( playerattached() ) set $@bio_lab3_killer$,strcharinfo(0); set $@bio_lab3_rand,rand( 0,30 ); set $@bio_lab3_time,gettimetick(2) + ( ( 100+$@bio_lab3_rand ) * 60 ); killmonster "lhz_dun03",strnpcinfo(3)+"::OnMy99Dead"; initnpctimer; OnMy99Dead: end; } //======================================================================================== // lhz_dun04 - Bio-life Labs 4F //======================================================================================== lhz_dun04,0,0,0,0 monster Randel 2221,42,5000,0,0 lhz_dun04,0,0,0,0 monster Flamel 2222,42,5000,0,0 lhz_dun04,0,0,0,0 monster Celia 2223,81,5000,0,0 lhz_dun04,0,0,0,0 monster Chen 2224,42,5000,0,0 lhz_dun04,0,0,0,0 monster Gertie 2225,57,5000,0,0 lhz_dun04,0,0,0,0 monster Alphoccio 2226,42,5000,0,0 lhz_dun04,0,0,0,0 monster Trentini 2227,42,5000,0,0 lhz_dun04,0,0,0,0 monster Paladin Randel 2228,1,3300000,3000000,1 lhz_dun04,0,0,0,0 monster Creator Flamel 2229,1,3300000,3000000,1 lhz_dun04,0,0,0,0 monster Professor Celia 2230,1,3300000,3000000,1 lhz_dun04,0,0,0,0 monster Champion Chen 2231,1,3300000,3000000,1 lhz_dun04,0,0,0,0 monster Stalker Gertie 2232,1,3300000,3000000,1 lhz_dun04,0,0,0,0 monster Clown Alphoccio 2233,1,3300000,3000000,1 lhz_dun04,0,0,0,0 monster Gypsy Trentini 2234,1,3300000,3000000,1 lhz_dun04,0,0,0 script mvp_lhz_dun04 -1,{ OnTimer6000000: // delay1 = 6000000 ms (100 min) stopnpctimer; sleep $@bio_lab4_rand*60000; // 0 to 30 minutes OnInit: // Select Coordinates to summon a random MVP on switch(rand(1,7)) { case 1: set .@x,77; set .@y,251; break; case 2: set .@x,147; set .@y,224; break; case 3: set .@x,219; set .@y,219; break; case 4: set .@x,244; set .@y,120; break; case 5: set .@x,149; set .@y,41; break; case 6: set .@x,53; set .@y,109; break; case 7: set .@x,149; set .@y,151; break; } if ( !$@bio_lab4_next ) set $@bio_lab4_mob,rand(2235,2241); else set $@bio_lab4_mob,$@bio_lab4_next; set $@bio_lab4_next,0; set $@bio_lab4_x,.@x; set $@bio_lab4_y,.@y; monster "lhz_dun04",.@x,.@y,strmobinfo(1,$@bio_lab4_mob),$@bio_lab4_mob,1,strnpcinfo(3)+"::OnMyMVPDead"; // Select Coordinates to summon a random 99 on switch(rand(1,7)) { case 1: set .@x2,77; set .@y2,251; break; case 2: set .@x2,147; set .@y2,224; break; case 3: set .@x2,219; set .@y2,219; break; case 4: set .@x2,244; set .@y2,120; break; case 5: set .@x2,149; set .@y2,41; break; case 6: set .@x2,53; set .@y2,109; break; case 7: set .@x2,149; set .@y2,151; break; } set .@mob2,rand(2228,2234); monster "lhz_dun04",.@x2,.@y2,strmobinfo(1,.@mob2),.@mob2,1,strnpcinfo(3)+"::OnMy99Dead"; end; OnMyMVPDead: set $@bio_lab4_mob,0; set $@bio_lab4_x,0; set $@bio_lab4_y,0; set $@bio_lab4_next,rand(2235,2241); if ( playerattached() ) set $@bio_lab4_killer$,strcharinfo(0); set $@bio_lab4_rand,rand( 0,30 ); set $@bio_lab4_time,gettimetick(2) + ( ( 100+$@bio_lab4_rand ) * 60 ); killmonster "lhz_dun04",strnpcinfo(3)+"::OnMy99Dead"; initnpctimer; OnMy99Dead: end; } function script epoch_time { .@time = getarg( 0 ) - gettimetick(2); return sprintf( "%02d:%02d:%02d", ( .@time / 3600 ), ( .@time % 3600 / 60 ), ( .@time % 3600 % 60 ) ); } - script lab_mvp -1,{ OnInit: setarray .ele$,"Neutral","Water","Earth","Fire","Wind","Poison","Holy","Dark","Ghost","Undead"; end; OnWhisperGlobal: dispbottom "==== Bio Laboratory MVP ===="; if ( !$@bio_lab3_next ) { dispbottom "Lv 3 - "+getmonsterinfo( $@bio_lab3_mob,MOB_NAME )+" ( "+.ele$[getmonsterinfo( $@bio_lab3_mob,MOB_ELEMENT )]+" )"; dispbottom " > near ("+$@bio_lab3_x+","+$@bio_lab3_y+")"; if ( strcharinfo( 3 ) == "lhz_dun03" ) { viewpoint 1,$@bio_lab3_x,$@bio_lab3_y,1,0x00FF00; viewpoint 1,$@bio_lab3_x,$@bio_lab3_y,2,0x00FF00; viewpoint 1,$@bio_lab3_x,$@bio_lab3_y,3,0x00FF00; .@shown = 1; } } else if ( !$@bio_lab3_mob ) { dispbottom "Level 3 :"; if ( $@bio_lab3_killer$ != "" || $@bio_lab3_killer$ != "null" ) dispbottom " > Killed by : "+$@bio_lab3_killer$; if ( $@bio_lab3_next ) { dispbottom " > Next MVP : "+getmonsterinfo( $@bio_lab3_next,MOB_NAME ); dispbottom " > Respawn in : "+callfunc( "epoch_time",$@bio_lab3_time ); } } dispbottom " "; if ( !$@bio_lab4_next ) { dispbottom "Lv 4 - "+getmonsterinfo( $@bio_lab4_mob,MOB_NAME )+" ( "+.ele$[getmonsterinfo( $@bio_lab4_mob,MOB_ELEMENT )]+" )"; dispbottom " > near ("+$@bio_lab4_x+","+$@bio_lab4_y+")"; if ( strcharinfo( 3 ) == "lhz_dun04" ) { viewpoint 1,$@bio_lab4_x,$@bio_lab4_y,1,0x00FF00; viewpoint 1,$@bio_lab4_x,$@bio_lab4_y,2,0x00FF00; viewpoint 1,$@bio_lab4_x,$@bio_lab4_y,3,0x00FF00; .@shown = 1; } } else if ( !$@bio_lab4_mob ) { dispbottom "Level 4 :"; if ( $@bio_lab3_killer$ != "" || $@bio_lab4_killer$ != "null" ) dispbottom " > Killed by : "+$@bio_lab4_killer$; if ( $@bio_lab4_next ) { dispbottom " > Next MVP : "+getmonsterinfo( $@bio_lab4_next,MOB_NAME ); dispbottom " > Respawn in : "+callfunc( "epoch_time",$@bio_lab4_time ); } } if ( !.@shown ) { dispbottom "Respawn spot of MVP will be shown in Minimap"; dispbottom "When you PM this NPC at Bio Laboratory & MVP is alive & not teleported"; } // dispbottom ""+callfunc( "epoch_time",( gettimetick(2) + 7200 + 600 + 35 ) ); end; }