set_task помощь

gesk1995

Пользователь
Регистрация
8 Июн 2017
Сообщения
339
Симпатии
11
Пол
Мужской
#1
OS
Linux
Amx Mod X
AMXX 1.8.3-dev
Билд
ы
ReGamedll
ф
Metamod
ф
Meta модули
ф
Плагины
ф
Amxx Модули
ф
Ошибка
ф
Исходник
ф
Ребят всем доброй ночи, вот хочу обратиться за помощью к вам , так как не понимаю как сделать , суть в чём , как мне сделать что бы игрок брал пункт в меню , и сразу хочет взять второй раз и ему писало "Вы уже использовали меню, следуйщий раз через %d секунд" и сделать цветной чат
Код:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <engine>
#include <hamsandwich>

#pragma tabsize 0

#define PLUGIN "VipMenu"
#define VERSION "1.0"
#define AUTHOR "Opo4uMapy"

#define ADMIN_VIP ADMIN_BAN

#define SCOREATTRIB_NONE    0
#define SCOREATTRIB_DEAD    ( 1 << 0 )
#define SCOREATTRIB_BOMB    ( 1 << 1 )
#define SCOREATTRIB_VIP  ( 1 << 2 )

new bool:has_used[33]

public plugin_init()

{
    register_clcmd( "say /amenu", "VIPMenu" );
    register_clcmd( "amenu", "VIPMenu" );
    register_clcmd( "say_team /amenu", "VIPMenu" );
   register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
}

public VIPMenu( id )

{
    if(!has_used[id])
    {
        if(get_user_flags(id) & ADMIN_VIP)
        {

         new vip_menu = menu_create( "\wАдмин Меню:", "menu_handler" );
         menu_additem( vip_menu, "\rВзять \y3500$", "1", 0 );
         menu_additem( vip_menu, "\rВзять \yвсе гранаты", "2", 0 );
         menu_additem( vip_menu, "\wВзять \yгравитация", "3", 0);
         menu_additem( vip_menu, "\rВзять \yСвечение", "4", 0);
         menu_additem( vip_menu, "\rВзять \yСкорость", "5", 0);
         menu_additem( vip_menu, "\r200 HP \dи \y200 AR", "6", 0);
         menu_additem( vip_menu, "\yБесшумные шаги", "7", 0);

         menu_setprop(vip_menu, MPROP_EXITNAME, "\yВыход")

            menu_display( id, vip_menu, 0 );
        }

        else

        {
            client_print(id, print_chat, "[VIP] Для начала купите VIP")
        }
    }

    else
    {
        client_print(id, print_chat, "[VIP] Вы уже использовали меню, следуйщий раз через %d секунд")

    }

}

public menu_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 );
    new key = str_to_num( data );
    switch( key )

    {

        case 1:

        {

            if( is_user_alive( id ) )

            {
                cs_set_user_money(id, cs_get_user_money(id) +3500);

            }
        }

        case 2:

        {
            if( is_user_alive( id ) )

            {

                give_item( id, "weapon_hegrenade" )
                give_item( id, "weapon_flashbang" )
                give_item( id, "weapon_flashbang" )
                give_item( id, "weapon_smokegrenade" )

            }

        }
        case 3:

        {
            if( is_user_alive( id ) )

            {
                set_user_gravity( id, 0.5 );

            }

        }
        
        case 4:
        {
            if(is_user_alive(id))

            {
                set_user_rendering(id, kRenderFxGlowShell, random_num(100, 255), random_num(100, 255), random_num(100, 255), kRenderNormal, 25);

            }   

        }

      case 5:

        {

            set_user_maxspeed(id, 370.0);

            {

            }

        }

      case 6:

        {
            if( is_user_alive( id ) )

            {
                set_user_health( id, 200 );
            set_user_armor(id, 200);

            }

        }

      case 7:

        {
            if( is_user_alive( id ) )

            {
                set_user_footsteps(id, 0);
            }
        }
    }

    has_used[id] = true;
    set_task( 30.0, "reset", id );
    menu_destroy( menu );
    return PLUGIN_HANDLED;

}

public reset()

    arrayset(has_used, false, 33)

public handle_say(id) {
   new said[192]
   read_args(said,192)
   return PLUGIN_CONTINUE

}

public MessageScoreAttrib( iMsgID, iDest, iReceiver ) {
    new iPlayer = get_msg_arg_int( 1 );
    if( is_user_connected( iPlayer )
    && ( get_user_flags( iPlayer ) & ADMIN_VIP ) ) {
        set_msg_arg_int( 2, ARG_BYTE, is_user_alive( iPlayer ) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD );

    }

}

public VIPMenu(id){
    
    if(g_F_counter[id] < get_cvar_num("amx_use_fn_in_round")){
        //add you code
        client_print(id,print_chat,"[Round counter] You command exec")
        g_F_counter[id]++
    }else{
        //ты исчерпал свои возможности в этом раунде
        client_print(id,print_chat,"[Round counter] Only %d times in round to use this command",get_cvar_num("amx_use_fn_in_round"))
    }
}
 

gesk1995

Пользователь
Регистрация
8 Июн 2017
Сообщения
339
Симпатии
11
Пол
Мужской
#3
Vaqtincha, Извините за раздел ( , могли бы вы показать хотя бы маленький пример "gametime" ?