• Пожалуйста, создайте название темы отражающее ее смысл
  • Для ускорения решения Вашего вопроса заполните обязательные поля и подробно опишите возникшую проблему

Помощь Работа с кварами для выдачи привилегии

D1m0n41k

Участник
Сообщения
486
Реакции
202
Баллы
43
Всем привет.

Подскажите пожалуйста, как правильно выдавать флаги.
Нужно сделать так, что бы выдавать можно было через квары.

Делаю вот так:

C++:
public plugin_init()
{

    set_task(1.5, "Load_Cfg");

    cvar_give_flags        = register_cvar( "cvar_give_flags",     "" );    // Какой флаг будет выпадать в сундуке?
    
}

public plugin_cfg()
{

    new configsdir[128]
    get_localinfo("amxx_configsdir", configsdir, 127)
    server_cmd("exec %s/cvars.cfg", configsdir)

}

public Load_Cfg()
{

    new flags[32]
    get_pcvar_string    (    cvar_give_flags,    flags,        charsmax(flags)    );
    flag_vip = read_flags(flags);

}


public OnTakePresent(id, itemId, iEntity)
{

    new name[32]
    get_user_name(id, name, 31)
    new slap = get_pcvar_num(cvar_health_slap);

    if(g_sApi)
    {

        if(cmsapi_is_user_member(id) == 0)
        {

            client_print_color(id, 0, "%s ^1Вы не зарегистрированы на ^3[ ^4%s ^3]", g_szPrefix, g_szHost);

            if(get_pcvar_num(cvar_slap_user) == 1)
            {

                user_slap(id, slap, 1);

            }

            return 3;

        }

        switch (itemId)
        {
            case 24:
            {

                new vip = random_num(0, 100);

                if(vip > 50)
                {

                    cmsapi_set_user_flags(id, flag_vip, 1200, "Сундучный Вип", false);

                    client_print_color(0, 0, "%s ^1Игрок ^3[^4 %s ^3] ^1нашел в сундуке ^3[ ^4 VIP ^3] ^1на ^3[^4 20 ^3] ^1минут.", g_szPrefix, name);

                } else {

                    cmsapi_set_user_flags(id, flag_vip, 600, "Сундучный Вип", false);

                    client_print_color(0, 0, "%s ^1Игрок ^3[^4 %s ^3] ^1нашел в сундуке ^3[ ^4 VIP ^3] ^1на ^3[^4 10 ^3] ^1минут.", g_szPrefix, name);

                }

                return 2;

            }

        }

    }

    return 0;

}


При таком раскладе выдает вот такие ошибки:
// C:\Users\─ьшЄЁшщ\Desktop\ъюьяшы ЄюЁ\╩юьяшы ЄюЁ 1.8.3\Presents_for_GameCMS.sma(389) : error 035: argument type mismatch (argument 2)
// C:\Users\─ьшЄЁшщ\Desktop\ъюьяшы ЄюЁ\╩юьяшы ЄюЁ 1.8.3\Presents_for_GameCMS.sma(395) : error 035: argument type mismatch (argument 2)
// C:\Users\─ьшЄЁшщ\Desktop\ъюьяшы ЄюЁ\╩юьяшы ЄюЁ 1.8.3\Presents_for_GameCMS.sma(90) : warning 204: symbol is assigned a value that is never used: "flag_vip"
//
// 2 Errors.
// Could not locate output file C:\Users\─ьшЄЁшщ\Desktop\ъюьяшы ЄюЁ\╩юьяшы ЄюЁ 1.8.3\compiled\Presents_for_GameCMS.amx (compile failed).
//
// Compilation Time: 0,59 sec
// ----------------------------------------
Press enter to exit ...

Ошибки вот в этих строках:

C++:
cmsapi_set_user_flags(id, flag_vip, 1200, "Сундучный Вип", false);

и

C++:
cmsapi_set_user_flags(id, flag_vip, 600, "Сундучный Вип", false);
 
D1m0n41k,
C++:
public plugin_init()
{

    set_task(1.5, "Load_Cfg");    //Зачем? Выполните конфиг сразу

    cvar_give_flags        = register_cvar( "cvar_give_flags",     "" );    // Какой флаг будет выпадать в сундуке?
    
}

public plugin_cfg()
{
    //перенести в _init и выполнить сразу, дописав ниже server_exec
    new configsdir[128]
    get_localinfo("amxx_configsdir", configsdir, 127)
    server_cmd("exec %s/cvars.cfg", configsdir)

}

public Load_Cfg()
{
//Перенести в plugin_cfg, исправить с учетом следующих комментариев
    new flags[32]
    get_pcvar_string    (    cvar_give_flags,    flags,        charsmax(flags)    );
    flag_vip = read_flags(flags);

}


public OnTakePresent(id, itemId, iEntity)
{

    new name[32]
    get_user_name(id, name, 31)
    new slap = get_pcvar_num(cvar_health_slap);    // Где получается указатель квара cvar_health_slap ?

    if(g_sApi)
    {

        if(cmsapi_is_user_member(id) == 0)
        {

            client_print_color(id, 0, "%s ^1Вы не зарегистрированы на ^3[ ^4%s ^3]", g_szPrefix, g_szHost);

            if(get_pcvar_num(cvar_slap_user) == 1)    // Где получается указатель квара cvar_slap_user ?
            {

                user_slap(id, slap, 1);

            }

            return 3;

        }

        switch (itemId)
        {
            case 24:
            {

                new vip = random_num(0, 100);

                if(vip > 50)
                {

                    cmsapi_set_user_flags(id, flag_vip, 1200, "Сундучный Вип", false);    // flag_vip - строка, а не битсумма

                    client_print_color(0, 0, "%s ^1Игрок ^3[^4 %s ^3] ^1нашел в сундуке ^3[ ^4 VIP ^3] ^1на ^3[^4 20 ^3] ^1минут.", g_szPrefix, name);

                } else {

                    cmsapi_set_user_flags(id, flag_vip, 600, "Сундучный Вип", false);    // flag_vip - строка, а не битсумма

                    client_print_color(0, 0, "%s ^1Игрок ^3[^4 %s ^3] ^1нашел в сундуке ^3[ ^4 VIP ^3] ^1на ^3[^4 10 ^3] ^1минут.", g_szPrefix, name);

                }

                return 2;

            }

        }

    }

    return 0;

}
 
Назад
Сверху