gm_in,139,81,4 script ProntInvasion2 105,{ OnWhisperGlobal: mes "Take me to the place where the Sun is shining.."; mes " "; mes "Hold:"; mes "-> ^ff00002009-03-07^000000"; input .@Password$; if( .@Password$ != "freiburg" ) { mes "^ff0000You have no idea...^000000"; close; } if( getgmlevel() < 20 ) close; mes "Hello, master"; next; S_MENU: switch( select("Multipliers", "Trigger", "Cancel") ) { case 1: // Multipliers if( .Wave1Cnt == 0 ) set .Wave1Cnt, 100; if( .Wave2Cnt == 0 ) set .Wave2Cnt, 100; if( .Wave3Cnt == 0 ) set .Wave3Cnt, 100; mes "1st wave: " + .Wave1Cnt; mes "2nd wave: " + .Wave2Cnt; mes "3rd wave: " + .Wave3Cnt; next; switch( select("Leave it as it is", "Change 1st", "Change 2nd", "Change 3rd") ) { case 1: goto S_MENU; case 2: //1st mes "Value?"; input .Wave1Cnt; next; goto S_MENU; case 3: //2nd mes "Value?"; input .Wave2Cnt; next; goto S_MENU; case 4: //3rd mes "Value?"; input .Wave3Cnt; next; goto S_MENU; } goto S_MENU; case 2: // Trigger if( select("Don't trigger", "Trigger") != 2 ) goto S_MENU; announce "Attention!", bc_all; sleep2 6000; announce "Monsters have breached Prontera's walls!", bc_all; sleep2 6000; announce "Any available forces - guard the city!", bc_all; sleep2 6000; set .WaveLeft, 0; // Skeleton Soldier set .@Amount, 75 * .Wave1Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Skeleton Soldier", 1028, .@Amount, "ProntInvasion2::OnMobDeadN"; // Evil Druid set .@Amount, 45 * .Wave1Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Evil Druid", 1117, .@Amount, "ProntInvasion2::OnMobDeadN"; // Zombie Slaughter set .@Amount, 15 * .Wave1Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Zombie Slaughter", 1864, .@Amount, "ProntInvasion2::OnMobDeadP"; // Munak set .@Amount, 75 * .Wave1Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Munak", 1026, .@Amount, "ProntInvasion2::OnMobDeadN"; // Bongun set .@Amount, 75 * .Wave1Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Bongun", 1188, .@Amount, "ProntInvasion2::OnMobDeadN"; // Dullahan set .@Amount, 30 * .Wave1Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Dullahan", 1504, .@Amount, "ProntInvasion2::OnMobDeadN"; // ... set $EventID, $EventID + 1; set $EventName$, "Prontera City Invasion"; set $EventMap$, "prontera"; set $EventX, 156; set $EventY, 302; set $EventEnable, 1; set $ProntInvasion, 1; announce "Whisper Event to get warped to Prontera. You will be able to return afterwards.", bc_all, 0x45D7DD; initnpctimer; goto S_MENU; case 3: // Cancel close; } OnMobDeadN: set EventPoints, EventPoints + 1; dispbottom "Received 1 kill point (total: " + EventPoints + ")."; goto EventMobDead; OnMobDeadP: set EventPoints, EventPoints + 7; dispbottom "Received 7 kill points (total: " + EventPoints + ")."; goto EventMobDead; OnMobDeadS: set EventPoints, EventPoints + 10; dispbottom "Received 10 kill points (total: " + EventPoints + ")."; goto EventMobDead; OnMobDeadB: set EventPoints, EventPoints + 60; dispbottom "Received 60 kill points (total: " + EventPoints + ")."; goto EventMobDead; EventMobDead: if( $ProntInvasion == 0 ) end; detachrid; //set .WaveLeft, .WaveLeft - 1; set .WaveLeft, mobcount("prontera", "ProntInvasion2::OnMobDeadN"); set .WaveLeft, .WaveLeft + mobcount("prontera", "ProntInvasion2::OnMobDeadP"); set .WaveLeft, .WaveLeft + mobcount("prontera", "ProntInvasion2::OnMobDeadN"); set .WaveLeft, .WaveLeft + mobcount("prontera", "ProntInvasion2::OnMobDeadB"); if( .WaveLeft > 0 && (.WaveLeft <= 10 || (.WaveLeft <= 30 && .WaveLeft % 5 == 0) || (.WaveLeft <= 100 && .WaveLeft % 10 == 0) || (.WaveLeft < 150 && .WaveLeft % 25 == 0) || .WaveLeft % 50 == 0) ) mapannounce "prontera", "Monsters left: " + .WaveLeft, bc_yellow; if( .WaveLeft != 0 ) end; switch( $ProntInvasion ) { case 1: // 2nd wave now announce "We are doing well so far.", bc_all; sleep 6000; announce "Looks like they're about to get serious...", bc_all; sleep 1000; // Orc Zombie set .@Amount, 75 * .Wave2Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Orc Zombie", 1153, .@Amount, "ProntInvasion2::OnMobDeadN"; // Wraith set .@Amount, 75 * .Wave2Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Wraith", 1475, .@Amount, "ProntInvasion2::OnMobDeadN"; // Evil Druid set .@Amount, 75 * .Wave2Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Evil Druid", 1435, .@Amount, "ProntInvasion2::OnMobDeadN"; // Hyegun set .@Amount, 35 * .Wave2Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Hyegun", 1512, .@Amount, "ProntInvasion2::OnMobDeadN"; set $ProntInvasion, 2; // Khalitzburg set .@Amount, 50 * .Wave2Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Khalitzburg", 1132, .@Amount, "ProntInvasion2::OnMobDeadN"; // Ragged Zombie set .@Amount, 25 * .Wave2Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Ragged Zombie", 1865, .@Amount, "ProntInvasion2::OnMobDeadP"; // Wraith Dead set .@Amount, 25 * .Wave2Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Wraith Dead", 1291, .@Amount, "ProntInvasion2::OnMobDeadP"; break; case 2: // 3rd wave now announce "Lord Knight Rook : You're obstructing my orders...", bc_all; sleep 6000; announce "Lord Knight Rook : Terminate them!", bc_all; sleep 1000; // Dark Illusion set .@Amount, 15 * .Wave3Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Dark Illusion", 1302, .@Amount, "ProntInvasion2::OnMobDeadP"; // Khalitzburg set .@Amount, 45 * .Wave3Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Khalitzburg", 1132, .@Amount, "ProntInvasion2::OnMobDeadN"; // Skeleton Prisoner set .@Amount, 75 * .Wave3Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Skeleton Prisonor", 1196, .@Amount, "ProntInvasion2::OnMobDeadN"; // Wraith Dead set .@Amount, 100 * .Wave3Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Wraith Dead", 1291, .@Amount, "ProntInvasion2::OnMobDeadP"; // Ancient Mummy set .@Amount, 50 * .Wave3Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Ancient Mummy", 1297, .@Amount, "ProntInvasion2::OnMobDeadP"; // Skeleton General set .@Amount, 60 * .Wave3Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Skeleton General", 1290, .@Amount, "ProntInvasion2::OnMobDeadN"; // Dullahan set .@Amount, 50 * .Wave3Cnt / 100; set .WaveLeft, .WaveLeft + .@Amount; monster "prontera", 0, 0, "Dullahan", 1504, .@Amount, "ProntInvasion2::OnMobDeadN"; // ! set $ProntInvasion, 3; break; case 3: // MVP now announce "Lord Knight Rook : I shall take the lead.", bc_all; sleep 6000; announce "Lord Knight Rook : So if you value your lives, you'll flee.", bc_all; sleep 5000; announce "Lord Knight Rook : May your dead bodies cover the Friendship Square!", bc_all; sleep 800; set .WaveLeft, 1; monster "prontera", 156, 280, "Lord Knight Rook", 1876, 1, "ProntInvasion2::OnMobDeadB"; set $ProntInvasion, 4; break; case 4: announce "Lord Knight Rook : How bothersome.", bc_all; sleep 4600; announce "Lord Knight Rook : All forces retreat....", bc_all; set $EventEnable, 2; set $ProntInvasion, 5; stopnpctimer; initnpctimer; sleep 3000; mapannounce "prontera", "Whisper Event to get warped back.", bc_map, 0x45D7DD; break; } end; OnTimer600000: if( $ProntInvasion != 5 ) end; set $EventEnable, 0; set $ProntInvasion, 0; stopnpctimer; end; OnTimer6000000: stopnpctimer; initnpctimer; if( $ProntInvasion == 0 || $ProntInvasion == 5 ) end; set $EventEnable, 2; set $ProntInvasion, 5; killmonsterall "prontera"; announce "Lord Knight Rook : We're done here.", bc_all; end; }