Ayuda Script PVP

loliserver

New member
Messages
34
Points
0
Emulator
Buenas  noches, por ahí me encontre el siguiente script de PVP, lo estoy probando en mi servidor local, pero encontre un problema, al parecer con las variables a la hora de mostrar los tops pues no se muestran en el NPC.

Adjunto imagen:

QHpOQaP.png


Lo demás funciona bien pero creo que es enla función: callfunc ("PvPRank",Muertes,strcharinfo(0));

Ya he testeado con cuentas normales y con la del GM pero no son mostrados en el Top 5.

Este es el script:

// PvP Rank Top 5 by Rokimokiprontera,165,168,0 script PvP Warp 45,2,2,{end;OnTouch: switch (rand(1,5)) { case 1: // Izquierda warp "pvp_n_1-5",65,99; break; case 2: // Abajo warp "pvp_n_1-5",99,65; break; case 3: // Derecha warp "pvp_n_1-5",134,100; break; case 4: // Arriba warp "pvp_n_1-5",100,134; break; case 5: // Aleatorio warp "pvp_n_1-5",0,0; break; } // End switchend;} // End Scriptprontera,165,168,3 script PvP Rank#PvP::PvPW 837,{mes "[^FF0000Rank PvP^000000]";mes "Top 1: ^0000FF" +$top1pvp$ +"^000000 muertes: ^FF0000" +$top1pvp +"^000000.";mes "Top 2: ^0000FF" +$top2pvp$ +"^000000 muertes: ^FF0000" +$top2pvp +"^000000.";mes "Top 3: ^0000FF" +$top3pvp$ +"^000000 muertes: ^FF0000" +$top3pvp +"^000000.";mes "Top 4: ^0000FF" +$top4pvp$ +"^000000 muertes: ^FF0000" +$top4pvp +"^000000.";mes "Top 5: ^0000FF" +$top5pvp$ +"^000000 muertes: ^FF0000" +$top5pvp +"^000000.";close;OnInit: do { delwaitingroom; waitingroom "PvP Warp [" +getmapusers("pvp_n_1-5") +" users]",0; sleep 50; // Evites super infinity loop } while(1); // End Loopend;} // End Script - script PvPAnnounce -1,{OnPCKillEvent: getmapxy(.@mapa$,.@x,.@y,0); if (.@mapa$ != "pvp_n_1-5") end; if (rid2name(killedrid) == strcharinfo(0)) { mapannounce .@mapa$,"El jugador [" +strcharinfo(0) +"] se ha suicidado.",bc_blue; } else { mapannounce .@mapa$,"El jugador [" +strcharinfo(0) +"] ha asesinado a [" +rid2name(killedrid) +"]",bc_blue; set Muertes, Muertes + 1; callfunc ("PvPRank",Muertes,strcharinfo(0)); } // End ifend;} // End Scriptpvp_n_1-5 mapflag nopenalty- script MapLoad -1,{OnPCLoadMapEvent: getmapxy (.@mapa$,.@x,.@y,0); if (.@mapa$ != "pvp_n_1-5") end; dispbottom "[PvP Rank]: Has matado : " +Muertes +" en PvP.";end;} // End Scriptpvp_n_1-5 mapflag loadeventfunction script PvPRank {set @mvptotal, getarg(0);set @nomb$, getarg(1);if (@mvptotal > $top1pvp) { if ($top1pvp$ == strcharinfo(0)) { // Si estamos en top 1 // Simplemente seguimos contando set $top1pvp, @mvptotal; set $top1pvp$, @nomb$; } else { // Si alcanzamos el top 1 // Almacenamos el antiguo top 1 set @aux, $top1pvp; set @aux$, $top1pvp$; // Nos asignamos al top 1 set $top1pvp, @mvptotal; set $top1pvp$, @nomb$; // El viejo top 1 ahora es top 2 set $top2pvp, @aux; set $top2pvp$, @aux$; } // End if} else if (@mvptotal > $top2pvp) { if ($top2pvp$ == strcharinfo(0)) { // Si estamos en top 2 // Seguimos contando las muertes del top 2 set $top2pvp, @mvptotal; set $nomb2, @nomb$; } else { // Si alcanzamos el top 2 // Almacenamos el antiguo top 2 set @aux, $top2pvp; set @aux$, $top2pvp$; // Nos asignamos al top 2 set $top2pvp, @mvptotal; set $top2pvp$, @nomb$; // El viejo top 2 ahora es top 3 set $top3pvp, @aux; set $top3pvp$, @aux$; } // End if} else if (@mvptotal > $top3pvp) { if ($top3pvp$ == strcharinfo(0)) { // Si estamos en top 3 // Seguimos contando el top 3 set $top3pvp, @mvptotal; set $top3pvp$, @nomb$; } else { // Si alcanzamos el top 3 // Almacenamos el antiguo top 3 set @aux, $top3pvp; set @aux$, $top3pvp$; // Nos asignamos al top 3 set $top3pvp, @mvptotal; set $top3pvp$, @nomb$; // El viejo top 3 ahora es top 4 set $top4pvp, @aux; set $top4pvp$, @aux$; } // End if} else if (@mvptotal > $top4pvp) { if ($top4pvp$ == strcharinfo(0)) { // Si estamos en top 4 // Seguimos contando el top 4 set $top4pvp, @mvptotal; set $top4pvp$, @nomb$; } else { // Si alcanzamos el top 4 // Almacenamos el antiguo top 4 set @aux, $top4pvp; set @aux$, $top4pvp$; // Nos asignamos al top 4 set $top4pvp, @mvptotal; set $top4pvp$, @nomb$; // El viejo top 4 es ahora top 5 set $top5pvp, @aux; set $top5pvp$, @aux$; } // End if} else if (@mvptotal > $top5pvp) { if ($top5pvp$ == strcharinfo(0)) { // Si estamos en top 5 // Seguimos contando el top5 set $top5pvp, @mvptotal; set $nomb5, @nomb$; } else { // Si alcanzamos el top 5 // Directamente nos sobreescribimos en el top 5 set $top5pvp, @mvptotal; set $top5pvp$, @nomb$; } // End if} // End ifreturn;} // End function

Edit: Cabe mencionar que el script no muestra ningún error en la consola.

 
Last edited by a moderator:
No puedo testear el script ahora mismo, aunque tras echarle un vistazo parece que debería funcionar en condiciones.

Una pregunta estúpida (que es un detalle pero a veces se escapa): el script está programado para funcionar únicamente en un determinado mapa. ¿Estás haciendo todas las pruebas en el mapa pvp_n_1-5? Si no, normal que no funcione.

 
Si en el mapa donde estoy testeando es ese y si me anuncia mi total de muertes al entrar al mapa.

El problema es que las Muertes como el nombre no se muestran en ese NPC.

 
Last edited by a moderator:
Cierren el tema, el script esta correcto el problema fue que con el personaje de GM tenia el mayor total de Kills es por eso solo borre los datos enla DB.

 
Back
Top