Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

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

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

amxmodmenu

Simbo
сообщение 4.9.2012, 20:04
Сообщение #1
Стаж: 13 лет

Сообщений: 146
Благодарностей: 3
Полезность: 0

Подскажите как убрать эти глючные пункты меню amxbans, и как вообще редактировать этот плагин, ибо есть пункты которые вообще можно убрать что бы админы не путали ничего.
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя sweet
сообщение 4.9.2012, 20:15
Сообщение #2
Стаж: 15 лет

Сообщений: 1920
Благодарностей: 597
Полезность: 431

menufront.sma - это исходник AmxModMenu.
Плагин AmxBans сам добавляет эти пункты в AmxModMenu.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Simbo
сообщение 4.9.2012, 20:19
Сообщение #3
Стаж: 13 лет

Сообщений: 146
Благодарностей: 3
Полезность: 0

dron34,
И как отключить в банса эту функцию?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя samthugg
сообщение 4.9.2012, 20:22
Сообщение #4


Иконка группы

Стаж: 15 лет

Сообщений: 1333
Благодарностей: 1476
Полезность: 1344

Цитата(Simbo @ 4.9.2012, 20:19) *
dron34,
И как отключить в банса эту функцию?

Все кроме истоии банов отключается настройкой конфига amxbans , ну или же редактированием исходного кода amxbans


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Simbo
сообщение 4.9.2012, 20:31
Сообщение #5
Стаж: 13 лет

Сообщений: 146
Благодарностей: 3
Полезность: 0

samthugg,
Не видел там пункта, влияющего на меню

Код
AddDefaultMenus()
{
    new flags;
    AddMenuLang("KICK_PLAYER", "amx_kickmenu", get_clcmd_flags("amx_kickmenu", flags) ? flags : ADMIN_KICK , "Players Menu")
    AddMenuLang("BAN_PLAYER", "amx_banmenu", get_clcmd_flags("amx_banmenu", flags) ? flags : ADMIN_BAN, "Players Menu")
    AddMenuLang("SLAP_SLAY", "amx_slapmenu", get_clcmd_flags("amx_slapmenu", flags) ? flags : ADMIN_SLAY, "Players Menu")
    AddMenuLang("TEAM_PLAYER", "amx_teammenu", get_clcmd_flags("amx_teammenu", flags) ? flags : ADMIN_LEVEL_A, "Players Menu")
    AddMenuLang("CHANGEL", "amx_mapmenu", get_clcmd_flags("amx_mapmenu", flags) ? flags : ADMIN_MAP, "Maps Menu")
    AddMenuLang("VOTE_MAPS", "amx_votemapmenu", get_clcmd_flags("amx_votemapmenu", flags) ? flags : ADMIN_VOTE, "Maps Menu")
    AddMenuLang("SPECH_STUFF", "amx_speechmenu", get_clcmd_flags("amx_speechmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
    AddMenuLang("CLIENT_COM", "amx_clcmdmenu", get_clcmd_flags("amx_clcmdmenu", flags) ? flags : ADMIN_LEVEL_A, "Players Menu")
    AddMenuLang("SERVER_COM", "amx_cmdmenu", get_clcmd_flags("amx_cmdmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
    AddMenuLang("CVARS_SET", "amx_cvarmenu", get_clcmd_flags("amx_cvarmenu", flags) ? flags : ADMIN_CVAR, "Commands Menu")
    AddMenuLang("CONFIG", "amx_cfgmenu", get_clcmd_flags("amx_cfgmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
    AddMenuLang("LANG_SET", "amx_langmenu", get_clcmd_flags("amx_langmenu", flags) ? flags : ADMIN_CFG, "Multi-Lingual System")
    AddMenuLang("STATS_SET", "amx_statscfgmenu", get_clcmd_flags("amx_statscfgmenu", flags) ? flags : ADMIN_CFG, "Stats Configuration")
    AddMenuLang("PAUSE_PLUG", "amx_pausecfgmenu", get_clcmd_flags("amx_pausecfgmenu", flags) ? flags : ADMIN_CFG, "Pause Plugins")
    AddMenuLang("RES_WEAP", "amx_restmenu", get_clcmd_flags("amx_restmenu", flags) ? flags : ADMIN_CFG, "Restrict Weapons")
    AddMenuLang("TELE_PLAYER", "amx_teleportmenu", get_clcmd_flags("amx_teleportmenu", flags) ? flags : ADMIN_CFG, "Teleport Menu")

Если просто закоментировать один из пунктов меню он исчезнет?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя samthugg
сообщение 4.9.2012, 20:52
Сообщение #6


Иконка группы

Стаж: 15 лет

Сообщений: 1333
Благодарностей: 1476
Полезность: 1344

Цитата(Simbo @ 4.9.2012, 20:31) *
samthugg,
Не видел там пункта, влияющего на меню

Если просто закоментировать один из пунктов меню он исчезнет?

Пункты Amxbans находятся в плагине amxbans , а не стандартном меню

Да. Если убрать - их не будет.


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Simbo
сообщение 4.9.2012, 21:00
Сообщение #7
Стаж: 13 лет

Сообщений: 146
Благодарностей: 3
Полезность: 0

Вот наш исходник, подскажите как закоментировать тут эти 3 пункта.
Скрытый текст
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <sqlx>
#include <time>

#define AUTHOR "Larte Team"
#define PLUGIN_NAME "AMXBans: Main"
#define VERSION "Gm 1.6"
#define DATE "14:25 26.04.2011"

#define PREFIX "!y[!tAMXBans!y]"

#define AMXBANS_VERSION "1.6"

//#define UNBAN_GAME_DEL // раскомментировать для удаления бана при разбане
#define SET_NAMES_UTF8 // закомментировать, если русские причины банов нормально отображались и в ранних версиях

#include "include/amxbans_core.inc"

#include "include/amxbans/global_vars.inl"
#include "include/amxbans/color_chat.inl"
#include "include/amxbans/init_functions.inl"
#include "include/amxbans/check_player.inl"
#include "include/amxbans/check_flag.inl"
#include "include/amxbans/menu_stocks.inl"
#include "include/amxbans/menu_ban.inl"
#include "include/amxbans/menu_disconnected.inl"
#include "include/amxbans/menu_history.inl"
#include "include/amxbans/menu_flag.inl"
#include "include/amxbans/cmd_ban.inl"
#include "include/amxbans/cmd_unban.inl"
#include "include/amxbans/web_handshake.inl"
#include "include/amxbans/reason_checker.inl"

#pragma dynamic 16384

public plugin_init()
{
register_plugin(PLUGIN_NAME, VERSION, AUTHOR)
register_cvar("amxbans_version", VERSION, FCVAR_SERVER | FCVAR_EXTDLL | FCVAR_UNLOGGED| FCVAR_SPONLY)

register_dictionary("amxbans.txt")
register_dictionary("common.txt")
register_dictionary("time.txt")

register_clcmd("amx_banmenu", "cmdBanMenu", ADMIN_BAN, "- displays ban menu")
register_clcmd("amxbans_custombanreason", "setCustomBanReason", ADMIN_BAN, "- configures custom ban message")
register_clcmd("amx_banhistorymenu", "cmdBanhistoryMenu", ADMIN_BAN, "- displays banhistorymenu")
register_clcmd("amx_bandisconnectedmenu", "cmdBanDisconnectedMenu", ADMIN_BAN, "- displays bandisconnectedmenu")
register_clcmd("amx_flaggingmenu","cmdFlaggingMenu", ADMIN_BAN, "- displays flagging menu")

register_srvcmd("amx_sethighbantimes", "setHighBantimes")
register_srvcmd("amx_setlowbantimes", "setLowBantimes")
register_srvcmd("amx_setflagtimes", "setFlagTimes")

register_concmd("amx_reloadreasons", "cmdFetchReasons", ADMIN_CFG)

pcvar_serverip = register_cvar("amxbans_server_address", "")
pcvar_server_nick = register_cvar("amxbans_servernick", "")
pcvar_discon_in_banlist = register_cvar("amxbans_discon_players_saved", "10")
pcvar_complainurl = register_cvar("amxbans_complain_url", "www.yoursite.com")
pcvar_debug = register_cvar("amxbans_debug", "0")
pcvar_add_mapname = register_cvar("amxbans_add_mapname_in_servername", "0")
pcvar_flagged_all = register_cvar("amxbans_flagged_all_server","1")
pcvar_show_in_hlsw = register_cvar("amxbans_show_in_hlsw", "1")
pcvar_show_hud_messages = register_cvar("amxbans_show_hud_messages", "1")
pcvar_higher_ban_time_admin = register_cvar("amxbans_higher_ban_time_admin", "n")
pcvar_admin_mole_access = register_cvar("amxbans_admin_mole_access", "r")
pcvar_show_name_evenif_mole = register_cvar("amxbans_show_name_evenif_mole", "1")
pcvar_custom_statictime = register_cvar("amxbans_custom_statictime", "1440")
pcvar_show_prebanned = register_cvar("amxbans_show_prebanned", "1")
pcvar_show_prebanned_num = register_cvar("amxbans_show_prebanned_num", "2")
pcvar_default_banreason = register_cvar("amxbans_default_ban_reason", "unknown")
pcvar_offset = register_cvar("amxbans_time_offset", "0")
pcvar_snapshot = register_cvar("amxbans_snapshot", "1")
pcvar_bantype = register_cvar("amxbans_bantype", "0")
pcvar_flag = register_cvar("amxbans_check_flag", "1")
pcvar_history = register_cvar("amxbans_history_menu", "1")
pcvar_activity = get_cvar_pointer("amx_show_activity")
pcvar_hostname = get_cvar_pointer("hostname")

register_concmd("amx_ban", "cmdBan", ADMIN_BAN, "<time in mins> <steamID or nickname or #authid or IP> <reason>")
register_concmd("amx_banip", "cmdBan", ADMIN_BAN, "<time in mins> <steamID or nickname or #authid or IP> <reason>")
register_concmd("amx_unban", "cmdUnBan", ADMIN_BAN, "<steamID or IP>")

register_srvcmd("amx_list", "cmdLst", ADMIN_RCON, "sends playerinfos to web")

g_coloredMenus = colored_menus()
g_MyMsgSync = CreateHudSyncObj()

g_banReasons = ArrayCreate(128, 7)
g_banReasons_Bantime = ArrayCreate(1, 7)

g_disconPLname = ArrayCreate(32, 1)
g_disconPLauthid = ArrayCreate(35, 1)
g_disconPLip = ArrayCreate(22, 1)

g_AReplaceInd = ArrayCreate(64, 1)
g_AReplace = ArrayCreate(64, 1)
g_ReplaceInd = ArrayCreate(64, 1)
g_Replace = ArrayCreate(64, 1)

plnum = get_maxplayers()

for(new i = 1; i <= plnum; i++)
{
set_user_state(i, PDATA_DISCONNECTED)
}

new configsDir[64]
get_configsdir(configsDir, 63)

server_cmd("exec %s/amxbans.cfg", configsDir)

color_chat_init()
load_replaces()

return PLUGIN_CONTINUE
}

stock create_forwards()
{
MFHandle[Ban_MotdOpen] = CreateMultiForward("amxbans_ban_motdopen", ET_IGNORE, FP_CELL)
MFHandle[Player_Flagged] = CreateMultiForward("amxbans_player_flagged", ET_IGNORE, FP_CELL, FP_CELL, FP_STRING)
MFHandle[Player_UnFlagged] = CreateMultiForward("amxbans_player_unflagged", ET_IGNORE, FP_CELL)
return PLUGIN_CONTINUE
}

public addMenus()
{
new szKey[128]

if(get_pcvar_num(pcvar_flag))
{
format(szKey, 127, "%L", LANG_SERVER, "ADMMENU_FLAGGING")
AddMenuItem(szKey, "amx_flaggingmenu", ADMIN_BAN, PLUGIN_NAME)
}

if(get_pcvar_num(pcvar_discon_in_banlist))
{
format(szKey, 127, "%L", LANG_SERVER, "ADMMENU_DISCONNECTED")
AddMenuItem(szKey, "amx_bandisconnectedmenu", ADMIN_BAN, PLUGIN_NAME)
}

if(get_pcvar_num(pcvar_history))
{
format(szKey, 127, "%L", LANG_SERVER, "ADMMENU_HISTORY")
AddMenuItem(szKey, "amx_banhistorymenu", ADMIN_BAN, PLUGIN_NAME)
}

return PLUGIN_CONTINUE
}

public amxbans_sql_initialized(Handle:sqlTuple, const dbPrefix[])
{
if(g_SqlX != Empty_Handle)
{
if(get_pcvar_num(pcvar_debug) >= 1)
{
log_amx("[AMXBans Notice] DB Info Tuple from amxbans_core initialized twice! Maybee used command amx_realoadadmins.")
}
return PLUGIN_CONTINUE
}

copy(g_dbPrefix, 31, dbPrefix)

get_user_ip(0, playerData[0][playerIp], 21, 1)

g_SqlX = sqlTuple

if(get_pcvar_num(pcvar_debug) >= 1)
{
log_amx("[AMXBans] Received DB Info Tuple from amxbans_core: %d | %s", sqlTuple, g_dbPrefix)
}

if(g_SqlX == Empty_Handle)
{
log_amx("[AMXBans Error] DB Info Tuple from amxbans_main is empty! Trying to get a valid one.")
new host[64], user[64], pass[64], db[64]

get_cvar_string("amx_sql_host", host, 63)
get_cvar_string("amx_sql_user", user, 63)
get_cvar_string("amx_sql_pass", pass, 63)
get_cvar_string("amx_sql_db", db, 63)

g_SqlX = SQL_MakeDbTuple(host, user, pass, db)

get_cvar_string("amx_sql_prefix", g_dbPrefix, 31)
}

create_forwards()

set_task(0.1, "banmod_online")
set_task(0.25, "load_reasons")

if(!get_pcvar_num(pcvar_offset))
{
set_task(0.5, "get_offset")
}

return set_task(2.0, "addMenus")
}

public get_higher_ban_time_admin_flag()
{
new flags[24]
get_pcvar_string(pcvar_higher_ban_time_admin, flags, 23)

return read_flags(flags)
}

public get_admin_mole_access_flag()
{
new flags[24]
get_pcvar_string(pcvar_admin_mole_access, flags, 23)

return read_flags(flags)
}

public delayed_kick(id)
{
id -= 200

if(is_user_disconnected(id))
{
return PLUGIN_HANDLED
}

if(get_pcvar_num(pcvar_debug) >= 1)
{
log_amx("[AMXBANS DEBUG] Delayed Kick ID: <%d>", id)
}

add_user_state(id, PDATA_KICKED)

return server_cmd("kick #%d %L", get_user_userid(id), id, "KICK_MESSAGE")
}


stock SQL_Error(Handle:query, const error[], errornum, failstate)
{
new qstring[1024]
SQL_GetQueryString(query, qstring, 1023)

if(failstate == TQUERY_CONNECT_FAILED)
{
log_amx("%L", LANG_SERVER, "TCONNECTION_FAILED")
}
else if (failstate == TQUERY_QUERY_FAILED)
{
log_amx("%L", LANG_SERVER, "TQUERY_FAILED")
}
log_amx("%L", LANG_SERVER, "TQUERY_MSG", error, errornum)
log_amx("%L", LANG_SERVER, "TQUERY_STATEMENT", qstring)

return SQL_FreeHandle(query)
}

public client_authorized(id)
{
if(id > 201)
{
id -= 201
}
else
{
get_user_name(id, playerData[id][playerName], 31)
get_user_authid(id, playerData[id][playerSteamid], 33)
get_user_ip(id, playerData[id][playerIp], 21, 1)
}

if(g_SqlX == Empty_Handle)
{
return set_task(1.0, "client_authorized", id + 201)
}

set_user_state(id, PDATA_CONNECTING)

if(is_user_admin(id))
{
add_user_state(id, PDATA_ADMIN)
if(get_user_flags(id) & ADMIN_IMMUNITY)
{
add_user_state(id, PDATA_IMMUNITY)
}
}

return set_task(0.25, "check_player", id + 203)
}

public client_putinserver(id)
{
if(id > 202)
{
id -= 202
}
else
{
remove_user_state(id, PDATA_CONNECTING)

if(is_user_hltv(id))
{
add_user_state(id, PDATA_HLTV)
}
if(is_user_bot(id))
{
add_user_state(id, PDATA_BOT)
}

add_user_state(id, PDATA_CONNECTED)
}

if(g_SqlX == Empty_Handle)
{
return set_task(1.0, "client_putinserver", id + 202)
}

if(get_user_state(id, PDATA_IMMUNITY))
{
return PLUGIN_HANDLED
}

check_player_post(id)
disconnect_remove_player(id)

return PLUGIN_CONTINUE
}

public client_disconnect(id)
{
if(!get_user_state(id, PDATA_KICKED) && !get_user_state(id, PDATA_IMMUNITY))
{
disconnected_add_player(id)
}

remove_task(id + 200)
remove_task(id + 201)
remove_task(id + 202)
remove_task(id + 203)
remove_task(id + 204)

return set_user_state(id, PDATA_DISCONNECTED)
}

public client_infochanged(id)
{
if(!get_user_state(id, PDATA_CONNECTED))
{
return PLUGIN_CONTINUE
}

get_user_info(id, "name", playerData[id][playerName], 31)

return PLUGIN_CONTINUE
}

public setHighBantimes()
{
new arg[32]
new argc = read_argc() - 1
g_highbantimesnum = argc

if(argc < 1 || argc > 14)
{
log_amx("[AMXBANS] You have more than 14 or less than 1 bantimes set in amx_sethighbantimes")
log_amx("[AMXBANS] Loading default bantimes")
return loadDefaultBantimes(1)
}

new i = 0
new num[32], flag[32]
while(i < argc)
{
read_argv(i + 1, arg, 31)
parse(arg, num, 31, flag, 31)

if(equali(flag, "m"))
{
g_HighBanMenuValues[i] = str_to_num(num)
}
else if(equali(flag, "h"))
{
g_HighBanMenuValues[i] = (str_to_num(num) * 60)
}
else if(equali(flag, "d"))
{
g_HighBanMenuValues[i] = (str_to_num(num) * 1440)
}
else if(equali(flag, "w"))
{
g_HighBanMenuValues[i] = (str_to_num(num) * 10080)
}
i++
}

return PLUGIN_HANDLED
}

public setLowBantimes()
{
new arg[32]
new argc = read_argc() - 1
g_lowbantimesnum = argc

if(argc < 1 || argc > 14)
{
log_amx("[AMXBANS] You have more than 14 or less than 1 bantimes set in amx_setlowbantimes")
log_amx("[AMXBANS] Loading default bantimes")
return loadDefaultBantimes(2)
}

new i = 0
new num[32], flag[32]
while(i < argc)
{
read_argv(i + 1, arg, 31)
parse(arg, num, 31, flag, 31)

if(equali(flag, "m"))
{
g_LowBanMenuValues[i] = str_to_num(num)
}
else if(equali(flag, "h"))
{
g_LowBanMenuValues[i] = (str_to_num(num) * 60)
}
else if(equali(flag, "d"))
{
g_LowBanMenuValues[i] = (str_to_num(num) * 1440)
}
else if(equali(flag, "w"))
{
g_LowBanMenuValues[i] = (str_to_num(num) * 10080)
}
i++
}

return PLUGIN_HANDLED
}

public plugin_end()
{
ArrayDestroy(g_banReasons)
ArrayDestroy(g_banReasons_Bantime)

ArrayDestroy(g_disconPLname)
ArrayDestroy(g_disconPLauthid)
ArrayDestroy(g_disconPLip)

ArrayDestroy(g_AReplaceInd)
ArrayDestroy(g_AReplace)

ArrayDestroy(g_ReplaceInd)
ArrayDestroy(g_Replace)

return PLUGIN_CONTINUE
}

public setFlagTimes()
{
new arg[32]
new argc = read_argc() - 1
g_flagtimesnum = argc
if(argc < 1 || argc > 14)
{
log_amx("[AMXBANS] You have more than 14 or less than 1 flagtimes set in amx_setflagtimes")
log_amx("[AMXBANS] Loading default flagtimes")
return loadDefaultBantimes(3)
}

new i = 0
new num[32], flag[32]
while(i < argc)
{
read_argv(i + 1, arg, 31)
parse(arg, num, 31, flag, 31)

if(equali(flag, "m"))
{
g_FlagMenuValues[i] = str_to_num(num)
}
else if(equali(flag, "h"))
{
g_FlagMenuValues[i] = (str_to_num(num) * 60)
}
else if(equali(flag, "d"))
{
g_FlagMenuValues[i] = (str_to_num(num) * 1440)
}
else if(equali(flag, "w"))
{
g_FlagMenuValues[i] = (str_to_num(num) * 10080)
}
i++
}

return PLUGIN_HANDLED
}

stock loadDefaultBantimes(num)
{
if(num == 1 || num == 0)
{
server_cmd("amx_sethighbantimes 5 60 240 600 6000 0")
}
if(num == 2 || num == 0)
{
server_cmd("amx_setlowbantimes 5 30 60 480 600 1440")
}
if(num == 3 || num == 0)
{
server_cmd("amx_setflagtimes 60 240 600 1440 10080 40320 90720 0")
}

return PLUGIN_CONTINUE
}

stock mysql_escape_string(dest[], len)
{
replace_all(dest, len, "\\", "\\\\")
replace_all(dest, len, "\0", "\\0")
replace_all(dest, len, "\n", "\\n")
replace_all(dest, len, "\r", "\\r")
replace_all(dest, len, "\x1a", "\Z")
replace_all(dest, len, "'", "\'")
replace_all(dest, len, "^"", "\^"")

return 1
}

stock mysql_get_username_safe(id, dest[], len)
{
copy(dest, len, playerData[id][playerName])
return mysql_escape_string(dest, len)
}

stock mysql_get_servername_safe(dest[], len)
{
get_pcvar_string(pcvar_hostname, dest, len)
return mysql_escape_string(dest, len)
}


Код
public addMenus()
{
    new szKey[128]
    
    if(get_pcvar_num(pcvar_flag))
    {
        format(szKey, 127, "%L", LANG_SERVER, "ADMMENU_FLAGGING")
        AddMenuItem(szKey, "amx_flaggingmenu", ADMIN_BAN, PLUGIN_NAME)
    }
    
    if(get_pcvar_num(pcvar_discon_in_banlist))
    {
        format(szKey, 127, "%L", LANG_SERVER, "ADMMENU_DISCONNECTED")
        AddMenuItem(szKey, "amx_bandisconnectedmenu", ADMIN_BAN, PLUGIN_NAME)
    }
    
    if(get_pcvar_num(pcvar_history))
    {
        format(szKey, 127, "%L", LANG_SERVER, "ADMMENU_HISTORY")
        AddMenuItem(szKey, "amx_banhistorymenu", ADMIN_BAN, PLUGIN_NAME)
    }

Буду брагодарен за исходник без добавления этих трёх пунктов.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Simbo
сообщение 5.9.2012, 16:16
Сообщение #8
Стаж: 13 лет

Сообщений: 146
Благодарностей: 3
Полезность: 0

Amxbans Убрал, а вот пункты Plagin commands и Plagin cvars не могу найти ни в бане на в самой менюшке, какой плагин добовляет их?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя knix
сообщение 5.9.2012, 16:57
Сообщение #9


Стаж: 14 лет

Сообщений: 245
Благодарностей: 57
Полезность: 37

Цитата(Simbo @ 5.9.2012, 17:16) *
Amxbans Убрал, а вот пункты Plagin commands и Plagin cvars не могу найти ни в бане на в самой менюшке, какой плагин добовляет их?

это в menufront.sma нужно уберать) и после подправить menufront.txt
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Simbo
сообщение 5.9.2012, 17:07
Сообщение #10
Стаж: 13 лет

Сообщений: 146
Благодарностей: 3
Полезность: 0

в txt нету этих 2 пунктов,
Скрытый текст
KICK_PLAYER = Кикнуть
BAN_PLAYER = Забанить
SLAP_SLAY = Ударить/Убить
TEAM_PLAYER = \yКоманда игрока
CHANGEL = Смена карты
VOTE_MAPS = Голосование за карту
SPECH_STUFF = Голосовые сообщения
CLIENT_COM = Команды для клиента
SERVER_COM = Серверные команды
CVARS_SET = Значения переменных
CONFIG = Конфигурации
LANG_SET = Настройки языка
STATS_SET = Настройки статистики
PAUSE_PLUG = Управление плагинами
RES_WEAP = Запрет оружия
TELE_PLAYER = Телепорт

в sma тоже не могу найти, тыкните пальчиком где строчки последних 2 пунктов меню...
Скрытый текст
#include <amxmodx>
#include <amxmisc>

#define MAXMENUS 128
#define STRINGSIZE 32
#define STRINGLENGTH STRINGSIZE - 1
#define MENUITEMSPERPAGE 8
//#define MENUS_NUMBER 16

new g_menuPosition[33]
new g_menusNumber = 0
new g_menuBody[MAXMENUS][STRINGSIZE]
new bool:g_menuBodyPhrase[MAXMENUS]
new g_menuCmd[MAXMENUS][STRINGSIZE]
new g_menuAccess[MAXMENUS]
new g_menuPlugin[MAXMENUS][STRINGSIZE]

new g_coloredMenus

new g_clientMenuPosition[33]
new g_clientMenusNumber = 0
new g_clientMenuBody[MAXMENUS][STRINGSIZE]
new bool:g_clientMenuBodyPhrase[MAXMENUS]
new g_clientMenuCmd[MAXMENUS][STRINGSIZE]
new g_clientMenuAccess[MAXMENUS]
new g_clientMenuPlugin[MAXMENUS][STRINGSIZE]

// menuBody: Text that will be shown for this item in menu
// menuCmd: Command that should be executed to start menu
// menuAccess: Access required for menu
// menuPlugin: The exact case-insensitive name of plugin holding the menu command
public AddMenu(const menuBody[], const menuCmd[], const menuAccess, const menuPlugin[])
{
if (g_menusNumber + 1 == MAXMENUS)
{
log_amx("Error: Plugin ^"%s^" tried to add a menu item to Menu Front-End plugin with maximum menu items reached!", menuPlugin)
return
}

copy(g_menuBody[g_menusNumber], STRINGLENGTH, menuBody)
g_menuBodyPhrase[g_menusNumber] = false

copy(g_menuCmd[g_menusNumber], STRINGLENGTH, menuCmd)
g_menuAccess[g_menusNumber] = menuAccess

copy(g_menuPlugin[g_menusNumber], STRINGLENGTH, menuPlugin)

g_menusNumber++
server_print("Menu item %d added to Menus Front-End: ^"%s^" from plugin ^"%s^"", g_menusNumber, menuBody, menuPlugin)
}

public AddMenuLang(const menuBody[], const menuCmd[], const menuAccess, const menuPlugin[])
{
if (g_menusNumber + 1 == MAXMENUS)
{
log_amx("Error: Plugin ^"%s^" tried to add a menu item to Menu Front-End plugin with maximum menu items reached!", menuPlugin)
return
}

copy(g_menuBody[g_menusNumber], STRINGLENGTH, menuBody)
g_menuBodyPhrase[g_menusNumber] = true

copy(g_menuCmd[g_menusNumber], STRINGLENGTH, menuCmd)
g_menuAccess[g_menusNumber] = menuAccess

copy(g_menuPlugin[g_menusNumber], STRINGLENGTH, menuPlugin)
g_menusNumber++

//server_print("Menu item %d added to Menus Front-End: ^"%s^" (LANG) from plugin ^"%s^"", g_menusNumber, menuBody, menuPlugin)
}

public AddClientMenu(const menuBody[], const menuCmd[], const menuAccess, const menuPlugin[])
{
if (g_clientMenusNumber + 1 == MAXMENUS)
{
log_amx("Error: Plugin ^"%s^" tried to add a menu item to Menu Front-End plugin with maximum menu items reached!", menuPlugin)
return
}

copy(g_clientMenuBody[g_clientMenusNumber], STRINGLENGTH, menuBody)
g_clientMenuBodyPhrase[g_clientMenusNumber] = false

copy(g_clientMenuCmd[g_clientMenusNumber], STRINGLENGTH, menuCmd)
g_clientMenuAccess[g_clientMenusNumber] = menuAccess

copy(g_clientMenuPlugin[g_clientMenusNumber], STRINGLENGTH, menuPlugin)

g_clientMenusNumber++
server_print("Client menu item %d added to Client Menus Front-End: ^"%s^" from plugin ^"%s^"", g_clientMenusNumber, menuBody, menuPlugin)
}

AddDefaultMenus()
{
new flags;
AddMenuLang("KICK_PLAYER", "amx_kickmenu", get_clcmd_flags("amx_kickmenu", flags) ? flags : ADMIN_KICK , "Players Menu")
AddMenuLang("BAN_PLAYER", "amx_banmenu", get_clcmd_flags("amx_banmenu", flags) ? flags : ADMIN_BAN, "Players Menu")
AddMenuLang("SLAP_SLAY", "amx_slapmenu", get_clcmd_flags("amx_slapmenu", flags) ? flags : ADMIN_SLAY, "Players Menu")
AddMenuLang("TEAM_PLAYER", "amx_teammenu", get_clcmd_flags("amx_teammenu", flags) ? flags : ADMIN_LEVEL_A, "Players Menu")
AddMenuLang("CHANGEL", "amx_mapmenu", get_clcmd_flags("amx_mapmenu", flags) ? flags : ADMIN_MAP, "Maps Menu")
AddMenuLang("VOTE_MAPS", "amx_votemapmenu", get_clcmd_flags("amx_votemapmenu", flags) ? flags : ADMIN_VOTE, "Maps Menu")
//AddMenuLang("SPECH_STUFF", "amx_speechmenu", get_clcmd_flags("amx_speechmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
//AddMenuLang("CLIENT_COM", "amx_clcmdmenu", get_clcmd_flags("amx_clcmdmenu", flags) ? flags : ADMIN_LEVEL_A, "Players Menu")
//AddMenuLang("SERVER_COM", "amx_cmdmenu", get_clcmd_flags("amx_cmdmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
//AddMenuLang("CVARS_SET", "amx_cvarmenu", get_clcmd_flags("amx_cvarmenu", flags) ? flags : ADMIN_CVAR, "Commands Menu")
//AddMenuLang("CONFIG", "amx_cfgmenu", get_clcmd_flags("amx_cfgmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
//AddMenuLang("LANG_SET", "amx_langmenu", get_clcmd_flags("amx_langmenu", flags) ? flags : ADMIN_CFG, "Multi-Lingual System")
//AddMenuLang("STATS_SET", "amx_statscfgmenu", get_clcmd_flags("amx_statscfgmenu", flags) ? flags : ADMIN_CFG, "Stats Configuration")
//AddMenuLang("PAUSE_PLUG", "amx_pausecfgmenu", get_clcmd_flags("amx_pausecfgmenu", flags) ? flags : ADMIN_CFG, "Pause Plugins")
AddMenuLang("RES_WEAP", "amx_restmenu", get_clcmd_flags("amx_restmenu", flags) ? flags : ADMIN_CFG, "Restrict Weapons")
AddMenuLang("TELE_PLAYER", "amx_teleportmenu", get_clcmd_flags("amx_teleportmenu", flags) ? flags : ADMIN_CFG, "Teleport Menu")
}
stock bool:get_clcmd_flags(const search_command[], &flags)
{
new count = get_clcmdsnum(-1);
static cmd[128];
static info[1];
new _flags;

for (new i = 0; i < count; i++)
{
get_clcmd(i, cmd, charsmax(cmd), _flags, info, charsmax(info), -1);

if (strcmp(cmd, search_command) == 0)
{
flags = _flags;
return true;
}
}

return false;
}
public actionMenu(id, key)
{
switch (key)
{
case 8: displayMenu(id, ++g_menuPosition[id])
case 9: displayMenu(id, --g_menuPosition[id])
default: client_cmd(id, "%s", g_menuCmd[g_menuPosition[id] * 8 + key])
}

return PLUGIN_HANDLED
}

public clientActionMenu(id, key)
{
switch (key)
{
case 8: clientDisplayMenu(id, ++g_clientMenuPosition[id])
case 9: clientDisplayMenu(id, --g_clientMenuPosition[id])
default: client_cmd(id, "%s", g_clientMenuCmd[g_clientMenuPosition[id] * 8 + key])
}

return PLUGIN_HANDLED
}

displayMenu(id, pos)
{
if (pos < 0)
return

new menuBody[512]
new b = 0
new start = pos * MENUITEMSPERPAGE

if (start >= g_menusNumber) // MENUS_NUMBER
start = pos = g_menuPosition[id] = 0

new len = format(menuBody, 511,

g_coloredMenus ? "\rAdmin menu \w[\rот Simbo\w]\R%d/%d^n\w^n" : "\rAdmin menu \w[\rот Simbo\w] %d/%d^n^n" , pos + 1, (g_menusNumber / MENUITEMSPERPAGE) + (((g_menusNumber % MENUITEMSPERPAGE) > 0) ? 1 : 0))

new end = start + MENUITEMSPERPAGE
new keys = MENU_KEY_0

if (end > g_menusNumber) // MENUS_NUMBER
end = g_menusNumber // MENUS_NUMBER

for (new a = start; a < end; ++a)
{
if ( access(id, g_menuAccess[a]) &&
((is_plugin_loaded(g_menuPlugin[a]) != -1) || // search plugins for registered name
(is_plugin_loaded(g_menuPlugin[a], true) != -1))) // search plugins for filename
{
keys |= (1<<b)

if (g_menuBodyPhrase[a])
len += format(menuBody[len], 511-len, "%d. %L^n", ++b, id, g_menuBody[a])
else
len += format(menuBody[len], 511-len, "%d. %s^n", ++b, g_menuBody[a])
} else {
++b

if (g_coloredMenus)
{
if (g_menuBodyPhrase[a])
len += format(menuBody[len], 511-len, "\d%d. %L^n\w", b, id, g_menuBody[a])
else
len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, g_menuBody[a])
} else {
if (g_menuBodyPhrase[a])
len += format(menuBody[len], 511-len, "#. %L^n", id, g_menuBody[a])
else
len += format(menuBody[len], 511-len, "#. %s^n", g_menuBody[a])
}
}
}

if (end != g_menusNumber) // MENUS_NUMBER
{
format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
} else {
format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")
}

show_menu(id, keys, menuBody)
}

clientDisplayMenu(id, pos)
{
if (pos < 0)
return

new menuBody[512]
new b = 0
new start = pos * MENUITEMSPERPAGE

if (start >= g_clientMenusNumber) // MENUS_NUMBER
start = pos = g_clientMenuPosition[id] = 0

new len = format(menuBody, 511, g_coloredMenus ? "\rAdmin menu \w[\rот Simbo\w]\R%d/%d^n\w^n" : "\rAdmin menu \w[\rот Simbo\w] %d/%d^n^n" , pos + 1, (g_clientMenusNumber / MENUITEMSPERPAGE) + (((g_clientMenusNumber % MENUITEMSPERPAGE) > 0) ? 1 : 0))

new end = start + MENUITEMSPERPAGE
new keys = MENU_KEY_0

if (end > g_clientMenusNumber) // MENUS_NUMBER
end = g_clientMenusNumber // MENUS_NUMBER

for (new a = start; a < end; ++a)
{
if ( access(id, g_clientMenuAccess[a]) &&
((is_plugin_loaded(g_clientMenuPlugin[a]) != -1) || // search plugins for registered name
(is_plugin_loaded(g_clientMenuPlugin[a], true) != -1))) // search plugins for file name
{
keys |= (1<<b)

if (g_clientMenuBodyPhrase[a])
len += format(menuBody[len], 511-len, "%d. %L^n", ++b, id, g_clientMenuBody[a])
else
len += format(menuBody[len], 511-len, "%d. %s^n", ++b, g_clientMenuBody[a])
} else {
++b

if (g_coloredMenus)
{
if (g_clientMenuBodyPhrase[a])
len += format(menuBody[len], 511-len, "\d%d. %L^n\w", b, id, g_clientMenuBody[a])
else
len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, g_clientMenuBody[a])
} else {
if (g_clientMenuBodyPhrase[a])
len += format(menuBody[len], 511-len, "#. %L^n", id, g_clientMenuBody[a])
else
len += format(menuBody[len], 511-len, "#. %s^n", g_clientMenuBody[a])
}
}
}

if (end != g_clientMenusNumber) // MENUS_NUMBER
{
format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
}
else {
format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")
}

show_menu(id, keys, menuBody)
}

public cmdMenu(id, level, cid)
{
if (cmd_access(id, level, cid, 1))
displayMenu(id, g_menuPosition[id] = 0)

return PLUGIN_HANDLED
}
public clientCmdMenu(id, level, cid)
{
if (cmd_access(id, level, cid, 1))
clientDisplayMenu(id, g_clientMenuPosition[id] = 0)

return PLUGIN_HANDLED
}

public addmenuitem_cmd(id, level, cid)
{
if (!cmd_access(id, level, cid, 5))
return PLUGIN_HANDLED

// AddMenu(const menuBody[], const menuCmd[], const menuAccess, const menuPlugin[])
new menuBody[STRINGSIZE], menuCmd[STRINGSIZE], flags[STRINGSIZE], menuAccess = 0, menuPlugin[STRINGSIZE]
read_argv(1, menuBody, STRINGLENGTH)
read_argv(2, menuCmd, STRINGLENGTH)
read_argv(3, flags, STRINGLENGTH)
menuAccess = read_flags(flags)
read_argv(4, menuPlugin, STRINGLENGTH)

AddMenu(menuBody, menuCmd, menuAccess, menuPlugin)

return PLUGIN_HANDLED
}

public addclientmenuitem_cmd(id, level, cid)
{
if (!cmd_access(id, level, cid, 5))
return PLUGIN_HANDLED

// AddMenu(const menuBody[], const menuCmd[], const menuAccess, const menuPlugin[])
new menuBody[STRINGSIZE], menuCmd[STRINGSIZE], flags[STRINGSIZE], menuAccess = 0, menuPlugin[STRINGSIZE]
read_argv(1, menuBody, STRINGLENGTH)
read_argv(2, menuCmd, STRINGLENGTH)
read_argv(3, flags, STRINGLENGTH)
menuAccess = read_flags(flags)
read_argv(4, menuPlugin, STRINGLENGTH)

AddClientMenu(menuBody, menuCmd, menuAccess, menuPlugin)

return PLUGIN_HANDLED
}

public plugin_init()
{
register_plugin("Menus Front-End", AMXX_VERSION_STR, "AMXX Dev Team")
register_dictionary("menufront.txt")
register_dictionary("common.txt")

register_menucmd(register_menuid("AMX Mod X Menu"), 1023, "actionMenu")
register_menucmd(register_menuid("AMX Mod X Client Menu"), 1023, "clientActionMenu")
register_clcmd("amxmodmenu", "cmdMenu", ADMIN_MENU, "- displays menus")
register_clcmd("amx_menu", "clientCmdMenu", 0, "- displays menus available to client")

register_srvcmd("amx_addmenuitem", "addmenuitem_cmd", 0, "<menu text> <menu command> <access flags> <plugin name | plugin filename> - Add a menu item to Menus Front-End")
register_srvcmd("amx_addclientmenuitem", "addclientmenuitem_cmd", 0, "<menu text> <menu command> <access flags> <plugin name | plugin filename> - Add a menu item to Client Menus Front-End")

g_coloredMenus = colored_menus()


}
public plugin_cfg()
{
AddDefaultMenus()

new configs[128]
get_configsdir(configs, 127)
server_cmd("exec %s/custommenuitems.cfg", configs)
}


Отредактировал: Simbo, - 5.9.2012, 17:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Rejiser
сообщение 6.9.2012, 1:44
Сообщение #11


Стаж: 15 лет

Сообщений: 2261
Благодарностей: 1068
Полезность: 870

Цитата(Simbo @ 5.9.2012, 17:16) *
Amxbans Убрал, а вот пункты Plagin commands и Plagin cvars не могу найти ни в бане на в самой менюшке, какой плагин добовляет их?

pluginmenu.amxx
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Simbo
сообщение 6.9.2012, 18:06
Сообщение #12
Стаж: 13 лет

Сообщений: 146
Благодарностей: 3
Полезность: 0

Всем спасибо за помощь, убрал всё лишнее, но при добавление amx_gagmenu оно не активно, помогите решить проблему.
Скрытый текст
#include <amxmodx>
#include <amxmisc>

#define MAXMENUS 128
#define STRINGSIZE 32
#define STRINGLENGTH STRINGSIZE - 1
#define MENUITEMSPERPAGE 8
//#define MENUS_NUMBER 16

new g_menuPosition[33]
new g_menusNumber = 0
new g_menuBody[MAXMENUS][STRINGSIZE]
new bool:g_menuBodyPhrase[MAXMENUS]
new g_menuCmd[MAXMENUS][STRINGSIZE]
new g_menuAccess[MAXMENUS]
new g_menuPlugin[MAXMENUS][STRINGSIZE]

new g_coloredMenus

new g_clientMenuPosition[33]
new g_clientMenusNumber = 0
new g_clientMenuBody[MAXMENUS][STRINGSIZE]
new bool:g_clientMenuBodyPhrase[MAXMENUS]
new g_clientMenuCmd[MAXMENUS][STRINGSIZE]
new g_clientMenuAccess[MAXMENUS]
new g_clientMenuPlugin[MAXMENUS][STRINGSIZE]

// menuBody: Text that will be shown for this item in menu
// menuCmd: Command that should be executed to start menu
// menuAccess: Access required for menu
// menuPlugin: The exact case-insensitive name of plugin holding the menu command
public AddMenu(const menuBody[], const menuCmd[], const menuAccess, const menuPlugin[])
{
if (g_menusNumber + 1 == MAXMENUS)
{
log_amx("Error: Plugin ^"%s^" tried to add a menu item to Menu Front-End plugin with maximum menu items reached!", menuPlugin)
return
}

copy(g_menuBody[g_menusNumber], STRINGLENGTH, menuBody)
g_menuBodyPhrase[g_menusNumber] = false

copy(g_menuCmd[g_menusNumber], STRINGLENGTH, menuCmd)
g_menuAccess[g_menusNumber] = menuAccess

copy(g_menuPlugin[g_menusNumber], STRINGLENGTH, menuPlugin)

g_menusNumber++
server_print("Menu item %d added to Menus Front-End: ^"%s^" from plugin ^"%s^"", g_menusNumber, menuBody, menuPlugin)
}

public AddMenuLang(const menuBody[], const menuCmd[], const menuAccess, const menuPlugin[])
{
if (g_menusNumber + 1 == MAXMENUS)
{
log_amx("Error: Plugin ^"%s^" tried to add a menu item to Menu Front-End plugin with maximum menu items reached!", menuPlugin)
return
}

copy(g_menuBody[g_menusNumber], STRINGLENGTH, menuBody)
g_menuBodyPhrase[g_menusNumber] = true

copy(g_menuCmd[g_menusNumber], STRINGLENGTH, menuCmd)
g_menuAccess[g_menusNumber] = menuAccess

copy(g_menuPlugin[g_menusNumber], STRINGLENGTH, menuPlugin)
g_menusNumber++

//server_print("Menu item %d added to Menus Front-End: ^"%s^" (LANG) from plugin ^"%s^"", g_menusNumber, menuBody, menuPlugin)
}

public AddClientMenu(const menuBody[], const menuCmd[], const menuAccess, const menuPlugin[])
{
if (g_clientMenusNumber + 1 == MAXMENUS)
{
log_amx("Error: Plugin ^"%s^" tried to add a menu item to Menu Front-End plugin with maximum menu items reached!", menuPlugin)
return
}

copy(g_clientMenuBody[g_clientMenusNumber], STRINGLENGTH, menuBody)
g_clientMenuBodyPhrase[g_clientMenusNumber] = false

copy(g_clientMenuCmd[g_clientMenusNumber], STRINGLENGTH, menuCmd)
g_clientMenuAccess[g_clientMenusNumber] = menuAccess

copy(g_clientMenuPlugin[g_clientMenusNumber], STRINGLENGTH, menuPlugin)

g_clientMenusNumber++
server_print("Client menu item %d added to Client Menus Front-End: ^"%s^" from plugin ^"%s^"", g_clientMenusNumber, menuBody, menuPlugin)
}

AddDefaultMenus()
{
new flags;
AddMenuLang("KICK_PLAYER", "amx_kickmenu", get_clcmd_flags("amx_kickmenu", flags) ? flags : ADMIN_KICK , "Players Menu")
AddMenuLang("BAN_PLAYER", "amx_banmenu", get_clcmd_flags("amx_banmenu", flags) ? flags : ADMIN_BAN, "Players Menu")
AddMenuLang("SLAP_SLAY", "amx_slapmenu", get_clcmd_flags("amx_slapmenu", flags) ? flags : ADMIN_SLAY, "Players Menu")
AddMenuLang("TEAM_PLAYER", "amx_teammenu", get_clcmd_flags("amx_teammenu", flags) ? flags : ADMIN_LEVEL_A, "Players Menu")
AddMenuLang("CHANGEL", "amx_mapmenu", get_clcmd_flags("amx_mapmenu", flags) ? flags : ADMIN_MAP, "Maps Menu")
AddMenuLang("VOTE_MAPS", "amx_votemapmenu", get_clcmd_flags("amx_votemapmenu", flags) ? flags : ADMIN_VOTE, "Maps Menu")
//AddMenuLang("SPECH_STUFF", "amx_speechmenu", get_clcmd_flags("amx_speechmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
//AddMenuLang("CLIENT_COM", "amx_clcmdmenu", get_clcmd_flags("amx_clcmdmenu", flags) ? flags : ADMIN_LEVEL_A, "Players Menu")
//AddMenuLang("SERVER_COM", "amx_cmdmenu", get_clcmd_flags("amx_cmdmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
//AddMenuLang("CVARS_SET", "amx_cvarmenu", get_clcmd_flags("amx_cvarmenu", flags) ? flags : ADMIN_CVAR, "Commands Menu")
//AddMenuLang("CONFIG", "amx_cfgmenu", get_clcmd_flags("amx_cfgmenu", flags) ? flags : ADMIN_MENU, "Commands Menu")
//AddMenuLang("LANG_SET", "amx_langmenu", get_clcmd_flags("amx_langmenu", flags) ? flags : ADMIN_CFG, "Multi-Lingual System")
//AddMenuLang("STATS_SET", "amx_statscfgmenu", get_clcmd_flags("amx_statscfgmenu", flags) ? flags : ADMIN_CFG, "Stats Configuration")
AddMenuLang("TELE_PLAYER", "amx_gagmenu", get_clcmd_flags("amx_gagmenu", flags) ? flags : ADMIN_VOTE, "GagMenu")
AddMenuLang("RES_WEAP", "weaponmenu", get_clcmd_flags("weaponmenu", flags) ? flags : ADMIN_BAN, "Weapon Menu")

}
stock bool:get_clcmd_flags(const search_command[], &flags)
{
new count = get_clcmdsnum(-1);
static cmd[128];
static info[1];
new _flags;

for (new i = 0; i < count; i++)
{
get_clcmd(i, cmd, charsmax(cmd), _flags, info, charsmax(info), -1);

if (strcmp(cmd, search_command) == 0)
{
flags = _flags;
return true;
}
}

return false;
}
public actionMenu(id, key)
{
switch (key)
{
case 8: displayMenu(id, ++g_menuPosition[id])
case 9: displayMenu(id, --g_menuPosition[id])
default: client_cmd(id, "%s", g_menuCmd[g_menuPosition[id] * 8 + key])
}

return PLUGIN_HANDLED
}

public clientActionMenu(id, key)
{
switch (key)
{
case 8: clientDisplayMenu(id, ++g_clientMenuPosition[id])
case 9: clientDisplayMenu(id, --g_clientMenuPosition[id])
default: client_cmd(id, "%s", g_clientMenuCmd[g_clientMenuPosition[id] * 8 + key])
}

return PLUGIN_HANDLED
}

displayMenu(id, pos)
{
if (pos < 0)
return

new menuBody[512]
new b = 0
new start = pos * MENUITEMSPERPAGE

if (start >= g_menusNumber) // MENUS_NUMBER
start = pos = g_menuPosition[id] = 0

new len = format(menuBody, 511,

g_coloredMenus ? "\yAMX Mod X Menu\R%d/%d^n\w^n" : "AMX Mod X Menu %d/%d^n^n" , pos + 1, (g_menusNumber / MENUITEMSPERPAGE) + (((g_menusNumber % MENUITEMSPERPAGE) > 0) ? 1 : 0))

new end = start + MENUITEMSPERPAGE
new keys = MENU_KEY_0

if (end > g_menusNumber) // MENUS_NUMBER
end = g_menusNumber // MENUS_NUMBER

for (new a = start; a < end; ++a)
{
if ( access(id, g_menuAccess[a]) &&
((is_plugin_loaded(g_menuPlugin[a]) != -1) || // search plugins for registered name
(is_plugin_loaded(g_menuPlugin[a], true) != -1))) // search plugins for filename
{
keys |= (1<<b)

if (g_menuBodyPhrase[a])
len += format(menuBody[len], 511-len, "%d. %L^n", ++b, id, g_menuBody[a])
else
len += format(menuBody[len], 511-len, "%d. %s^n", ++b, g_menuBody[a])
} else {
++b

if (g_coloredMenus)
{
if (g_menuBodyPhrase[a])
len += format(menuBody[len], 511-len, "\d%d. %L^n\w", b, id, g_menuBody[a])
else
len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, g_menuBody[a])
} else {
if (g_menuBodyPhrase[a])
len += format(menuBody[len], 511-len, "#. %L^n", id, g_menuBody[a])
else
len += format(menuBody[len], 511-len, "#. %s^n", g_menuBody[a])
}
}
}

if (end != g_menusNumber) // MENUS_NUMBER
{
format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
} else {
format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")
}

show_menu(id, keys, menuBody)
}

clientDisplayMenu(id, pos)
{
if (pos < 0)
return

new menuBody[512]
new b = 0
new start = pos * MENUITEMSPERPAGE

if (start >= g_clientMenusNumber) // MENUS_NUMBER
start = pos = g_clientMenuPosition[id] = 0

new len = format(menuBody, 511, g_coloredMenus ? "\yAMX Mod X Client Menu\R%d/%d^n\w^n" : "AMX Mod X Client Menu %d/%d^n^n" , pos + 1, (g_clientMenusNumber / MENUITEMSPERPAGE) + (((g_clientMenusNumber % MENUITEMSPERPAGE) > 0) ? 1 : 0))

new end = start + MENUITEMSPERPAGE
new keys = MENU_KEY_0

if (end > g_clientMenusNumber) // MENUS_NUMBER
end = g_clientMenusNumber // MENUS_NUMBER

for (new a = start; a < end; ++a)
{
if ( access(id, g_clientMenuAccess[a]) &&
((is_plugin_loaded(g_clientMenuPlugin[a]) != -1) || // search plugins for registered name
(is_plugin_loaded(g_clientMenuPlugin[a], true) != -1))) // search plugins for file name
{
keys |= (1<<b)

if (g_clientMenuBodyPhrase[a])
len += format(menuBody[len], 511-len, "%d. %L^n", ++b, id, g_clientMenuBody[a])
else
len += format(menuBody[len], 511-len, "%d. %s^n", ++b, g_clientMenuBody[a])
} else {
++b

if (g_coloredMenus)
{
if (g_clientMenuBodyPhrase[a])
len += format(menuBody[len], 511-len, "\d%d. %L^n\w", b, id, g_clientMenuBody[a])
else
len += format(menuBody[len], 511-len, "\d%d. %s^n\w", b, g_clientMenuBody[a])
} else {
if (g_clientMenuBodyPhrase[a])
len += format(menuBody[len], 511-len, "#. %L^n", id, g_clientMenuBody[a])
else
len += format(menuBody[len], 511-len, "#. %s^n", g_clientMenuBody[a])
}
}
}

if (end != g_clientMenusNumber) // MENUS_NUMBER
{
format(menuBody[len], 511-len, "^n9. %L...^n0. %L", id, "MORE", id, pos ? "BACK" : "EXIT")
keys |= MENU_KEY_9
}
else {
format(menuBody[len], 511-len, "^n0. %L", id, pos ? "BACK" : "EXIT")
}

show_menu(id, keys, menuBody)
}

public cmdMenu(id, level, cid)
{
if (cmd_access(id, level, cid, 1))
displayMenu(id, g_menuPosition[id] = 0)

return PLUGIN_HANDLED
}
public clientCmdMenu(id, level, cid)
{
if (cmd_access(id, level, cid, 1))
clientDisplayMenu(id, g_clientMenuPosition[id] = 0)

return PLUGIN_HANDLED
}

public addmenuitem_cmd(id, level, cid)
{
if (!cmd_access(id, level, cid, 5))
return PLUGIN_HANDLED

// AddMenu(const menuBody[], const menuCmd[], const menuAccess, const menuPlugin[])
new menuBody[STRINGSIZE], menuCmd[STRINGSIZE], flags[STRINGSIZE], menuAccess = 0, menuPlugin[STRINGSIZE]
read_argv(1, menuBody, STRINGLENGTH)
read_argv(2, menuCmd, STRINGLENGTH)
read_argv(3, flags, STRINGLENGTH)
menuAccess = read_flags(flags)
read_argv(4, menuPlugin, STRINGLENGTH)

AddMenu(menuBody, menuCmd, menuAccess, menuPlugin)

return PLUGIN_HANDLED
}

public addclientmenuitem_cmd(id, level, cid)
{
if (!cmd_access(id, level, cid, 5))
return PLUGIN_HANDLED

// AddMenu(const menuBody[], const menuCmd[], const menuAccess, const menuPlugin[])
new menuBody[STRINGSIZE], menuCmd[STRINGSIZE], flags[STRINGSIZE], menuAccess = 0, menuPlugin[STRINGSIZE]
read_argv(1, menuBody, STRINGLENGTH)
read_argv(2, menuCmd, STRINGLENGTH)
read_argv(3, flags, STRINGLENGTH)
menuAccess = read_flags(flags)
read_argv(4, menuPlugin, STRINGLENGTH)

AddClientMenu(menuBody, menuCmd, menuAccess, menuPlugin)

return PLUGIN_HANDLED
}

public plugin_init()
{
register_plugin("Menus Front-End", AMXX_VERSION_STR, "AMXX Dev Team")
register_dictionary("menufront.txt")
register_dictionary("common.txt")

register_menucmd(register_menuid("AMX Mod X Menu"), 1023, "actionMenu")
register_menucmd(register_menuid("AMX Mod X Client Menu"), 1023, "clientActionMenu")
register_clcmd("amxmodmenu", "cmdMenu", ADMIN_MENU, "- displays menus")
register_clcmd("amx_menu", "clientCmdMenu", 0, "- displays menus available to client")

register_srvcmd("amx_addmenuitem", "addmenuitem_cmd", 0, "<menu text> <menu command> <access flags> <plugin name | plugin filename> - Add a menu item to Menus Front-End")
register_srvcmd("amx_addclientmenuitem", "addclientmenuitem_cmd", 0, "<menu text> <menu command> <access flags> <plugin name | plugin filename> - Add a menu item to Client Menus Front-End")

g_coloredMenus = colored_menus()


}
public plugin_cfg()
{
AddDefaultMenus()

new configs[128]
get_configsdir(configs, 127)
server_cmd("exec %s/custommenuitems.cfg", configs)
}

P.S. горит сереньким, не активно(

Отредактировал: Simbo, - 6.9.2012, 18:09
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sonic2790
сообщение 6.9.2012, 19:27
Сообщение #13


Стаж: 18 лет

Сообщений: 236
Благодарностей: 38
Полезность: 142

AddMenuLang("TELE_PLAYER", "amx_gagmenu", get_clcmd_flags("amx_gagmenu", flags) ? flags : ADMIN_VOTE, "GagMenu")

"GagMenu" - тут, если мне память не изменяет, надо вписывать ТОЧНОЕ название плагина, как оно написано в исходнике. Ну или на крайняк, как я делал когда то, вписывал уже готовые варианты: "Players Menu" =)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Simbo
сообщение 6.9.2012, 20:17
Сообщение #14
Стаж: 13 лет

Сообщений: 146
Благодарностей: 3
Полезность: 0

Sonic2790,
Замена помагла=)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: