You can use mine o: wel i didn't made it, so isn't mine, but i'm using it on my server and works, also has a leader to record breaking records and enables you to restart it, creditos to the author o:!
turbo_room,106,105,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],
"Necesitas guild para pegarle, crea una con el emperium que se te da si no tienes guild. Por favor pon atencion.",
"Esta sala es para probar que tan rapido puedes romper un Emperium.",
"Preparate para romperlo, aparecera en el centro de la sala",
"Al entrar se te dieron Butterfly Wings, para que puedas regresar cuando acabes, eso es todo, preparate.";
while( 1 ){
mes "Esta es la sala prueba de Romper el Emperium. ";
mes "Puedes calcular que tan rapido rompes el Emperium en esta sala.";
next;
switch( select( ( getmapusers( .Map$ ) )?"^FF0000No disponible":"^0000FFDisponible^000000",
"Top ^FF0000"+.TopRank+"^000000 Record",
( getgmlevel() < 90 )?"":"^FF0000[GM]^000000 Reset Room",
( getgmlevel() < 90 )?"":"^FF0000[GM]^000000 Reset Ladder" )){
Case 1:
if( getmapusers( .Map$ ) ){
mes "Hay otro jugador, espera a que termine por favor.";
next;
break;
}
warp .Map$,0,0;
getitem 714,1; // poring coin , editar segun tu preferencia.
killmonster .Map$,"All";
// removemapflag .Map$,mf_noskill;
donpcevent strnpcinfo(0)+"::OnReady";
end;
Case 2:
mes "^ED1ADCMejor 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 "^FF0000Tiempo : ^ED1ADC[ "+$TopRankTime[.@i]/1000+"."+$TopRankTime[.@i]%1000+" Sec. ]^000000 ";
}
next;
break;
Case 3:
mapannounce .Map$,"El GM reinicio los record del Emperium Breaker.",0,0x00FF00;
killmonster .Map$,"All";
sleep2 3000;
mapwarp .Map$,"izlude",103,142;
mes "Listo, los jugadores que estaban adentro son enviados a fuera.";
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$,"Cuenta regresiva : "+.@i+" segundos.",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;
initnpctimer;
end;
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$,"izlude",103,142;
stopnpctimer;
end;
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)+" ] Tomo el ranking "+( .@i + 1 )+" en la sala de Rompe Emperium con un record de "+.Time/1000+"."+.Time%1000+" segundos !!!",bc_all,0xED1ADC;
break;
}
}
stopnpctimer;
announce "Tiempo tomado : "+.Time/1000+"."+.Time%1000+" Seconds. ",bc_self,0xED1ADC;
// removemapflag .Map$,mf_noskill;
sleep2 5000;
mapwarp .Map$,"izlude",103,142;
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