| xeloxded |
07-05-2017 14:35 |
Help with fvault
PHP Code:
#include <amxmodx>
#include <engine>
#include <cstrike>
#include <fun>
#include <fvault>
new name[32]
new data[24]
new Gorros[20]
new const g_db[] = "Database"
enum {
ITEM_HAT = 0,
MAX_ITEMS
}
enum {
SHOPPED = 0,
HAS,
IDENDIFIER
}
enum
{
HID_AFRO = 0,
HID_ANGEL2,
MAX_HIDS
}
enum HATS_DATA {
H_NAME[25],
H_ID,
H_COST,
H_MODEL[50]
}
new const szHats[][HATS_DATA] = {
{ "Afro", HID_AFRO, 1, "models/hats/afro.mdl" },
{ "Angel 2", HID_ANGEL2, 2, "models/hats/angel2.mdl" }
}
new g_menu[200]
new g_playername[33][32]
new g_playeritem[33][MAX_ITEMS]
new g_hashat[33][IDENDIFIER][MAX_HIDS]
new g_hat[33]
public plugin_init() {
register_clcmd("say /hats", "ShowMenuMain")
}
public client_putinserver(id)
{
Load(id)
for(new i = 0; i < sizeof szHats; i++)
{
g_hashat[id][SHOPPED][szHats[i][H_ID]] = false
g_hashat[id][HAS][szHats[i][H_ID]] = false
}
g_playeritem[id][ITEM_HAT] = -1
//g_frags[id] = 0
get_user_name(id, g_playername[id], charsmax(g_playername[]))
}
public client_disconnect(id)
{
Save(id)
if(g_playeritem[id][ITEM_HAT] >= 0)
SetPlayerHat(id, 1, szHats[g_playeritem[id][ITEM_HAT]][H_MODEL])
}
public plugin_precache()
{
new i
for(i = 0; i < sizeof szHats; i++)
precache_model(szHats[i][H_MODEL])
}
public ShowMenuMain(id)
{
new menu, i
menu = menu_create("\rHats", "ShowMenuMain")
for(i = 0; i < sizeof szHats; i++)
{
if(g_hashat[id][SHOPPED][szHats[i][H_ID]])
{
if(g_hashat[id][HAS][szHats[i][H_ID]])
{
formatex(g_menu, charsmax(g_menu), "%s \y[ACTIVE]", szHats[i][H_NAME])
menu_additem(menu, g_menu, "")
}
else
menu_additem(menu, szHats[i][H_NAME], "")
}
else
{
if(cs_get_user_money(id) >= szHats[i][H_COST])
{
formatex(g_menu, charsmax(g_menu), "%s \y$%d", szHats[i][H_NAME], szHats[i][H_COST])
menu_additem(menu, g_menu, "")
}
else
{
formatex(g_menu, charsmax(g_menu), "%s \r[YOU NEED $%d]", szHats[i][H_NAME],
szHats[i][H_COST] - cs_get_user_money(id))
menu_additem(menu, g_menu, "")
}
}
}
menu_display(id, menu)
}
public CmdMenuHats(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED;
}
if(g_hashat[id][SHOPPED][szHats[item][H_ID]])
{
if(g_hashat[id][HAS][szHats[item][H_ID]])
client_print(id, print_chat, "Ya tienes el sombrero %s Activo", szHats[item][H_NAME])
else
{
if(g_playeritem[id][ITEM_HAT] != -1)
g_hashat[id][HAS][g_playeritem[id][ITEM_HAT]] = false
g_hashat[id][HAS][szHats[item][H_ID]] = true
client_print(id, print_chat, "Has seleccionado el sombrero %s", szHats[item][H_NAME])
g_playeritem[id][ITEM_HAT] = item
SetPlayerHat(id, _, szHats[item][H_MODEL])
}
}
else
{
if(cs_get_user_money(id) >= szHats[item][H_COST])
{
new Money = cs_get_user_money(id);
g_hashat[id][SHOPPED][szHats[item][H_ID]] = true
Money -= szHats[item][H_COST]
client_print(0, print_chat, "%sYou just Bought %s", g_playername[id], szHats[item][H_NAME])
}
else
client_print(id, print_chat, "You need %d money to buy %s",
szHats[item][H_COST] - cs_get_user_money(id), szHats[item][H_NAME])
}
return PLUGIN_HANDLED;
}
SetPlayerHat(id, iRemove = 0, const sModel[] = "")
{
if(!iRemove)
{
if (!is_valid_ent(g_hat[id]))
{
g_hat[id] = create_entity("info_target")
if (!is_valid_ent(g_hat[id]))
return;
entity_set_int(g_hat[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_edict(g_hat[id], EV_ENT_aiment, id)
entity_set_int(g_hat[id], EV_INT_rendermode, kRenderNormal)
}
entity_set_model(g_hat[id], sModel)
}
else
{
if (is_valid_ent(g_hat[id]))
{
remove_entity(g_hat[id])
g_hat[id] = 0
}
}
}
Load( id )
{
get_user_name( id, name, charsmax( name ) )
if( fvault_get_data( g_db, name, data, charsmax( data ) ) )
{
parse( data, Gorros, charsmax( Gorros ) )
g_hat[id] = str_to_num( Gorros )
}
}
Save( id )
{
get_user_name( id, name, charsmax( name ) )
formatex( data, charsmax( data ), "%d", g_hat[id])
fvault_set_data( g_db, name, data )
}
It doesnt seem to save things properly, can someone check the plugin and help me? or if anything its wrong and fix it so ill learn :)
|