Member
|
11-21-2016
, 10:45
How to save in nvault?
|
#1
|
Hi guys,
I try to edit my plugin in which VIP has an option of selecting one of 4 models per team, I just try to make it save the option, so with every map change he doesn't have to type /modele again.
I tried it myself but it just doesn't save the option, any suggestions?
Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <nvault>
#pragma semicolon 1
#define MENUITEM_DISABLED (1<<26)
new g_Model[33];
new plik_vault;
new g_ModelFiles[][][] = {
{"saperterro", "ctsplinter"},
{"oranget", "camoct"},
{"phoenixt", "urbanos"},
{"viptt", "snowct"}
};
new g_ModelNames[][] = {
"Model 1",
"Model 2",
"Model 3",
"Model 4"
};
#if ( sizeof g_ModelNames != sizeof g_ModelFiles )
#error You have to format the g_ModelFiles to the same size as g_ModelNames
#endif
public plugin_init() {
register_plugin("Modele VIP", "1.3", "Gasior");
register_event("ResetHUD", "resetModel", "b");
register_clcmd("say /modele", "modelevip");
plik_vault = nvault_open("g_Model");
if(plik_vault == INVALID_HANDLE)
set_fail_state("Nie moge otworzyc pliku :/");
return PLUGIN_CONTINUE;
}
public plugin_precache() {
new tempfile[128];
for ( new i = 0 ; i < sizeof g_ModelFiles ; i++ ) {
for ( new j = 0 ; j < 2 ; j++ ) {
formatex(tempfile, 127, "models/player/%s/%s.mdl", g_ModelFiles[i][j], g_ModelFiles[i][j]);
precache_model(tempfile);
}
}
}
public client_connect(id) {
g_Model[id] = 0;
LoadData(id);
}
public modelevip(id) {
if ( ! ( get_user_flags(id) & ADMIN_LEVEL_H ) )
return;
new menu = menu_create( "\yWybierz swoj VIP Model:", "menu_handler" );
new i;
for ( i = 0 ; i < sizeof g_ModelFiles ; i++ ) {
new menuitem[64];
formatex(menuitem, charsmax(menuitem), "\%c%s", g_Model[id] - 1 == i ? 'd' : 'w', g_ModelNames[i]);
menu_additem(menu, menuitem,_, g_Model[id] - 1 == i ? MENUITEM_DISABLED : 0);
}
menu_addblank(menu, 0);
menu_additem(menu, "Pokaz Modele");
menu_addblank(menu, 0);
menu_addtext(menu, "Dziekujemy za bycie VIPem na FFA ProjektSpark.pl", 0);
menu_display(id, menu);
}
public menu_handler(id, menu, item) {
if ( item == MENU_EXIT ) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
if ( item == sizeof g_ModelFiles ) {
g_Model[id] = 0;
}
else {
g_Model[id] = item + 1;
}
resetModel(id);
switch(item)
{
case 4:
show_motd(id, "modele.txt", "Modele");
}
SaveData(id);
return PLUGIN_CONTINUE;
}
public resetModel(id) {
if ( ! is_user_connected(id) )
return;
new userTeam2, CsTeams:userTeam = cs_get_user_team(id);
switch ( userTeam ) {
case CS_TEAM_T: userTeam2 = 1;
case CS_TEAM_CT: userTeam2 = 2;
}
if ( g_Model[id] && userTeam2 )
cs_set_user_model(id, g_ModelFiles[g_Model[id] - 1][userTeam2 - 1]);
else
cs_reset_user_model(id);
return;
}
public SaveData(id)
{
new authid[32];
get_user_authid(id, authid, 31);
new vaultkey[64],vaultdata[64];
formatex(vaultkey, 63, "%s-modele", authid);
formatex(vaultdata,63,"%d", g_Model[id]);
nvault_set(plik_vault,vaultkey,vaultdata);
return PLUGIN_CONTINUE;
}
public LoadData(id)
{
new authid[32];
get_user_authid(id, authid, 31);
new vaultkey[64],vaultdata[64];
formatex(vaultkey, 63, "%s-modele", authid);
g_Model[id] = str_to_num(vaultdata);
format(vaultkey, 63, "%s-modele", authid);
get_vaultdata(vaultkey, vaultdata, 63);
return PLUGIN_CONTINUE;
}
|
|