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

Как сделать в плагине ВКЛ,ВЫКЛ?

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Как сделать в плагине ВКЛ,ВЫКЛ?

Сообщение openfragus » 08 янв 2018, 17:17

Написал плагин который делает игрокам бесшумные шаги, как сделать чтобы при нажатии включалась,и выключалась эта функция без выхода в начальное меню?
Вот мой код,знаю не идеален:D

Код: Выделить всё
#include <amxmodx>//
#include <fun>//
#include <cstrike>//
#include <engine>//
#include <fakemeta>//
#include <hamsandwich>//
#define PLUGIN    "XDXD"
#define AUTHOR    "PRO100S"
#define VERSION    "2.0"

#define ACCESSFLAG ADMIN_BAN

new typeImg[33]
new footsteps[33]
public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    
    register_clcmd
("say /lolmenu", "dysplay_menu")
    register_clcmd("dysplay_menu000", "dysplay_menu2")
}

public cmdMotd1(id)
{
    
    return PLUGIN_HANDLED
}

public dysplay_menu(id)
{
    if(!(get_user_flags(id) & ACCESSFLAG))
        return PLUGIN_CONTINUE
    
    new Menu 
= menu_create("\yLoL Menu \r:D", "menu_handler2")
        
    menu_additem
(Menu, "Бесшумные С€Р°РіРё", "1", 0)    
    menu_display
(id, Menu, 0)
    
    return PLUGIN_HANDLED
}

public menu_handler2(id,menu,item)
{
    if(item == MENU_EXIT)
    {
    menu_destroy(menu)
    return PLUGIN_HANDLED
    
}
    
    new data
[6], iName[64], access, callback
    menu_item_getinfo
(menu, item, access, data, 5, iName, 63, callback)
    
    new key 
= str_to_num(data)
    switch(key)
    {
        case 1: 
        
{
        if(footsteps[id])
        {
            set_user_footsteps(id,0)
            client_cmd(id,"Nekitzor");
            footsteps[id]=0
    
}
    else 
    
    
{
        set_user_footsteps(id,1)
    client_cmd(id,"NekitZor");
    footsteps[id]=1
}
        
    
}
    
}
client_cmd ( id,"dysplay_menu000")
new oldmenu, newmenu, menupage
    player_menu_info
(id, oldmenu, newmenu, menupage)
    return PLUGIN_CONTINUE
}
public dysplay_menu2(id)
{
    if(!(get_user_flags(id) & ACCESSFLAG))
        return PLUGIN_CONTINUE
    
    new Menu 
= menu_create("\yLoL Menu \r:D", "menu_handler")
    
    new Player
    new sPlayerName
[128]
    new sPlayerId[11]
    
    new playersList
[32]
    new playersnum
    get_players
(playersList, playersnum, "c")
    
    for
(new i; i<playersnum; i++)
    {
        Player = playersList[i]
        get_user_name(Player, sPlayerName, charsmax(sPlayerName))
        num_to_str(Player, sPlayerId, charsmax(sPlayerId))
        menu_additem(Menu, sPlayerName, sPlayerId, 0)
    }
    
    menu_display
(id, Menu, 0)
    
    return PLUGIN_HANDLED
}

public menu_handler(id, menu, item)
{
    if (item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    
}
    
    new s_Data
[6], s_Name[64], i_Access, i_Callback
    menu_item_getinfo
(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
    
    new Player 
= str_to_num(s_Data)
    
    if
(!is_user_connected(Player))
    {
        print_col_chat(id, "!g[%s] !yРќРµ СѓРґР°Р»РѕСЃСЊ РЅР°Р№С‚Рё РёРіСЂРѕРєР°. Р’озможно РѕРЅ СѓР¶Рµ РІС‹С€РµР»", PLUGIN)
        dysplay_menu(id)
        return PLUGIN_HANDLED
    
}
    
    dysplay_menu
(id)
    
    switch
(typeImg[id])
    {
        case 1: set_task(0.5, "cmdMotd1", Player)

    }

    return PLUGIN_CONTINUE
}

stock print_col_chat(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 
    
    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, get_user_msgid("SayText"), _, players[i])
                write_byte(players[i])
                write_string(msg)
                message_end()
            }
        }
    }
}


Добавлено спустя 1 час 31 минуту 41 секунду:
И возле ника игрока писало ВКЛ/ВЫКЛ помогите пж)
Последний раз редактировалось Subb98 08 янв 2018, 16:33, всего редактировалось 1 раз.
Причина: Исходный код необходимо вставлять при помощи кнопки "Код / Исходник"
Аватара пользователя
openfragus
 
Сообщения: 2
Зарегистрирован: 01 янв 2018, 23:46
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Вернуться в Скриптинг

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

Сейчас этот форум просматривают: Bing [Bot] и гости: 11

cron