gm_in,3,1,0 script PatAnnounce -1,{ end; OnTimer8000: stopnpctimer; initnpctimer; if( !.Enabled ) end; switch( .Mes ) { case 0: set .@a$, "We do what we must.."; break; case 1: set .@a$, "..because we can."; break; case 4: set .@a$, "For the good of all of us.."; break; case 5: set .@a$, "..except the ones who are dead."; break; case 8: set .@a$, "And believe me I am still alive."; break; case 9: set .@a$, "I feel fantastic and I'm still alive."; break; case 11: set .@a$, "While you're dying I'll be still alive."; break; case 14: set .@a$, "Think of all the things we learned.."; break; case 15: set .@a$, "..for the people who are still alive."; break; default: set .@a$, ""; } if( .@a$ != "" ) mapannounce "prontera", "Corrupted Elve Aesir : " + .@a$, bc_map; set .Mes, .Mes + 1; end; OnStart: initnpctimer; set .Enabled, 1; set .Mes, 0; end; OnKilled: stopnpctimer; set .Enabled, 0; set .MVP, 0; end; } gm_in,133,75,4 script PatInvasion 105,{ OnWhisperGlobal: mes "I have to agree with ^ff0000..eye^000000..."; mes " "; mes "Hold:"; mes "-> ^ff00002009-03-14^000000"; input .@Password$; if( .@Password$ != "Beeneye" ) { mes "^ff0000You don't know Ani, do you?^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 "Prontera Guard : What the..?!", bc_all; sleep2 6000; announce "Prontera Guard : A green legion is attacking Prontera!", bc_all; sleep2 6000; announce "Prontera Guard : All available forces - protect the city!", bc_all; sleep2 3000; set .WaveRate, .Wave1Cnt; callfunc "PatInvSpawn", 1271, 50, "Alligator"; callfunc "PatInvSpawn", 1206, 25, "Anolian"; callfunc "PatInvSpawn", 1155, 25, "Petite"; callfunc "PatInvSpawn", 1621, 15, "Venomous"; callfunc "PatInvSpawn", 1119, 20, "Frilldora"; callfunc "PatInvSpawn", 1717, 5, "Ferus"; callfunc "PatInvSpawn", 1091, 5, "Dragon Fly"; callfunc "PatInvSpawn", 1162, 75, "Rafflesia"; callfunc "PatInvSpawn", 1314, 15, "Permeter"; callfunc "PatInvSpawn", 1139, 35, "Mantis"; callfunc "PatInvSpawn", 1189, 40, "Orc Archer"; callfunc "PatInvSpawn", 1088, 2, "Vocal"; sleep2 3000; // ... 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; } OnMobDead_big: OnMobDead: switch( killedrid ) { case 1271: set .@r, 1; break; case 1206: set .@r, 2; break; case 1155: set .@r, 1; break; case 1621: set .@r, 1; break; case 1119: set .@r, 1; break; case 1717: set .@r, 3; break; case 1091: set .@r, 1; break; case 1162: set .@r, 1; break; case 1314: set .@r, 1; break; case 1139: set .@r, 1; break; case 1088: set .@r, 1; break; case 1189: set .@r, 1; break; case 1273: set .@r, 1; break; case 1262: set .@r, 7; break; case 1410: set .@r, 2; break; case 1695: set .@r, 2; break; case 1881: set .@r, 1; break; case 1687: set .@r, 1; break; case 1406: set .@r, 1; break; case 1688: set .@r,30; break; case 1500: set .@r, 1; break; case 1190: set .@r,50; break; case 2003: set .@r,75; break; default: set .@r,-1; break; } if( .@r == -1 ) dispbottomex "Missing reward for " + killedrid + " - please report", 0x3F3FC9; else { set EventPoints, EventPoints + .@r; dispbottom "Received "+.@r+" kill points (total: " + EventPoints + ")."; } if( $ProntInvasion == 0 ) end; set .@KillerName$, strcharinfo(0); detachrid; set .WaveLeft, mobcount("prontera", "PatInvasion::OnMobDead"); set .WaveLeft, .WaveLeft + mobcount("prontera", "PatInvasion::OnMobDead_big"); 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 "Corrupted Elve Aesir : Red blood interferes with the beauty of my green army...", bc_all; sleep 6000; announce "Corrupted Elve Aesir : I shall finish this.", bc_all; sleep 1000; set $ProntInvasion, 2; set .WaveRate, .Wave2Cnt; callfunc "PatInvSpawn", 1206, 35, "Anolian"; callfunc "PatInvSpawn", 1717, 25, "Ferus"; callfunc "PatInvSpawn", 1273, 15, "Orc Lady"; callfunc "PatInvSpawn", 1189, 15, "Orc Archer"; callfunc "PatInvSpawn", 1139, 25, "Mantis"; callfunc "PatInvSpawn", 1262, 3, "Mutant Dragon"; callfunc "PatInvSpawn", 1410, 15, "Enchanted Peach Tree"; callfunc "PatInvSpawn", 1621, 25, "Venomous"; callfunc "PatInvSpawn", 1695, 25, "Plasma"; callfunc "PatInvSpawn", 1314, 25, "Permeter"; callfunc "PatInvSpawn", 1881, 34, "Lesavka"; callfunc "PatInvSpawn", 1687, 25, "Grove"; callfunc "PatInvSpawn", 1406, 25, "Kapha"; callfunc "PatInvSpawn", 1688, 1, "Lady Tanee"; break; case 2: // 3rd wave now announce "Corrupted Elve Aesir : You DARE to oppose me?", bc_all; sleep 6000; announce "Corrupted Elve Aesir : Too bad you don't know what I do with people like you.. as all who could tell you are DEAD!", bc_all; sleep 1000; set $ProntInvasion, 3; set .WaveRate, .Wave3Cnt; callfunc "PatInvSpawn", 1162, 75, "Rafflesia"; callfunc "PatInvSpawn", 1881, 45, "Lesavka"; callfunc "PatInvSpawn", 1621, 25, "Venomour"; callfunc "PatInvSpawn", 1500, 15, "Parasite"; callfunc "PatInvSpawn", 1687, 25, "Grove"; callfunc "PatInvSpawn", 1189, 45, "Orc Archer"; callfunc "PatInvSpawn", 1695, 25, "Plasma"; callfunc "PatInvSpawn", 1406, 25, "Kapha"; callfunc "PatInvSpawn", 1314, 15, "Permeter"; callfunc "PatInvSpawn", 1206, 15, "Anolian"; callfunc "PatInvSpawn", 1262, 10, "Mutant Dragon"; callfunc "PatInvSpawn", 1190, 1, "Orc Lord"; break; case 3: // MVP now announce "Corrupted Elve Aesir : I will personally punish you.", bc_all; sleep 6000; announce "Corrupted Elve Aesir : Friendship square? What a nice place to bring death~", bc_all; sleep 6000; monster "prontera", 156, 280, "Aesir", 2003, 1, "PatInvasion::OnMobDead_big"; donpcevent "PatAnnounce::OnStart"; set $ProntInvasion, 4; break; case 4: donpcevent "PatAnnounce::OnKilled"; announce "Corrupted Elve Aesir : " + .@KillerName$ + ", I'm not even angry.", bc_all; sleep 6000; announce "Corrupted Elve Aesir : I'm being so sincere right now.", bc_all; sleep 6000; announce "Corrupted Elve Aesir : Even though you broke my heart.", bc_all; sleep 6000; announce "Corrupted Elve Aesir : And killed me.", bc_all; sleep 10000; announce "The citizens of Prontera thank you for saving the city.", bc_all; set $EventEnable, 2; set $ProntInvasion, 5; stopnpctimer; initnpctimer; sleep 7000; 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"; end; } // 0 - ID // 1 - Amount // 2 - Name function script PatInvSpawn { set .@Amount, getarg(1) * getvariableofnpc(.WaveRate,"PatInvasion") / 100; monster "prontera", 0, 0, "&" + getarg(2), getarg(0), .@Amount, "PatInvasion::OnMobDead"; return .@Amount; }