Raised This Month: $ Target: $400
 0% 

Rare, but sometimes saving wrong(fvault)


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
fmfs10
Senior Member
Join Date: Mar 2009
Location: Brasil
Old 03-12-2011 , 19:20   Rare, but sometimes saving wrong(fvault)
Reply With Quote #1

Hi! I made a plugin to give players tickets per minute on my server, but sometimes it's saving wrong for some players, really rare, but it is:

PHP Code:
#include <amxmodx>
#include <fvault>
#include <hamsandwich>
#include <superheromod>

new tickets[33]

new const 
Vault[] = "tickets"

new max_playersg_iThinker

new booluser_connected[33]

public 
plugin_init( ) {     
    
    
register_plugin"NTSBR TICKETS""1.4""KoN" )
    
    
register_clcmd"say /tickets""Menu_Tickets")
    
register_clcmd"say_team /tickets""Menu_Tickets")
    
    
RegisterHamHam_Spawn"player""FwdHamPlayerSpawn" 1);
    
    
set_task(300.0"task_Save"0)
    
    
g_iThinker create_entity"info_target" );
    
    if( 
is_valid_entg_iThinker ) ) {
        
entity_set_stringg_iThinkerEV_SZ_classname"SHThinker" );
        
entity_set_floatg_iThinkerEV_FL_nextthinkget_gametime( ) + 300.0 );
        
        
register_think"SHThinker""FwdThinker" );
    }
    else
        
set_task300.0"Save"___"b" );
    
    
max_players get_maxplayers()
    
}

public 
client_putinserver(id) {
    
    
tickets[id] = 0
    
    user_connected
[id] = true
    
    set_task
60.0"add_ticket"id__"b" )
    
    new 
SZ_Name32 ]
    new 
user_tickets[10]
    
get_user_nameidSZ_Name31 )
    
    if(!
fvault_get_dataVaultSZ_Nameuser_tickets) ) return PLUGIN_HANDLED
    
    tickets
[id] = str_to_num(user_tickets)
    
    return 
PLUGIN_CONTINUE
}

public 
client_disconnect(id) {
    
    
remove_task(id)
    
    
Save(id)
    
    
user_connected[id] = false
}

public 
add_ticket(id)
    
tickets[id]++

public 
Menu_Tickets(id) {
    
    new 
menu menu_create("\rNTSBR TICKETS""menup_handler");
    
    new 
tickets_num[32]
    
    
menu_additem(menu"\w500 XP - \r120 tickets""1");
    
menu_additem(menu"\w1500 XP - \r240 tickets""2");
    
menu_additem(menu"\w4000 XP - \r480 tickets""3");
    
menu_additem(menu"\w10000 XP - \r960 tickets""4");
    
menu_additem(menu"\w25000 XP - \r1920 tickets""5");
    
menu_additem(menu"\w50000 XP - \r3000 tickets^n""6");
    
formatex(tickets_num31"\yVoce tem \r%d \yticket%s"tickets[id], tickets[id] == "" "s")
    
menu_additem(menutickets_num"7");
    
    
menu_setprop(menuMPROP_EXITNAME"Sair")
    
menu_setprop(menuMPROP_EXITMEXIT_ALL);
    
menu_display(idmenu0);
    
    return 
PLUGIN_HANDLED
}

public 
menup_handler(idmenuitem)
{
    if( 
item == MENU_EXIT )
    {
        
menu_destroy(menu);
        return 
PLUGIN_HANDLED;
    }
    
    new 
data[6], iName[64];
    new 
accesscallback;
    
menu_item_getinfo(menuitemaccessdata,5iName63callback);
    new 
key str_to_num(data);
    
    switch(
key)
    {
        case 
1:
        {
            if(
user_has_tickets(id120)) {
                new 
name[64]
                
get_user_name(idname63)
                
log_amx("[NTSBR TICKETS]%s comprou 500XP gastando 120 tickets"name)
                
tickets[id] -= 120
                sh_set_user_xp
(id500true)
                
client_print(idprint_chat"[NTSBR] Voce recebeu 500XP!")
                
Save(id)
            }
            else
                
client_print(idprint_chat"[NTSBR] Voce nao tem tickets suficientes")
        }
        case 
2:
        {
            if(
user_has_tickets(id240)) {
                new 
name[64]
                
get_user_name(idname63)
                
log_amx("[NTSBR TICKETS]%s comprou 1500XP gastando 240 tickets"name)
                
tickets[id] -= 240
                sh_set_user_xp
(id1500true)
                
client_print(idprint_chat"[NTSBR] Voce recebeu 1500XP!")
                
Save(id)
            }
            else
                
client_print(idprint_chat"[NTSBR] Voce nao tem tickets suficientes")
        }
        case 
3:
        {
            if(
user_has_tickets(id480)) {
                new 
name[64]
                
get_user_name(idname63)
                
log_amx("[NTSBR TICKETS]%s comprou 4000XP gastando 480 tickets"name)
                
tickets[id] -= 480
                sh_set_user_xp
(id4000true)
                
client_print(idprint_chat"[NTSBR] Voce recebeu 4000XP!")
                
Save(id)
            }
            else
                
client_print(idprint_chat"[NTSBR] Voce nao tem tickets suficientes")
        }
        case 
4:
        {
            if(
user_has_tickets(id960)) {
                new 
name[64]
                
get_user_name(idname63)
                
log_amx("[NTSBR TICKETS]%s comprou 10000XP gastando 960 tickets"name)
                
tickets[id] -= 960
                sh_set_user_xp
(id10000true)
                
client_print(idprint_chat"[NTSBR] Voce recebeu 10000XP!")
                
Save(id)
            }
            else
                
client_print(idprint_chat"[NTSBR] Voce nao tem tickets suficientes")
        }
        case 
5:
        {
            if(
user_has_tickets(id1920)) {
                new 
name[64]
                
get_user_name(idname63)
                
log_amx("[NTSBR TICKETS]%s comprou 25000XP gastando 1920 tickets"name)
                
tickets[id] -= 1920
                sh_set_user_xp
(id25000true)
                
client_print(idprint_chat"[NTSBR] Voce recebeu 25000XP!")
                
Save(id)
            }
            else
                
client_print(idprint_chat"[NTSBR] Voce nao tem tickets suficientes")
        }
        case 
6:
        {
            if(
user_has_tickets(id3000)) {
                new 
name[64]
                
get_user_name(idname63)
                
log_amx("[NTSBR TICKETS]%s comprou 50000XP gastando 3000 tickets"name)
                
tickets[id] -= 3000
                sh_set_user_xp
(id50000true)
                
client_print(idprint_chat"[NTSBR] Voce recebeu 50000XP!")
                
Save(id)
            }
            else
                
client_print(idprint_chat"[NTSBR] Voce nao tem tickets suficientes")
        }
        case 
7:
        {
            
Menu_Tickets(id)
        }
    }
    
    
menu_destroy(menu);
    return 
PLUGIN_HANDLED;
}

public 
FwdHamPlayerSpawnid ) {
    if(!
is_user_aliveid ) )  return HAM_IGNORED;
    
    
set_task(3.0"Mensagem"id)
    
    
Save(id)
    
    return 
HAM_IGNORED;
}

public 
Mensagem(id)
    
client_print(idprint_chat"[NTSBR] Digite /tickets para trocar seus tickets por XP")

Save(id) {
    
    if(!
user_connected[id]) return PLUGIN_HANDLED
    
    
new SZ_Name[64], user_tickets[10]
    
    
get_user_nameidSZ_Name63 )
    
    
num_to_str(tickets[id], user_tickets9)
    
fvault_set_dataVaultSZ_Nameuser_tickets)
    
    return 
PLUGIN_CONTINUE
}

public 
FwdThinkeriEntity ) {
    
    for(new 
1<= max_playersi++)
        
Save(i)
    
    
entity_set_floatiEntityEV_FL_nextthinkget_gametime( ) + 300.0 );
}

stock bool:user_has_tickets(idvtickets) {
    
    if(
tickets[id] >= vtickets) return true
    
    
return false

So... what's the problem?

EDIT@

Oh and there are random numbers appearing after all the saved accounts, like "Pr0 NOOB" "123" 5641447
What's wrong?

Last edited by fmfs10; 03-12-2011 at 19:24.
fmfs10 is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 14:32.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode