admin_online

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
103
Реакции
1
Ошибка
AMX Mod X Compiler 1.9.0.5271
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2013 AMX Mod X Team

/hlds/web/www/amxxpc/work/scripting/202106/1613132368/adm_online.sma(63) : warning 206: redundant test: constant expression is non-zero
/hlds/web/www/amxxpc/work/scripting/202106/1613132368/adm_online.sma(68) : warning 209: function "OpenMenu" should return a value
/hlds/web/www/amxxpc/work/scripting/202106/1613132368/adm_online.sma(244) : warning 217: loose indentation

3 Warnings.
Done.
Компилятор
Локальный
Amx Mod X
1.9.0
Исходный код
#include <amxmisc> 

#define PLUGIN "Система показывающая игроков онлайн [by Vaas]"
#define AUTHOR "Vaas"
#define VERSION "v1.0"

/* НАСТРОЙКА ПЛАГИНА */

#define BOSS_FLAG ADMIN_LEVEL_F
#define ADMIN_FLAG ADMIN_BAN
#define VIP_FLAG ADMIN_LEVEL_H

#define BOSS_NAME "Супер администраторы"
#define ADMIN_NAME "Администраторы"
#define VIP_NAME "Вип игроки"

#define LINE_ERROR_BOSS "\dК сожалению, \rсупер админов \dнету на сервере \r;(^n"
#define LINE_ERROR_ADMIN "\dК сожалению, \rадминистраторов \dнету на сервере \r;(^n"
#define LINE_ERROR_VIP "\dК сожалению, \rвип игроков \dнету на сервере \r;(^n"
#define LINE_TYPE_0 "\dПожалуйста, \rвыберите список\d, используйте клавишу «\r1\d»^n"

#define STEAM_BOSS_1 ""
#define STEAM_BOSS_2 "STEAM_0:0:525940109"
#define STEAM_BOSS_3 ""
#define STEAM_BOSS_4 ""
#define STEAM_BOSS_5 ""

#define LINE_BOSS "\r[\yОснователь\r]"
#define PAGES 4 // Сколько всего страниц?
#define MENU_ACCESS 0 // Кому доступно меню? (0 = всем, 1 = только випам и администраторам, 2 = только основателю, 3 = никому)
#define OPEN_MENU 0 // Какое меню открывается первым? (0 = никакое, 1 = основатели, 2 = администраторы, 3 = випы)

/* =================================== */

new keys = MENU_KEY_1|MENU_KEY_0
new TypeMenu[33], boss[32]

public plugin_init()
{
register_plugin("PLUGIN", "VERSION", "AUTHOR")

/* Регистрация меню */
register_menu("Menu", keys, "func_menu")
/* Команды - открытие меню */
register_clcmd("say /admins", "OpenMenu")
register_clcmd("say /vips", "OpenMenu")
register_clcmd("say admins", "OpenMenu")
register_clcmd("online_1", "OpenMenu")
}

public client_connect(id) CheckUserBoss(id) /* Проверяем, игрок - босс ли? => Присваиваем переменную */

public OpenMenu(id)
{
if(MENU_ACCESS == 2 && get_user_flags(id) & BOSS_FLAG)
{
OpenMenu2(id)
}
else if(MENU_ACCESS == 1 && get_user_flags(id) & ADMIN_FLAG || get_user_flags(id) & VIP_FLAG)
{
OpenMenu2(id)
}
else if(MENU_ACCESS == 0)
{
OpenMenu2(id)
}
else return PLUGIN_HANDLED
}

public OpenMenu2(id)
{
TypeMenu[id] = OPEN_MENU
Menu(id)
}

public Menu(id)
{
static menu[650], iLen
iLen = 0
iLen = formatex(menu[iLen], charsmax(menu) - iLen, "\yСистема игроков онлайн^n")

if(TypeMenu[id] == 1)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d%s \w(\r%d\w)\d:^n^n",BOSS_NAME,all(1))
}
else if(TypeMenu[id] == 2)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d%s \w(\r%d\w)\d:^n^n",ADMIN_NAME,all(2))
}
else if(TypeMenu[id] == 3)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\d%s \w(\r%d\w)\d:^n^n",VIP_NAME,all(3))
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y| %s", LINE_TYPE_0)
}

if(TypeMenu[id] == 1 && all(1) == 0)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y| %s", LINE_ERROR_BOSS)
}
else if(TypeMenu[id] == 2 && all(2) == 0)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y| %s", LINE_ERROR_ADMIN)
}
else if(TypeMenu[id] == 3 && all(3) == 0)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\y| %s", LINE_ERROR_VIP)
}

if(TypeMenu[id] == 1 && all(1) > 0)
{
for(new id = 1; id <= get_maxplayers(); id++)
{
new szName[32]
get_user_name(id, szName, 31)
if(get_user_flags(id) & BOSS_FLAG)
{
if(boss[id] == 1)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\w» \y%s %s^n", szName, LINE_BOSS)
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\w» \y%s^n", szName)
}
}
}
}
else if(TypeMenu[id] == 2 && all(2) > 0)
{
for(new id = 1; id <= get_maxplayers(); id++)
{
new szName[32]
get_user_name(id, szName, 31)
if(get_user_flags(id) & ADMIN_FLAG)
{
if(boss[id] == 1)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\w» \y%s %s^n", szName, LINE_BOSS)
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\w» \y%s^n", szName)
}
}
}
}
else if(TypeMenu[id] == 3 && all(3) > 0)
{
for(new id = 1; id <= get_maxplayers(); id++)
{
new szName[32]
get_user_name(id, szName, 31)
if(get_user_flags(id) & VIP_FLAG)
{
if(boss[id] == 1)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\w» \y%s %s^n", szName, LINE_BOSS)
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "\w» \y%s^n", szName)
}
}
}
}

if(TypeMenu[id] == 1)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\y[\w1\y] \r%s\y|\d%s\y|\d%s",BOSS_NAME,ADMIN_NAME,VIP_NAME)
keys |= MENU_KEY_1
}
else if(TypeMenu[id] == 2)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\y[\w1\y] \d%s\y|\r%s\y|\d%s",BOSS_NAME,ADMIN_NAME,VIP_NAME)
keys |= MENU_KEY_1
}
else if(TypeMenu[id] == 3)
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\y[\w1\y] \d%s\y|\d%s\y|\r%s",BOSS_NAME,ADMIN_NAME,VIP_NAME)
keys |= MENU_KEY_1
}
else
{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\y[\w1\y] \d%s\y|\d%s\y|\d%s",BOSS_NAME,ADMIN_NAME,VIP_NAME)
keys |= MENU_KEY_1
}

{
iLen += formatex(menu[iLen], charsmax(menu) - iLen, "^n\y[\w0\y] \wВыход")
keys |= MENU_KEY_0
}
show_menu(id, keys, menu, -1, "Menu");
return PLUGIN_HANDLED
}

public func_menu(id, key)
{
switch(key)
{
case 0:
{
TypeMenu[id]++
if(TypeMenu[id] == PAGES || TypeMenu[id] == 0) TypeMenu[id] = 1
Menu(id)
}
}
return PLUGIN_HANDLED
}

public CheckUserBoss(id){
new steam[35]
get_user_authid(id, steam, 34)
if(equal(steam, STEAM_BOSS_1) || equal(steam, STEAM_BOSS_2) || equal(steam, STEAM_BOSS_3) || equal(steam, STEAM_BOSS_4) || equal(steam, STEAM_BOSS_5))
{
boss[id] = 1
}
else boss[id] = 0
}

all(type)
{
new num
for(new id = 1; id <= get_maxplayers(); id++)
{
if(type == 1)
{
if(is_user_connected(id) && get_user_flags(id) & BOSS_FLAG)
num++
}
else if(type == 2)
{
if(is_user_connected(id) && get_user_flags(id) & ADMIN_FLAG)
num++
}
else if(type == 3)
{
if(is_user_connected(id) && get_user_flags(id) & VIP_FLAG)
num++
}
}
return num
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1049\\ f0\\ fs16 \n\\ par }
*/
Не могу самостоятельно исправить.
 
В этой теме было размещено решение! Перейти к решению.
Сообщения
499
Реакции
271
Помог
6 раз(а)
Первая ошибка из-за того, что константное значение в условии стоит. Оно хоть как будет равно 0.
Вторая ошибка - в конце функции нет возврата со значением (return PLUGIN_HANDLED).
Третья ошибка - намудрили с табуляцией. Видимо в одном месте пробелами, в другом табом.
 
Статус
В этой теме нельзя размещать новые ответы.

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

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