Ayuda para cambiar sistema fvault a adv_vault
#1
Como puedo cambiar ese sistema de cuentas fvault a Adv_vault.
no entiendo como funciona el adv_vault bien y e intentado varias formas de cambiar este sistema por adv_vault y no lo se. necesito su ayuda.
Código PHP:
/*================================================================================
 [Account System]
=================================================================================*/

// Logging Account: Logging ID
public logging_id(id)
{
    if (
g_status[id] != OFFLINE) return;
    
    
read_args(user_id[id][0], charsmax(user_id[][]))
    
remove_quotes(user_id[id][0]);trim(user_id[id][0])
    
    if (
fvault_get_keynum(g_VaultAccountsuser_id[id][0]) >= 0)
    {
        
client_cmd(id"messagemode ^"your_password^"")
        
set_hudmessage(02552550.030.0500.14.00.010.01, -1)
        
ShowSyncHudMsg(idg_MsgSync5"Ingresa tu Contraseña^nPulse ESC para salir")
    }
    else
    {
        
g_attempts[id]--
        
client_print(idprint_center"[ZA] Error: El ID ingresado no existe. Intentos restantes: %d"g_attempts[id])
        
show_menu_registration(id)
    }
}

// Logging Account: Logging Password
public logging_password(id)
{
    
read_args(user_password[id][0], charsmax(user_password[][]))
    
remove_quotes(user_password[id][0]);trim(user_password[id][0])
    
    static 
data[62]
    if (
fvault_get_data(g_VaultAccounts, (g_status[id] != OFFLINE) ? user_id[id][1] : user_id[id][0], datacharsmax(data)))
    {
        static 
szPass[35], szBuffer[34], szRegDate[11], szLoggin[11]
        
parse(dataszPasscharsmax(szPass), szRegDatecharsmax(szRegDate), szLoggincharsmax(szLoggin))
        
        
md5(user_password[id][0], szBuffer)
        
        if (
equal(szBufferszPass))
        {
            if (
g_status[id] != OFFLINE)
            {
                
CONFIRM_MENU 3
                client_cmd
(id"messagemode ^"register_new_password^"")
                
set_hudmessage(02552550.030.0500.14.00.010.01, -1)
                
ShowSyncHudMsg(idg_MsgSync5"Ingresa una Contraseña nueva^nPulse ESC para salir")
            }
            else
            {
                
copy(g_register_date[id], charsmax(g_register_date[]), szRegDate)
                
copy(g_last_loggin[id], charsmax(g_last_loggin[]), szLoggin)
                
check_online_account(id)
            }
        }
        else
        {
            if (
g_status[id] != OFFLINE)
            {
                
user_password[id][0] = ""
                
client_print(idprint_center"[ZA] Error: La contraseña ingresada es incorrecta.")
                
show_menu_character_selection(id)
            }
            else
            {
                
g_attempts[id]--
                
client_print(idprint_center"[ZA] Error: La contraseña ingresada es incorrecta. Intentos restantes: %d"g_attempts[id])
                
show_menu_registration(id)
            }
        }
    }
}
    
// Check if account is currently online
check_online_account(id)
{
    
// Get logged players count
    
static iPlayersnumiPlayersnum fnGetLogged()
    
    
// Not enough players, load directly
    
if (iPlayersnum 1)
    {
        
copy(user_id[id][1], charsmax(user_id[][]), user_id[id][0])
        
copy(user_password[id][1], charsmax(user_password[][]), user_password[id][0])
        
user_id[id][0] = ""
        
user_password[id][0] = ""
        
Load(id0)
        return;
    }
    
    
// Check all players ID's
    
for (new 1<= g_maxplayersi++)
    {
        
// Same user ID
        
if (equal(user_id[i][1], user_id[id][0]) && g_status[i] > OFFLINE)
        {
            
client_print(idprint_center"[ZA] Error: La cuenta se está utilizando actualmente.")
            
show_menu_registration(id)
            break;
        }
        else if (
== g_maxplayers// All players checked
        
{
            
copy(user_id[id][1], charsmax(user_id[][]), user_id[id][0])
            
copy(user_password[id][1], charsmax(user_password[][]), user_password[id][0])
            
user_id[id][0] = ""
            
user_password[id][0] = ""
            
Load(id0)
        }
    }
}

// Register Account: Checking ID
public check_id(id)
{
    if (
g_status[id] != OFFLINE) return;
    
    
read_args(user_id[id][0], charsmax(user_id[][]))
    
remove_quotes(user_id[id][0]);trim(user_id[id][0])
    
    if (
count_characters(user_id[id][0]) < g_minidcharacters)
    {
        
client_print(idprint_center"[ZA] Error: El ID debe contener al menos %d carácteres"g_minidcharacters)
        
show_menu_registration(id)
        return;
    }
    if (
contain_special_characters(user_id[id][0]))
    {
        
client_print(idprint_center"[ZA] Error: El ID no debe contener carácteres especiales")
        
show_menu_registration(id)
        return;
    }
    
    if (
fvault_get_keynum(g_VaultAccountsuser_id[id][0]) >= 0)
    {
        
client_print(idprint_center"[ZA] Error: El ID ingresado se encuentra en uso")
        
show_menu_registration(id)
    }
    else
    {
        
client_cmd(id"messagemode ^"register_password^"")
        
set_hudmessage(02552550.030.0500.14.00.010.01, -1)
        
ShowSyncHudMsg(idg_MsgSync5"Ingresa una Contraseña^nPulse ESC para salir")
    }
}

// Register Account / Change Account: Checking Password
public check_password(id)
{
    if (
g_status[id] != OFFLINE && CONFIRM_MENU != 3) return;
    
    
read_args(user_password[id][0], charsmax(user_password[][]))
    
remove_quotes(user_password[id][0]);trim(user_password[id][0])
    
    if (
count_characters(user_password[id][0]) < g_minpasscharacters)
    {
        
client_print(idprint_center"[ZA] Error: La contraseña debe contener al menos %d carácteres"g_minpasscharacters)
        (
CONFIRM_MENU == 3) ? show_menu_character_selection(id) : show_menu_registration(id)
        return;
    }
    if (
contain_special_characters(user_password[id][0]))
    {
        
client_print(idprint_center"[ZA] Error: La contraseña no debe contener carácteres especiales")
        (
CONFIRM_MENU == 3) ? show_menu_character_selection(id) : show_menu_registration(id)
        return;
    }
    if (
equal(user_password[id][0], user_id[id][0]) && CONFIRM_MENU != || equal(user_password[id][0], user_id[id][1]) && CONFIRM_MENU == 3)
    {
        
client_print(idprint_center"[ZA] Error: La contraseña no puede ser similar al ID")
        (
CONFIRM_MENU == 3) ? show_menu_character_selection(id) : show_menu_registration(id)
        return;
    }
    if (
equal(user_password[id][0], user_password[id][1]) && CONFIRM_MENU == 3)
    {
        
client_print(idprint_center"[ZA] Error: La contraseña es la misma que la actual")
        
show_menu_character_selection(id)
        return;
    }
    
    
show_menu_confirm(id)
}

save_account_count()
{
    
formatex(g_fkeycharsmax(g_fkey), "Accounts / Characters")
    
formatex(g_fdatacharsmax(g_fdata), "%d %d"g_createdaccountsg_createdcharacters)
    
fvault_set_data(g_VaultCreatedg_fkeyg_fdata)
}

load_account_count()
{
    
formatex(g_fkeycharsmax(g_fkey), "Accounts / Characters")
    
    static 
data[51]
    if (
fvault_get_data(g_VaultCreatedg_fkeydatacharsmax(data)))
    {
        static 
szAccounts[15], szCharacters[15]
        
parse(dataszAccountscharsmax(szAccounts), szCharacterscharsmax(szCharacters))
        
        
g_createdaccounts str_to_num(szAccounts)
        
g_createdcharacters str_to_num(szCharacters)
    }
    else
        
g_createdaccounts g_createdcharacters 0
}

Save(id)
{
    
// Not character selected don't save
    
if (g_status[id] < ONLINE_SPEC) return;
    
    static 
szBuffer[34], szDate[11]
    
md5(user_password[id][1], szBuffer)
    
get_time("%Y/%m/%d"szDatecharsmax(szDate))
    
    
formatex(g_fdatacharsmax(g_fdata), "%s %s %s"szBufferg_register_date[id], szDate)
    
fvault_set_data(g_VaultAccountsuser_id[id][1], g_fdata)
    
    
formatex(g_fkeycharsmax(g_fkey), "ID: %s Character: %s"user_id[id][1], g_playername[id])
        
    
formatex(g_fdatacharsmax(g_fdata), "%d %d %d %d %d %d %d %d %d %d %d %d"g_level[id], g_experience[id], g_ammopacks[id][0], g_ammopacks[id][1], g_fame[id], g_points[id][0], g_points[id][1], g_usedpoints[id][0], g_usedpoints[id][1],g_timepoints[id][0],g_timepoints[id][1], g_titles[id])
    
fvault_set_data(g_VaultExpg_fkeyg_fdata)
    
    
formatex(g_fdatacharsmax(g_fdata), "%d %d %d %d"g_humanclass[id], g_humanclassnext[id], g_zombieclass[id], g_zombieclassnext[id])
    
fvault_set_data(g_VaultClassesg_fkeyg_fdata)
    
    
formatex(g_fdatacharsmax(g_fdata), "%d %d %d %d %d %d %d %d %d %d %d %d %d %d"g_infected[id][0], g_infected[id][1], g_killed[id][0][0], g_killed[id][0][1], g_killed[id][0][2], g_killed[id][0][3], g_killed[id][0][4], 
    
g_killed[id][0][5], g_killed[id][1][0], g_killed[id][1][1], g_killed[id][1][2], g_killed[id][1][3], g_killed[id][1][4], g_killed[id][1][5])
    
fvault_set_data(g_VaultKillsg_fkeyg_fdata)
    
    
formatex(g_fdatacharsmax(g_fdata), "%d %d %d %d %d %d %d %d %d %d %d %d"g_damage[id][0][0], g_damage[id][0][1], g_damage[id][0][2], g_damage[id][0][3], g_damage[id][0][4], g_damage[id][0][5], g_damage[id][1][0], 
    
g_damage[id][1][1], g_damage[id][1][2], g_damage[id][1][3], g_damage[id][1][4], g_damage[id][1][5])
    
fvault_set_data(g_VaultDamageg_fkeyg_fdata)
    
    
formatex(g_fdatacharsmax(g_fdata), "%d %d %d %d %d %d %d %d %d %d"g_skill_points[id][0][0], g_skill_points[id][0][1], g_skill_points[id][0][2], g_skill_points[id][0][3], g_skill_points[id][0][4], g_skill_points[id][1][0], g_skill_points[id][1][1], 
    
g_skill_points[id][1][2], g_skill_points[id][1][3], g_skill_points[id][1][4])
    
fvault_set_data(g_VaultSkillsg_fkeyg_fdata)
    
    
formatex(g_fdatacharsmax(g_fdata), "%d %d %d %d %d %d %d %d %d"g_quest[id], g_questcompleted[id], g_questrounds[id], g_questkill[id][0], g_questkill[id][1], g_questkill[id][2], g_questkill[id][3], g_questkill[id][4], g_questkill[id][5])
    
fvault_set_data(g_VaultQuestsg_fkeyg_fdata)
    
    
formatex(g_fdatacharsmax(g_fdata), "%d %d %d %d %d"g_playedtime[id][0], g_playedtime[id][1], g_playedtime[id][2], g_playedtime[id][3],six_hours)
    
fvault_set_data(g_VaultTimeg_fkeyg_fdata)
    
    
formatex(g_fdatacharsmax(g_fdata), "%d %f %f %d %d %d %d %d %d %d %d %d"g_hud_stats_t[id], g_hud_stats_x[id], g_hud_stats_y[id], g_hudred[id], g_hudgreen[id], g_hudblue[id], g_nvgred[id], g_nvggreen[id], g_nvgblue[id], g_flashred[id], g_flashgreen[id], g_flashblue[id])
    
fvault_set_data(g_VaultColorsg_fkeyg_fdata)
}

Load(idyourdata)
{
    
guardar_arma[id][0]=-1
    guardar_arma
[id][1]=-1
    guardar_arma
[id][2]=-1
    guardar_arma
[id][3]=-1
    
    formatex
(g_fkeycharsmax(g_fkey), "ID: %s Character: %s"user_id[id][1], g_charactername[id][SELECTED_CHARACTER])

    switch (
yourdata)
    {
        case 
0:
        {
            static 
key2[46]
            
formatex(key2charsmax(key2), "ID: %s"user_id[id][1])
            
formatex(g_fdatacharsmax(g_fdata), "%s %s %s %s %s"g_charactername[id][0], g_charactername[id][1], g_charactername[id][2], g_charactername[id][3], g_charactername[id][4])
    
            if (
fvault_get_data(g_VaultCharacterskey2g_fdatacharsmax(g_fdata)))
            {
                static 
sz1[32], sz2[32], sz3[32], sz4[32], sz5[32]
                
parse(g_fdatasz1charsmax(sz1), sz2charsmax(sz2), sz3charsmax(sz3), sz4charsmax(sz4), sz5charsmax(sz5))
        
                
copy(g_charactername[id][0], charsmax(g_charactername[][]), sz1)
                
copy(g_charactername[id][1], charsmax(g_charactername[][]), sz2)
                
copy(g_charactername[id][2], charsmax(g_charactername[][]), sz3)
                
copy(g_charactername[id][3], charsmax(g_charactername[][]), sz4)
                
copy(g_charactername[id][4], charsmax(g_charactername[][]), sz5)
            }
        
            
g_status[id] = CHARACTER_MENU
            show_menu_character_selection
(id)
        }
        case 
1:
        {
            
formatex(g_fdatacharsmax(g_fdata), "%i %i %i %i %i %i %i %i %i %i %i %i"g_level[id], g_experience[id], g_ammopacks[id][0], g_ammopacks[id][1], g_fame[id], g_points[id][0], g_points[id][1], g_usedpoints[id][0], g_usedpoints[id][1], g_timepoints[id][0], g_timepoints[id][1], g_titles[id])
    
            if (
fvault_get_data(g_VaultExpg_fkeyg_fdatacharsmax(g_fdata)))
            {
                static 
szLvl[4], szExp[15], szAmmos[10], szAmmos2[10], szFame[3], szPts[10], szPtsz[10], szPts2[10], szPtsz2[10], szTimeP[10],szTimeP2[10],szTitle[3]
                
parse(g_fdataszLvlcharsmax(szLvl), szExpcharsmax(szExp), szAmmoscharsmax(szAmmos), szAmmos2charsmax(szAmmos2), szFamecharsmax(szFame), szPtscharsmax(szPts), szPtszcharsmax(szPtsz), 
                
szPts2charsmax(szPts2), szPtsz2charsmax(szPtsz2),szTimeP,charsmax(szTimeP),szTimeP2,charsmax(szTimeP2),szTitlecharsmax(szTitle))
        
                
g_level[id] = str_to_num(szLvl)
                
g_experience[id] = str_to_num(szExp)
                
g_ammopacks[id][0] = str_to_num(szAmmos)
                
g_ammopacks[id][1] = str_to_num(szAmmos2)
                
g_fame[id] = str_to_num(szFame)
                
g_points[id][0] = str_to_num(szPts)
                
g_points[id][1] = str_to_num(szPtsz)
                    
g_usedpoints[id][0] = str_to_num(szPts2)
                
g_usedpoints[id][1] = str_to_num(szPtsz2)
                
g_timepoints[id][0] = str_to_num(szTimeP)
                
g_timepoints[id][1] = str_to_num(szTimeP2)
                
g_titles[id] = str_to_num(szTitle)
                
                
Load(id2)
            }
            else 
// Doesn't have data saved, show directly the menu
                
show_menu_character(id)
        }
        case 
2:
        {
            
formatex(g_fdatacharsmax(g_fdata), "%i %i %i %i"g_humanclass[id], g_humanclassnext[id], g_zombieclass[id], g_zombieclassnext[id])
    
            if (
fvault_get_data(g_VaultClassesg_fkeyg_fdatacharsmax(g_fdata)))
            {    
                static 
szHcl[3], szHcln[3], szZcl[3], szZcln[3]
                
parse(g_fdataszHclcharsmax(szHcl), szHclncharsmax(szHcln), szZclcharsmax(szZcl), szZclncharsmax(szZcln))
        
                
g_humanclass[id] = str_to_num(szHcl)
                
g_humanclassnext[id] = str_to_num(szHcln)
                
g_zombieclass[id] = str_to_num(szZcl)
                
g_zombieclassnext[id] = str_to_num(szZcln)                
            }
            
Load(id3)
        }
        case 
3:
        {
            
formatex(g_fdatacharsmax(g_fdata), "%i %i %i %i %i %i %i %i %i %i %i %i %i %i"g_infected[id][0], g_infected[id][1], g_killed[id][0][0], g_killed[id][0][1], g_killed[id][0][2], g_killed[id][0][3], g_killed[id][0][4], g_killed[id][0][5],
            
g_killed[id][1][0], g_killed[id][1][1], g_killed[id][1][2], g_killed[id][1][3], g_killed[id][1][4], g_killed[id][1][5])
    
            if (
fvault_get_data(g_VaultKillsg_fkeyg_fdatacharsmax(g_fdata)))
            {
                static 
szInf[10], szInf2[10], szKill1[10], szKill2[10], szKill3[10], szKill4[10], szKill5[10], szKill6[10], szKill7[10], szKill8[10], szKill9[10], szKill10[10], szKill11[10], szKill12[10]
                
parse(g_fdataszInfcharsmax(szInf), szInf2charsmax(szInf2), szKill1charsmax(szKill1), szKill2charsmax(szKill2), szKill3charsmax(szKill3), szKill4charsmax(szKill4), szKill5charsmax(szKill5), szKill6charsmax(szKill6), 
                
szKill7charsmax(szKill7), szKill8charsmax(szKill8), szKill9charsmax(szKill9), szKill10charsmax(szKill10), szKill11charsmax(szKill11), szKill12charsmax(szKill12))
        
                
g_infected[id][0] = str_to_num(szInf)
                
g_infected[id][1] = str_to_num(szInf2)
                
g_killed[id][0][0] = str_to_num(szKill1)
                
g_killed[id][0][1] = str_to_num(szKill2)
                
g_killed[id][0][2] = str_to_num(szKill3)
                
g_killed[id][0][3] = str_to_num(szKill4)
                
g_killed[id][0][4] = str_to_num(szKill5)
                
g_killed[id][0][5] = str_to_num(szKill6)
                
g_killed[id][1][0] = str_to_num(szKill7)
                
g_killed[id][1][1] = str_to_num(szKill8)
                
g_killed[id][1][2] = str_to_num(szKill9)
                
g_killed[id][1][3] = str_to_num(szKill10)
                
g_killed[id][1][4] = str_to_num(szKill11)
                
g_killed[id][1][5] = str_to_num(szKill12)
            }
            
Load(id4)
        }
        case 
4:
        {
            
formatex(g_fdatacharsmax(g_fdata), "%i %i %i %i %i %i %i %i %i %i %i %i"g_damage[id][0][0], g_damage[id][0][1], g_damage[id][0][2], g_damage[id][0][3], g_damage[id][0][4], g_damage[id][0][5],
            
g_damage[id][1][0], g_damage[id][1][1], g_damage[id][1][2], g_damage[id][1][3], g_damage[id][1][4], g_damage[id][1][5])
    
            if (
fvault_get_data(g_VaultDamageg_fkeyg_fdatacharsmax(g_fdata)))
            {
                static 
szDam1[20], szDam2[20], szDam3[20], szDam4[20], szDam5[20], szDam6[20], szDam7[20], szDam8[20], szDam9[20], szDam10[20], szDam11[20], szDam12[20]
                
parse(g_fdataszDam1charsmax(szDam1), szDam2charsmax(szDam2), szDam3charsmax(szDam3), szDam4charsmax(szDam4), szDam5charsmax(szDam5), szDam6charsmax(szDam6), szDam7charsmax(szDam7), 
                
szDam8charsmax(szDam8), szDam9charsmax(szDam9), szDam10charsmax(szDam10), szDam11charsmax(szDam11), szDam12charsmax(szDam12))
        
                
g_damage[id][0][0] = str_to_num(szDam1)
                
g_damage[id][0][1] = str_to_num(szDam2)
                
g_damage[id][0][2] = str_to_num(szDam3)
                
g_damage[id][0][3] = str_to_num(szDam4)
                
g_damage[id][0][4] = str_to_num(szDam5)
                
g_damage[id][0][5] = str_to_num(szDam6)
                
g_damage[id][1][0] = str_to_num(szDam7)
                
g_damage[id][1][1] = str_to_num(szDam8)
                
g_damage[id][1][2] = str_to_num(szDam9)
                
g_damage[id][1][3] = str_to_num(szDam10)
                
g_damage[id][1][4] = str_to_num(szDam11)
                
g_damage[id][1][5] = str_to_num(szDam12)
            }
            
Load(id5)
        }
        case 
5:
        {
            
formatex(g_fdatacharsmax(g_fdata), "%i %i %i %i %i %i %i %i %i %i"g_skill_points[id][0][0], g_skill_points[id][0][1], g_skill_points[id][0][2], g_skill_points[id][0][3], g_skill_points[id][0][4], g_skill_points[id][1][0], 
            
g_skill_points[id][1][1], g_skill_points[id][1][2], g_skill_points[id][1][3], g_skill_points[id][1][4])
    
            if (
fvault_get_data(g_VaultSkillsg_fkeyg_fdatacharsmax(g_fdata)))
            {
                static 
szSki1[3], szSki2[3], szSki3[3], szSki4[3], szSki5[3], szSki6[3], szSki7[3], szSki8[3], szSki9[3], szSki10[3]
                
parse(g_fdataszSki1charsmax(szSki1), szSki2charsmax(szSki2), szSki3charsmax(szSki3), szSki4charsmax(szSki4), szSki5charsmax(szSki5), szSki6charsmax(szSki6), szSki7charsmax(szSki7), szSki8charsmax(szSki8), 
                
szSki9charsmax(szSki9), szSki10charsmax(szSki10))
        
                
g_skill_points[id][0][0] = str_to_num(szSki1)
                
g_skill_points[id][0][1] = str_to_num(szSki2)
                
g_skill_points[id][0][2] = str_to_num(szSki3)
                
g_skill_points[id][0][3] = str_to_num(szSki4)
                
g_skill_points[id][0][4] = str_to_num(szSki5)
                
g_skill_points[id][1][0] = str_to_num(szSki6)
                
g_skill_points[id][1][1] = str_to_num(szSki7)
                
g_skill_points[id][1][2] = str_to_num(szSki8)
                
g_skill_points[id][1][3] = str_to_num(szSki9)
                
g_skill_points[id][1][4] = str_to_num(szSki10)
            }
            
Load(id6)
        }
        case 
6:
        {
            
formatex(g_fdatacharsmax(g_fdata), "%i %i %i %i %i %i %i %i %i"g_quest[id], g_questcompleted[id], g_questrounds[id], g_questkill[id][0], g_questkill[id][1], g_questkill[id][2], g_questkill[id][3], g_questkill[id][4], g_questkill[id][5])
    
            if (
fvault_get_data(g_VaultQuestsg_fkeyg_fdatacharsmax(g_fdata)))
            {
                static 
szQue1[3], szQue2[4], szQue3[4], szKill1[4], szKill2[4], szKill3[4], szKill4[4], szKill5[4], szKill6[4]
                
parse(g_fdataszQue1charsmax(szQue1), szQue2charsmax(szQue2), szQue3charsmax(szQue3), szKill1charsmax(szKill1), szKill2charsmax(szKill2), szKill3charsmax(szKill3), szKill4charsmax(szKill4), szKill5charsmax(szKill5), szKill6charsmax(szKill6))
        
                
g_quest[id] = str_to_num(szQue1)
                
g_questcompleted[id] = str_to_num(szQue2)
                
g_questrounds[id] = str_to_num(szQue3)
                
g_questkill[id][0] = str_to_num(szKill1)
                
g_questkill[id][1] = str_to_num(szKill2)
                
g_questkill[id][2] = str_to_num(szKill3)
                
g_questkill[id][3] = str_to_num(szKill4)
                
g_questkill[id][4] = str_to_num(szKill5)
                
g_questkill[id][5] = str_to_num(szKill6)
            }
            
Load(id7)
        }
        case 
7:
        {
            
formatex(g_fdatacharsmax(g_fdata), "%i %i %i %i %i"g_playedtime[id][0], g_playedtime[id][1], g_playedtime[id][2], g_playedtime[id][3],six_hours)
    
                if (
fvault_get_data(g_VaultTimeg_fkeyg_fdatacharsmax(g_fdata)))
                {
                static 
szPla1[10], szPla2[10], szPla3[3], szPla4[3], szPla5[10]
                
parse(g_fdataszPla1charsmax(szPla1), szPla2charsmax(szPla2), szPla3charsmax(szPla3), szPla4charsmax(szPla4),szPla5charsmax(szPla5))
        
                
g_playedtime[id][0] = str_to_num(szPla1)
                
g_playedtime[id][1] = str_to_num(szPla2)
                
g_playedtime[id][2] = str_to_num(szPla3)
                
g_playedtime[id][3] = str_to_num(szPla4)
                
six_hours str_to_num(szPla5)
            }
            
Load(id8)
        }
        case 
8:
        {
            
formatex(g_fdatacharsmax(g_fdata), "%i %f %f %i %i %i %i %i %i %i %i %i"g_hud_stats_t[id], g_hud_stats_x[id], g_hud_stats_y[id], g_hudred[id], g_hudgreen[id], g_hudblue[id], g_nvgred[id], g_nvggreen[id], g_nvgblue[id], g_flashred[id], g_flashgreen[id], g_flashblue[id])
    
                if (
fvault_get_data(g_VaultColorsg_fkeyg_fdatacharsmax(g_fdata)))
                {
                static 
szHudStatT[2], szHudStatX[5], szHudStatY[5], szHudRed[4], szHudGreen[4], szHudBlue[4], sznvgRed[4], sznvgGreen[4], sznvgBlue[4], szflashRed[4], szflashGreen[4], szflashBlue[4]
                
parse(g_fdataszHudStatTcharsmax(szHudStatT), szHudStatXcharsmax(szHudStatX), szHudStatYcharsmax(szHudStatY), szHudRedcharsmax(szHudRed), szHudGreencharsmax(szHudGreen), szHudBluecharsmax(szHudBlue), sznvgRedcharsmax(sznvgRed), 
                
sznvgGreencharsmax(sznvgGreen), sznvgBluecharsmax(sznvgBlue), szflashRedcharsmax(szflashRed), szflashGreencharsmax(szflashGreen), szflashBluecharsmax(szflashBlue))
        
                
g_hud_stats_t[id] = str_to_num(szHudStatT)
                
g_hud_stats_x[id] = str_to_float(szHudStatX)
                
g_hud_stats_y[id] = str_to_float(szHudStatY)
                
g_hudred[id] = str_to_num(szHudRed)
                
g_hudgreen[id] = str_to_num(szHudGreen)
                
g_hudblue[id] = str_to_num(szHudBlue)
                
g_nvgred[id] = str_to_num(sznvgRed)
                
g_nvggreen[id] = str_to_num(sznvgGreen)
                
g_nvgblue[id] = str_to_num(sznvgBlue)
                
g_flashred[id] = str_to_num(szflashRed)
                
g_flashgreen[id] = str_to_num(szflashGreen)
                
g_flashblue[id] = str_to_num(szflashBlue)
            }
            
show_menu_character(id)
        }
    }
}

// Create New Account
create_account(id)
{
    new 
szBuffer[34], szDate[11]
    
md5(user_password[id][0], szBuffer)
    
get_time("%Y/%m/%d"szDatecharsmax(szDate))
    
    
g_createdaccounts++
    
save_account_count()
    
formatex(g_fdatacharsmax(g_fdata), "%s %s 0000-00-00"szBufferszDate)
    
fvault_set_data(g_VaultAccountsuser_id[id][0], g_fdata)
    
    
user_id[id][0] = ""
    
client_print(idprint_center"[ZA] Registro finalizado con Ã©xito")
    
    
// Show menu again
    
show_menu_registration(id)
}

// Create Character: Check Character
create_character(id)
{
    
    
    
    if (
equal(g_playername[id], "None"))
    {
        
client_print(idprint_center"[ZA] Error: Este nombre no puede ser usado. Por favor, cámbiese el nombre")
        
show_menu_character_selection(id)
        return;
    }
    
    if (
TrieKeyExists(g_tcharacternamesg_playername[id]))
        
client_print(idprint_center"[ZA] El nombre se encuentra en uso. Por favor, cámbiese el nombre")
    else
    {
        
g_titles[id]= 0
        formatex
(g_titles_name[id], charsmax(g_titles_name[]), "%s",ListTitulos[g_titles[id]]);
        
g_createdcharacters++
        
save_account_count()
        
TrieSetCell(g_tcharacternamesg_playername[id], 1)
        
copy(g_charactername[id][SELECTED_CHARACTER], charsmax(g_charactername[][]), g_playername[id])
        
        
formatex(g_fkeycharsmax(g_fkey), "ID: %s"user_id[id][1])
        
formatex(g_fdatacharsmax(g_fdata), "^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^""g_charactername[id][0], g_charactername[id][1], g_charactername[id][2], g_charactername[id][3], g_charactername[id][4])
        
fvault_set_data(g_VaultCharactersg_fkeyg_fdata)
        
        
        
client_print(idprint_center"[ZA] Personaje creado con Ã©xito")
    }
    
    
show_menu_character_selection(id)
}

// Change Password
change_password(id)
{
    new 
szBuffer[34], szDate[11]
    
md5(user_password[id][0], szBuffer)
    
get_time("%Y/%m/%d"szDatecharsmax(szDate))
    
    
formatex(g_fdatacharsmax(g_fdata), "%s %s %s"szBufferg_register_date[id], szDate)
    
fvault_set_data(g_VaultAccountsuser_id[id][1], g_fdata)
    
    
copy(user_password[id][1], charsmax(user_password[][]), user_password[id][0])
    
user_password[id][0] = ""
    
client_print(idprint_center"[ZA] Contraseña cambiada con Ã©xito")
    
    
// Show menu again
    
show_menu_character_selection(id)
}

loggin_success(idspec 0)
{
    
// Set g_titles[id] name
    
set_user_info(id"name"g_charactername[id][SELECTED_CHARACTER])
    
    
// Welcome message
    
zp_colored_print(0"^x04[ZA]^x01 Bienvenido! ^x04%s^x01 ha iniciado sesión."g_charactername[id][SELECTED_CHARACTER])
    
    
// Update level
    
update_level(id)
    
// Set the custom HUD display task if enabled
    
if (get_pcvar_num(cvar_huddisplay))
        
set_task(1.0"ShowHUD"id+TASK_SHOWHUD__"b")
    
    
// Set time check task
    
set_task(1.0"check_time"id+TASK_TIME__"b")
    
    
// Go to spectator?
    
if (spec)
    {
        
// Make a task because name has to be changed, after set account it's logged
        
set_task(0.5"join_team_spec"id)
    }
    else
    {
        
// Make a task because name has to be changed, after set account it's logged
        
set_task(0.5"join_team_t_ct"id)
    }
    
    
// Make a task because admin has to be checked, after name changed
    
set_task(0.5"loggin_success2"id)
}

public 
join_team_spec(id)
{
    
// Not connected
    
if (!g_isconnected[id]) return;
    
    
// Currently logged spectator
    
g_status[id] = ONLINE_SPEC
        
    
// Join SPEC team
    
engclient_cmd(id"jointeam""6")
}

public 
join_team_t_ct(id)
{
    
// Not connected
    
if (!g_isconnected[id]) return;
    
    
// Currently logged
    
g_status[id] = ONLINE
        
    
// Join T or CT team
    
if (fnGetTs() >= fnGetCTs())
        
engclient_cmd(id"jointeam""2")
    else
        
engclient_cmd(id"jointeam""1")
        
    
// Prevent player bugged if he was logged as spectator and
    // went to character menu again
    
if (fm_cs_get_user_team(id) == FM_CS_TEAM_SPECTATOR)
    {
        
remove_task(id+TASK_TEAM)
        
fm_cs_set_user_team(idFM_CS_TEAM_CT// must be CT (he isn't a zombie)
        
fm_user_team_update(id)
    }
}

public 
loggin_success2(id)
{
    
// Not connected
    
if (!g_isconnected[id]) return;
    
    
// Prevent admin log out, loggin and get full modes again
    
if (equal(g_playername[id], g_logoutname[id])) return;
    
    
// Get user flags
    
static userflagsuserflags get_user_flags(id)
    
    
// Admin modes per map
    
for (new ArraySize(g_admin_names)-1> -1i--)
    {
        if (
userflags ArrayGetCell(g_admin_flagsi))
        {
            
g_modescount[id] = ArrayGetCell(g_admin_modesi)
            break;
        }
        else if (
== 0// All flags checked, not admin
            
g_modescount[id] = 0
    
}
}

// Log Out from Account
log_out(idcharactermenu)
{
    
// Player alive?
    
if (g_isalive[id])
    {
        
// Prevent players from killing themselves?
        
if (get_pcvar_num(cvar_blocksuicide))
        {
            
zp_colored_print(id"^x04[ZA]^x01 No puedes salir estando vivo.")
            return;
        }
                
        
// Check that we still have both humans and zombies to keep the round going
        
check_round(id)
                
        
// Kill him before he switches team
        
dllfunc(DLLFunc_ClientKillid)
    }
    
    
// Remove previous tasks
    
remove_task(id+TASK_SPAWN)
    
remove_task(id+TASK_SHOWHUD)
    
remove_task(id+TASK_TIME)
    
remove_task(id+TASK_COMBO)
    
    
// Save progress
    
Save(id)
    
    
// Move him to unassigned team
    
if (fm_cs_get_user_team(id) != FM_CS_TEAM_SPECTATOR)
    {
        
remove_task(id+TASK_TEAM)
        
fm_cs_set_user_team(idFM_CS_TEAM_UNASSIGNED)
        
fm_user_team_update(id)
    }
    
    
// Initialize player vars
    
reset_vars(id10)
    
    
// Prevent admin log out, loggin and get full modes again
    
copy(g_logoutname[id], charsmax(g_logoutname[]), g_playername[id])
    
    
// Go to character menu?
    
if (!charactermenu)
    {
        
// Show print
        
client_print(idprint_center"[ZA] Sesión cerrada con Ã©xito.")
    
        
// Reset character names
        
for (new 05i++) g_charactername[id][i] = "None"
        
        
// Show register menu
        
g_attempts[id] = g_attemptslogging
        user_id
[id][0] = ""
        
user_id[id][1] = ""
        
user_password[id][0] = ""
        
user_password[id][1] = ""
        
g_status[id] = OFFLINE
        show_menu_registration
(id)
    }
    else
    {
        
// Show character menu
        
g_status[id] = CHARACTER_MENU
        show_menu_character_selection
(id)
    }

Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)