Raised This Month: $ Target: $400
 0% 

[ZP] Ayuda Banco!


  
 
 
Thread Tools Display Modes
Author Message
elpapadeloshelados
BANNED
Join Date: Aug 2010
Old 08-20-2010 , 15:29   [ZP] Ayuda Banco!
#1

Buenas, mi problema es que desde que tengo server ZP eh tenido un gran problema, y es con el banco. Por ejemplo, yo deposito 1000 ammopacks y se supone que solamente se tienen que guardar a mi, pero no, se le guardan a todos los jugadores y si cambio mapa o cierro y abro de nuevo, todos empiezan con el banco en 5000 ammo packs o las que sea que yo tuviera, se las pueden gastar todas pero cuando se cambia mapa otra ves lo mismo, todos con 5000 ammo packs. En resumen, necesito poner que cuando uno deposite solo se le deposite a uno mismo y se queden guardados si se cambia de mapa o se desconecta, y cuando empiezes de nuevo tengas las que tenias antes, osea las que has depositado sin que se borren, aqui les voy a dejar el .sma del banco que yo utilizo:
Code:
// ZP Bank - allows saving of ammo packs 
/*    cvars 
zp_bank 1                //<0/1> set whether plugin enabled or not 
zp_bank_limit 1000000    //maximium storage capacity of each person's account 
zp_bank_blockstart 1    //<0/1> set whether bank blocks zombie plague from giving the initial 5 ammo packs on start if user has an account 
*/ 
#include <amxmodx> 
#include <amxmisc> 
#include <nvault> 
#include <fakemeta> 
#include <zombieplague> 
static const version[] = "0.3"; 
static const plugin[] = "ZP Bank"; 
enum pcvar 
{ 
    enable = 0, 
    cap, 
    start 
} 
new pcvars[pcvar]; 
new bankstorage[33]; 
new gvault, thinkobj; 
public plugin_init() 
{ 
    register_plugin(plugin, version, "Random1"); 
 
    gvault = nvault_open("Zombie Bank"); 
 
    pcvars[enable] =            register_cvar("zp_bank", "1"); 
    pcvars[cap] =                register_cvar("zp_bank_limit", "5000"); 
    pcvars[start] =                register_cvar("zp_bank_blockstart", "0"); 
 
    if ( get_pcvar_num(pcvars[cap]) > 2147483646 ) 
    { 
        set_pcvar_num(pcvars[cap], 2147483646); 
        server_print("[%s] Due to a 32 bit restriction in perl zp_ammo_limit reset based on restriction", plugin); 
    } 
 
    register_clcmd("say", "handle_say"); 
    register_clcmd("say_team", "handle_say"); 
 
    thinkobj = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); 
    if ( pev_valid(thinkobj) ) 
    { 
        set_pev(thinkobj, pev_classname, "advertisement_loop"); 
        set_pev(thinkobj, pev_nextthink, get_gametime() + 240.0); 
        register_forward(FM_Think, "fourmin_think"); 
    } 
} 
public fourmin_think(ent) 
{ 
    if ( ent != thinkobj ) return FMRES_IGNORED; 
 
    if ( !get_pcvar_num(pcvars[enable]) ) return FMRES_IGNORED; 
 
    client_print(0, print_chat, "[%s]Activado. %d es el limite de almacenamiento", plugin, get_pcvar_num(pcvars[cap])); 
    client_print(0, print_chat, "[%s] Puedes guardar tus ammo packs en el banco escribiendo ^"deposit <amount>^".", plugin); 
    client_print(0, print_chat, "[%s] Para retirar tus ammo packs del banco escribe ^"withdraw <amount>^"", plugin); 
 
    set_pev(ent, pev_nextthink, get_gametime() + 240.0); 
 
    return FMRES_HANDLED;     
} 
public plugin_end() 
    nvault_close(gvault); 
 
public handle_say(id) 
{ 
    if ( !get_pcvar_num(pcvars[enable]) ) return PLUGIN_CONTINUE; 
 
    new text[70], arg1[32], arg2[32], arg3[6]; 
    read_args(text, sizeof(text)-1); 
    remove_quotes(text); 
    arg1[0] = '^0'; 
    arg2[0] = '^0'; 
    arg3[0] = '^0'; 
    parse(text, arg1, sizeof(arg1)-1, arg2, sizeof(arg2)-1, arg3, sizeof(arg3)-1); 
    //dbg_log("cmd_say() arg1:#%s# arg2:#%s# arg3:#%s#", arg1, arg2, arg3); 
    // if the chat line has more than 2 words, we're not interested at all 
    if (arg3[0] == 0) 
    { 
        //strip forward slash if present 
        if ( equali(arg1, "/", 1) ) format(arg1, 31, arg1[1]); 
 
        if ( equali(arg1, "deposit", 7) || equali(arg1, "send", 4) || equali(arg1, "store", 5) ) 
        { 
            if ( isdigit(arg2[0]) || (arg2[0] == '-' && isdigit(arg2[1])) )  
            { 
                new value = str_to_num(arg2); 
                store_cash(id, value); 
                return PLUGIN_HANDLED; 
            } 
            else if ( equali(arg2, "all") ) 
            { 
                store_cash(id, -1); 
                return PLUGIN_HANDLED; 
            }                 
            else if ( arg2[0] == 0 ) 
                client_print(id, print_chat, "[%s] Para depositar los ammo packs escribir say deposit <amount to deposit>", plugin); 
 
            return PLUGIN_CONTINUE; 
        } 
        else if ( equali(arg1, "withdraw", 8) || equali(arg1, "take", 4) || equali(arg1, "retrieve", 8) ) 
        { 
            if ( isdigit(arg2[0]) || (arg2[0] == '-' && isdigit(arg2[1])) )  
            { 
                new value = str_to_num(arg2); 
                take_cash(id, value); 
                return PLUGIN_HANDLED; 
            } 
            else if ( equali(arg2, "all") ) 
            { 
                take_cash(id, -1); 
                return PLUGIN_HANDLED; 
            } 
            else if ( arg2[0] == 0 ) 
                client_print(id, print_chat, "[%s] Retirar ammo packs del banco escribir say withdraw <amount to withdraw>", plugin); 
 
            return PLUGIN_CONTINUE; 
        } 
        else if ( equali(arg1, "mybank", 6) || equali(arg1, "account", 7) || equali(arg1, "bank", 4) ) 
        { 
            if ( arg2[0] == 0 ) { 
                client_print(id, print_chat, "[%s] Actualmente usted tiene %d ammo packs en el banco",plugin, bankstorage[id]); 
                return PLUGIN_HANDLED; 
            } 
            else { 
                new player = cmd_target(id,arg2,2); 
                if ( !player ) return PLUGIN_CONTINUE; 
                client_print(id, print_chat, "[%s] %s tiene %d ammo packs", plugin, arg2, bankstorage[player]); 
                return PLUGIN_HANDLED; 
            } 
        } 
    } 
    else if ( equali( arg1, "donate", 6 ) ) 
    { 
        give_cmd(id, arg2, arg3); 
        return PLUGIN_HANDLED; 
    } 
    return PLUGIN_CONTINUE; 
} 
give_cmd(id, target[], amnt[]) 
{ 
    new temp = str_to_num(amnt); 
    if ( temp < 0 ) 
    { 
        client_print(id, print_chat, "[%s] La ^"amount^" argumento pasado es negativo, puede que quiera enganar", plugin ); 
        return; 
    } 
    new player = cmd_target(id, target, 8); 
    if ( !player ) return; 
 
    new temp2 = bankstorage[id] + zp_get_user_ammo_packs(id); 
    if ( temp > temp2 ) 
    { 
        client_print(id, print_chat, "[%s] Usted no tiene suficiente ammo packs para donar, solo tienes %d de %d especificando",plugin, 
            temp2, temp); 
 
        return; 
    } 
    static playername[32], givename[32]; 
    get_user_name(player, playername, 31); 
    get_user_name(id, givename, 31); 
    client_print(id, print_chat, "[%s] Usted a donado %d ammo packs a %s", plugin, temp, playername); 
    client_print(player, print_chat, "[%s] %s donado %d ammo packs a usted", plugin, givename, temp); 
    bankstorage[player] += temp; 
    if ( bankstorage[id] > temp ) bankstorage[id] -= temp; 
    else 
    { 
        temp -= bankstorage[id]; 
        bankstorage[id] = 0; 
        zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - temp); 
    } 
} 
//public zp_user_disconnect_pre(id) 
public client_disconnect(id) 
    if ( bankstorage[id] > 0 ) save_data(id); 
//public zp_user_connect_post(id) 
public client_connect(id) 
{     
    bankstorage[id] = 0;    //clear residual before loading 
    retrieve_data(id); 
} 
store_cash(id, amnt) 
{ 
    if ( !get_pcvar_num(pcvars[enable]) ) return; 
 
    if ( amnt == -1 ) 
    { 
        bankstorage[id] += zp_get_user_ammo_packs(id); 
        zp_set_user_ammo_packs(id, 0); 
        checkmax(id); 
    } 
    else if ( amnt > 0 ) 
    {         
        new temp = zp_get_user_ammo_packs(id); 
        new limit = get_pcvar_num(pcvars[cap]); 
        if ( temp >= amnt ) 
        {             
            if ( bankstorage[id] + amnt <= limit ) 
            { 
                bankstorage[id] += amnt 
                zp_set_user_ammo_packs(id, temp - amnt); 
            } 
            else 
            { 
                new overflow = bankstorage[id] + amnt - limit; 
                bankstorage[id] = limit; 
                zp_set_user_ammo_packs(id, temp - amnt + overflow); 
                client_print(id, print_chat, "[%s] Su cuenta bancaria ha llegado a su capacidad de maxima %d", plugin, limit); 
                client_print(id, print_chat, "[%s] solo %d de la %d tu especificaste para depositar ha sido depositado", plugin, 
                amnt - overflow, amnt); 
            } 
        } 
        else 
            client_print(id, print_chat, "[%s] Cantidad especificada(%d) actual es mayor que ammo pack cuenta(%d)", plugin, 
            amnt, temp);             
    } 
    else 
        take_cash(id, -amnt); 
} 
take_cash(id, amnt) 
{ 
    if ( !get_pcvar_num(pcvars[enable]) ) return; 
 
    if ( amnt == 0 ) return;    //otherwise a non terminal loop is possible 
 
    if ( amnt == -1 ) 
    { 
        zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + bankstorage[id]) 
        bankstorage[id] = 0; 
    } 
    else if ( amnt > 0 ) 
    { 
        if ( bankstorage[id] >= amnt ) 
        { 
            zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + amnt); 
            bankstorage[id] -= amnt; 
        } 
        else { 
            client_print(id, print_chat, "[%s] Cuenta especifica(%d) es mayor que en el banco(%d)", plugin, 
            amnt, bankstorage[id]);         
        }     
    } 
    else store_cash(id, -amnt); 
} 
save_data(id) 
{ 
    new AuthID[35]; 
    get_user_authid(id,AuthID,34); 
    new vaultkey[40],vaultdata[13]; 
 
    formatex( vaultkey, 39, "__%s__", AuthID); 
    formatex( vaultdata, 12, "%i", bankstorage[id] ); 
    nvault_set(gvault, vaultkey, vaultdata);  
} 
retrieve_data(id) 
{ 
    new AuthID[35];  
    get_user_authid(id,AuthID,34);  
    new vaultkey[40], vaultdata[13];  
 
    format(vaultkey, 39, "__%s__", AuthID); 
    nvault_get(gvault, vaultkey, vaultdata, 12);  
 
    bankstorage[id] = str_to_num(vaultdata); 
    checkmax(id);     
 
    // If they have an account don't allow zombie mod to give them 5 ammo packs at beggining 
    if ( get_pcvar_num(pcvars[start]) && bankstorage[id] > 0 )  
        zp_set_user_ammo_packs(id, 0); 
} 
checkmax(id) 
{ 
    if ( bankstorage[id] > get_pcvar_num(pcvars[cap]) ) 
        bankstorage[id] = get_pcvar_num(pcvars[cap]); 
 
    else if ( bankstorage[id] < 0 ) 
        bankstorage[id] = 0; 
}
Muchisimas gracias, recuerden que es para que las ammo se le guarden a uno mismo, osea un banco para cada uno, y que no se borren al cambiar de mapa o desconectarse. Gracias!
Attached Files
File Type: sma Get Plugin or Get Source (paquetes.sma - 836 views - 9.9 KB)
File Type: amxx paquetes.amxx (11.0 KB, 328 views)

Last edited by elpapadeloshelados; 08-20-2010 at 15:38.
elpapadeloshelados is offline
Alucard^
AMXX Moderator: Others
Join Date: Sep 2007
Location: Street
Old 08-20-2010 , 15:37   Re: [ES][ZP] Ayuda Banco!
#2

Acaso crees que somos enfermos como para poenrnos a leer el codigo que posteaste todo junto sin saltos de linea y aparte sin [ php ] codigo [ /php ]?
__________________
Approved Plugins - Steam Profile

Public non-terminated projects:
All Admins Menu, HLTV parameters, Subnick,
Second Password (cool style), InfoZone,
Binary C4 plant/defuse, and more...

Private projects:
NoSpec (+menu), NV Surf Management,
PM Adanved System, KZ longjump2, and more...
Alucard^ is offline
Send a message via Skype™ to Alucard^
elpapadeloshelados
BANNED
Join Date: Aug 2010
Old 08-20-2010 , 15:39   Re: [ES][ZP] Ayuda Banco!
#3

Listo. Disculpa
elpapadeloshelados is offline
Alucard^
AMXX Moderator: Others
Join Date: Sep 2007
Location: Street
Old 08-20-2010 , 19:18   Re: [ES][ZP] Ayuda Banco!
#4

No esta permitido adjuntar binarios (.amxx), aparte de que el mismo foro al subir el .sma te lo compila y te da para bajar el .amxx
__________________
Approved Plugins - Steam Profile

Public non-terminated projects:
All Admins Menu, HLTV parameters, Subnick,
Second Password (cool style), InfoZone,
Binary C4 plant/defuse, and more...

Private projects:
NoSpec (+menu), NV Surf Management,
PM Adanved System, KZ longjump2, and more...
Alucard^ is offline
Send a message via Skype™ to Alucard^
abcdf
Senior Member
Join Date: Aug 2010
Old 08-20-2010 , 20:07   Re: [ES][ZP] Ayuda Banco!
#5

Quote:
Originally Posted by elpapadeloshelados View Post
Buenas, mi problema es que desde que tengo server ZP eh tenido un gran problema, y es con el banco. Por ejemplo, yo deposito 1000 ammopacks y se supone que solamente se tienen que guardar a mi, pero no, se le guardan a todos los jugadores y si cambio mapa o cierro y abro de nuevo, todos empiezan con el banco en 5000 ammo packs o las que sea que yo tuviera, se las pueden gastar todas pero cuando se cambia mapa otra ves lo mismo, todos con 5000 ammo packs. En resumen, necesito poner que cuando uno deposite solo se le deposite a uno mismo y se queden guardados si se cambia de mapa o se desconecta, y cuando empiezes de nuevo tengas las que tenias antes, osea las que has depositado sin que se borren, aqui les voy a dejar el .sma del banco que yo utilizo:
Code:
// ZP Bank - allows saving of ammo packs 
/*    cvars 
zp_bank 1                //<0/1> set whether plugin enabled or not 
zp_bank_limit 1000000    //maximium storage capacity of each person's account 
zp_bank_blockstart 1    //<0/1> set whether bank blocks zombie plague from giving the initial 5 ammo packs on start if user has an account 
*/ 
#include <amxmodx> 
#include <amxmisc> 
#include <nvault> 
#include <fakemeta> 
#include <zombieplague> 
static const version[] = "0.3"; 
static const plugin[] = "ZP Bank"; 
enum pcvar 
{ 
    enable = 0, 
    cap, 
    start 
} 
new pcvars[pcvar]; 
new bankstorage[33]; 
new gvault, thinkobj; 
public plugin_init() 
{ 
    register_plugin(plugin, version, "Random1"); 
 
    gvault = nvault_open("Zombie Bank"); 
 
    pcvars[enable] =            register_cvar("zp_bank", "1"); 
    pcvars[cap] =                register_cvar("zp_bank_limit", "5000"); 
    pcvars[start] =                register_cvar("zp_bank_blockstart", "0"); 
 
    if ( get_pcvar_num(pcvars[cap]) > 2147483646 ) 
    { 
        set_pcvar_num(pcvars[cap], 2147483646); 
        server_print("[%s] Due to a 32 bit restriction in perl zp_ammo_limit reset based on restriction", plugin); 
    } 
 
    register_clcmd("say", "handle_say"); 
    register_clcmd("say_team", "handle_say"); 
 
    thinkobj = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "info_target")); 
    if ( pev_valid(thinkobj) ) 
    { 
        set_pev(thinkobj, pev_classname, "advertisement_loop"); 
        set_pev(thinkobj, pev_nextthink, get_gametime() + 240.0); 
        register_forward(FM_Think, "fourmin_think"); 
    } 
} 
public fourmin_think(ent) 
{ 
    if ( ent != thinkobj ) return FMRES_IGNORED; 
 
    if ( !get_pcvar_num(pcvars[enable]) ) return FMRES_IGNORED; 
 
    client_print(0, print_chat, "[%s]Activado. %d es el limite de almacenamiento", plugin, get_pcvar_num(pcvars[cap])); 
    client_print(0, print_chat, "[%s] Puedes guardar tus ammo packs en el banco escribiendo ^"deposit <amount>^".", plugin); 
    client_print(0, print_chat, "[%s] Para retirar tus ammo packs del banco escribe ^"withdraw <amount>^"", plugin); 
 
    set_pev(ent, pev_nextthink, get_gametime() + 240.0); 
 
    return FMRES_HANDLED;     
} 
public plugin_end() 
    nvault_close(gvault); 
 
public handle_say(id) 
{ 
    if ( !get_pcvar_num(pcvars[enable]) ) return PLUGIN_CONTINUE; 
 
    new text[70], arg1[32], arg2[32], arg3[6]; 
    read_args(text, sizeof(text)-1); 
    remove_quotes(text); 
    arg1[0] = '^0'; 
    arg2[0] = '^0'; 
    arg3[0] = '^0'; 
    parse(text, arg1, sizeof(arg1)-1, arg2, sizeof(arg2)-1, arg3, sizeof(arg3)-1); 
    //dbg_log("cmd_say() arg1:#%s# arg2:#%s# arg3:#%s#", arg1, arg2, arg3); 
    // if the chat line has more than 2 words, we're not interested at all 
    if (arg3[0] == 0) 
    { 
        //strip forward slash if present 
        if ( equali(arg1, "/", 1) ) format(arg1, 31, arg1[1]); 
 
        if ( equali(arg1, "deposit", 7) || equali(arg1, "send", 4) || equali(arg1, "store", 5) ) 
        { 
            if ( isdigit(arg2[0]) || (arg2[0] == '-' && isdigit(arg2[1])) )  
            { 
                new value = str_to_num(arg2); 
                store_cash(id, value); 
                return PLUGIN_HANDLED; 
            } 
            else if ( equali(arg2, "all") ) 
            { 
                store_cash(id, -1); 
                return PLUGIN_HANDLED; 
            }                 
            else if ( arg2[0] == 0 ) 
                client_print(id, print_chat, "[%s] Para depositar los ammo packs escribir say deposit <amount to deposit>", plugin); 
 
            return PLUGIN_CONTINUE; 
        } 
        else if ( equali(arg1, "withdraw", 8) || equali(arg1, "take", 4) || equali(arg1, "retrieve", 8) ) 
        { 
            if ( isdigit(arg2[0]) || (arg2[0] == '-' && isdigit(arg2[1])) )  
            { 
                new value = str_to_num(arg2); 
                take_cash(id, value); 
                return PLUGIN_HANDLED; 
            } 
            else if ( equali(arg2, "all") ) 
            { 
                take_cash(id, -1); 
                return PLUGIN_HANDLED; 
            } 
            else if ( arg2[0] == 0 ) 
                client_print(id, print_chat, "[%s] Retirar ammo packs del banco escribir say withdraw <amount to withdraw>", plugin); 
 
            return PLUGIN_CONTINUE; 
        } 
        else if ( equali(arg1, "mybank", 6) || equali(arg1, "account", 7) || equali(arg1, "bank", 4) ) 
        { 
            if ( arg2[0] == 0 ) { 
                client_print(id, print_chat, "[%s] Actualmente usted tiene %d ammo packs en el banco",plugin, bankstorage[id]); 
                return PLUGIN_HANDLED; 
            } 
            else { 
                new player = cmd_target(id,arg2,2); 
                if ( !player ) return PLUGIN_CONTINUE; 
                client_print(id, print_chat, "[%s] %s tiene %d ammo packs", plugin, arg2, bankstorage[player]); 
                return PLUGIN_HANDLED; 
            } 
        } 
    } 
    else if ( equali( arg1, "donate", 6 ) ) 
    { 
        give_cmd(id, arg2, arg3); 
        return PLUGIN_HANDLED; 
    } 
    return PLUGIN_CONTINUE; 
} 
give_cmd(id, target[], amnt[]) 
{ 
    new temp = str_to_num(amnt); 
    if ( temp < 0 ) 
    { 
        client_print(id, print_chat, "[%s] La ^"amount^" argumento pasado es negativo, puede que quiera enganar", plugin ); 
        return; 
    } 
    new player = cmd_target(id, target, 8); 
    if ( !player ) return; 
 
    new temp2 = bankstorage[id] + zp_get_user_ammo_packs(id); 
    if ( temp > temp2 ) 
    { 
        client_print(id, print_chat, "[%s] Usted no tiene suficiente ammo packs para donar, solo tienes %d de %d especificando",plugin, 
            temp2, temp); 
 
        return; 
    } 
    static playername[32], givename[32]; 
    get_user_name(player, playername, 31); 
    get_user_name(id, givename, 31); 
    client_print(id, print_chat, "[%s] Usted a donado %d ammo packs a %s", plugin, temp, playername); 
    client_print(player, print_chat, "[%s] %s donado %d ammo packs a usted", plugin, givename, temp); 
    bankstorage[player] += temp; 
    if ( bankstorage[id] > temp ) bankstorage[id] -= temp; 
    else 
    { 
        temp -= bankstorage[id]; 
        bankstorage[id] = 0; 
        zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - temp); 
    } 
} 
//public zp_user_disconnect_pre(id) 
public client_disconnect(id) 
    if ( bankstorage[id] > 0 ) save_data(id); 
//public zp_user_connect_post(id) 
public client_connect(id) 
{     
    bankstorage[id] = 0;    //clear residual before loading 
    retrieve_data(id); 
} 
store_cash(id, amnt) 
{ 
    if ( !get_pcvar_num(pcvars[enable]) ) return; 
 
    if ( amnt == -1 ) 
    { 
        bankstorage[id] += zp_get_user_ammo_packs(id); 
        zp_set_user_ammo_packs(id, 0); 
        checkmax(id); 
    } 
    else if ( amnt > 0 ) 
    {         
        new temp = zp_get_user_ammo_packs(id); 
        new limit = get_pcvar_num(pcvars[cap]); 
        if ( temp >= amnt ) 
        {             
            if ( bankstorage[id] + amnt <= limit ) 
            { 
                bankstorage[id] += amnt 
                zp_set_user_ammo_packs(id, temp - amnt); 
            } 
            else 
            { 
                new overflow = bankstorage[id] + amnt - limit; 
                bankstorage[id] = limit; 
                zp_set_user_ammo_packs(id, temp - amnt + overflow); 
                client_print(id, print_chat, "[%s] Su cuenta bancaria ha llegado a su capacidad de maxima %d", plugin, limit); 
                client_print(id, print_chat, "[%s] solo %d de la %d tu especificaste para depositar ha sido depositado", plugin, 
                amnt - overflow, amnt); 
            } 
        } 
        else 
            client_print(id, print_chat, "[%s] Cantidad especificada(%d) actual es mayor que ammo pack cuenta(%d)", plugin, 
            amnt, temp);             
    } 
    else 
        take_cash(id, -amnt); 
} 
take_cash(id, amnt) 
{ 
    if ( !get_pcvar_num(pcvars[enable]) ) return; 
 
    if ( amnt == 0 ) return;    //otherwise a non terminal loop is possible 
 
    if ( amnt == -1 ) 
    { 
        zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + bankstorage[id]) 
        bankstorage[id] = 0; 
    } 
    else if ( amnt > 0 ) 
    { 
        if ( bankstorage[id] >= amnt ) 
        { 
            zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + amnt); 
            bankstorage[id] -= amnt; 
        } 
        else { 
            client_print(id, print_chat, "[%s] Cuenta especifica(%d) es mayor que en el banco(%d)", plugin, 
            amnt, bankstorage[id]);         
        }     
    } 
    else store_cash(id, -amnt); 
} 
save_data(id) 
{ 
    new AuthID[35]; 
    get_user_authid(id,AuthID,34); 
    new vaultkey[40],vaultdata[13]; 
 
    formatex( vaultkey, 39, "__%s__", AuthID); 
    formatex( vaultdata, 12, "%i", bankstorage[id] ); 
    nvault_set(gvault, vaultkey, vaultdata);  
} 
retrieve_data(id) 
{ 
    new AuthID[35];  
    get_user_authid(id,AuthID,34);  
    new vaultkey[40], vaultdata[13];  
 
    format(vaultkey, 39, "__%s__", AuthID); 
    nvault_get(gvault, vaultkey, vaultdata, 12);  
 
    bankstorage[id] = str_to_num(vaultdata); 
    checkmax(id);     
 
    // If they have an account don't allow zombie mod to give them 5 ammo packs at beggining 
    if ( get_pcvar_num(pcvars[start]) && bankstorage[id] > 0 )  
        zp_set_user_ammo_packs(id, 0); 
} 
checkmax(id) 
{ 
    if ( bankstorage[id] > get_pcvar_num(pcvars[cap]) ) 
        bankstorage[id] = get_pcvar_num(pcvars[cap]); 
 
    else if ( bankstorage[id] < 0 ) 
        bankstorage[id] = 0; 
}
Muchisimas gracias, recuerden que es para que las ammo se le guarden a uno mismo, osea un banco para cada uno, y que no se borren al cambiar de mapa o desconectarse. Gracias!
mmm,yo tenia los banco de ammo packs pero casi todos me daban bug,ahora uso un banco de autoguardado donde si se cae el server,cambio de map,quit,retry o cualquier cosa los AMMO PACKS SE GUARDAN SIN PONER DEPOSITAR O RETIRAR (autoguardado),ademas,los admin o rcon pueden dar ammo packs a quien sea (1.000.000 como maximo) hasta el momento no tiene bug,si quieres te lo paso. (NO USO AMMO PACK BANK POR QUE SIEMPRE ME SALIAN CON BUGS )
abcdf is offline
Luix
Senior Member
Join Date: Dec 2009
Location: Venezuela
Old 08-20-2010 , 20:12   Re: [ES][ZP] Ayuda Banco!
#6

Bueno a decir verdad, solo tuve un Banco de ammo pack, lo bajé y estaba bugeado, lo tube que reparar para que no sucediera lo que te sudece, pero lastimosamente lo perdí porque formatee la PC >.<
Luix is offline
Exc3ll@N
Veteran Member
Join Date: Oct 2009
Location: Donde me lleve el viento
Old 08-20-2010 , 20:33   Re: [ES][ZP] Ayuda Banco!
#7

abcdf es mejor usar algun guardado de nvault que ese banco creo yo , te aorrarias muchisisimo code
__________________
Haz lo que sientas y te haga feliz.
Exc3ll@N is offline
Send a message via MSN to Exc3ll@N
abcdf
Senior Member
Join Date: Aug 2010
Old 08-20-2010 , 20:37   Re: [ES][ZP] Ayuda Banco!
#8

Quote:
Originally Posted by Exc3ll@N View Post
abcdf es mejor usar algun guardado de nvault que ese banco creo yo , te aorrarias muchisisimo code
no tiene mucho code el banco de autoguardado,es solo compilarlo (y por nVault seria mas complicado si EL no entiende muchoi de scripting (yo igual soy noob pero no tanto xD)

https://forums.alliedmods.net/showthread.php?t=135910

porfavor
abcdf is offline
Exc3ll@N
Veteran Member
Join Date: Oct 2009
Location: Donde me lleve el viento
Old 08-20-2010 , 20:48   Re: [ES][ZP] Ayuda Banco!
#9

pff no hay que tener mucha ciencia miren el tut de niveles de exact q viene con guardado de aps y niveles seria unos ajustes minimos nada mas
__________________
Haz lo que sientas y te haga feliz.
Exc3ll@N is offline
Send a message via MSN to Exc3ll@N
abcdf
Senior Member
Join Date: Aug 2010
Old 08-20-2010 , 20:51   Re: [ES][ZP] Ayuda Banco!
#10

Quote:
Originally Posted by Exc3ll@N View Post
pff no hay que tener mucha ciencia miren el tut de niveles de exact q viene con guardado de aps y niveles seria unos ajustes minimos nada mas
aaa a ese te referias,yo tengo ese,pero lo modifique para guardar los frags,pero lo tenia para guardar ammos y NO GUARDA,por eso recomiendo el plugin
abcdf 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 02:17.


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