ArrayDeleteItem - изтрива предмет от динамичен масив

Библиотеката съдържа 28 natives и 0 forwards и 1 stock.
Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

ArrayDeleteItem - изтрива предмет от динамичен масив

Мнение от TheRedShoko » 14 Окт 2016, 23:38

cellarray.incArrayDeleteItem(Array:handle, item)

Array:handle: съхранител на динамичния масив
item: индекс на предмета от масива

Връща: Няма стойност на връщане.
Функцията изтрива предмет от даден динамичен масив чрез мястото на предмета в масива.

Примерен плъгин: Блокиране на писане на забранени думи (с допълнения).

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>

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

new Array:szForbiddenWords, Array:szCopyOfWords

public plugin_init()
{
    register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
    
    szForbiddenWords = ArrayCreate(64)    //Създаваме масива
    szCopyOfWords = ArrayCreate(64)     //Създаваме още 1 масив

    register_concmd("amx_add_word", "AdminAddWord", ADMIN_BAN)
    register_concmd("amx_clear_words", "AdminClearWords", ADMIN_BAN)
    register_concmd("amx_clone_words", "AdminCloneWords", ADMIN_BAN)
    register_concmd("amx_delete_word", "AdminDeleteWord", ADMIN_BAN)

    register_clcmd("say", "CheckSay")
    register_clcmd("say_team", "CheckSay")
}

public plugin_end()
{
    ArrayDestroy(szForbiddenWords)        //Унищожаваме масива
    ArrayDestroy(szCopyOfWords)        //Унищожаваме и другия масив
}

public AdminAddWord(id, iLevel, iCID)
{
    if (!cmd_access(id, iLevel, iCID))
    {
        return PLUGIN_HANDLED
    }
    
    new szWord[64]
    read_argv(1, szWord, charsmax(szWord))
    
    ArrayPushString(szForbiddenWords, szWord)    // Добавяме String в масива
    
    client_print(0, print_chat, "* ADMIN added %s to the list of forbidden words!", szWord)
    
    return PLUGIN_HANDLED
}

public AdminClearWords(id, iLevel, iCID)
{
    if (!cmd_access(id, iLevel, iCID))
    {
        return PLUGIN_HANDLED
    }
    
    ArrayClear(szForbiddenWords)    // Изчистваме съдържанието на масива
    
    client_print(0, print_chat, "* ADMIN deleted all forbidden words!")
    
    return PLUGIN_HANDLED
}

public AdminCloneWords(id, iLevel, iCID)
{
    if (!cmd_access(id, iLevel, iCID))
    {
        return PLUGIN_HANDLED
    }
    
    szcopyOfWords = ArrayClone(szForbiddenWords) // Създаваме копие на масива
    
    client_print(0, print_chat, "* ADMIN made a copy of the forbidden words list!")
    
    return PLUGIN_HANDLED
}

public AdminDeleteWord(id, iLevel, iCID)
{
    if (!cmd_access(id, iLevel, iCID))
    {
        return PLUGIN_HANDLED
    }
    
    new szWord[64]
    read_argv(1, szWord, charsmax(szWord))
    
    new index = ArrayFindString(szForbiddenWords, szWord)    // Намираме индекса на исканият от нас предмет (в случая string)

    if (index > -1)
    {
        ArrayDeleteItem(szForbiddenWords, index)    // Премахваме предмета от масива
    
        client_print(0, print_chat, "* ADMIN removed %s from the list of forbidden words!", szWord)
    }
    else
    {
        console_print(id, "Word not found!")
    }
    
    return PLUGIN_HANDLED
}

public CheckSay(id)
{
    new szMessage[64], szArrayWord[64]
    new iArraySize = ArraySize(szForbiddenWords)    //Взимаме размера на масива
    read_args(szMessage, charsmax(szMessage))
    
    for (new i = 0; i < iArraySize; i++)
    {
        ArrayGetString(szForbiddenWords, i, szArrayWord, charsmax(szArrayWord)) //Взимаме string-а на позиция i в масива
        
        if (equali(szMessage, szArrayWord))
        {
            client_print(id, print_chat, "* The word %s is FORBIDDEN!", szArrayWord)
            
            return PLUGIN_HANDLED
        }
    }
    
    return PLUGIN_CONTINUE
}

Обратно към “cellarray.inc”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта