hola todos hoy les traigo un sistema de resets facil despues ustedes lo pueden modificar se quieren
pasos:
1)abrir el zombieplague.inc
y agregar en cualquier parte
PHP Code:
/* aca registramos para q guarde los lvls */
native zp_get_user_levels(id)
/* aca para setiarle los levels */
native zp_set_user_levels(id, amount)
2)abrir el zombie_plague40.sma y buscan lo siguiente
PHP Code:
register_native("zp_get_user_ammo_packs", "native_get_user_ammo_packs", 1)
y abajo agregan lo siguiente
PHP Code:
register_native("zp_get_user_levels", "native_get_user_levels", 1) //registramos las natives
register_native("zp_set_user_levels", "native_set_user_levels", 1) //registramos las natives
despues buscan lo siguiente:
PHP Code:
public native_get_user_ammo_packs(id)
{
return g_ammopacks[id];
}
y debajo ponen lo siguiente
PHP Code:
// Native: zp_get_user_levels
public native_get_user_levels(id)
{
return variabledelvl[id]; //donde dice variable de lvl pongan su variable
}
// Native: zp_set_user_levels
public native_set_user_levels(id, amount)
{
return variabledelvl[id] = amount; //donde dice variable de lvl pongan su variable
}
paso 3) crean un nuevo plugin poniendo lo siguiente
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <zombieplague>
#define PLUGIN "resets"
#define VERSION "1.0"
#define AUTHOR "lauty17"
new cvar_cost // Pcvar , ocupadas para crear una CVAR de una manera mas facil
new Menu // Ocupada para crear el menu
public plugin_init()
{
register_plugin("resets", "1.0", "lauty17")
register_clcmd( "say /reset","menudereset" ) //registramos q al decir /reset vaya a menudereset
register_event("HLTV", "event_round_start", "a", "1=0", "2=0") //registramos el evento para q cuando empiese la ronda vaya a event_round_start
cvar_cost = register_cvar("amx_reset_cost", "131") //registramos una nueva cvar cambiando el numero 131 por el numero de lvl q quieran q le pida para resetear
}
public event_round_start(id) //cuando empieza la ronda
{
set_task(120.0 , "reset", id) // a los 5 minutos de empezada la ronda va a llamar al public reset
}
stock ChatColor(const id, const input[], any:...) //esto nose explicarlo bien pero es basicamente para cambiar el color del chat
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4") // color verde
replace_all(msg, 190, "!y", "^1") // color default
replace_all(msg, 190, "!team", "^3") // color de team
replace_all(msg, 190, "!team2", "^0") // color de team 2
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
public menudereset(id) // Funcion especificada para ser ejecutada al escribir /reset en say
{
Menu = menu_create("\wReset", "mostrar_menu") //crea el menu con el titulo Reset (la \w es para q la palabra Reset sea de color blanco)
menu_additem(Menu, "\rHacer Reset" , "1", 0) // Agregamos opciones al menu
menu_setprop(Menu,MPROP_EXITNAME,"Salir") // Agregamos la Opcion Salir.
menu_setprop(Menu, MPROP_EXIT, MEXIT_ALL)
menu_display(id, Menu, 0)
}
public mostrar_menu(id, Menu, item)
{
if (item == MENU_EXIT) // Si elige la opcion salir....
{
menu_destroy(Menu) // Destruimos ( Cerramos ) El menu
return PLUGIN_HANDLED
}
/* Variables usadas para recoger datos del menu . Gracias IneedHelp*/
new iData[6]; // Item seleccionado
new iAccess; // Acceso (flags)
new iCallback; // Callback del menu (menu_makecallback)
new iName[64]; // Nombre del item
menu_item_getinfo(Menu /*variable del menu*/, item /*item del menu seleccionado*/, iAccess /*acceso*/, iData /*numero (key)*/, 5 /*key-len*/, iName /*item-name*/, 63 /*name-len*/, iCallback /*menu-callback*/)
new lvl,cost // Aqui vamos a guardar el costo y el lvl que tiene el jugador al que lo escribe
lvl = zp_get_user_levels(id) // vemos cuanto lvl tiene
cost = get_pcvar_num(cvar_cost) // Sacamos el precio del reset
// Aqui vamos a Registrar todo lo que queremos qe haga CADA OPCION.
switch (str_to_num(iData))
{
case 1:
{
if (lvl >= cost && is_user_alive(id)) // Si tiene suficiente lvl & Esta vivo
{
zp_set_user_levels(id, lvl - cost) // Le quitamos lvl y...
}
else // Y si no..
{
ChatColor( id, "!g[ZP]!yNesecitas ser LvL 131 para poder resetear" )
menu_destroy(Menu) // Destruimos el menu
}
}
}
}
public reset( id )
{
ChatColor( id, "!g[ZP]!yEscribe !g/reset!y para saber mas acerca del reset" ) //esto es para q como dije antes cada 5 minutos de aber empezado la ronda diga este mensaje
}