Kimi Опубликовано 30 августа, 2022 Поделиться Опубликовано 30 августа, 2022 Стал очень часто замечать, что при сборе лобби игроки попадают на мой сервер и меняют режим игры с vs на кооператив (или другой) Как можно заблокировать смену режима игры? 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Администратор Ryancoolround Опубликовано 30 августа, 2022 Администратор Поделиться Опубликовано 30 августа, 2022 Запиши переменные в cfg/server.cfg, чтобы заставить игровой режим работать принудительно: //coop, versus, survival sm_cvar mp_gamemode "coop" 1 Получай фашист по морде! Ссылка на комментарий Поделиться на другие сайты Поделиться
Kimi Опубликовано 3 сентября, 2022 Автор Поделиться Опубликовано 3 сентября, 2022 В 31.08.2022 в 00:34, Райан сказал: Запиши переменные в cfg/server.cfg, чтобы заставить игровой режим работать принудительно: //coop, versus, survival sm_cvar mp_gamemode "coop" Спасибо за совет, я смог решить проблемы Оказывается что для того чтобы игра меняла режим при загрузке нужно писать не "mp_gametypes", а "mp_gamemode" Добавление двух значений в server.cfg решило мою проблему sm_cvar sv_gametypes "versus" sm_cvar mp_gamemode "versus" но есть еще вопрос как запретить игрокам создавать приватное лобби (только для друзей) 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Администратор Ryancoolround Опубликовано 6 сентября, 2022 Администратор Поделиться Опубликовано 6 сентября, 2022 В 03.09.2022 в 19:12, Kimi сказал: как запретить игрокам создавать приватное лобби (только для друзей) Слушай, попробуй это: #pragma semicolon 1 #pragma newdecls required #define VERSION "0.1" #include <sourcemod> #include <sourcescramble> // https://github.com/nosoop/SMExt-SourceScramble public Plugin myinfo = { name = "L4D2 Block match connect", author = "fdxx", description = "Block client from connecting to the server via creating a lobby.", version = VERSION, } public void OnPluginStart() { Init(); CreateConVar("l4d2_block_match_connect_version", VERSION, "Version", FCVAR_NONE | FCVAR_DONTRECORD); } void Init() { GameData hGameData = new GameData("l4d2_block_match_connect"); if (hGameData == null) SetFailState("Failed to load \"l4d2_block_match_connect.txt\" file"); MemoryPatch mPatch = MemoryPatch.CreateFromConf(hGameData, "CBaseServer::ReplyReservationRequest"); if (!mPatch.Validate()) SetFailState("Verify patch failed."); if (!mPatch.Enable()) SetFailState("Enable patch failed."); delete hGameData; } 1 Получай фашист по морде! Ссылка на комментарий Поделиться на другие сайты Поделиться
Kimi Опубликовано 7 сентября, 2022 Автор Поделиться Опубликовано 7 сентября, 2022 18 часов назад, Райан сказал: Слушай, попробуй это: #pragma semicolon 1 #pragma newdecls required #define VERSION "0.1" #include <sourcemod> #include <sourcescramble> // https://github.com/nosoop/SMExt-SourceScramble public Plugin myinfo = { name = "L4D2 Block match connect", author = "fdxx", description = "Block client from connecting to the server via creating a lobby.", version = VERSION, } public void OnPluginStart() { Init(); CreateConVar("l4d2_block_match_connect_version", VERSION, "Version", FCVAR_NONE | FCVAR_DONTRECORD); } void Init() { GameData hGameData = new GameData("l4d2_block_match_connect"); if (hGameData == null) SetFailState("Failed to load \"l4d2_block_match_connect.txt\" file"); MemoryPatch mPatch = MemoryPatch.CreateFromConf(hGameData, "CBaseServer::ReplyReservationRequest"); if (!mPatch.Validate()) SetFailState("Verify patch failed."); if (!mPatch.Enable()) SetFailState("Enable patch failed."); delete hGameData; } Я так понимаю, это полностью запрещает подключение через лобби. А мне нужно запретить только приватное лобби. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Администратор Ryancoolround Опубликовано 19 мая Администратор Поделиться Опубликовано 19 мая В 07.09.2022 в 03:09, Kimi сказал: А мне нужно запретить только приватное лобби. Просто ради интереса, я даже не уверен, сработает ли... Мне его даже скомпилировать сейчас негде... public Action:ClientConnect(Handle:event, const char[]:name, bool:dontbroadcast) { if (event = Client_Connect) { const char[] lobby_id = GetClientConVarString(event, "lobby_id"); if (StrContains(lobby_id, "PRIVATE")) { // Идентификатор закрытого лобби. return Plugin_Handled; // Блокирует установку значений настроек сессии в приватном лобби. } } return Plugin_Continue; } Получай фашист по морде! Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти