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

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

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

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

плагин Warnings Menu

, исправить плагин
Статус пользователя sergi
сообщение 14.11.2016, 13:56
Сообщение #1
Стаж: 11 лет

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

помогите исправить прописаны все флаги у меня когда в консоль пишу warnings_menu для вызава меню пишет в консоле не известная команда а в чат пишет у вас нет доступа к этому меню хотя все флаги прописаны па смотрите в чем может причина вот сам sma
Код:
#include <amxmodx>
#include <fakemeta>
#include <dhudmessage>

#define MAX_LINES 60
#define PathFile "warnings_menu.ini"

enum _:FILE_DATA
{
IN_MENU[32],
IN_HUD[512]
}

new Array:g_aDataWarns, g_synchud, g_lines
new g_menupage[33], g_playerid[33], g_menulist[33][64]

new AccessFlag[2], CustomReasonFlag[2], PlayersFlag[2], ImmunityFlag[2], DestImmunityFlag[2]

const PDATA_SAVE = 2
const OFFSET_CSMENUCODE = 205
const OFFSET_LINUXDIFF = 5

public plugin_init()
{
register_plugin("Warnings menu", "1.6", "Pirates!")

register_clcmd("Warn", "clcmd_msgmodehud")
register_dictionary("warnings_menu.txt")

register_cvar("wrnsmenu_log", "")
register_cvar("wrnsmenu_hud", "")
register_cvar("wrnsmenu_hudcolor", "")
register_cvar("wrnsmenu_showchat", "")
register_cvar("wrnsmenu_prefix", "")
register_cvar("wrnsmenu_access_flag", "")
register_cvar("wrnsmenu_customreason_flag", "")
register_cvar("wrnsmenu_playersmenu_flag", "")
register_cvar("wrnsmenu_immunity_flag", "")
register_cvar("wrnsmenu_destimmunity_flag", "")

register_clcmd("warnings_menu", "cmd_hudvipmenu")
register_clcmd("say /warns", "cmd_hudvipmenu")
register_menucmd(register_menuid("show_warnsmenu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9), "handle_warnsmenu")
register_menucmd(register_menuid("show_playersmenu"), (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9), "handle_playersmenu")

g_synchud = CreateHudSyncObj()

get_cvar_string("wrnsmenu_access_flag", AccessFlag, charsmax(AccessFlag))
get_cvar_string("wrnsmenu_customreason_flag", CustomReasonFlag, charsmax(CustomReasonFlag))
get_cvar_string("wrnsmenu_playersmenu_flag", PlayersFlag, charsmax(PlayersFlag))
get_cvar_string("wrnsmenu_immunity_flag", ImmunityFlag, charsmax(ImmunityFlag))
get_cvar_string("wrnsmenu_destimmunity_flag", DestImmunityFlag, charsmax(DestImmunityFlag))
}

public plugin_cfg()
{
static cfgdir[64], file[64]
get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
formatex(file, charsmax(file), "%s/warns_menu.cfg", cfgdir)

if(!file_exists(file))
{
new szState[64]
formatex(szState, charsmax(szState), "[Warnings Menu] File %s Not found - called.", file)
set_fail_state(szState)
}
server_cmd("exec ^"%s^"", file); server_exec()
}

public plugin_precache()
{
static cfgdir[64], file[64]
get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
formatex(file, charsmax(file), "%s/%s", cfgdir, PathFile)

if(!file_exists(file))
{
new szState[64]
formatex(szState, charsmax(szState), "[Warnings Menu] File %s Not found - called.", file)
set_fail_state(szState)
}

static buffer[1080], len, line, aData[FILE_DATA]
g_aDataWarns = ArrayCreate(FILE_DATA)

while(read_file(file, line++, buffer, charsmax(buffer), len))
{
if(!len || buffer[0] == ';' || buffer[0] == '/' && buffer[1] == '/')
continue

parse(buffer, aData[IN_MENU], charsmax(aData[IN_MENU]), aData[IN_HUD], charsmax(aData[IN_HUD]))
replace_all(aData[IN_HUD], charsmax(aData[IN_HUD]), "%n%", "^n")

ArrayPushArray(g_aDataWarns, aData)
}
g_lines = ArraySize(g_aDataWarns)

if(g_lines >= MAX_LINES)
{
new szState[64]
formatex(szState, charsmax(szState), "[Warnings Menu] Max lines %d in file %s reached!", MAX_LINES, file)
set_fail_state(szState)
}
}

public plugin_natives()
{
register_native("warnsmenu_show", "native_showmenu", 1)
register_native("warnsmenu_send", "native_sendmessage", 1)
}

public native_showmenu(id, check_flag)
{
if(!is_user_connected(id) || !get_flags2(id, AccessFlag) && check_flag)
{
client_printc(id, "%L %L", id, "WARNS_PREFIX", id, "WARNS_DENIED")
return 0
}
return show_warnsmenu(id, g_menupage[id] = 0)
}

public cmd_hudvipmenu(id)
{
if(!is_user_connected(id) || !get_flags2(id, AccessFlag))
{
client_printc(id, "%L %L", id, "WARNS_PREFIX", id, "WARNS_DENIED")
return 0
}
g_playerid[id] = 0
return show_warnsmenu(id, g_menupage[id] = 0)
}

show_warnsmenu(id, position)
{
if(position < 0)
return PLUGIN_HANDLED

static menu[512], len, keys, a, b, start, end, aData[FILE_DATA]; keys = (1<<9)
start = position * 6
if(start >= g_lines) start = position = g_menupage[id]
end = start + 6
if(end > g_lines) end = g_lines
b = 0

len = formatex(menu, charsmax(menu), "%L \d[%d|%d]^n^n", id, "WARNS_TITLE", position + 1, g_lines / 6 + (g_lines % 6 ? 1 : 0))

for(a = start; a < end; a++)
{
ArrayGetArray(g_aDataWarns, a, aData)
keys |= (1<<b)
len += formatex(menu[len], charsmax(menu) - len, "\d[%d] \y~ \w%s^n", ++b, aData[IN_MENU])
}
for(new i = b; i < 7; ++i) len += formatex(menu[len], charsmax(menu) - len, "^n")

static playername[32]
get_user_name(g_playerid[id], playername, charsmax(playername))

if(get_flags2(id, PlayersFlag))
{
len += formatex(menu[len], charsmax(menu) - len, "\d[7] \y~ \w%L: \y%s^n", id, "WARNS_PLAYER", g_playerid[id] ? playername : "*")
keys |= (1<<6)
} else len += formatex(menu[len], charsmax(menu) - len, "\d[7] \y~ \d%L^n", id, "WARNS_PLAYER")

if(get_flags2(id, CustomReasonFlag))
{
len += formatex(menu[len], charsmax(menu) - len, "\d[8] \y~ \w%L^n", id, "WARNS_CUSTOMREASON")
keys |= (1<<7)
} else len += formatex(menu[len], charsmax(menu) - len, "\d[8] \y~ \d%L^n", id, "WARNS_CUSTOMREASON")

if(end != g_lines)
{
formatex(menu[len], charsmax(menu) - len, "^n\d[9] \y~ \w%L^n\d[0] \y~ \w%L", id, "WARNS_NEXT", id, position ? "WARNS_BACK" : "WARNS_CLOSE")
keys |= (1<<8)
} else formatex(menu[len], charsmax(menu) - len, "^n\d[0] \y~ \w%L", id, position ? "WARNS_BACK" : "WARNS_CLOSE")

if(pev_valid(id) == PDATA_SAVE) set_pdata_int(id, OFFSET_CSMENUCODE, 0, OFFSET_LINUXDIFF)

return show_menu(id, keys, menu, -1, "show_warnsmenu")
}

public handle_warnsmenu(id, key)
{
switch(key)
{
case 6: if(get_flags2(id, PlayersFlag)) return show_playersmenu(id, g_menupage[id] = 0)
case 7: if(get_flags2(id, CustomReasonFlag)) client_cmd(id, "messagemode Warn")
case 8: show_warnsmenu(id, ++g_menupage[id])
case 9: show_warnsmenu(id, --g_menupage[id])
default:
{
static aData[FILE_DATA]
ArrayGetArray(g_aDataWarns, (g_menupage[id] * 6 + key), aData)
send_hud(id, aData[IN_HUD])
}
}
return PLUGIN_HANDLED
}

show_playersmenu(id, pos)
{
if(pos < 0) return PLUGIN_HANDLED
static playersnum

for(new i = 1; i <= get_maxplayers(); i++)
{
if(!is_user_connected(i) || is_user_bot(i) || is_user_hltv(i)) continue
g_menulist[id][playersnum++] = i
}

new start = pos * 7
if(start > playersnum) start = playersnum
start = start - (start % 7)
g_menupage[id] = start / 7
new end = start + 7
if(end > playersnum) end = playersnum
new menu[512], len, pagesnum = (playersnum / 7 + ((playersnum % 7) ? 1 : 0))

switch(pagesnum)
{
case 0: return PLUGIN_HANDLED
default: len = formatex(menu, charsmax(menu), "%L \d[%d|%d]^n^n", id, "WARNS_PLAYER", pos + 1, pagesnum)
}

new name[33], i, keys = (1<<7|1<<9), b
for(new a = start; a < end; a++)
{
i = g_menulist[id][a]
get_user_name(i, name, charsmax(name))

if(get_flags2(i, ImmunityFlag) && !get_flags2(id, DestImmunityFlag) || i == id)
len += formatex(menu[len], charsmax(menu) - len, "\d[%d] \y~ \d%s^n", ++b, name)
else
{
keys |= (1<<b)
len += formatex(menu[len], charsmax(menu) - len, "\d[%d] \y~ \w%s^n", ++b, name)
}
}

for(new i = b; i < 8; i++) len += formatex(menu[len], charsmax(menu) - len, "^n")
len += formatex(menu[len], charsmax(menu) - len, "\d[8] \y~ \w%L %s^n", id, "WARNS_ALL", !g_playerid[id] ? "\r*" : "")
if(end < playersnum)
{
keys |= (1<<8)
formatex(menu[len], charsmax(menu) - len, "^n\d[9] \y~ \w%L^n\d[0] \y~ \w%L", id, "WARNS_NEXT", id, pos ? "WARNS_BACK" : "WARNS_CLOSE")
}
else formatex(menu[len], charsmax(menu) - len, "^n\d[0] \y~ \w%L", id, pos ? "WARNS_BACK" : "WARNS_CLOSE")

if(pev_valid(id) == PDATA_SAVE) set_pdata_int(id, OFFSET_CSMENUCODE, 0, OFFSET_LINUXDIFF)

return show_menu(id, keys, menu, -1, "show_playersmenu")
}

public handle_playersmenu(id, key)
{
switch(key)
{
case 7:
{
g_playerid[id] = 0
return show_warnsmenu(id, g_menupage[id] = 0)
}
case 8: show_playersmenu(id, ++g_menupage[id])
case 9: show_playersmenu(id, --g_menupage[id])
default:
{
g_playerid[id] = g_menulist[id][g_menupage[id] * 7 + key]
return show_warnsmenu(id, g_menupage[id] = 0)
}
}
return PLUGIN_HANDLED
}

public clcmd_msgmodehud(id)
{
if(!get_flags2(id, CustomReasonFlag) || !is_user_connected(id))
return PLUGIN_HANDLED

static g_args[189]
read_args(g_args, charsmax(g_args))
remove_quotes(g_args)

send_hud(id, g_args)

return PLUGIN_HANDLED
}

public send_hud(id, const msg[])
{
static name[32], name2[32]
get_user_name(id, name, charsmax(name)); get_user_name(g_playerid[id], name2, charsmax(name2))

if(!strlen(msg))
{
client_printc(id, "%L Введите хотя бы один символ!", id, "WARNS_PREFIX")
return PLUGIN_HANDLED
}

if(g_playerid[id] && !is_user_connected(g_playerid[id]))
{
client_printc(id, "%L %L", id, "WARNS_PREFIX", id, "WARNS_DISCONNECTED")
return PLUGIN_HANDLED
}

static color[20], red[5], green[5], blue[5]
get_cvar_string("wrnsmenu_hudcolor", color, charsmax(color))
parse(color, red, charsmax(red), green, charsmax(green), blue, charsmax(blue))

if(get_cvar_num("wrnsmenu_hud") == 1)
{
set_hudmessage(str_to_num(red), str_to_num(green), str_to_num(blue), -1.0, 0.19, 2, 6.0, 8.0, 0.05, 1.5, 3)
ShowSyncHudMsg(g_playerid[id], g_synchud, "%s^n%s", name, msg)
}
else if(get_cvar_num("wrnsmenu_hud") == 2)
{
clear_all_dhud()
set_dhudmessage(str_to_num(red), str_to_num(green), str_to_num(blue), -1.0, 0.19, 2, 6.0, 8.0, 0.05, 1.5, false)
show_dhudmessage(g_playerid[id], "%s^n%s", name, msg)
}
if(g_playerid[id] && get_cvar_num("wrnsmenu_showchat"))
client_printc(0, "%L %L", id, "WARNS_PREFIX", id, "WARNS_SHOWCHAT", name, name2)

if(get_cvar_num("wrnsmenu_log"))
{
static data[16], logfile[32], map[32]

get_mapname(map, charsmax(map))
get_time("%d-%m-%Y", data, charsmax(data))
formatex(logfile, charsmax(logfile), "Warnings_%s.log", data)

log_to_file(logfile, "%s send to %s | message: %s | map: %s", name, g_playerid[id] ? name2 : "All", msg, map)
}
g_playerid[id] = 0

return PLUGIN_HANDLED
}

public native_sendmessage(id, const msg[])
{
param_convert(2)

if(!is_user_connected(id))
{
log_error(AMX_ERR_NATIVE, "[Warnings Menu] Invalid playerid %d send : %s", id, msg)
return
}

send_hud(id, msg)
}

stock get_flags2(id, const flag[])
return get_user_flags(id) & read_flags(flag)

stock clear_all_dhud()
{
static dhud
for(dhud = 0; dhud < 8; dhud++)
show_dhudmessage(0, "")
}

stock client_printc(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, charsmax(msg), input, 3)

replace_all(msg, charsmax(msg), "!g", "^4")
replace_all(msg, charsmax(msg), "!y", "^1")
replace_all(msg, charsmax(msg), "!t", "^3")

if(id) players[0] = id; else get_players(players, count, "ch")
{
for(new i = 0; i < count; i++)
{
if(is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i])
write_string(msg)
message_end()
}
}
}
}

а вот сам warns_menu.cfg
Код
//Конфигурационный файл плагина Warnings Menu by Pirates!
//Продажа исходного кода вконтакте - vk.com/bad.pro102
wrnsmenu_log "1" //Ведение логов (1 - вкл | 0 - выкл)
wrnsmenu_hud "2" //Формат сообщения (1 - ХУД | 2 - ДХУД)
wrnsmenu_hudcolor "120 255 200" //Цвета в РГБ (красный зеленый синий) до 255
wrnsmenu_showchat "1" //Писать ли в чат при отправке сообщения игроку
wrnsmenu_access_flag "c" //Флаг для доступа к самому меню
wrnsmenu_customreason_flag "s" //Флаг для доступа к своей причине
wrnsmenu_playersmenu_flag "s" //Флаг для доступа к выбору игрока
wrnsmenu_immunity_flag "a" //Флаг иммунитета, нельзя выбрать в меню выбора игрока
wrnsmenu_destimmunity_flag "s" //Флаг пробивающий иммунитет, может выбрать игрока с иммунитетом
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя georgeml
сообщение 15.11.2016, 6:21
Сообщение #2
Стаж: 12 лет

Сообщений: 1467
Благодарностей: 439
Полезность: 423

sergi,
И все это дело под спойлер
Код:
Выделил нужный текст, нажал на кнопку "Подсветка павна".
М.б. поможет: Ответить- Расширенная форма- Предварительный просмотр
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя veryIbad
сообщение 15.11.2016, 8:08
Сообщение #3


Стаж: 10 лет

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

sergi, кажется проще написать автору, контакте есть в кфг файле.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Algalon
сообщение 15.11.2016, 9:45
Сообщение #4
Стаж: 11 лет

Сообщений: 163
Благодарностей: 60
Полезность: 291

sergi, замени это в коде
Cкрытый текст
Код:
    g_synchud = CreateHudSyncObj()

get_cvar_string("wrnsmenu_access_flag", AccessFlag, charsmax(AccessFlag))
get_cvar_string("wrnsmenu_customreason_flag", CustomReasonFlag, charsmax(CustomReasonFlag))
get_cvar_string("wrnsmenu_playersmenu_flag", PlayersFlag, charsmax(PlayersFlag))
get_cvar_string("wrnsmenu_immunity_flag", ImmunityFlag, charsmax(ImmunityFlag))
get_cvar_string("wrnsmenu_destimmunity_flag", DestImmunityFlag, charsmax(DestImmunityFlag))
}

public plugin_cfg()
{
static cfgdir[64], file[64]
get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
formatex(file, charsmax(file), "%s/warns_menu.cfg", cfgdir)

if(!file_exists(file))
{
new szState[64]
formatex(szState, charsmax(szState), "[Warnings Menu] File %s Not found - called.", file)
set_fail_state(szState)
}
server_cmd("exec ^"%s^"", file); server_exec()
}
--->
Код:
   g_synchud = CreateHudSyncObj()
}

public plugin_cfg()
{
static cfgdir[64], file[64]
get_localinfo("amxx_configsdir", cfgdir, charsmax(cfgdir))
formatex(file, charsmax(file), "%s/warns_menu.cfg", cfgdir)

if(!file_exists(file))
{
new szState[64]
formatex(szState, charsmax(szState), "[Warnings Menu] File %s Not found - called.", file)
set_fail_state(szState)
}
server_cmd("exec ^"%s^"", file); server_exec()

get_cvar_string("wrnsmenu_access_flag", AccessFlag, charsmax(AccessFlag))
get_cvar_string("wrnsmenu_customreason_flag", CustomReasonFlag, charsmax(CustomReasonFlag))
get_cvar_string("wrnsmenu_playersmenu_flag", PlayersFlag, charsmax(PlayersFlag))
get_cvar_string("wrnsmenu_immunity_flag", ImmunityFlag, charsmax(ImmunityFlag))
get_cvar_string("wrnsmenu_destimmunity_flag", DestImmunityFlag, charsmax(DestImmunityFlag))
}

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