Русское сообщество по скриптингу

AMXX Vote by Bombplays: стандартное голосование, но в API

Новые плагины для AMX Mod X, которые были добавлены в базу плагинов нашего форума. Плагины еще не утвеждены администратором/модератором.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

Данный раздел форума служит для добавления новых плагинов в базу нашего форума. После того, как администратор/модератор утвердит плагин, он будет перемещен в раздел "Утвежденные плагины".

Правила при добавлении новых плагинов:

1. При вставке кода плагина необходимо использовать тег [pawn], в противном случае, если тег [pawn] не отображает ваш код, можно использовать тег [code].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. Обязательно выкладывайте исходник sma плагина. Запрещено выкладывать amxx файл.
4. Обязательно указывайте настоящих авторов плагина, если вы использовали чьи-то наработки или функции, указывайте их авторов в сообщении.
5. Необходимо заполнять детальную информацию о плагине (версию, настройки, используемые модули, список изменений и другую).

AMXX Vote by Bombplays: стандартное голосование, но в API

Сообщение Bombplays » 12 дек 2016, 05:18

Автор: Bombplays
Версия: 1.0 (Beta)
Описание: Плагин на API меню для стандартного голосования на сервере при помощи стандартных команд таких как amx_votekick, amx_voteban, amx_votemap и так далее. Это первая версия плагина, писался он за пару минут, строгой оценки не прошу, критику принимаю.
Это конечно же не первая моя работа, другие плагины выложу позже. Мб кому понадобятся...
Плагин прост и думаю не нагружает мозг. Код читабелен. Пользуйтесь если плагин стоит того..

Код: Выделить всё
#include <amxmodx> 

#define PLUGIN     "AMXX Vote by Bombplays"
#define VERSION "1.0 (Beta)"
#define AUTHOR     "Bombplays"

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_cvar(PLUGIN, VERSION, FCVAR_SPONLY|FCVAR_SERVER)
    register_clcmd("say votekick", "menu_vote")
    register_clcmd("say voteban", "menu_vote")
    register_clcmd("say votemap", "menu_vote")
    register_clcmd("say vote", "menu_vote")
    register_clcmd("say_team votekick", "menu_vote")
    register_clcmd("say_team voteban", "menu_vote")
    register_clcmd("say_team votemap", "menu_vote")
    register_clcmd("say_team vote", "menu_vote")
}
public menu_vote(id) 
{
    if(is_user_connected(id))
    {
        new i_Menu = menu_create("Меню голосования", "vote_handler");
        menu_additem(i_Menu, "Голосовать за Ban", "1", 0);
        menu_additem(i_Menu, "Голосовать за Kick", "2", 0);
        //menu_additem(i_Menu, "Голосовать за карту", "3", 0);
        menu_setprop(i_Menu, MPROP_NEXTNAME, "Далее");
        menu_setprop(i_Menu, MPROP_BACKNAME, "Назад");
        menu_setprop(i_Menu, MPROP_EXITNAME, "Выход");
        menu_display(id, i_Menu, 0)
    }
    return PLUGIN_HANDLED
}

public vote_handler(id, menu, item) 
{
    if( item < 0 ) return PLUGIN_CONTINUE;
    new cmd[3], access, callback;
    menu_item_getinfo(menu, item, access, cmd,2,_,_, callback);
    new Choise = str_to_num(cmd)
    switch (Choise) 
    
{
        case 1: VoteBan(id);
        case 2: VoteKick(id);
        //case 3: VoteMap(id);
    }
    return PLUGIN_HANDLED;
}
public VoteBan(id)
{
    if(get_user_flags(id) & ADMIN_RCON)
    {
        new menu = menu_create( "\yВыберите игрока:\w", "ban_handler" )
        new players[32], pnum, tempid
        new szName
[32], szTempid[10]

        get_players(players, pnum)

        for(new i; i<pnum; i++)
        {
            tempid = players[i]
            get_user_name(tempid, szName, 31)
            num_to_str(tempid, szTempid, 9)
            menu_additem(menu, szName, szTempid, 0)
        }
        menu_setprop(menu, MPROP_NUMBER_COLOR,"\r")
        menu_setprop(menu, MPROP_NEXTNAME, "Следущий список")
        menu_setprop(menu, MPROP_BACKNAME, "Назад")
        menu_setprop(menu, MPROP_EXITNAME, "Выход")
        menu_display(id, menu, 0)
    }
    return PLUGIN_HANDLED
}
public ban_handler(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    
}

    new data[6], iName[64]
    new access, callback
    menu_item_getinfo
(menu, item, access, data,5, iName, 63, callback)
    client_cmd(id,"amx_voteban %s", iName)
    return PLUGIN_HANDLED
}
public VoteKick(id)
{
    if(get_user_flags(id) & ADMIN_RCON)
    {
        new menu = menu_create( "\yВыберите игрока:\w", "kick_handler" )
        new players[32], pnum, tempid
        new szName
[32], szTempid[10]

        get_players(players, pnum)

        for(new i; i<pnum; i++)
        {
            tempid = players[i]
            get_user_name(tempid, szName, 31)
            num_to_str(tempid, szTempid, 9)
            menu_additem(menu, szName, szTempid, 0)
        }
        menu_setprop(menu, MPROP_NUMBER_COLOR,"\r")
        menu_setprop(menu, MPROP_NEXTNAME, "Следущий список")
        menu_setprop(menu, MPROP_BACKNAME, "Назад")
        menu_setprop(menu, MPROP_EXITNAME, "Выход")
        menu_display(id, menu, 0)
    }
    return PLUGIN_HANDLED
}
public kick_handler(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    
}

    new data[6], iName[64]
    new access, callback
    menu_item_getinfo
(menu, item, access, data,5, iName, 63, callback)
    client_cmd(id,"amx_votekick %s", iName)
    return PLUGIN_HANDLED
}
Аватара пользователя
Bombplays
 
Сообщения: 11
Зарегистрирован: 17 ноя 2016, 20:01
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: PHP
HTML
CSS
PAWNO

Вернуться в Добавленные новые плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5