Вопрос по warning 213: tag mismatch

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
94
Реакции
13
Помог
2 раз(а)
Добрый вечер Всем. Решил попробовать написать плагин.
Вроде бы все шло по плану, но в конце повылазили варнинги, решение которых никак не поддается. Сказывается огромная нехватка знаний...

Задумка следующая:
Начисление безымянной валюты, за различные убийства игроков (В голову, с ножа, обычное убийство)

Вроде бы все сделал. Но при компиляции повылазили "warning 213: tag mismatch"

C++:
//AMXXPC compile.exe
// by the AMX Mod X Dev Team


//// Coins_System.sma
//
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(266) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(267) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(269) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(272) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(273) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(275) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(278) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(279) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(281) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(284) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(285) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(287) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(314) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(325) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(332) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(335) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(342) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(343) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(345) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(352) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(354) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(355) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(545) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(557) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(568) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(570) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(579) : warning 213: tag mismatch
// C:\Users\User\Desktop\Compilers\compiler 1.9.0\Coins_System.sma(581) : warning 213: tag mismatch
// Header size:           1756 bytes
// Code size:            24020 bytes
// Data size:            39348 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   81508 bytes
//
// 28 Warnings.
// Done.
//
// Compilation Time: 1,06 sec
// ----------------------------------------

Press enter to exit ...
Код:
#pragma compress 1

#include <amxmodx>
#include <amxmisc>
#include <reapi>
#include <nvault>
#include <gamecms5>

#pragma semicolon 1

new szPluginInfo[][] = { "Coins System", "1.0", "ApXuTekToR" };

/* Настройки */
#define TYPE_JOB 2    /* Тип интеграции со пытом
                    1 - Army Ranks Ultimate
                    2 - Advanced Expirience System
                    3 - CMSStats Ranks */

#if TYPE_JOB == 1
native ar_set_user_addxp(id, addxp);
native ar_add_user_anew(admin, player, anew);
#endif

#if TYPE_JOB == 2
#include <aes_v>
#endif

#if TYPE_JOB == 3
native cmsranks_set_user_addxp(id, value);
native cmsranks_add_user_anew(id, value);
#endif

enum e_Cvars {
    C_Chat_Prefix[32],
    C_CmdOpen_Shop[32],
    C_CmddOpen_Give[32],
    C_NameCurrency[32],
    C_ExpireDays,
    C_InvaultFile[32],

    C_ShowHudInfo,
    C_InfoColor[32],
    C_Position[32],

    C_AccessShop,
    C_FlagsAcces[32],
    C_ServiceName[32],
    C_CoinsSet[32],
    C_CoinGive,
    C_CoinGiveHead,
    C_CoinGiveKnife,

    C_GiveGravity[32],
    C_GiveGranade[32],
    C_GiveHealth[32],
    C_GiveArmor[32],
    C_GiveMoney[32],
}
new Cvars[e_Cvars];

enum e_rgbColors    { rgb_red, rgb_green, rgb_blue,         };
enum e_Position        { Float:position_x, Float:position_y,    };
enum e_InfoGravity    { cost, Float:gravity,                     };
enum e_InfoGrenade    { cost, he, flash, smoke,                };
enum e_InfoHealth    { cost, health, limit,                     };
enum e_InfoArmor    { cost, armor, limit                    };
enum e_InfoMoney    { cost, money, limit,                    };
enum e_InfoCoins    { one, two, three, fore, five,            };

new g_Vault;
new g_s_AuthID[33][35];

new keysmenu = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9);
new adminmoney[32];
new g_Block[33][8];

public plugin_end()
{
    if(g_Vault != INVALID_HANDLE) {
        nvault_close(g_Vault);
    }
}

public plugin_init() {
    register_menu("Menu 2", keysmenu, "func_menu");
    register_menu("Menu 1", keysmenu, "SHop");
    RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", 1);
    register_concmd(Cvars[C_CmdOpen_Shop], "a_shop");
    register_clcmd(Cvars[C_CmddOpen_Give], "server_menu");
}

public plugin_precache()
{
    register_plugin(szPluginInfo[0], szPluginInfo[1], szPluginInfo[2]);
    initCvars();
    set_task(1.0, "load_invault");

}

public load_invault()
{
    g_Vault = nvault_open(Cvars[C_InvaultFile]);

    if (g_Vault == INVALID_HANDLE)
    set_fail_state("Error opening nVault!");

    nvault_prune(g_Vault, 0, get_systime() - (86400 * Cvars[C_ExpireDays]));
}

public client_authorized(id)
{
    get_user_authid(id, g_s_AuthID[id], charsmax(g_s_AuthID[]));
}

public initCvars()
{
    bind_pcvar_string(create_cvar(    "CoinsSystem_Chat_Prefix",        "Coins",        FCVAR_NONE, "Префикс для час сообщений"                ), Cvars[C_Chat_Prefix],    charsmax(Cvars[C_Chat_Prefix]));
    bind_pcvar_string(create_cvar(    "CoinsSystem_CmdOpen_Shop",        "say /coins",    FCVAR_NONE, "Команда для открытия магазина"            ), Cvars[C_CmdOpen_Shop],    charsmax(Cvars[C_CmdOpen_Shop]));
    bind_pcvar_string(create_cvar(    "CoinsSystem_CmddOpen_Give",    "coins_give",    FCVAR_NONE, "Команда вызова меню выдачи для админа"    ), Cvars[C_CmddOpen_Give],    charsmax(Cvars[C_CmddOpen_Give]));
    bind_pcvar_string(create_cvar(    "CoinsSystem_InvaultFile",        "Coins_System",    FCVAR_NONE, "Название файла, в который будут сохранятся данные"    ), Cvars[C_InvaultFile],    charsmax(Cvars[C_InvaultFile]));
    bind_pcvar_num(create_cvar(        "CoinsSystem_C_ExpireDays",        "30",            FCVAR_NONE, "Через сколько дней удалять неактивных игроков?"    ), Cvars[C_ExpireDays]);
    bind_pcvar_string(create_cvar(    "CoinsSystem_NameСurrency",        "Бублик",        FCVAR_NONE, "Название валюты магазина"                ), Cvars[C_NameCurrency],    charsmax(Cvars[C_NameCurrency]));
    bind_pcvar_num(create_cvar(        "CoinsSystem_ShowHudInfo",        "1",            FCVAR_NONE, "Выводить игрокам информер в худ?^n\
                                                                                                '0' - Выкл^n\
                                                                                                '1' - Вкл"                               ), Cvars[C_ShowHudInfo]);
    bind_pcvar_string(create_cvar(    "CoinsSystem_Color",            "0 255 0",        FCVAR_NONE, "Цвет информера^n\
                                                                                                Подобрать цвет и позицию можнотут:^n\
                                                                                                'https://dev-cs.ru/hud/index.html'"        ), Cvars[C_InfoColor],    charsmax(Cvars[C_InfoColor]));
    bind_pcvar_string(create_cvar(    "CoinsSystem_Position",            "0,01 0.20",    FCVAR_NONE, "Позиция информера^n\
                                                                                                Подобрать цвет и позицию можнотут:^n\
                                                                                                'https://dev-cs.ru/hud/index.html'"        ), Cvars[C_Position],   charsmax(Cvars[C_Position]));
    bind_pcvar_num(create_cvar(        "CoinsSystem_AccessShop",        "1",            FCVAR_NONE, "Для кого будет работать магазин и кому выдаваться коинсы?^n\
                                                                                                '0' - Всем^n\
                                                                                                '1' - Игрокам с определенным фагом^n\      
                                                                                                '2' - По названию услуги^n\              
                                                                                                '3' - По флагу или названию услуги"        ), Cvars[C_AccessShop]);
    bind_pcvar_string(create_cvar(    "CoinsSystem_NameСurrency",        "t",            FCVAR_NONE, "Флаг доступа для начисления консов^n\
                                                                                                Работает только при:^n\
                                                                                                'CoinsSystem_AccessShop' = '1' или '3'"    ), Cvars[C_FlagsAcces],        charsmax(Cvars[C_FlagsAcces]));
    bind_pcvar_string(create_cvar(    "CoinsSystem_ServiceName",        "_coins_sys",    FCVAR_NONE, "Название услуги для начисления коинсов^n\
                                                                                                Работает только при:^n\
                                                                                                'CoinsSystem_AccessShop' = '2' или '3'"    ), Cvars[C_ServiceName],    charsmax(Cvars[C_ServiceName]));
    bind_pcvar_num(create_cvar(        "CoinsSystem_CoinGive",            "1",            FCVAR_NONE, "Кол-во коинсов за убийство 'Обычное'"    ), Cvars[C_CoinGive]);
    bind_pcvar_num(create_cvar(        "CoinsSystem_CoinGive",            "2",            FCVAR_NONE, "Кол-во коинсов за убийство 'В голову'"    ), Cvars[C_CoinGiveHead]);
    bind_pcvar_num(create_cvar(        "CoinsSystem_CoinGive",            "3",            FCVAR_NONE, "Кол-во коинсов за убийство 'С ножа'"    ), Cvars[C_CoinGiveKnife]);

    bind_pcvar_string(create_cvar(    "CoinsSystem_Gravity",            "5 0,8",        FCVAR_NONE, "Настрйоки гравитации^n\
                                                                                                Синтаксис: ^"<Cost> <Value>^"^n\
                                                                                                <Cost> - Стоимость^n\
                                                                                                <Value> - Значение гравитации^n\
                                                                                                Значение '1.0' - Стандартная гравитация"                            ), Cvars[C_GiveGravity],   charsmax(Cvars[C_GiveGravity]));
    bind_pcvar_string(create_cvar(    "CoinsSystem_GiveGranade",    "5 1 2 1",        FCVAR_NONE, "Настройки набора гранат^n\
                                                                                                Синтаксис: ^"<Cost> <Items:he> <Items:flash> <Items:smoke>^"^n\
                                                                                                <Cost> - Стоимость в магазине^n\
                                                                                                <Items:he> - Кол-во HE гранат, если '0' то не выдавать^n\
                                                                                                <Items:flash> - Кол-во Flash гранат, если '0' то не выдавать^n\
                                                                                                <Items:smoke> - Кол-во Smoke гранат, если '0' то не выдавать"        ), Cvars[C_GiveGranade],   charsmax(Cvars[C_GiveGranade]));
    bind_pcvar_string(create_cvar(    "CoinsSystem_GiveHealth",    "5 70 120",        FCVAR_NONE, "Настройки набора выдачи HP^n\
                                                                                                Синтаксис: ^"<Cost> <health> <limit>^"^n\
                                                                                                <Cost> - Стоимость в магазине^n\
                                                                                                <health> - Кол-во HP^n\
                                                                                                <limit> - Максимальное кол-во HP"                                    ), Cvars[C_GiveHealth],   charsmax(Cvars[C_GiveHealth]));
    bind_pcvar_string(create_cvar(    "CoinsSystem_GiveArmor",    "5 70 120",        FCVAR_NONE, "Настройки набора выдачи AP^n\
                                                                                                Синтаксис: ^"<Cost> <health> <limit>^"^n\
                                                                                                <Cost> - Стоимость в магазине^n\
                                                                                                <armor> - Кол-во AP^n\
                                                                                                <limit> - Максимальное кол-во AP"                                    ), Cvars[C_GiveArmor],   charsmax(Cvars[C_GiveArmor]));
    bind_pcvar_string(create_cvar(    "CoinsSystem_GiveMoney",    "5 70 120",        FCVAR_NONE, "Настройки набора выдачи игровых дерег^n\
                                                                                                Синтаксис: ^"<Cost> <money> <limit>^"^n\
                                                                                                <Cost> - Стоимость в магазине^n\
                                                                                                <money> - Кол-во игровых денег^n\
                                                                                                <limit> - Максимальное кол-во игровых денег"                        ), Cvars[C_GiveMoney],   charsmax(Cvars[C_GiveMoney]));


    AutoExecConfig(true, "Main_Settings", "Coins_System");
}

public client_putinserver(id)
{
    cmdGetMoney(id);
    if(Cvars[C_ShowHudInfo] == 1) set_task(1.0, "task_hudmsg", id, _, _, "b");
}

public task_hudmsg(id)
{
    static colors[e_rgbColors]; getColors(Cvars[C_InfoColor], colors);
    static position[e_Position];  getPosition(Cvars[C_Position], position);
    set_dhudmessage(colors[rgb_red], colors[rgb_green], colors[rgb_blue], position[position_x], position[position_y], 0, 6.0, 0.1);
    show_dhudmessage(id, "%s: [ %d ]^nМагазин [ %s ]", Cvars[C_NameCurrency], adminmoney[id], Cvars[C_CmdOpen_Shop]);
}

public CBasePlayer_Killed_Post(id, const victimId, killerId, iGib)
{
    if(killerId == victimId || !is_user_connected(killerId) || !is_user_connected(victimId)) return;

    if(Cvars[C_AccessShop] == 0) {
        if(get_user_weapon(killerId) == CSW_KNIFE){
            adminmoney[killerId] += Cvars[C_CoinGiveKnife];
        } else if(get_member(victimId, m_bHeadshotKilled)){
            adminmoney[killerId] += Cvars[C_CoinGiveHead];
        } else {
            adminmoney[killerId] += Cvars[C_CoinGive];
        }
        cmdSaveMoney(id);
    } else if(Cvars[C_AccessShop] == 1) {
        if(checkAccess(killerId, Cvars[C_FlagsAcces]))
        {
            if(get_user_weapon(killerId) == CSW_KNIFE){
                adminmoney[killerId] += Cvars[C_CoinGiveKnife];
            } else if(get_member(victimId, m_bHeadshotKilled)){
                adminmoney[killerId] += Cvars[C_CoinGiveHead];
            } else {
                adminmoney[killerId] += Cvars[C_CoinGive];
            }
        }
        cmdSaveMoney(id);
    } else if(Cvars[C_AccessShop] == 2) {
        static Array:Services;
        Services = cmsapi_get_user_services(killerId, "", Cvars[C_ServiceName]);
        if(Services) {
            if(get_user_weapon(killerId) == CSW_KNIFE){
                adminmoney[killerId] += Cvars[C_CoinGiveKnife];
            } else if(get_member(victimId, m_bHeadshotKilled)){
                adminmoney[killerId] += Cvars[C_CoinGiveHead];
            } else {
                adminmoney[killerId] += Cvars[C_CoinGive];
            }
        }
        cmdSaveMoney(id);
    } else if(Cvars[C_AccessShop] == 3) {
        static Array:Services; Services = cmsapi_get_user_services(killerId, "", Cvars[C_ServiceName]);
        if(checkAccess(killerId, Cvars[C_FlagsAcces]) || Services) {
            if(get_user_weapon(killerId) == CSW_KNIFE){
                adminmoney[killerId] += Cvars[C_CoinGiveKnife];
            } else if(get_member(victimId, m_bHeadshotKilled)){
                adminmoney[killerId] += Cvars[C_CoinGiveHead];
            } else {
                adminmoney[killerId] += Cvars[C_CoinGive];
            }
        }
        cmdSaveMoney(id);
    }
}

public a_shop(id)
{
    static menu[500], len; len = 0;
    new name[32]; get_user_name(id, name, 31);
    static infogravity[e_InfoGravity], infogrenade[e_InfoGrenade], infohealth[e_InfoHealth], infoarmor[e_InfoArmor], infomoney[e_InfoMoney];
    getInfoGravity(Cvars[C_GiveGravity], infogravity); getInfoGrenade(Cvars[C_GiveGranade], infogrenade); getInfoHealth(Cvars[C_GiveHealth], infohealth);
    getInfoArmor(Cvars[C_GiveArmor], infoarmor); getInfoMoney(Cvars[C_GiveMoney], infomoney);

    if(!(get_member(id, m_iTeam) == TEAM_UNASSIGNED) || (get_member(id, m_iTeam) == TEAM_SPECTATOR)) {
        client_print_color(id, 0, "^3[^4%s^3] ^4%s, сначала выберите команду, за которую хотите играть^4!", Cvars[C_Chat_Prefix], name);
        return PLUGIN_HANDLED;
    }

    len += formatex(menu[len], charsmax(menu) - len, "\r[\y!\r] \wМагазин сервера^n\r[\y!\r] \wПривет, \r%s^n\r[\y!\r] \wВаши \y%s: \r%d^n^n", name, Cvars[C_NameCurrency], adminmoney[id]);

    if(adminmoney[id] >= infogravity[cost]) {
        len += formatex(menu[len], charsmax(menu) - len, "\r[\y1\r]. \wКупить Гравитация - \r(\y%d\r)^n", infogravity[cost]);
    } else {
        len += formatex(menu[len], charsmax(menu) - len, "\d[1]. Купить Гравитацию - (%d)^n", infogravity[cost]);
    }

    if(adminmoney[id] >= infogrenade[cost]) {
        len += formatex(menu[len], charsmax(menu) - len, "\r[\y2\r]. \wКупить Гранаты - \r(\y%d\r)^n", infogrenade[cost]);
    } else {
        len += formatex(menu[len], charsmax(menu) - len, "\d[2]. Купить Гранаты - (%d)^n", infogrenade[cost]);
    }

    if(adminmoney[id] >= infohealth[cost]) {
        len += formatex(menu[len], charsmax(menu) - len, "\r[\y3\r]. \wКупить %dHP - \r(\y6\r)^n", infohealth[health], infohealth[cost]);
    } else {
        len += formatex(menu[len], charsmax(menu) - len, "\d[3]. Купить %dHP - (6)^n", infohealth[health], infohealth[cost]);
    }

    if(adminmoney[id] >= infoarmor[cost]) {
        len += formatex(menu[len], charsmax(menu) - len, "\r[\y4\r]. \wКупить %dAP - \r(\y%d\r)^n", infoarmor[armor], infoarmor[cost]);
    } else {
        len += formatex(menu[len], charsmax(menu) - len, "\d[4]. Купить %dAP - (%d)^n", infoarmor[armor], infoarmor[cost]);
    }

    if(adminmoney[id] >= infomoney[cost]) {
        len += formatex(menu[len], charsmax(menu) - len, "\r[\y5\r]. \wОбменять на \y%d$ \w- \r(\y%d\r)^n^n", infomoney[money], infomoney[cost]);
    } else {
        len += formatex(menu[len], charsmax(menu) - len, "\d[5]. Обменять на %d$ - (%d)^n^n", infomoney[money], infomoney[cost]);
    }

    len += formatex(menu[len], charsmax(menu) - len, "\r[\y0\r]. \wВыход^n");
    show_menu(id, keysmenu, menu, -1, "Menu 1");

    return PLUGIN_HANDLED;
}

public SHop(id, key)
{                
    static infogravity[e_InfoGravity], infogrenade[e_InfoGrenade], infohealth[e_InfoHealth], infoarmor[e_InfoArmor], infomoney[e_InfoMoney];
    getInfoGravity(Cvars[C_GiveGravity], infogravity); getInfoGrenade(Cvars[C_GiveGranade], infogrenade); getInfoHealth(Cvars[C_GiveHealth], infohealth);
    getInfoArmor(Cvars[C_GiveArmor], infoarmor); getInfoMoney(Cvars[C_GiveMoney], infomoney);

    switch(key) {
        case 0: {
            if(adminmoney[id] >= infogravity[cost]) {
                set_entvar(id, var_gravity, infogravity[gravity]);
                client_print_color(id, 0, "^3[^4%s^3] ^1Вы купили ^4гравитацию. действует до конца карты", Cvars[C_Chat_Prefix]);
                adminmoney[id] = adminmoney[id] - infogravity[cost];
            } else {
                client_print_color(id, 0, "^3[^4%s^3] ^1Увы, Но у вас не ^3хватает ^4%s", Cvars[C_Chat_Prefix], Cvars[C_NameCurrency]);
            }
            cmdSaveMoney(id);
        }
        case 1: {
            if(adminmoney[id] >= infogrenade[cost]) {
                if(infogrenade[he] > 0) {
                    rg_give_item(id, "weapon_hegrenade"); rg_set_user_bpammo(id, WEAPON_HEGRENADE, infogrenade[he]);
                }
                if(infogrenade[flash] > 0) {
                    rg_give_item(id, "weapon_flashbang"); rg_set_user_bpammo(id, WEAPON_FLASHBANG, infogrenade[flash]);
                }
                if(infogrenade[smoke] > 0) {
                    rg_give_item(id, "weapon_smokegrenade"); rg_set_user_bpammo(id, WEAPON_SMOKEGRENADE, infogrenade[smoke]);
                }
                client_print_color(id, 0, "^3[^4%s^3] ^1Вы купили ^4набор гранаты", Cvars[C_Chat_Prefix]);
                adminmoney[id] = adminmoney[id] - infogrenade[cost];
            } else {
                client_print_color(id, 0, "^3[^4%s^3] ^1Увы, Но у вас не ^3хватает ^4%s", Cvars[C_Chat_Prefix], Cvars[C_NameCurrency]);
            }
            cmdSaveMoney(id);
        }  
        case 2: {
            if(adminmoney[id] >= infohealth[cost]) {
                _rg_add_user_health(id, infohealth[health], infohealth[limit]);
                client_print_color(id, 0, "^3[^4%s^3] ^1Вы купили ^4%d HP", Cvars[C_Chat_Prefix], infohealth[health]);
                adminmoney[id] = adminmoney[id] - infohealth[cost];
            } else {
                client_print_color(id, 0, "^3[^4%s^3] ^1Увы, Но у вас не ^3хватает ^4%s", Cvars[C_Chat_Prefix], Cvars[C_NameCurrency]);
            }
            cmdSaveMoney(id);
        }
        case 3: {
            if(adminmoney[id] >= infoarmor[cost]) {
                rg_set_user_armor(id, min(rg_get_user_armor(id) + infoarmor[armor], infoarmor[limit]), ARMOR_VESTHELM);
                client_print_color(id, 0, "^3[^4%s^3] ^1Вы купили ^4%d AP", Cvars[C_Chat_Prefix], infohealth[health]);
                adminmoney[id] = adminmoney[id] - infohealth[cost];
            } else {
                client_print_color(id, 0, "^3[^4%s^3] ^1Увы, Но у вас не ^3хватает ^4%s", Cvars[C_Chat_Prefix], Cvars[C_NameCurrency]);
            }
            cmdSaveMoney(id);
        }
        case 4: {
            if(adminmoney[id] >= infomoney[cost]) {
                rg_add_account(id, infomoney[money], AS_ADD, true);
                client_print_color(id, 0, "^3[^4%s^3] ^1Вы успешно обменили ^3[^4%d %s^3] ^1на ^3[^4%d ^1$^3]", Cvars[C_Chat_Prefix],infomoney[cost], Cvars[C_NameCurrency], infomoney[money]);
                adminmoney[id] = adminmoney[id] - infomoney[cost];
            } else {
                client_print_color(id, 0, "^3[^4%s^3] ^1Увы, Но у вас не ^3хватает ^4%s", Cvars[C_Chat_Prefix], Cvars[C_NameCurrency]);
            }
            cmdSaveMoney(id);
        }  
    }
}

public server_menu(id)
{
    new name[32]; get_user_name(id, name, 31);
    static menu[650], len; len = 0;
    static infogive[e_InfoCoins]; getInfoGive(Cvars[C_CoinsSet], infogive);

    len += formatex(menu[len], charsmax(menu) - len, "\r[\y!\r] \wРедактор \y%s^n\r[\y!\r] \wПривет, \r%s^n^n", Cvars[C_NameCurrency], name);

    len += formatex(menu[len], charsmax(menu) - len, "\r[\y1\r]. \wВыдать \d[ \y%d \d] монеток^n", infogive[one]);
    len += formatex(menu[len], charsmax(menu) - len, "\r[\y2\r]. \wВыдать \d[ \y%d \d] монеток^n", infogive[two]);
    len += formatex(menu[len], charsmax(menu) - len, "\r[\y3\r]. \wВыдать \d[ \y%d \d] монеток^n", infogive[three]);
    len += formatex(menu[len], charsmax(menu) - len, "\r[\y4\r]. \wВыдать \d[ \y%d \d] монеток^n^n",infogive[fore]);
    len += formatex(menu[len], charsmax(menu) - len, "\r[\y4\r]. \wВыдать \d[ \y%d \d] монеток^n^n",infogive[five]);
    len += formatex(menu[len], charsmax(menu) - len, "\r[\y0\r]. \wВыход");

    show_menu(id, keysmenu, menu, -1, "Menu 2");
    return PLUGIN_HANDLED;
}

public func_menu(id, key)
{
    switch(key)
    {
    case 0: {
            g_Block[id][0] = true;
            MenuPlayer(id);
            cmdSaveMoney(id);
        }
    case 1: {
            g_Block[id][1] = true;
            MenuPlayer(id);
            cmdSaveMoney(id);
        }
    case 2: {
            g_Block[id][2] = true;
            MenuPlayer(id);
            cmdSaveMoney(id);
        }
    case 3: {
            g_Block[id][3] = true;
            MenuPlayer(id);
            cmdSaveMoney(id);
        }
    case 4: {
            g_Block[id][4] = true;
            MenuPlayer(id);
            cmdSaveMoney(id);
        }
    }
    return PLUGIN_HANDLED;
}

public MenuPlayer(const id)
{
    static Array:Services; Services = cmsapi_get_user_services(id, "", Cvars[C_ServiceName]);
    new iMenu = menu_create("\r[\yGiveFlags\r] \wВыбери игрока^n", "MenuHandler_Players");
    static ItemData[11], Name[MAX_NAME_LENGTH+10];
    for(new i = 1; i <= MAX_PLAYERS; i++){
        log_amx("[ShowPlayersMenu] [Add item] [Begin]");
        if(!is_user_connected(i) || is_user_bot(i)) continue;
        get_user_name(i, Name, MAX_NAME_LENGTH-1);
        if(Cvars[C_AccessShop] == 1) if(!(checkAccess(i, Cvars[C_FlagsAcces]))) add(Name, charsmax(Name), " \r[\yNo VIP\r]");
        if(Cvars[C_AccessShop] == 2) if(!Services) add(Name, charsmax(Name), " \r[\yNo VIP\r]");
        if(Cvars[C_AccessShop] == 3) if(!(checkAccess(i, Cvars[C_FlagsAcces])) || !Services) add(Name, charsmax(Name), " \r[\yNo VIP\r]");
        num_to_str(i, ItemData, charsmax(ItemData));
        menu_additem(iMenu, Name, ItemData);
    }
}

public menu_handle(const id, const Menu, const Item)
{
    if(Item == MENU_EXIT || is_user_bot(id) || !is_user_connected(id)) {
        menu_destroy(Menu);
        return PLUGIN_HANDLED;
    }

    static Access, Data[32];
    menu_item_getinfo(Menu, Item, Access, Data, charsmax(Data));
    static infogive[e_InfoCoins]; getInfoGive(Cvars[C_CoinsSet], infogive);

    if(g_Block[id][0])
    {
        adminmoney[id] = adminmoney[id] + infogive[one];
        client_print_color(id, 0, "^3[^4%s^3] ^1Вам было выдано:^3 %d ^1монет", Cvars[C_Chat_Prefix], infogive[one]);
    }
    if(g_Block[id][1])
    {
        adminmoney[id] = adminmoney[id] + infogive[two];
        client_print_color(id, 0, "^3[^4%s^3] ^1Вам было выдано:^3 %d ^1монет", Cvars[C_Chat_Prefix], infogive[two]);
    }
    if(g_Block[id][2])
    {
        adminmoney[id] = adminmoney[id] + infogive[three];
        client_print_color(id, 0, "^3[^4%s^3] ^1Вам было выдано:^3 %d ^1монет", Cvars[C_Chat_Prefix], infogive[three]);
    }
    if(g_Block[id][3])
    {
        adminmoney[id] = adminmoney[id] + infogive[fore];
        client_print_color(id, 0, "^3[^4%s^3] ^1Вам было выдано:^3 %d ^1монет", Cvars[C_Chat_Prefix], infogive[fore]);
    }
    if(g_Block[id][4])
    {
        adminmoney[id] = adminmoney[id] + infogive[five];
        client_print_color(id, 0, "^3[^4%s^3] ^1Вам было выдано:^3 %d ^1монет", Cvars[C_Chat_Prefix], infogive[five]);
    }

    menu_destroy(Menu);
    return PLUGIN_HANDLED;
}

public cmdSaveMoney(id)
{
    new s_Coins[9], s_Key[40];

    formatex(s_Key, charsmax(s_Key) , "%sMONEY", g_s_AuthID[id]);
    formatex(s_Coins, charsmax(s_Coins), "%d", adminmoney[id]);
   
    nvault_set(g_Vault, s_Key, s_Coins);
}

public cmdGetMoney(id)
{
    new s_Key[40];
    formatex(s_Key, charsmax(s_Key), "%sMONEY", g_s_AuthID[id]);
    new i_Money = nvault_get(g_Vault, s_Key);

    if(i_Money)
    {
        adminmoney[id] = adminmoney[id] + i_Money;
        nvault_remove(g_Vault, s_Key);
    }
}

Float:_rg_add_user_health(id, hp, _max = 99999){
    static Float:healthz; healthz = get_entvar(id, var_health, healthz);
    healthz = floatmin(float(_max), healthz+hp);
    set_entvar(id, var_health, healthz);
    return healthz;
}

checkAccess(id, const flags[]) {
    return (get_user_flags(id) & read_flags(flags));
}

getColors(const str[], output[e_rgbColors]) {
    static colors[3][11];
    if(parse(str, colors[0], 10, colors[1], 10, colors[2], 10) != 3){
        log_error(AMX_ERR_PARAMS, "Invalid colors string '%s'", str);
        return;
    }
    output[rgb_red]     = str_to_num(colors[0]);
    output[rgb_green]   = str_to_num(colors[1]);
    output[rgb_blue]    = str_to_num(colors[2]);
}

getPosition(const str[], output[e_Position]) {
    static position[2][11];
    if(parse(str, position[0], 10, position[1], 10) != 2){
        log_error(AMX_ERR_PARAMS, "Invalid colors string '%s'", str);
        return;
    }
    output[position_x]  = str_to_float(position[0]);
    output[position_y]  = str_to_float(position[1]);
}

getInfoGravity(const str[], output[e_InfoGravity]) {
    static infogravity[2][11];
    if(parse(str, infogravity[0], 10, infogravity[1], 10) != 2){
        log_error(AMX_ERR_PARAMS, "Invalid colors string '%s'", str);
        return;
    }
    output[cost]      = str_to_num(infogravity[0]);
    output[gravity]    = str_to_float(infogravity[1]);
}

getInfoGrenade(const str[], output[e_InfoGrenade]) {
    static infogrenade[4][20];
    if(parse(str, infogrenade[0], 20, infogrenade[1], 20, infogrenade[2], 20, infogrenade[3], 20) != 4) {
        log_error(AMX_ERR_PARAMS, "Invalid colors string '%s'", str);
        return;
    }
    output[cost]      = str_to_num(infogrenade[0]);
    output[he]        = str_to_num(infogrenade[1]);
    output[flash]      = str_to_num(infogrenade[2]);
    output[smoke]    = str_to_num(infogrenade[3]);
}

getInfoHealth(const str[], output[e_InfoHealth]) {
    static infohealth[3][11];
    if(parse(str, infohealth[0], 10, infohealth[1], 10, infohealth[2], 10) != 3) {
        log_error(AMX_ERR_PARAMS, "Invalid colors string '%s'", str);
        return;
    }
    output[cost]      = str_to_num(infohealth[0]);
    output[health]    = str_to_num(infohealth[1]);
    output[limit]    = str_to_num(infohealth[2]);
}

getInfoArmor(const str[], output[e_InfoArmor]) {
    static infoarmor[3][11];
    if(parse(str, infoarmor[0], 10, infoarmor[1], 10, infoarmor[2], 10) != 3){
        log_error(AMX_ERR_PARAMS, "Invalid colors string '%s'", str);
        return;
    }
    output[cost]      = str_to_num(infoarmor[0]);
    output[armor]    = str_to_num(infoarmor[1]);
    output[limit]    = str_to_num(infoarmor[2]);
}

getInfoMoney(const str[], output[e_InfoMoney]) {
    static infomoney[3][11];
    if(parse(str, infomoney[0], 10, infomoney[1], 10, infomoney[2], 10) != 3){
        log_error(AMX_ERR_PARAMS, "Invalid colors string '%s'", str);
        return;
    }
    output[cost]      = str_to_num(infomoney[0]);
    output[money]    = str_to_num(infomoney[1]);
    output[limit]    = str_to_num(infomoney[2]);
}

getInfoGive(const str[], output[e_InfoCoins]) {
    static infogive[5][11];
    if(parse(str, infogive[0], 10, infogive[1], 10, infogive[2], 10, infogive[3], 10, infogive[4], 10) != 5){
        log_error(AMX_ERR_PARAMS, "Invalid colors string '%s'", str);
        return;
    }
    output[one]      = str_to_num(infogive[0]);
    output[two]        = str_to_num(infogive[1]);
    output[three]    = str_to_num(infogive[2]);
    output[fore]    = str_to_num(infogive[3]);
    output[five]    = str_to_num(infogive[4]);
}

За ранее огромное спасибо за помощь и(или) направление по верному пути!
 

wellasgood

Кидала, мошенник, вымогатель
Сообщения
1,409
Реакции
182
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
такая ошибка означает невалидный идентификатор, возможно cost
11 Окт 2019
перепроверьте, что передаете и куда, как получаете значение в скобках []
 
Сообщения
94
Реакции
13
Помог
2 раз(а)
wellasgood, а, да, забыл совсем дописать... Именно на cost и ругается... Хотя на 260 строке, так же используется данная переменная, но там ошибку не выдает
 

wellasgood

Кидала, мошенник, вымогатель
Сообщения
1,409
Реакции
182
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Перепроверьте значения Ваши, что передаете, куда ставите (подсказка) ругается на то, что в скобках квадратных [ ]
 

wellasgood

Кидала, мошенник, вымогатель
Сообщения
1,409
Реакции
182
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Исправляете, компилиться заного, если ошибок меньше, значит в правильном направлении изменяете. Дальше правки делаете.
11 Окт 2019
C++:
enum e_rgbColors    { rgb_red, rgb_green, rgb_blue,         };
enum e_Position        { Float:position_x, Float:position_y,    };
enum e_InfoGravity    { cost, Float:gravity,                     };
enum e_InfoGrenade    { cost, he, flash, smoke,                };
enum e_InfoHealth    { cost, health, limit,                     };
enum e_InfoArmor    { cost, armor, limit                    };
enum e_InfoMoney    { cost, money, limit,                    };
enum e_InfoCoins    { one, two, three, fore, five,            };

да, у Вас вот тут каша мала
11 Окт 2019
можно сделать cost1, cost2, cost3 и тп
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу