// [========================================================]
// [=========== Sistema Puntos Pvp ===========]
// [========================================================]
// [ Version 2.3 ]
// [========================================================]
// [ Script Original de: Beck ]
// [========================================================]
// [ Descripción: ]
// [--------------------------------------------------------]
// [ ]
// [ - Sistema de puntos registrados cada vez que se ]
// [ mata a otro char ]
// [ - Inlcuye configuracion de mapas y Puntos negativos ]
// [ - Se pueden probar los hats antes de cangear los puntos]
// [========================================================]
prontera,164,168,4 script Administrador PvP 743,{
set .Nombre$,"^5555FFAdministrador PvP^000000";// Nombre NPC
cutin .c$,2;
mes .Nombre$;
mes "Hola!"+strcharinfo (0);
mes "¿Qué deseas hacer?";
next;
mes .Nombre$;
switch ( select ( "Ir a una sala:Cangear Items :Salir")){
case 1:// Ir a una sala
mes "Selecciona la sala:";
for(set .@a, 0; .@a < getarraysize(.mapas_pvp$); set .@a,.@a+1) {
set .@menu$,.@menu$ +"Sala "+.@a+":";
}
set .@b, select(.@menu$+"Salir");
if (.@b > getarraysize(.mapas_pvp$)) {
mes "Adios~";
cutin "",255;
close;
}
warp .mapas_pvp$[.@b-1],0,0;
cutin "",255;
end;
case 2:// Cangear items
if(#PuntosPvp<=0 ){
mes "Tienes ^ff0000"+#PuntosPvp+"^000000 , por lo tanto no puedes conseguir ningún objeto a cambio de esos puntos.";
cutin "",255;
close;
}
next;
mes .Nombre$;
mes "Tu tienes ^5555FF" + #PuntosPvp + "^000000 , que quieres escoger?";
for( set .@i, 0; .@i < getarraysize(.item_pvp); set .@i, .@i + 1 ) {
mes ""+.valor_item[.@i]+" = "+getitemname(.item_pvp[.@i])+"";
if( .@i < 1 )
set .@menu$, getitemname(.item_pvp[.@i]);
else
set .@menu$, .@menu$+":"+getitemname(.item_pvp[.@i]);
}// loop
next;
set .@p,select(.@menu$)- 1;
if( .valor_item[.@p] > #PuntosPvp ) {
mes "Te faltan puntos , animate y ver por ellos!";
cutin "",255;
close;
}
getitem .item_pvp[.@p],1;
mes "Felicidades , Ahi tienes.";
set #PuntosPvp,#PuntosPvp-.valor_item[.@p];
cutin "",255;
close;
case 3:
cutin "",255;
close;
}
OnInit:
// [========================================================]
// [ Configuración: ]
// [--------------------------------------------------------]
set .MapaActivado, 1; // Si quieres un mapa especifico pon 1 , si quieres todos los mapas pon 0
set .RestarPuntos, 1; // Si esta en 1 , cada vez que te muera alguien se le restara un punto , si esta en 0 no pasara nada al morir.
set .PuntosNegativos, 1; // Debe estar activada la variable anterior , de lo contrario no se ejecuta. Esto sirve para
setarray .mapas_pvp$[0],"prontera","sec_pri","geffen"; // Añadir o quitar mapas
setarray .item_pvp[0], 5383,5147,5352; // Aquí pones las ID de los items que quieres a dar en orden
setarray .valor_item[0], 10,10,500; // Aquí pones el costo de puntos que quieres por el item (Debe ir según el orden del array anterior)
setarray $@Campeon[0],200,500,600;// Cantidad de puntos necesarios para el bonus
set .mapa_bonus$,"payon";// Mapa para el npc Bonus
set .x_bonus,150;// Cordenada x para el npc Bonus
set .y_bonus,100;// Cordenada y para el npc Bonus
set .c$,"job_sage_kayron";// Nombre del Cutin
end;
// [--------------------------------------------------------]
// [ Fin de la configuración. ]
// [========================================================]
OnPcKillEvent: // Sumamos los puntos al matar a alguien
if (!.MapaActivado) {
for (set .@c, 0; .@c < getarraysize(.mapas_pvp$); set .@c, .@c + 1)
if (.mapas_pvp$[.@c] == strcharinfo(3)){
set #PuntosPvp,#PuntosPvp + 1;
} else
end;
} else {
set #PuntosPvp,#PuntosPvp + 1;
}
for (set .@z, 0; .@z < getarraysize($@Campeon); set .@z, .@z + 1)
if(#PuntosPvp==$@Campeon[.@z]){
dispbottom "BONUs! Has llegado a " + #PuntosPvp + " Puntos así que te mereces un pequeño premio. ";
warp .mapa_bonus$,.x_bonus,.y_bonus;
end;
}
dispbottom "Has ganado un punto , ahora tienes " + #PuntosPvp + ". Sigue así.";
end;
OnPCDieEvent: // Restamos los puntos al matar a alguien
if (.RestarPuntos) {
if (.MapaActivado ){
for (set .@c, 0; .@c < getarraysize(.mapas_pvp$); set .@c, .@c + 1)
if (.mapas_pvp$[.@c] == strcharinfo(3)){
if ( #PuntosPvp>=1) set #PuntosPvp, #PuntosPvp -1;
if ( .PuntosNegativos && #PuntosPvp<= 0) set #PuntosPvp, #PuntosPvp -1;
}
end;
} else {
if ( #PuntosPvp>=1) set #PuntosPvp, #PuntosPvp -1;
if ( .PuntosNegativos && #PuntosPvp<= 0) set #PuntosPvp, #PuntosPvp -1;
if ( !.PuntosNegativos && #PuntosPvp<= 0) end;
}
dispbottom " Al morir, has perdido un punto . Actualmente tienes " + #PuntosPvp + " .";
}// fin if
end;
}// Fin script
payon,150,100,4 script Bonus 866,{
set .Nombre$,"^ff0000[Bonus]^000000";// Nombre NPC
mes .Nombre$;
for (set .@c, 0; .@c < getarraysize($@campeon); set .@c, .@c + 1)
if(#PuntosPvp==$@Campeon[.@c]) {
mes "Has conseguido un bonus , Felicidades!.";
next;
mes "Escogere un número al azar, y te lo añadire.";
next;
mes .Nombre$;
set .@bonus,rand(1,100); // 100%
if ( .@bonus <= 20 ) {// ( 20% chance)
set #PuntosPvp,#PuntosPvp + 10;
mes "Has recibido 10 Puntos de Pvp , la cantidad más baja. Espero que no te desanimes, pronto tendras otro Bonus.";
} else
if ( .@bonus <= 40&& .@bonus>=21 ) {// (40% Chance)
set #PuntosPvp,#PuntosPvp + 30;
mes "Has recibido 30 Puntos de Pvp , la cantidad más baja. Espero que no te desanimes, pronto tendras otro Bonus.";
} else
if ( .@bonus <= 60 && .@bonus >=41 ) {// (60% Chance)
set #PuntosPvp,#PuntosPvp + 50;
mes "Has recibido 50 Puntos de Pvp , la cantidad más baja. Espero que no te desanimes, pronto tendras otro Bonus.";
} else
if ( .@bonus <= 80 && .@bonus>=61) {// (80% Chance)
set #PuntosPvp,#PuntosPvp + 70;
mes "Has recibido 70 Puntos de Pvp , la cantidad más baja. Espero que no te desanimes, pronto tendras otro Bonus.";
} else
if ( .@bonus <= 100 && .@bonus>=81) {// (40% Chance)
set #PuntosPvp,#PuntosPvp + 100;
mes "Has recibido 100 Puntos de Pvp , la cantidad más alta. Espero estes contento, y recuerda pronto tendras otro Bonus."; //(100% de chance)
}
mes "Ahora tienes un total de "+#PuntosPvp+", Suertre!";
close;
}
mes "Para obtener un bonus de puntaje pvp , debes tener tus puntos pvp igual a :";
mes $@campeon[.@c];
close;
}