Code: Select all
public fwClientUserInfoChanged(id,buffer) //indexul nostru este id{
if (!is_user_connected(id)) { //daca nu este conectat returnam FMRES_IGNORED
return FMRES_IGNORED;
}
static val[32]//variabila statica val(vector) cu 32 de pozitii
static name[32]//variabila statica name(vector) cu 32 de pozitii.
get_user_name(id, name, 31) //detectam numele jucatorului
engfunc(EngFunc_InfoKeyValue, buffer, "name", val, sizeof val- 1)
if (equal(val, name)) {
return FMRES_IGNORED
}
engfunc(EngFunc_SetClientKeyValue, id, buffer, "name", name) //ii setam vechiul nume
console_print(id,"Name change is disabled on this server.")//ii scriem un mesaj de avertizare.
return PLUGIN_HANDLED
}
Code: Select all
1.Faceti un bool g_XPLoaded[ 33 ] caruia ii setati valoarea false atunci cand un jucator intra pe server
2.Atunci cand primeste spawn, daca valoarea lui g_XPLoaded este falsa, atunci se incarca datele din nvault si se schimba valoarea variabilei in true.
3.La deconectarea jucatorului, datele se vor salva doar daca valoarea lui g_XPLoaded este adevarata, altfel exista riscul sa fie suprascrise aiurea datele.
Code: Select all
new bool:g_XPLOAD[33];
public client_putinserver( id )
{
g_XPLOAD[ id ] = false;
}
public event_spawn( id )
{
if( !g_XPLOAD [ id ] )
{
LoadData( id );
g_XPLOAD [ id ] = true;
}
}
public client_disconnect( id )
{
if( g_XPLOAD[ id ] )
{
SaveData( id );
}
}
Nu ai mentionat nimic in tutorialul tau despre plugin_end, nvault cloase :[]