gm_in,120,81,4 script EasterEvent 105,{ end; OnWhisperGlobal: if( getgmlevel() < 60 ) end; if( @whispervar0$ == "state" ) { set .EventState, atoi(@whispervar1$); dispbottom "Done, changed event state to " + .EventState; end; } else if( @whispervar0$ == "eggs" ) { set .SpawnGID, getcharid(3); // Spawn 60 eggs for( set .@i,0; .@i<20; set .@i,.@i+1 ) { set .@id, rand(2028,2030); monster "prontera", 0, 0, "Easter Egg", .@id, 3, "EasterEvent::OnEggDead"; } dispbottom "Done."; end; } else if( @whispervar0$ == "green" ) { if( getstrlen(@whispervar1$) < 2 ) { dispbottom "Too short."; end; } mapannounce "prontera", "Easter Bunny : " + @whispervar1$, bc_map, 0x65E975; end; } else if( @whispervar0$ == "red" ) { if( getstrlen(@whispervar1$) < 2 ) { dispbottom "Too short."; end; } mapannounce "prontera", "Easter Bunny : " + @whispervar1$, bc_map, 0xFF4137; end; } else if( @whispervar0$ == "mvp" ) { set .MVPNum, .MVPNum + 1; if( .MVPNum == 5 ) set .MVPNum, 1; set .@id, 2011 + .MVPNum * 2; getmapxy .@map$, .@x, .@y, 0; monster .@map$, .@x, .@y, "--ja--", .@id, 1, "EasterEvent::OnMVPDead"; dispbottom "DONE"; end; } else if( @whispervar0$ == "spawn" ) { getmapxy .@map$, .@x, .@y, 0; set .@SelfOnly, 1; goto DoMobSpawn; } else if( @whispervar0$ == "spawnimba" ) { getmapxy .@map$, .@x, .@y, 0; set .@id, 2021 + .ImbaNum; set .ImbaNum, .ImbaNum + 1; if( .ImbaNum == 4 ) set .ImbaNum, 0; areamonster .@map$, .@x - 5, .@y - 5, .@x + 5, .@y + 5, "--ja--", .@id, 1, "EasterEvent::OnDemonDead"; dispbottom "done."; end; } else if( @whispervar0$ == "final" ) { monster "prontera", 156, 278, "Easter Bunny", 2031, 1, "EasterEvent::OnMVPDead_big"; dispbottom "DONE =D"; end; } dispbottom "state"; dispbottom "eggs"; dispbottom "green"; dispbottom "red"; dispbottom "mvp"; dispbottom "spawn"; dispbottom "spawnimba"; end; OnEggDead: set @EggsKilled, @EggsKilled + 1; if( @EggsKilled == 4 ) { set EventPoints, EventPoints + 1; dispbottom "Received 1 kill point (total: " + EventPoints + ")."; set @EggsKilled, 0; } if( .EventState > 1 ) { if( (rand(0,10) - .EventState) < 4 ) { getmapxy .@map$, .@x, .@y, 0; if( .NextWTF < gettimetick(2) ) { set .NextWTF, gettimetick(2) + 45; set .@c, 0xFFFF00; switch( rand(0, 6) ) { case 0: set .@m$, "Easter Bunny : " + strcharinfo(0) + ", GET YOUR HANDS OFF THE EGGS! *hexes egg*"; set .@c, 0xFF4137; break; case 1: set .@m$, strcharinfo(0) + " : Oh teh noes! It's a cursed egg. HELP!"; break; case 2: set .@m$, "Easter Bunny : " + strcharinfo(0) + "! Don't be messin with the egg yo! Hands off fool..."; set .@c, 0xFF4137; break; case 3: set .@m$, strcharinfo(0) + " : Leapin Lucifer!!! Sufferin Sucotash!!! *this egg is bad medicine ~.~"; break; case 4: set .@m$, strcharinfo(0) + " : Nanna nanna boo boo I'm killing your EGG, yahoo! Take that Mr. Easter Bunny..."; break; case 5: set .@m$, "Easter Bunny : Abracadabra... Presto Kazam! " + strcharinfo(0) + ", you will regret touching that egg... mwhahahahaha"; set .@c, 0xFF4137; break; case 6: set .@m$, strcharinfo(0) + " : Something's not right here....WHOMGA!!! EVIL egg... help someone HELP!"; break; } mapannounce "prontera", .@m$, bc_map, .@c; } DoMobSpawn: set .@score, 40; while( .@score > 0 ) { switch( rand(0, 12) ) { case 0: set .@p, 1; set .@id, 1015; break; // Zombie case 1: set .@p, 2; set .@id, 1153; break; case 2: set .@p, 13; set .@id, 1864; break; case 3: set .@p, 11; set .@id, 1298; break; case 4: set .@p, 19; set .@id, 1098; break; case 5: set .@p, 26; set .@id, 1867; break; case 6: set .@p, 34; set .@id, 1302; break; case 7: set .@p, 9; set .@id, 1504; break; case 8: set .@p, 7; set .@id, 1403; break; case 9: set .@p, 6; set .@id, 1036; break; case 10: set .@p, 19; set .@id, 1132; break; case 11: set .@p, 39; set .@id, 1870; break; case 12: set .@p, 10; set .@id, 1192; break; } set .@score, .@score - .@p; areamonster .@map$, .@x - 10, .@y - 10, .@x + 10, .@y + 10, "Anti Easter Demon", .@id, rand(1, 3), "EasterEvent::OnDemonDead"; } if( .@SelfOnly == 1) { set .@SelfOnly, 0; dispbottom "DONE"; end; } } } set .@left, mobcount("prontera", "EasterEvent::OnEggDead"); if( .@left > 50 && (.@left % 10) != 0 ) end; detachrid; attachrid .SpawnGID; if( playerattached() ) dispbottom .@left + " left [Egg]"; end; OnMVPDead: OnMVPDead_big: set .@p, callfunc("GetPoints", killedrid); set EventPoints, EventPoints + .@p; dispbottom "Received " + .@p + " kill point(s) (total: " + EventPoints + ")."; detachrid; attachrid .SpawnGID; if( playerattached() ) dispbottom "MVP KILLED !!"; end; OnDemonDead: set .@p, callfunc("GetPoints", killedrid); set EventPoints, EventPoints + .@p; dispbottom "Received " + .@p + " kill point(s) (total: " + EventPoints + ")."; set .@left, mobcount("prontera", "EasterEvent::OnDemonDead"); detachrid; attachrid .SpawnGID; if( playerattached() ) dispbottom .@left + " left [Demon]"; end; } function script GetPoints { switch( getarg(0) ) { case 1015: return 1; case 1153: return 1; case 1864: return 2; case 1298: return 2; case 1098: return 2; case 1867: return 2; case 1302: return 3; case 1504: return 1; case 1403: return 1; case 1036: return 1; case 1132: return 1; case 1870: return 2; case 1192: return 1; // MVP case 2014: return 15; case 2016: return 20; case 2018: return 25; case 2020: return 30; // Imba case 2021: return 4; case 2022: return 4; case 2023: return 4; case 2024: return 4; // Final case 2031: return 50; default: return 1; } }