Статус темы:
Закрыта.
  1. x1DD Пользователь

    Регистрация:
    17.06.15
    Сообщения:
    8
    Симпатии:
    2
    Пол:
    Мужской
    Telegram:
    volgodonsk
    Здравствуйте, помогите сделать пару моментов в плагине
    Первый момент есть строка на которой можно сменить время ограничения, выглядит она так
    Код:
    if(g_DeathTime[id] != 0 && get_systime() - g_DeathTime[id] < 30)
    Наверное)
    Но когда я меняю значение с 30 на меньшее допустим 15 то визуально оно отображается вот так "Меню будет доступно через 133151442 сек"
    Ну это только визуально на самом деле через 15 сек ограничение снимается. Как поправить визуальное отображение, что бы соответствовало указанному значению в коде?
    И второй момент, мод дм. Как ограничить за одно возрождение использовать только одного пункта меню?
    Код:
    #include <amxmodx>
    #include <amxmisc>
    #include <fun>
    #include <hamsandwich>
    
    const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_0
    new g_iSayText
    
    new g_DeathTime[33]
    
    public plugin_init()
    {
        register_plugin("Adm Menu", "1.0", "ill")
       
        register_clcmd("vipmenu", "show_game_menu")
        register_menu("Admin Menu", KEYSMENU, "admin_menu")
       
        RegisterHam(Ham_Killed, "player", "fw_KilledPost", 1)
       
        g_iSayText = get_user_msgid("SayText")
    }
    
    public client_connect(id)
    {
        g_DeathTime[id] = 0
    }
    
    public fw_KilledPost(victim, attacker, shouldgib)
    {
        if(!is_user_connected(victim))
            return
           
        g_DeathTime[victim] = get_systime()
    }
    
    public show_game_menu(id)
    {
        if(g_DeathTime[id] != 0 && get_systime() - g_DeathTime[id] < 30)
        {
            client_print(id, print_chat, "Меню будет доступно через %d сек", 30 - get_systime() - g_DeathTime[id])
            return PLUGIN_HANDLED
        }
       
        static menu[512], len
        len = 0
    
        len += formatex(menu[len], charsmax(menu) - len, "\d#. \wАдмин/Вип меню^n^n")
       
        if(get_user_flags(id) & ADMIN_LEVEL_B && get_user_frags(id) >= 15)
            len += formatex(menu[len], charsmax(menu) - len, "\r1.\w Базука^n")
        else
            len += formatex(menu[len], charsmax(menu) - len, "\d1. Базука^n")
       
        if(get_user_flags(id) & ADMIN_BAN && get_user_frags(id) >= 15)   
        {
            len += formatex(menu[len], charsmax(menu) - len, "\r2.\w Золотой AK^n")
            len += formatex(menu[len], charsmax(menu) - len, "\r3.\w Золотой M16^n")
        }
        else
        {
            len += formatex(menu[len], charsmax(menu) - len, "\d2. Золотой AK^n")
            len += formatex(menu[len], charsmax(menu) - len, "\d3. Золотой M16^n")   
        }
       
        if(get_user_flags(id) & ADMIN_LEVEL_B && get_user_frags(id) >= 15)
            len += formatex(menu[len], charsmax(menu) - len, "\r4.\w Гравитация^n^n")
        else
            len += formatex(menu[len], charsmax(menu) - len, "\d4. Гравитация^n^n")
       
        len += formatex(menu[len], charsmax(menu) - len, "\r0. \wВыход")
       
        show_menu(id, KEYSMENU, menu, -1, "Admin Menu")
       
        return PLUGIN_HANDLED
    }
    
    public admin_menu(id, key)
    {
        switch (key)
        {
            case 0:
            {   
                if(get_user_flags(id) & ADMIN_LEVEL_B)
                {
                    if(get_user_frags(id) < 15)
                    {
                        ColorChat(id, "^1У вас должно быть не менее^4 15^1 фрагов")
                        show_game_menu(id)
                        return
                    }
                    client_cmd(id, "givebazooka")
                }
                else
                {
                    ColorChat(id, "^1Только для^4 VIP")
                    show_game_menu(id)
                }
            }
            case 1:
            {
                if(get_user_flags(id) & ADMIN_BAN)   
                {
                    if(get_user_frags(id) < 15)
                    {
                        ColorChat(id, "^1У вас должно быть не менее^4 15^1 фрагов")
                        show_game_menu(id)
                        return
                    }
                    client_cmd(id, "buy_ak")
                }
                else
                {
                    ColorChat(id, "^1Только для^4 админов")
                    show_game_menu(id)
                }
            }
            case 2:
            {
                if(get_user_flags(id) & ADMIN_BAN)   
                {
                    if(get_user_frags(id) < 15)
                    {
                        ColorChat(id, "^1У вас должно быть не менее^4 15^1 фрагов")
                        show_game_menu(id)
                        return
                    }
                    client_cmd(id, "m4_free")
                }
                else
                {
                    ColorChat(id, "^1Только для^4 админов")
                    show_game_menu(id)
                }
            }   
            case 3:
            {
                if(get_user_flags(id) & ADMIN_LEVEL_B)
                {
                    if(get_user_frags(id) < 15)
                    {
                        ColorChat(id, "^1У вас должно быть не менее^4 15^1 фрагов")
                        show_game_menu(id)
                        return
                    }
                    set_user_gravity(id, 0.5)
                }
                else
                {
                    ColorChat(id, "^1Только для^4 VIP")
                    show_game_menu(id)
                }
            }
        }
    }
    
    stock ColorChat(const id, const input[], any:...) {
        new count = 1, players[32]
        static msg[191]
        vformat(msg, 190, input, 3)
        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, g_iSayText, _, players[i])
                write_byte(players[i])
                write_string(msg)
                message_end()
            }
        }
    }
     
  2. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.925
    Симпатии:
    4.323
    Пол:
    Мужской
    тут никак условие не может влиять на вывод сообщения
     
  3. x1DD Пользователь

    Регистрация:
    17.06.15
    Сообщения:
    8
    Симпатии:
    2
    Пол:
    Мужской
    Telegram:
    volgodonsk
    а что может повлиять? можно подробнее а то я темный лес
     
  4. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.925
    Симпатии:
    4.323
    Пол:
    Мужской
    дай весь код
     
  5. x1DD Пользователь

    Регистрация:
    17.06.15
    Сообщения:
    8
    Симпатии:
    2
    Пол:
    Мужской
    Telegram:
    volgodonsk
    1 пост под спойлером
     

    Вложения:

  6. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.925
    Симпатии:
    4.323
    Пол:
    Мужской
    x1DD, а как ты из 30 отнимаешь число, которое во много раз его больше? О_О

    там должно быть просто get_systime() - g_DeathTime[id]
     
  7. x1DD Пользователь

    Регистрация:
    17.06.15
    Сообщения:
    8
    Симпатии:
    2
    Пол:
    Мужской
    Telegram:
    volgodonsk
    Вопрос решен! Тему можно закрывать.
     
Статус темы:
Закрыта.