Ошибка компиляции

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
58
Реакции
25
Помог
4 раз(а)
Ошибка
WARNING [122]: expression has no effect
ERROR [122]: invalid expression, assumed zero
ERROR [122]: expected token: ";", but found ")"
ERROR [122]: invalid expression, assumed zero
Компилятор
Локальный
Amx Mod X
1.9.0
Исходный код
#include <amxmodx>
#include <amxmisc>
#include <reapi>


#define ACCESS_FLAG = ADMIN_LEVEL_H

#define BLOCK_MAPS {"awp_", "aim_", "fy_", "35hp", "$", "dm_", "cs_deagle5"} // Карты на которых вип привилегии не будут действовать

#define MENU_TAG "[\rVIP\y]"
#define CHAT_TAG "[^4VIP^1]"
#define USECONFIG "vip_system.cfg" // Использовать ли конфиг для плагина


#define IsUserVip(%1) (get_user_flags(%1) & ACCESS_FLAG)

const MIN_ROUND = 2

enum _:MENU_ITEMS_ENUM {
MENU_ITEM_M4A1,
MENU_ITEM_AK47,
MENU_ITEM_AWP,
MENU_ITEM_FAMAS
};

new const MENU_ITEMS[MENU_ITEMS_ENUM][] = {
"Взять \rM4A1",
"Взять \rAK47",
"Взять \rAWP",
"Взять \rFamas"
};

new const CHAT_NAMES[MENU_ITEMS_ENUM][] = {
"M4A1",
"AK47",
"AWP",
"Famas"
};

new const WEAPON_NAMES[MENU_ITEMS_ENUM][] = {
"weapon_m4a1",
"weapon_ak47",
"weapon_awp",
"weapon_famas"
};

new const WEAPON_IDS[MENU_ITEMS_ENUM] = {
any:WEAPON_M4A1,
any:WEAPON_AK47,
any:WEAPON_AWP,
any:WEAPON_FAMAS,
};

new const BP_AMMO[MENU_ITEMS_ENUM] = {
90,
90,
90,
90
};

new const WEAPON_ROUNDS[MENU_ITEMS_ENUM] = {
2,
2,
3,
2
};

new cvar_bonus_spawn, cvar_menu_text;
new bool:g_bUseWeapon[MAX_CLIENTS+1][MENU_ITEMS_ENUM];
new bool:g_bMapsBlock;
new g_iMenuCallBack;

public plugin_init() {
register_plugin("[ReAPI] VIP System", "1.0.0", "xramer");
register_clcmd("vipmenu", "clcmd_OpenMenu");
register_clcmd("say vipmenu", "clcmd_OpenMenu");
register_clcmd("say_team vipmenu", "clcmd_OpenMenu");
register_clcmd("say /vipmenu", "clcmd_OpenMenu");
register_clcmd("say_team /vipmenu", "clcmd_OpenMenu");

RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn", true);

g_iMenuCallBack=menu_makecallback("VipMenu_CallBack");
register_message( get_user_msgid ("ScoreAttrib"), "msg_ScoreAttrib");

#if defined USECONFIG
register_clcmd("vip_load", "load_config", ADMIN_RCON, "Load the VIP plugin config"); // Команда подгрузки конфига
#endif

cvar_bonus_spawn = register_cvar("vip_bonus_spawn", "1"); //выдавать ли бонусы при респауне 0/1
cvar_menu_text = register_cvar("vip_menu_text", "0"); //Сообщение в чат после взятия бонуса. 0 - не писать, 1 - писать сообщение игроку, 2 - писать сообщение всем

#if defined USECONFIG
load_config();
#endif
}

public plugin_cfg() {
new map[32]; rh_get_mapname(map, charsmax(map));
new BlockMap[][] = { BLOCK_MAPS };
for(new i; i < sizeof BlockMap; i++)
if(containi(map, BlockMap[i]) != -1)
g_bMapsBlock = true;
}

#if defined USECONFIG
public load_config() {
static g_ConfigsDir[64], g_FileName[256];
get_configsdir(g_ConfigsDir, charsmax(g_ConfigsDir));
format(g_FileName, 255, "%s/%s",g_ConfigsDir ,USECONFIG);
if(!file_exists(g_FileName))
{
server_print("[WARN] VIP System: config %s/%s no exist!",g_ConfigsDir ,USECONFIG);
return
}
server_cmd("exec %s/%s",g_ConfigsDir,USECONFIG)
}
#endif


public client_putinserver(id) {
if(IsUserVip(id)) {
new name[MAX_NAME_LENGTH]; get_entvar(id, var_netname, name, charsmax(name));
client_print_color(0, print_team_default, "%s ^1На сервер зашёл ^3VIP ^1клиент ^4%s", CHAT_TAG, name)

}
}

public msg_ScoreAttrib( msg_id, msg_dest, receiver ) {
#define ARG_PlayerID 1
#define ARG_Flags 2
#define SCOREBOARD_VIP (1 << 2)

if( get_user_flags( get_msg_arg_int(ARG_PlayerID) ) & ACCESS_FLAG )
set_msg_arg_int( ARG_Flags, ARG_BYTE, get_msg_arg_int(ARG_Flags) | SCOREBOARD_VIP)
}

public clcmd_OpenMenu(id) {
if (is_allow_use(id)){
return VipMenu(id)
}
return PLUGIN_HANDLED
}

stock VipMenu(id) {
new iMenu = menu_create("\y" + MENU_TAG + " \wВип меню", "VipMenu_Handler");

for(new i; i < MENU_ITEMS_ENUM; i++) {
menu_additem(iMenu, MENU_ITEMS[i], "", ACCESS_FLAG, g_iMenuCallBack)
}

menu_setprop(iMenu, MPROP_EXITNAME, "Выход")
menu_display(id, iMenu, 0)
return PLUGIN_HANDLED
}

public VipMenu_Handler(id, iMenu, iItem) {
menu_destroy(iMenu)

if(iItem < 0 || !is_allow_use(id)) {
return PLUGIN_HANDLED
}

rg_give_item(id, WEAPON_NAMES[iItem], GT_DROP_AND_REPLACE)
rg_set_user_bpammo(id, WeaponIdType:WEAPON_IDS[iItem], BP_AMMO[iItem])

new iTextValue = get_pcvar_num(cvar_menu_text)
if (iTextValue){
if (iTextValue == 1) client_print_color(id, print_team_default, "^4%s ^3Вы взяли себе ^4%s", CHAT_TAG, CHAT_NAMES[iItem])
if (iTextValue == 2) client_print_color(0, print_team_default, "^4%s ^3Вы взяли себе ^4%s", CHAT_TAG, CHAT_NAMES[iItem])
}

return PLUGIN_HANDLED
}

bool:is_allow_use(id) {
if(!is_user_alive(id)) {
client_print_color(id, print_team_default, "%s Меню доступно только ^3живым^1.", CHAT_TAG);
return false;
}
if(!IsUserVip(id)) {
client_print_color(id, print_team_default, "%s Только ^4VIP-игрок ^1может пользоваться этой командой.", CHAT_TAG);
return false;
}
if(g_bMapsBlock) {
client_print_color(id, print_team_default, "%s На данной карте меню ^3не доступно^1.", CHAT_TAG);
return false;
}

if(get_member_game(m_iTotalRoundsPlayed) < MIN_ROUND-1) {
client_print_color(id, print_team_default, "%s Меню доступно с ^4%i ^1раунда.", CHAT_TAG, MIN_ROUND);
return false;
}

return true;
}

public VipMenu_CallBack(id, iMenu, iItem) {
if(get_member_game(m_iTotalRoundsPlayed) < WEAPON_ROUNDS[iItem]-1) {
menu_additem(iMenu, MENU_ITEMS[iItem], "", ACCESS_FLAG, g_iMenuCallBack)
return ITEM_DISABLED
}

return ITEM_IGNORE
}

public CBasePlayer_Spawn(const id) {

if(!is_bonus_spawn(id))
return

if (!g_bMapsBlock && get_pcvar_num(cvar_bonus_spawn))
{
rg_give_item(id, "weapon_deagle", GT_REPLACE); rg_set_user_bpammo(id, WEAPON_DEAGLE, 35);
rg_give_item(id, "weapon_hegrenade", GT_APPEND);
rg_give_item(id, "weapon_flashbang", GT_APPEND);
rg_give_item(id, "weapon_flashbang", GT_APPEND);
rg_give_item(id, "weapon_smokegrenade", GT_APPEND);
rg_set_user_armor(id, 100, ARMOR_VESTHELM);

new TeamName:team = get_member(id, m_iTeam);
if(team == TEAM_CT) rg_give_defusekit (id, true);
}
}


stock bool:is_bonus_spawn(id) {
if(!is_user_alive(id)) return false;
if(!IsUserVip(id)) return false;
return true;
}
Помогите добрые люди.
Неожиданно компилятор стал ругаться на if'ы. Не могу понять где трабла случилась. Ошибки в коде, как таковой, нет, до этого компилировалось все нормально. Удаляю один блок if, ругается на следующий. И постоянно одна и та же ошибка.:sad:
 
В этой теме было размещено решение! Перейти к решению.
Сообщения
82
Реакции
83
Помог
5 раз(а)
xramer, ищи выше по коду, скорее всего где-то не закрыто условие.
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
Diff:
-#define ACCESS_FLAG = ADMIN_LEVEL_H
+#define ACCESS_FLAG  ADMIN_LEVEL_H
 
Сообщения
82
Реакции
83
Помог
5 раз(а)
sbelov020, IDE как правило, должна говорить о таких ошибках, если в PHPStorm подобное допустить, он весь файл красным засветит =)
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
oxoTHuk, я тоже сначала не понял, на что он ругался)
 
Сообщения
82
Реакции
83
Помог
5 раз(а)
sbelov020, так я и говорю, такое не ты должен находить, а IDE твоя. Если бы я тратил столько времени на поиски забытой ";" или "=" в условии, я бы бросил кодить уже давно =)
 
Сообщения
58
Реакции
25
Помог
4 раз(а)
sbelov020, о боже, как можно было не заметить.. мозги совсем плывут под вечер, спасибо:smile3:
 
Статус
В этой теме нельзя размещать новые ответы.

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

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