// [==================================================] // [==================================================] // [ cp txt ] // [==================================================] // [ Versión 1 ] // [==================================================] // [ Script original: Ivion ] // [==================================================] // [ Descripción: ] // [ ] // [ - Ranking ingame de nivel. ] // [ - Ranking ingame de pk-mode. ] // [ - Funciona en servers txt. ] // [==================================================] // [ 5 últimas actualizaciones: ] // [ ] // [ v1: [Ivion] ] // [ - Script Base. ] // [==================================================] // [ ¡Importante!: ] // [ ] // [ - Configurar en ./conf/script_athena.txt: ] // [ event_script_type: 1 ] // [ ] // [ - Activar este npc en ./npc/scripts_athena.txt ] // [==================================================] // [==================================================] - script CP { // CP : Id de cada jugador. // $CPnum : Número de jugadores. // $CP#[0] : Nivel base de cada jugador. // $CP#[1] : Nivel de job de cada jugador. // $CP#[2] : Posición en el ranking de nivel de cada jugador. // $CP#[3] : Id del jugador situado en cada posición del ranking de nivel. // $CP#[4] : Jugadores matados por cada jugador. // $CP#[6] : Posición en el ranking de pk-mode de cada jugador. // $CP#[7] : Id del jugador situado en cada posición del ranking de pk-mode. // $CP#$[0] : Nombre de cada jugador. // $CP#$[1] : Job de cada jugador. OnPCLoginEvent: // Nuevo jugador: if ((CP < 1) && (getgmlevel() < 60)) { set $CPnum,($CPnum + 1); set CP,$CPnum; setd "$CP"+CP+"$[0]", strcharinfo(0); setd "$CP"+CP+"[0]", 0; setd "$CP"+CP+"[1]", 0; setd "$CP"+CP+"[2]", CP; setd "$CP"+CP+"[3]", CP; setd "$CP"+CP+"[4]", 0; setd "$CP"+CP+"[5]", 0; setd "$CP"+CP+"[6]", CP; setd "$CP"+CP+"[7]", CP; callsub Llv; callsub Lpk; } end; OnPCBaseLvUpEvent: OnPCJobLvUpEvent: if (getgmlevel() < 60) { setd "$CP"+CP+"[0]", BaseLevel; setd "$CP"+CP+"[1]", JobLevel; setd "$CP"+CP+"$[1]", jobname(Class); callsub Llv; } end; OnPCKillEvent: if (getgmlevel() < 60) { setd "$CP"+CP+"[4]",(getd("$CP"+CP+"[4]") + 1); callsub Lpk; } end; // Ranking de nivel: Llv: set .@a, 0; set .@c, 0; while (.@a < $CPnum) { set .@a,(.@a + 1); if ((BaseLevel < getd("$CP"+.@a+"[0]")) || ((BaseLevel == getd("$CP"+.@a+"[0]")) && (JobLevel <= getd("$CP"+.@a+"[1]")))) set .@c,(.@c + 1); } set .@d, getd("$CP"+CP+"[2]"); while (.@c < .@d) { set .@e, getd("$CP"+(.@d - 1)+"[3]"); setd "$CP"+.@e+"[2]",.@d; setd "$CP"+.@d+"[3]",.@e; set .@d,(.@d - 1); } while (.@c > .@d) { set .@e, getd("$CP"+(.@d + 1)+"[3]"); setd "$CP"+.@e+"[2]",.@d; setd "$CP"+.@d+"[3]",.@e; set .@d,(.@d + 1); } setd "$CP"+CP+"[2]", .@c; setd "$CP"+.@c+"[3]", CP; return; // Ranking de pk-mode: Lpk: set .@a, 0; set .@c, 0; while (.@a < $CPnum) { set .@a,(.@a + 1); if (getd("$CP"+CP+"[4]") <= getd("$CP"+.@a+"[4]")) set .@c,(.@c + 1); } set .@d, getd("$CP"+CP+"[6]"); while (.@c < .@d) { set .@e, getd("$CP"+(.@d - 1)+"[7]"); setd "$CP"+.@e+"[6]",.@d; setd "$CP"+.@d+"[7]",.@e; set .@d,(.@d - 1); } while (.@c > .@d) { set .@e, getd("$CP"+(.@d + 1)+"[7]"); setd "$CP"+.@e+"[6]",.@d; setd "$CP"+.@d+"[7]",.@e; set .@d,(.@d + 1); } setd "$CP"+CP+"[6]", .@c; setd "$CP"+.@c+"[7]", CP; return; } prontera.gat,164,170,4 script Ranker 859,{ mes "^008888Ranker^000000"; mes "Hola "+strcharinfo(0)+"."; mes "Aquí podrás tener acceso a las estadísticas del servidor."; mes "Dime, ¿qué ranking deseas ver?"; next; set .@a,select("Ranking de nivel","Ranking de pk-mode","^ff0000Salir^000000"); if ((.@a == 1) || (.@a == 2)) { mes "^008888Ranker^000000"; mes "¿Qué tipo de resultados deseas ver?"; next; set .@b,select("Todos","Jugadores online","Por job","^ff0000Salir^000000"); if (.@b == 3) { mes "^008888Ranker^000000"; mes "¿Qué job?"; next; set .@c,select("Novice","Swordman","Mage","Archer","Acolyte","Merchant","Thief","Knight","Priest","Wizard","Blacksmith","Hunter","Assassin","Crusader","Monk","Sage","Rogue","Alchemist","Bard","Dancer","SuperNovice","Gunslinger","Ninja","High Novice","High Swordman","High Mage","High Archer","High Acolyte","High Merchant","High Thief","Lord Knight","High Priest","High Wizard","Whitesmith","Sniper","Assassin Cross","Paladin","Champion","Professor","Stalker","Creator","Clown","Gypsy","Baby Novice","Baby Swordman","Baby Mage","Baby Archer","Baby Acolyte","Baby Merchant","Baby Thief","Baby Knight","Baby Priest","Baby Wizard","Baby Blacksmith","Baby Hunter","Baby Assassin","Baby Crusader","Baby Monk","Baby Sage","Baby Rogue","Baby Alchemist","Baby Bard","Baby Dancer","Baby Super Novice","Taekwon","Star Gladiator","Soul Linker","^ff0000Salir^000000"); if (.@c >= 13) set .@c,(.@c + 1); if (.@c >= 21) set .@c,(.@c + 2); if (.@c >= 26) set .@c,(.@c + 3975); if (.@c >= 4014) set .@c,(.@c + 1); if (.@c >= 4022) set .@c,(.@c + 1); if (.@c >= 4036) set .@c,(.@c + 1); if (.@c >= 4044) set .@c,(.@c + 1); if (.@c >= 4048) set .@c,(.@c + 1); } if ((.@b == 4) || (.@c == 4051)) goto Lend; mes "^008888Ranker^000000"; mes "Muy bien."; mes "Enviaré los datos a tu cuadro de mensajes."; next; } Lend: mes "^008888Ranker^000000"; mes "Que pases un buen día."; emotion 12; if ((.@b == 4) || (.@c == 4051)) close; close2; if (.@a == 1) { announce "[ TOP ] [ N Base / N Job ] - Nombre - (Job)",bc_self,0xFF8800; set .@d, 0; while (.@d < $CPnum) { set .@d,(.@d + 1); set .@e, getd("$CP"+.@d+"[3]"); if ((.@b == 1) || ((.@b == 2) && (getcharid(0,getd("$CP"+.@e+"$[0]")) != 0)) || ((.@b == 3) && (getd("$CP"+.@e+"$[1]") == jobname(.@c - 1)))) announce "[ "+.@d+" ] [ "+getd("$CP"+.@e+"[0]")+" / "+getd("$CP"+.@e+"[1]")+" ] - "+getd("$CP"+.@e+"$[0]")+" - ("+getd("$CP"+.@e+"$[1]")+")",bc_self,0xCC9900; } } if (.@a == 2) { announce "[ TOP ] [ Muertes ] - Nombre - (Job)",bc_self,0xFF8800; set .@d, 0; while (.@d < $CPnum) { set .@d,(.@d + 1); set .@e, getd("$CP"+.@d+"[7]"); if ((.@b == 1) || ((.@b == 2) && (getcharid(0,getd("$CP"+.@e+"$[0]")) != 0)) || ((.@b == 3) && (getd("$CP"+.@e+"$[1]") == jobname(.@c - 1)))) announce "[ "+.@d+" ] [ "+getd("$CP"+.@e+"[4]")+" ] - "+getd("$CP"+.@e+"$[0]")+" - ("+getd("$CP"+.@e+"$[1]")+")",bc_self,0xCC9900; } } end; } // [==================================================] // [==================================================]