Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

RSS[ZP] AP Limit


MYGO.pl
 Udostępnij

Rekomendowane odpowiedzi

  • RSSy
Hello!
Someone can change me that, the limit will work only when it's new map? Now it's work like, when you will reach 300 AP (normal player), 500 AP (VIP), you cannot reach more.

Code:

#include <amxmodx>
#include <zombieplague>
#include <fvault>

#define PLUGIN "[ZP] Save Ammo New v2"
#define VERSION "1.3"
#define AUTHOR "Shaxu"

#define AUTOSAVE_INTERVAL 30.0
#define ACCESS_FLAG ADMIN_LEVEL_H
#define MAX_SAVE_ALL 300
#define MAX_SAVE_VIP 500

#define flag_get(%1,%2) (%1 & (1 << (%2 & 31)))
#define flag_get_boolean(%1,%2) (flag_get(%1,%2) ? true : false)
#define flag_set(%1,%2) %1 |= (1 << (%2 & 31))
#define flag_unset(%1,%2) %1 &= ~(1 << (%2 & 31))

new const g_vault_name[] = "ammobank"
new g_LoadSuccess, g_IsConnected, g_MaxPlayers
new g_name[33][33]
new g_ammo[33]
new cvar_block_start_ammo, cvar_load_ammo_packs
new SayText

#define is_user_valid(%1) (1 <= %1 <= g_MaxPlayers)

public plugin_init()
{
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_logevent("logevent_round_end", 2, "1=Round_End")
        cvar_block_start_ammo = register_cvar("zp_bank_block_start", "1")
        cvar_load_ammo_packs = register_cvar("zp_bank_auto_save", "1")
        g_MaxPlayers = get_maxplayers()
        SayText = get_user_msgid("SayText")
}

public plugin_cfg()
{
        set_task(AUTOSAVE_INTERVAL, "TaskAutoSave",_,_,_,"b")
}

public client_putinserver(id)
{
        if( is_user_connected ( id ) )
        set_task( 6.0, "ShowMessage", id )
       
        if(is_user_hltv(id) || is_user_bot(id)) return;
       
        if(get_pcvar_num(cvar_block_start_ammo))
        {
                zp_set_user_ammo_packs(id, 0)
        }

        if(get_pcvar_num(cvar_load_ammo_packs))
        {
                AutoLoad(id)
        }
}

public client_disconnect(id)
{
        if(flag_get(g_LoadSuccess,id))
        {
                SaveAmmo(id)
                flag_unset(g_LoadSuccess,id)
        }
       
        flag_unset(g_IsConnected,id)
}

public logevent_round_end() TaskAutoSave();

public TaskAutoSave()
{
        for(new id = 1; id <= g_MaxPlayers; id++)
        {
                if(is_user_valid(id) && flag_get(g_IsConnected,id) && flag_get(g_LoadSuccess,id)) SaveAmmo(id);
        }
}

LoadAmmo(id)
{
        new data[16]
        if(fvault_get_data(g_vault_name, g_name[id], data, 15))
        {
                g_ammo[id] = str_to_num(data)
                zp_set_user_ammo_packs(id, g_ammo[id])
        }
       
        flag_set(g_LoadSuccess,id)
}

SaveAmmo(id)
{
        if(!flag_get(g_LoadSuccess,id))
        {
                server_print("[AutoSaveAmmoPack] User [%i] failed to save AP because it not loaded yet!", id)
                return
        }
       
        g_ammo[id] = zp_get_user_ammo_packs(id)
        if(get_user_flags(id) & ACCESS_FLAG)
        {
                if(g_ammo[id] >= MAX_SAVE_VIP)
                {
                        g_ammo[id] = MAX_SAVE_VIP
                }
        }
        else
        if(g_ammo[id] >= MAX_SAVE_ALL)
        {
                g_ammo[id] = MAX_SAVE_ALL
        }
       
        new data[16]
        num_to_str(g_ammo[id], data, 15)
        fvault_set_data(g_vault_name, g_name[id], data)
}

public AutoLoad(id)
{
        if(is_user_hltv(id) || is_user_bot(id)) return;
       
        flag_set(g_IsConnected,id)
        get_user_name(id, g_name[id], 32)
        LoadAmmo(id)
}

public ShowMessage(id)
{
        g_ammo[id] = zp_get_user_ammo_packs(id)
        ChatColor(id, "!g[ZP]!y Twoje AP - !g%d !y| Limit Zwykly - !g300 AP !y| Limit VIP - !g500 AP", g_ammo[id])
}

stock ChatColor(const id, const input[], any:...)
{
    new count = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)

    replace_all(msg, 190, "!g", "^4") // Green Color
    replace_all(msg, 190, "!y", "^1") // Default Color
    replace_all(msg, 190, "!t", "^3") // Team Color
    replace_all(msg, 190, "!t2", "^0") // Team2 Color

    if (id) players[0] = id; else get_players(players, count, "ch")
    {
        for (new i = 0; i < count; i++)
        {
            if (is_user_connected(players[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i])
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
    }
}

Przeczytaj cały wpis

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...