Alguien me dice si esto esta bien?
son los plugins de frags por level de r0ma y junte el guardado de DJHD
PHP Code:
#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <nfvault>
#define PLUGIN "Niveles + Guardado"
#define VERSION "1.0"
#define AUTHOR "r0ma y DJHD"
#define TAG "[AMXX]"
#define next_level(%1) ((%1 + 1) * (power(%1, 2) / 2)) /2
new g_level[33]
new g_frags[33]
new g_conectado[33]
new g_maxplayers, g_msgSayText
new VaultFile[128], szData[180], szKey[30]
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled")//Evento de hamsandwich que se llama cuando matan a alguien.
new ent = create_entity("info_target")//Creo 1 entidad
entity_set_string(ent, EV_SZ_classname, "entity_task")//Le seteo 1 classname
entity_set_float(ent, EV_FL_nextthink, 1.0)//La ago pensar cada 1.0 segundos
register_think("entity_task", "fw_ShowHUD")//El think de la entidad que va mostrar el hud
g_maxplayers = get_maxplayers()
g_msgSayText = get_user_msgid("SayText")
nfv_file("Datos", VaultFile, charsmax(VaultFile))
}
public client_putinserver(id)
{
g_conectado[id] = 1
CargarDatos(id)
}
public client_disconnect(id)
{
g_conectado[id] = 0
GuardarDatos(id)
}
public fw_PlayerKilled(victim, attacker)
{
if(!g_conectado[victim] || !g_conectado[attacker] || victim == attacker || get_user_team(victim) == get_user_team(attacker))
return
g_frags[attacker]++
check_level(attacker)
}
public fw_ShowHUD(ent)
{
static id
set_hudmessage(85, 255, 212, 0.80, 0.12, 0, 0.9)
for( id = 1; id <= g_maxplayers; id++)
{
if(!g_conectado[id])
continue
show_hudmessage(id, "[Nivel:%d][Frags:%d/%d]", g_level[id], g_frags[id], next_level(g_level[id]))
}
entity_set_float(ent, EV_FL_nextthink, 1.0)
}
public check_level(id)
{
while(g_frags[id] >= next_level(g_level[id]))
{
g_level[id]++
g_frags[id] = 0
hns_print_color(id, "^x04%s^x01 Felicitaciones subiste a nivel:^x04 %d^x01.", TAG, g_level[id])
}
}
stock hns_print_color(id, const mensaje[], any:...)
{
static buffer[192]
vformat(buffer, charsmax(buffer), mensaje, 3)
message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, id)
write_byte(id)
write_string(buffer)
message_end()
}
GuardarDatos(id)
{
new gName[32]
get_user_name(id, gName, charsmax(gName))
formatex(szKey, charsmax(szKey), "db_datos")
formatex(szData, charsmax(szData), "|Level:%d| |Frags:%d|", g_level[id], g_frags[id])
nfv_set_data(VaultFile, szKey, gName, szData)
}
CargarDatos(id)
{
new gName[32], g_Load_level[25], g_Load_frags[25]
get_user_name(id, gName, charsmax(gName))
formatex(szKey, charsmax(szKey), "db_datos")
if(!nfv_get_data(VaultFile, szKey, gName, szData, sizeof(szData) - 1))
return;
parse(szData, g_Load_level, charsmax(g_Load_level), g_Load_frags, charsmax(g_Load_frags))
g_level[id] = str_to_num(g_Load_level)
g_frags[id] = str_to_num(g_Load_frags)
}
Edit: lo prove, anda pero, se me bugea la parte de los frags me aparece asi
Code:
Nivel: 0
Frags: 0/0
La parte de los frags esto:
PHP Code:
show_hudmessage(id, "[Nivel:%d][Frags:%d/%d]", g_level[id], g_frags[id], next_level(g_level[id]))