nvault_lookup • намира даден ключ в сейф

Библиотеката съдържа 9 natives, 0 forwards и 0 stocks.
Отговори
Потребителски аватар

Автор на темата
OciXCrom TM
Администратор
Администратор
Мнения: 5378
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 87 пъти
Получена благодарност: 597 пъти
Години: 21
Контакти:

nvault_lookup • намира даден ключ в сейф

Мнение от OciXCrom TM » 16 окт 2016, 20:37

nvault.incnative nvault_lookup(vault, const key[], value[], maxlen, &timestamp)

vault: указател на сейфа
key[]: ключ
value[]: буфер където да бъде запазена стойността на ключа
maxlen: максимална дължина на буфера
timestamp: времево клеймо (кога за последно е бил ъпдейтнат ключът)

Връща: 0 ако ключът не е намерен.
Чрез тази функция можете да намерите даден ключ запазен в сейф.
Примерен плъгин №1: Запазване на убийствата и умиранията на играчите завинаги. С командата nvault_remove <nick|#userid> може да се рестартира статистиката на даден играч.

Код: Избери всички

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <nvault>

#define PLUGIN_NAME "nVault Example"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "AMXX-BG.info"

new g_iVault

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
    register_concmd("nvault_remove", "cmdRemove", ADMIN_BAN, "<nick|#userid>")
    g_iVault = nvault_open("MyVault")
}

public plugin_end()
    nvault_close(g_iVault)

public client_putinserver(id)
    UseVault(id, 1)
    
public client_disconnect(id)
    UseVault(id, 0)

UseVault(id, iType)
{        
    new szName[32], szData[16]
    get_user_name(id, szName, charsmax(szName))
    
    switch(iType)
    {
        case 0:
        {
            formatex(szData, charsmax(szData), "%i|%i", get_user_frags(id), cs_get_user_deaths(id))
            nvault_set(g_iVault, szName, szData)
        }
        case 1:
        {
            nvault_get(g_iVault, szName, szData, charsmax(szData))
            replace_all(szData, charsmax(szData), "|", " ")
            
            new szArg[2][8]
            parse(szData, szArg[0], charsmax(szArg[]), szArg[1], charsmax(szArg[]))
            set_user_frags(id, str_to_num(szArg[0]))
            cs_set_user_deaths(id, str_to_num(szArg[1]))
        }
    }
}

public cmdRemove(id, iLevel, iCid)
{
    if(!cmd_access(id, iLevel, iCid, 2))
        return PLUGIN_HANDLED
        
    new szPlayer[32]
    read_argv(1, szPlayer, charsmax(szPlayer))
    
    new iPlayer = find_player("a", szPlayer)
    
    if(iPlayer)
    {
        set_user_frags(iPlayer, 0)
        cs_set_user_deaths(iPlayer, 0)
    }
    
    new szData[32], iTimestamp
    
    if(nvault_lookup(g_iVault, szPlayer, szData, charsmax(szData), iTimestamp))
        nvault_remove(g_iVault, szPlayer)
    
    new szName[32]
    get_user_name(id, szName, charsmax(szName))
    client_print(0, print_chat, "* Adminut %s restartira statistikata na %s", szName, szPlayer)
    return PLUGIN_HANDLED
}

Отговори

Върни се в “nvault.inc”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 1 гост