Участник
Пользователь
- Сообщения
- 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, ругается на следующий. И постоянно одна и та же ошибка.
Неожиданно компилятор стал ругаться на if'ы. Не могу понять где трабла случилась. Ошибки в коде, как таковой, нет, до этого компилировалось все нормально. Удаляю один блок if, ругается на следующий. И постоянно одна и та же ошибка.
В этой теме было размещено решение! Перейти к решению.