King of Sparta
Участник
- Сообщения
- 44
- Реакции
- 0
Помогите пожалуйста запретить консольную, клиентскую команду cl_minmodels 1. У меня сервер с модом прятки (Hide and Seek).
Кто будет заходить на сервер пряток с этой командой?Помогите пожалуйста запретить консольную, клиентскую команду cl_minmodels 1. У меня сервер Пряток.
Сделайте проверку значения на начало раунда и перекомпильте плагин.Друзья. Есть вот такой вот плагин: Custom Files Filter Checker - AlliedModders Который запрещает консольные команды(Кикает игрока). Я настроил его под cl_minmodels 1. Если у игрока включен cl_minmodels 1 то он не сможет зайти на сервер. Я прошу помощи, как сделать так, что бы эта проверка шла постоянно. А то сейчас человек может ввести cl_minmodels 0 и зайти на сервер, а на самом сервере ввести cl_minmodels 1 и его не кикнет. Помогите пожалуйста, заранее благодарю всех
public OnClientPutInServer(client)
{
CheckClientVariable(client);
}
public OnClientSettingsChanged(client)
{
CheckClientVariable(client);
}
CheckClientVariable(client)
{
QueryClientConVar(client, "cl_minmodels", OnQueryClientConVar, GetClientUserId(client));
}
public OnQueryClientConVar(QueryCookie:cookie, userid, ConVarQueryResult:result, const String:cvarName[], const String:cvarValue[])
{
new client = GetClientOfUserId(userid);
if ( client && cvarValue[0] != '0' ) {
KickClient(client, "Установите значение cl_minmodels равным 0");
}
}
Спасибо. А куда это вставлять? У меня стоит Custom Files Filters Checker.Можно попробовать так
C-подобный:public OnClientPutInServer(client) { CheckClientVariable(client); } public OnClientSettingsChanged(client) { CheckClientVariable(client); } CheckClientVariable(client) { QueryClientConVar(client, "cl_minmodels", OnQueryClientConVar, GetClientUserId(client)); } public OnQueryClientConVar(QueryCookie:cookie, userid, ConVarQueryResult:result, const String:cvarName[], const String:cvarValue[]) { new client = GetClientOfUserId(userid); if ( client && cvarValue[0] != '0' ) { KickClient(client, "Установите значение cl_minmodels равным 0"); } }
Спасибо. Я создал txt и ввел туда весь код от Reiko. Далее засунул его в compile и получих smx. Засунул его в плагин, сменил карту на сервере. Ничего не изменилось. Что делать?
public OnPluginStart()
{
for ( new i = 1; i <= MaxClients; ++i ) {
if ( IsClientInGame(i) ) {
CheckClientVariable(i);
}
}
CreateTimer(0.0, Timer_CheckConVar, _, TIMER_REPEAT);
}
public Action:Timer_CheckConVar(Handle:timer)
{
for ( new i = 1; i <= MaxClients; ++i ) {
if ( IsClientInGame(i) ) {
CheckClientVariable(i);
}
}
}
public OnClientPutInServer(client)
{
CheckClientVariable(client);
}
CheckClientVariable(client)
{
if ( !IsFakeClient(client) ) {
QueryClientConVar(client, "cl_minmodels", OnQueryClientConVar);
}
}
public OnQueryClientConVar(QueryCookie:cookie, client, ConVarQueryResult:result, const String:cvarName[], const String:cvarValue[])
{
if ( cvarValue[0] != '0' ) {
KickClient(client, "Установите значение cl_minmodels равным 0");
}
}
CreateTimer(0.0, Timer_CheckConVar, _, TIMER_REPEAT);
Спасибо, а как изменить форма txt на sp?Во-первых нужно было формат .txt изменить на .sp.
Спасибо тебе большое мужик. Ты мне очень помог, я сильно тебе благодарен. Твоя работа неоценима, спасибо что помогаешь таким как я. Удачи тебе в развитии, надеюсь ты верен своим целям и стремишься к ним. Удачи, друг.Это полноценный плагин, вставлять в другие его не надо. Эту версию проверил, всё работает. К сожалению, единственный вариант это проверка таймером заданный интервал времени значение квара у всех игроков, поскольку OnClientSettingsChanged не вызывается при изменении квара cl_minmodels. Так же исправил ошибку с неправильным вызовом функции QueryClientConVar и его обратного вызова OnQueryClientConVar.
Задать значения таймера можно в строкеC-подобный:public OnPluginStart() { for ( new i = 1; i <= MaxClients; ++i ) { if ( IsClientInGame(i) ) { CheckClientVariable(i); } } CreateTimer(0.0, Timer_CheckConVar, _, TIMER_REPEAT); } public Action:Timer_CheckConVar(Handle:timer) { for ( new i = 1; i <= MaxClients; ++i ) { if ( IsClientInGame(i) ) { CheckClientVariable(i); } } } public OnClientPutInServer(client) { CheckClientVariable(client); } CheckClientVariable(client) { if ( !IsFakeClient(client) ) { QueryClientConVar(client, "cl_minmodels", OnQueryClientConVar); } } public OnQueryClientConVar(QueryCookie:cookie, client, ConVarQueryResult:result, const String:cvarName[], const String:cvarValue[]) { if ( cvarValue[0] != '0' ) { KickClient(client, "Установите значение cl_minmodels равным 0"); } }
где 0.0 - текущая задержка таймера (т.е. проверка будет осуществляться каждый фрейм). Можете установить значение 0.25 для 250мс (4 раза в секунду) или какое-нибудь другое, которое вам больше нравится.C-подобный:CreateTimer(0.0, Timer_CheckConVar, _, TIMER_REPEAT);
Спасибо, все получилось. Я вот ищу новый плагин. Плагин для баланса, суть его в том, он не только делает 3х1(3 т на 1кт), но после каждых сыгранных 4 раундов за кт игрока перекидывает за Т и выбирается случайн кт из т, но баланс учитывается. Как это устроить? Видел на сервер одном, у них в чате показывалось сообщения от этого плагина: [SMJT] SM Jail Teams , но там только баланс...Мой Компьютер - Упорядочить - Параметры папок - Вид - Снять галочку с "Скрывать расширения для зарегистрированных типов файлов".
Теперь когда создаем .txt - можем просто менять расширение. Тыкаем переименовать - вместо .txt - пишем .sp
Ну это уже так, на будущее.