Перейти к содержанию

Изменения режима игры


Kimi

Рекомендуемые сообщения

Стал очень часто замечать, что при сборе лобби игроки попадают на мой сервер и меняют режим игры с vs на кооператив (или другой)

Как можно заблокировать смену режима игры?

Ссылка на комментарий
Поделиться на другие сайты

  • Администратор

Запиши переменные в cfg/server.cfg, чтобы заставить игровой режим работать принудительно:

//coop, versus, survival
sm_cvar mp_gamemode "coop" 

 

Получай фашист по морде!

Ссылка на комментарий
Поделиться на другие сайты

В 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"

но есть еще вопрос
как запретить игрокам создавать приватное лобби (только для друзей)

Ссылка на комментарий
Поделиться на другие сайты

  • Администратор
В 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;
}

 

Получай фашист по морде!

Ссылка на комментарий
Поделиться на другие сайты

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;
}

 

Я так понимаю, это полностью запрещает подключение через лобби. А мне нужно запретить только приватное лобби.

Ссылка на комментарий
Поделиться на другие сайты

  • 8 месяцев спустя...
  • Администратор
В 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;
  }

 

Получай фашист по морде!

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...