viewing paste Emperium Breaker v1 | Athena

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
//Emperium Breaker
//Version 1
//By Emistry
 
prontera,155,181,5      script  Emperium Breaker        1288,{
 
// What Map will be used
set .Map$,"job3_arch01";
// How many Top Breaker will be Recorded
set .TopRank,5;
// Message to Inform Players while inside the Room
setarray .Instruction$[0],
                        "Please Listen here carefully.",
                        "This is Emperium Breaker Test Room , which is use to test your Breaking Time.",
                        "Prepare youself...and do your best to Break it...",
                        "Okay that's All i want to say , get Ready yourself and it will Start Soon.";
                       
                       
while( 1 ){
mes "This is Emperium Breaker test Room. ";
mes "You are able to calculate your Emperium Breaking Speed in this Room.";
switch( select( ( getmapusers( .Map$ ) )?"^FF0000NOT Available":"^0000FFAvailable^000000",
                                "Top ^FF0000"+.TopRank+"^000000 Breaker Ladder",
                                ( getgmlevel() < 90 )?"":"^FF0000[GM]^000000 Reset Room",
                                ( getgmlevel() < 90 )?"":"^FF0000[GM]^000000 Reset Ladder" )){
Case 1:
        if( getmapusers( .Map$ ) ){
                mes "There is another player inside it now.";
                next;
                break;
                }
        warp .Map$,0,0;
        killmonster .Map$,"All";
//      removemapflag .Map$,mf_noskill;
        donpcevent strnpcinfo(0)+"::OnReady";
        end;
Case 2:
        mes "^ED1ADCLatest Record^000000 : "+LatestRecord/1000+"."+LatestRecord%1000+" Seconds.";
        for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){
                if( !$TopRankTime[.@i] ) break;
                mes "^FF0000Top "+( .@i + 1 )+" : ^0000FF"+$TopName$[.@i]+" ";
                mes "^FF0000Time Taken : ^ED1ADC[ "+$TopRankTime[.@i]/1000+"."+$TopRankTime[.@i]%1000+" Sec. ]^000000 ";
        }
        next;
        break;
 
Case 3:
        mapannounce .Map$,"A GM has RESET the Breaker Test Room.",0,0x00FF00;
        killmonster .Map$,"All";
        sleep2 3000;
        mapwarp .Map$,"prontera",155,171;
        mes "Done Reset. and Player who are inside are warped out.";
        next;
        break;
Case 4:
        switch( select( "^0000FFAll Player^000000:^FF0000One Player^000000" ) ){
                Case 1:
                        deletearray $TopRankTime[0],getarraysize( $TopRankTime );
                        deletearray $TopName$[0],getarraysize( $TopName$ );
                        mes "RESETED WHOLE LADDER.";
                        break;
                Case 2:
                        mes "Please input the ^FF0000EXACT NAME^000000 of player you want to delete.";
                        input .Name$;
                        for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){
                                if( .Name$ == $TopName$[.@i] ){
                                        deletearray $TopName$[.@i],1;
                                        deletearray $TopRankTime[.@i],1;
                                        mes "Removed ^FF0000"+.Name$+"^000000 from the List.";
                                }
                        }
                }
        next;
        break;
        }
}
 
OnReady:
sleep2 3000;
for( set .@i,0; .@i < getarraysize( .Instruction$ ); set .@i,.@i + 1 ){
        mapannounce .Map$,.Instruction$[.@i],0,0x00FF00;
        sleep2 2500;
        }
for( set .@i,5; .@i > 0; set .@i,.@i - 1 ){
        mapannounce .Map$,"Count Down : "+.@i+" Seconds.",0,0x00FF00;
        sleep2 1000;
        }
//mapannounce .Map$,"Hit the Emperium Now and Skills Disabled.",0,0x00FF00;
setmapflag .Map$,mf_noskill;
monster .Map$,29,27,"Breaker Test",1288,1,strnpcinfo(0)+"::OnBreaked";
set .Record,0;
sleep2 500;
 
OnTimer600000:
if( !mobcount( .Map$,strnpcinfo(0)+"::OnBreaked" ) ) end;
        mapannounce .Map$,"You spent too much time. i think you are AFK , so you are out.",0,0xED1ADC;
        sleep2 3000;
        mapwarp .Map$,"aev_fild",143,169;
        stopnpctimer;
 
OnBreaked:
        set .Time,getnpctimer(0);
        copyarray .@tempName$[0],$TopName$[0],getarraysize( $TopName$ );
        copyarray .@tempRecord[0],$TopRankTime[0],getarraysize( $TopRankTime[0] );
        set LatestRecord,.Time;
        for( set .@i,0; .@i < .TopRank; set .@i,.@i + 1 ){
                if( .Time < $TopRankTime[.@i] || !$TopRankTime[.@i] ){
                                set $TopRankTime[.@i],.Time;
                                set $TopName$[.@i],strcharinfo(0);
                                copyarray $TopRankTime[.@i + 1],.@tempRecord[0],getarraysize( .@tempRecord );
                                copyarray $TopName$[.@i + 1],.@tempName$[0],getarraysize( .@tempName$ );
                        announce "[ "+strcharinfo(0)+" ] Achieved Top "+( .@i + 1 )+" in Emperium Breaking with "+.Time/1000+"."+.Time%1000+" Seconds !!!",bc_all,0xED1ADC;
                        break;
                        }
                }
        stopnpctimer;
        announce "Current Time Taken : "+.Time/1000+"."+.Time%1000+" Seconds. ",bc_self,0xED1ADC;
//      removemapflag .Map$,mf_noskill;
        sleep2 5000;
        mapwarp .Map$,"aev_fild",143,169;
        end;
}
       
job3_arch01     mapflag nocommand       50
job3_arch01     mapflag gvg     on
job3_arch01     mapflag gvg_castle
job3_arch01     mapflag monster_noteleport
job3_arch01     mapflag nosave  SavePoint
Viewed 496 times, submitted by unknown.