Проблема с CVAR Checker

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
7
Реакции
-3
Помог
1 раз(а)
Ошибка
Плагин не выполняет свою работу
ОС
Linux
Amx Mod X
AMX Mod X 1.9.0.5234 (http://www.amxmodx.org)
Authors:
David "BAILOPAN" Anderson, Pavol "PM OnoTo" Marko
Felix "SniperBeamer" Geyer, Jonny "Got His Gun" Bergstrom
Lukasz "SidLuke" Wlasinski, Christian "Basic-Master" Hammacher
Borja "faluco" Ferrer, Scott "DS" Ehlert
Compiled: Nov 3 2018 14:55:29
Built from: https://github.com/alliedmodders/amxmodx/commit/9eb1f42
Build ID: 5234:9eb1f42
Core mode: JIT+ASM32
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.4.0.668-dev
Build date: 09:47:42 Sep 29 2018 (1631)
Build from: https://github.com/dreamstalker/rehlds/commit/89be216
ReGamedll
ReGameDLL version: 5.7.0.315-dev
Build date: 16:46:39 Oct 26 2018
Build from: https://github.com/s1lentq/ReGameDLL_CS/commit/67cc068
Версия Metamod
Metamod-r v1.3.0.128, API (5:13)
Metamod-r build: 17:47:54 Aug 24 2018
Metamod-r from: https://github.com/theAsmodai/metamod-r/commit/0cf2f70
Список метамодулей
Currently loaded plugins:
description stat pend file vers src load unload
[ 1] So Loader RUN - libsoloader_i386.so v1.0 ini ANY Start
[ 2] VoiceTranscoder RUN - VoiceTranscoder.so v2017RC3 ini ANY ANY
[ 3] AMX Mod X RUN - amxmodx_mm_i386.so v1.9.0.5234 ini Start ANY
[ 4] Rechecker RUN - rechecker_mm_i386.so v2.5 ini Chlvl ANY
[ 5] ReSemiclip RUN - resemiclip_mm_i386.so v2.3.9 ini Chlvl ANY
[ 6] WHBlocker RUN - whblocker_mm_i386.so v1.5.696 ini Chlvl ANY
[ 7] ReAPI RUN - reapi_amxx_i386.so v5.6.0.160-dev pl3 ANY Never
[ 8] CURL AMXX RUN - curl_amxx_i386.so v1.0.1 pl3 ANY ANY
[ 9] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5234 pl3 ANY ANY
[10] MySQL RUN - mysql_amxx_i386.so v1.9.0.5234 pl3 ANY ANY
[11] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5234 pl3 ANY ANY
[12] CSX RUN - csx_amxx_i386.so v1.9.0.5234 pl3 ANY ANY
[13] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5234 pl3 ANY ANY
[14] Fun RUN - fun_amxx_i386.so v1.9.0.5234 pl3 ANY ANY
[15] Engine RUN - engine_amxx_i386.so v1.9.0.5234 pl3 ANY ANY
15 plugins, 15 running
Список плагинов
Currently loaded plugins:
name version author file status
[ 1] FreshBans 1.4.0b kanagava fresh_bans_140_ running
[ 2] Admin Loader 3.5 neygomon admin_loader.am running
[ 3] Admin Base 1.9.0.5234 AMXX Dev Team admin.amxx running
[ 4] Admin Commands 1.9.0.5234 AMXX Dev Team admincmd.amxx running
[ 5] Admin Help 1.9.0.5234 AMXX Dev Team adminhelp.amxx running
[ 6] Slots Reservation 1.9.0.5234 AMXX Dev Team adminslots.amxx running
[ 7] Multi-Lingual System 1.9.0.5234 AMXX Dev Team multilingual.am running
[ 8] Menus Front-End 1.9.0.5234 AMXX Dev Team menufront.amxx running
[ 9] Commands Menu 1.9.0.5234 AMXX Dev Team cmdmenu.amxx running
[ 10] Players Menu 1.8.2 AMXX Dev Team plmenu.amxx running
[ 11] Maps Menu 1.9.0.5234 AMXX Dev Team mapsmenu.amxx running
[ 12] Plugin Menu 1.9.0.5234 AMXX Dev Team pluginmenu.amxx running
[ 13] Admin Chat 1.9.0.5234 AMXX Dev Team adminchat.amxx running
[ 14] Anti Flood 1.9.0.5234 AMXX Dev Team antiflood.amxx running
[ 15] Scrolling Message 1.9.0.5234 AMXX Dev Team scrollmsg.amxx running
[ 16] Info. Messages 1.9.0.5234 AMXX Dev Team imessage.amxx running
[ 17] Admin Votes 1.9.0.5234 AMXX Dev Team adminvote.amxx running
[ 18] NextMap 1.9.0.5234 AMXX Dev Team nextmap.amxx running
[ 19] Nextmap Chooser 1.9.0.5234 AMXX Dev Team mapchooser.amxx running
[ 20] TimeLeft 1.9.0.5234 AMXX Dev Team timeleft.amxx running
[ 21] Pause Plugins 1.9.0.5234 AMXX Dev Team pausecfg.amxx running
[ 22] Stats Configuration 1.9.0.5234 AMXX Dev Team statscfg.amxx running
[ 23] StatsX 1.9.0.5234 AMXX Dev Team statsx.amxx running
[ 24] Client Analyser Fix 1.0 Garey rehlds_fix.amxx running
[ 25] Client Analyzer 2.7.6 FAME client_analyzer error
[ 26] ReChecker Logging 1.0 custom rc_logging.amxx running
[ 27] Chat Manager 1.1.1-11 Mistrick chatmanager.amx running
[ 28] Cultura Match System DEV Cultura chillout_mixsys running
[ 29] Give Control 1.0 Garey chillout_contro running
[ 30] Replace player 1.0 System chillout_replac running
[ 31] Speclist 0.01 gladius chillout_specli running
[ 32] Speedometer Green Rus 1.0 ~Nikk0~ chillout_speed. running
[ 33] Flashbang Stuff 0.4b Juice chillout_flashn running
[ 34] Team Grenade Trail 1.2 Numb grenade_trail.a running
[ 35] Flashbang automatic re 1.0c Juice fb_disable_reti running
[ 36] Player Settings Saver 1.1 QooQa player_settings running
[ 37] Advanced Gag 1.9.0 neygomon amx_gag.amxx running
[ 38] HNS Decoy Grenade 0.2 juice chillout_decoy_ running
[ 39] Players Menu 1.7 neugomon admin_fix.amxx running
[ 40] CVAR Checker 0.3 edit by gasoline cvar_checker.am running
[ 41] Damager 1.0 OverGame damager.amxx running
[ 42] Show IP 1.0 $uicid3 amx_ip.amxx running
( 25) Error: ERROR: Bad API request! (#1) / ошибка потому что запускал копию сервера, привязка по ip не запустила плагин. На основном сервере этот плагин работает.
42 plugins, 41 running
Автор плагина
AssKicR & CheesyPeteza
Версия плагина
1.0.1
Исходный код
#include <amxmodx>
#include <engine>

#define debug 0
#define MAXPLAYERS 32
#define MAX_CVARS 128
#define Delay_start 20.0
#define Delay_restart 60.0
#define Menu_time 15


#define USE_MENU 1

#define CVAR_EQUALS 0
#define CVAR_BIGER 1
#define CVAR_SMALLER 2
#define CVAR_OTHERTHEN 3

#define LogOnly 0

new g_CvarsInList
new gs_CvarName[MAX_CVARS][32]
new g_CvarRule[MAX_CVARS]
new Float:gf_CvarBadValue[MAX_CVARS]
new Float:gf_CvarDefaultValue[MAX_CVARS]
new g_LastCvarChecked[MAXPLAYERS+1]
new g_MenuTimer[MAXPLAYERS+1]

new gs_LogFile[128]


public plugin_init()
{
register_plugin("CVAR Checker","0.3","edit by gasoline")

//g_MaxPlayers = get_maxplayers()

//register_srvcmd("hlg_conncommand","CmdConnCommand",ADMIN_RCON," - Mimics the hlg_conncommand HLGuard command")
register_srvcmd("amx_checkcvar","CmdCheckCVAR",ADMIN_RCON," - Mimics the hlg_conncommand HLGuard command")

#if USE_MENU == 1
register_menucmd(register_menuid("\yОбновить CVAR:"),1023,"Menu_UpdateCVAR")
#endif
LoadConfigFile()
}
public CmdCheckCVAR()
{
new ArgInfo[128],CvarName[32],sCvarBadValue[8],sCvarDefaultValue[8]
//read_argv(1,ArgInfo,63)
read_args(ArgInfo,127)


parse(ArgInfo,CvarName,31,sCvarBadValue,7,sCvarDefaultValue,7)
//gf_CvarBadValue[g_CvarsInList]

if(strlen(CvarName) == 0 || strlen(sCvarBadValue) == 0 || strlen(sCvarDefaultValue) == 0 || !GetCvarOption(sCvarBadValue[0],g_CvarsInList))
{
server_print("Bad listing in config file on cvar %s",CvarName)
return PLUGIN_CONTINUE
}
sCvarBadValue[0] = '0'

copy(gs_CvarName[g_CvarsInList],31,CvarName)
gf_CvarBadValue[g_CvarsInList] = floatstr(sCvarBadValue)
gf_CvarDefaultValue[g_CvarsInList] = floatstr(sCvarDefaultValue)

#if debug == 1
server_print("CVAR Checker Debug - %s rule: %d BadValue: %.2f Def. Value: %.2f (%s)",gs_CvarName[g_CvarsInList],g_CvarRule[g_CvarsInList],gf_CvarBadValue[g_CvarsInList],gf_CvarDefaultValue[g_CvarsInList],sCvarBadValue)
#endif
g_CvarsInList++
return PLUGIN_CONTINUE
}
public CmdConnCommand()
{
new CvarValueString[8],ArgInfo[64]
read_argv(1,ArgInfo,63)

remove_quotes(ArgInfo)

parse(ArgInfo,gs_CvarName[g_CvarsInList],31,CvarValueString,7)
gf_CvarBadValue[g_CvarsInList] = floatstr(CvarValueString)



#if debug == 1
server_print("CVAR Checker Debug - %s accetable value %.2f (%s - Cvars in list: %d)",gs_CvarName[g_CvarsInList],gf_CvarBadValue[g_CvarsInList],ArgInfo,g_CvarsInList)
#endif
g_CvarsInList++
}
#if USE_MENU == 1
public Task_ReShowMenu(id)
{
g_MenuTimer[id]--
if(g_MenuTimer[id] == 0)
{
new Name[32],Authid[35],LogD[128]
get_user_name(id,Name,31)
get_user_authid(id,Authid,34)

client_print_color(0, print_team_blue, "^1[^4System^1] CVAR Checker: ^4%s ^1не сделал выбор в меню и был кикнут",Name)
server_cmd("kick #%d Bad Cvar value, and no selection in menu",get_user_userid(id))

format(LogD,127,"%s<%s> did not make a choice in the menu and was kicked",Name,Authid)
LogOffense(LogD)
}
else
Menu_ShowCVARMenu(id)
}

public Menu_UpdateCVAR(id,key)
{
new Name[32],Authid[35],LogD[128]
get_user_name(id,Name,31)
get_user_authid(id,Authid,34)

new CvarIndex = g_LastCvarChecked[id]

if(key == 0) // selected update cvar
{
remove_task(id)
client_print_color(0, print_team_blue, "^1[^4System^1] CVAR Checker: игроку ^4%s ^1был обновлен квар ^4%s",Name,gs_CvarName[CvarIndex])
format(LogD,127,"%s<%s> chose to update his %s cvar",Name,Authid,gs_CvarName[CvarIndex])
LogOffense(LogD)

client_cmd(id,"%s %f",gs_CvarName[CvarIndex],gf_CvarDefaultValue[CvarIndex])
CheckNextCvar(id)
}
else if(key == 1)// selected being kicked
{
remove_task(id)
client_print_color(0, print_team_blue, "^1[^4System^1] CVAR Checker: игрок ^4%s ^1отказался обновить квар ^4%s ^1и был кикнут",Name,gs_CvarName[CvarIndex])
server_cmd("kick #%d chose to be kicked",get_user_userid(id))

format(LogD,127,"%s<%s> chose to update his %s cvar",Name,Authid,gs_CvarName[CvarIndex])
LogOffense(LogD)
}
else // Made a wrong selection
Menu_ShowCVARMenu(id)

return PLUGIN_CONTINUE
}
public Menu_ShowCVARMenu(id)
{
#if debug == 1
server_print("CvarName: %s : Id: %d LastIndex: %d",gs_CvarName[g_LastCvarChecked[id]],id,g_LastCvarChecked);
#endif
new szMenuBody[151]
new len,keys
len = format(szMenuBody,255,"\yОбновить CVAR:^n %s имеет illegal значение, обновить его? (%d sec left)",gs_CvarName[g_LastCvarChecked[id]],g_MenuTimer[id])
len += format(szMenuBody[len],150 - len,"^n\w 1. Да")
len += format(szMenuBody[len],150 - len,"^n\w 2. Нет (Will be kicked)")


keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)
show_menu( id, keys, szMenuBody, -1 )
return PLUGIN_CONTINUE
}
#endif

public client_putinserver(id)
{
g_LastCvarChecked[id] = -1 // we set it to -1 since the CheckNextCvar() increases it to one
if(!is_user_bot(id) && !is_user_hltv(id) && g_CvarsInList != 0)
{
set_task(Delay_start,"Task_DelayCvarCheck",id,_,_,"a",1)
}
}
public client_disconnected(id)
{
if(task_exists(id))
remove_task(id)
}
public cvar_result_func(id,const cvar[],const value[])
{
new Float:CvarValue= floatstr(value)
new Index = g_LastCvarChecked[id] // Save the index, for simplisity

if(CheckCvarAgainstRule(CvarValue,gf_CvarBadValue[Index],g_CvarRule[Index]))
{

new Name[32],Authid[35],LogD[128]
get_user_name(id,Name,31)
get_user_authid(id,Authid,34)

format(LogD,127,"%s<%s> had a illegal cvar value: %s (Bad value: %.2f New value: %.2f)",Name,Authid,cvar,CvarValue,gf_CvarBadValue[Index])
LogOffense(LogD)
#if LogOnly == 0
client_print_color(0, print_team_blue, "^1[^4System^1] CVAR Checker: ^4%s^1<^4%s^1> использует illegal значение квара ( ^4%s ^1имеет значение ^4%.2f )",Name,Authid,cvar,CvarValue)

g_MenuTimer[id] = Menu_time // We set the time the user has to make a selection in the menu
Menu_ShowCVARMenu(id)
set_task(1.0,"Task_ReShowMenu",id,_,_,"b")
#endif
}
else
{
#if debug == 1
client_print(id,print_chat,"%d)Cvar Checker - %s value %.2f",Index,cvar,CvarValue)
#endif
if(g_CvarsInList > g_LastCvarChecked[id])
CheckNextCvar(id)
else
{
set_task(Delay_restart,"Task_DelayCvarCheck",id,_,_,"a",1)
}
}
}


public Task_DelayCvarCheck(id)
{
g_LastCvarChecked[id] = -1
CheckNextCvar(id)
}
stock CheckCvarAgainstRule(Float:CvarValue,Float:CvarBadValue,Rule)
{
if(Rule == CVAR_EQUALS)
{
if(CvarValue == CvarBadValue)
return 1
else
return 0
}
else if(Rule == CVAR_BIGER)
{
if(CvarValue > CvarBadValue)
return 1
else
return 0
}
else if(Rule == CVAR_SMALLER)
{
if(CvarValue < CvarBadValue)
return 1
else
return 0
}
else if(Rule == CVAR_OTHERTHEN)
{
if(CvarValue != CvarBadValue)
return 1
else
return 0
}
return 0
}
stock GetCvarOption(CvarOption[],CvarIndex) // Converts the String text into a Int in the g_CvarRule
{
if(CvarOption[0] == '=')
g_CvarRule[CvarIndex] = CVAR_EQUALS
else if(CvarOption[0] == '>')
g_CvarRule[CvarIndex] = CVAR_BIGER
else if(CvarOption[0] == '<')
g_CvarRule[CvarIndex] = CVAR_SMALLER
else if(CvarOption[0] == '!')
g_CvarRule[CvarIndex] = CVAR_OTHERTHEN
else return -1

return 1
}
stock CheckNextCvar(id)
{
g_LastCvarChecked[id]++
if(g_LastCvarChecked[id] == g_CvarsInList)
g_LastCvarChecked[id] = 0

query_client_cvar(id,gs_CvarName[g_LastCvarChecked[id]],"cvar_result_func")
}
stock LoadConfigFile()
{
new File[128]
get_localinfo("amxx_basedir",File,127)
format(File,127,"%s/configs/cvar_list.cfg",File)
server_print("Loading Cvar checking Config file")
server_cmd("exec %s",File)

get_localinfo("amxx_basedir",gs_LogFile,127)
new Date[20]
get_time("%d-%m-%Y",Date,19)
format(gs_LogFile,127,"%s/logs/cvar_%s.log",gs_LogFile,Date)
}

stock LogOffense(LogEntry[])
{
new FullEntry[160]
get_time("%H:%M:%S - ",FullEntry,11)
add(FullEntry,159,LogEntry)
server_print(FullEntry)
write_file(gs_LogFile,FullEntry)
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Здравствуйте друзья.
Появилась нужда в проверке cvar`ов игроков.
Раньше использовал плагин из вложения. Все было замечательно. Он отлично работал.
Перешел на vds, оставил последние re-продукты.
И все бы замечательно, но не работает этот плагин.
Он должен при заходе игрока, сразу выводить меню с предложением изменить нелегитный квар, если таковой имеется. А если игрок изменил его уже находясь на сервере -то так же выводит это меню с предложением.

Подскажите почему он этого не делает?



P.S. Нашел проблему. Не работает функция query_client_cvar . Напишите свои догадки, насчет фикса этого.
 
В этой теме было размещено решение! Перейти к решению.
Последнее редактирование:
Сообщения
7
Реакции
-3
Помог
1 раз(а)
Причина была в том, что было раскомментировано в liblist.gam
gamedll_linux "dlls/cs.so"

Спасибо Mistrick за наводку на тему
 
Статус
В этой теме нельзя размещать новые ответы.

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

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