TrieDeleteKey • премахва даден ключ от указателя

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

Автор на темата
OciXCrom™ MKD
Администратор
Администратор
Мнения: 3844
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 2 пъти
Получена благодарност: 95 пъти
Години: 20
Контакти:

TrieDeleteKey • премахва даден ключ от указателя

Мнение от OciXCrom™ MKD » 14 окт 2016, 20:35

celltrie.incbool:TrieDeleteKey(Trie:handle, const key[])

Trie:handle: съхранител на указателя
key[]: ключът, който искаме да премахнем

Връща: true ако операцията е била успешна, в противен случай false, тоест ключът не съществува.
Функцията премахва даден ключ (стринг) от указателя.

Примерен плъгин №1: Запазване на броя на убийства на играча до края на картата, тоест убийствата му няма да се рестартират ако напусне сървъра и отново се завърне. С командата amx_resetkills ще бъдат рестартирани убийствата на даден играч.

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

#include <amxmodx>
#include <amxmisc>
#include <fun>

#define PLUGIN_NAME "TrieCreate"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "OciXCrom"

new Trie:g_tFrags

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
    register_concmd("amx_resetkills", "cmdReset", ADMIN_RCON, "<nick|#userid>")
    g_tFrags = TrieCreate()
}

public plugin_end()
    TrieDestroy(g_tFrags)
    
public client_putinserver(id)
{
    new szName[32]
    get_user_name(id, szName, charsmax(szName))
    
    if(TrieKeyExists(g_tFrags, szName))
    {
        new iFrags
        TrieGetCell(g_tFrags, szName, iFrags)
        set_user_frags(id, iFrags)
    }
}

public client_disconnect(id)
{
    new szName[32]
    get_user_name(id, szName, charsmax(szName))
    TrieSetCell(g_tFrags, szName, get_user_frags(id))
}

public cmdReset(id, iLevel, iCid)
{
    if(!cmd_access(id, iLevel, iCid, 2))
        return PLUGIN_HANDLED
        
       new szPlayer[32], bool:blFound
       read_argv(1, szPlayer, charsmax(szPlayer))
       
       if(TrieKeyExists(g_tFrags, szPlayer))
       {
           blFound = true
           TrieDeleteKey(g_tFrags, szPlayer)
       }
           
       new iPlayer = find_player("k", szPlayer)
       
       if(iPlayer)
       {
           blFound = true
           set_user_frags(iPlayer, 0)
       }
       
       if(blFound)
           client_print(0, print_chat, "* Restartirani sa ubiistvata na igracha %s", szPlayer)
           
    return PLUGIN_HANDLED
}

Отговори

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

Кой е на линия

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