Иконка ресурса

SDKHooks Game Description Override 1.0

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #41
Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

acik, В момент выполнения server.cfg сервер уже запросит имя игры, и поэтому изменить его нельзя в server.cfg

Нашел вот код:
PHP:
#pragma semicolon 1

#include <sourcemod>
#include <sdkhooks>

#define NAME "Game Description Override"
#define VERSION "1.3"
//#define DEBUG

new String:g_szGameDesc[64] = "";
new Handle:g_hCvarGameDesc = INVALID_HANDLE;
new Handle:g_hCvarTimerTime = INVALID_HANDLE;
new Handle:g_hTimerAutoChange = INVALID_HANDLE;
new Handle:g_hCvarManiFix = INVALID_HANDLE;
new bool:g_bChangeGameDesc = false;
new bool:g_bMapRoaded = false;
new bool:g_bManiFix = false;
new currLine = 0;

public Plugin:myinfo = {
	name = NAME,
	author = "psychonic (modified by Zuko and Luki)",
	description = "Allows changing of displayed game type in server browser",
	version = VERSION,
	url = "http://www.nicholashastings.com | http://HLDS.pl | www.strefagier.com.pl"
};

public OnPluginStart()
{
	CreateConVar("gamedesc_override_version", VERSION, NAME, FCVAR_PLUGIN|FCVAR_DONTRECORD|FCVAR_SPONLY|FCVAR_NOTIFY);
	g_hCvarGameDesc = CreateConVar("gamedesc_override", "", "Game Description Override (set blank \"\" for default no override)", FCVAR_PLUGIN);
	g_hCvarManiFix = CreateConVar("gamedesc_manifix", "0", "Mani Fix. Enable if 3rd party plugins have trouble detecting gametype. 0-Disabled (default), 1-Enabled", FCVAR_PLUGIN);
	g_hCvarTimerTime = CreateConVar("gamedesc_auto_change_time", "240.0", "How often description has to be changed. (in seconds, 0 - to disable)", FCVAR_PLUGIN);
	
	AutoExecConfig();

	HookConVarChange(g_hCvarGameDesc, CvarChange_GameDesc);
	HookConVarChange(g_hCvarManiFix, CvarChange_ManiFix);
	HookConVarChange(g_hCvarTimerTime, CvarChange_TimerTime);
}

public OnMapStart()
{
	g_bMapRoaded = true;

	if (GetConVarInt(g_hCvarTimerTime) > 0)
	{
		g_hTimerAutoChange = CreateTimer(GetConVarFloat(g_hCvarTimerTime), timerProc, _, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE);
		currLine = 0;
	}
}

public OnMapEnd()
{
	g_bMapRoaded = false;
}

public OnAllPluginsLoaded()
{
	if (GetExtensionFileStatus("sdkhooks.ext") != 1)
	{
		SDKHooksFail();
	}
}

public OnLibraryRemoved(const String:name[])
{
	if (strcmp(name, "sdkhooks.ext") == 0)
	{
		SDKHooksFail();
	}
}

SDKHooksFail()
{
	SetFailState("SDKHooks is required for Game Description Override");
}

public Action:OnGetGameDescription(String:gameDesc[64])
{
	if (g_bChangeGameDesc && (g_bMapRoaded || !g_bManiFix))
	{
		strcopy(gameDesc, sizeof(gameDesc), g_szGameDesc);
		return Plugin_Changed;
	}
	
	return Plugin_Continue;
}

public Action:timerProc(Handle:timer)
{
	#if defined DEBUG
		PrintToServer("Timer Executed");
	#endif
	new String:sFilePath[PLATFORM_MAX_PATH];
	BuildPath(Path_SM, sFilePath, sizeof(sFilePath), "configs/gamedesc.txt");
	new Handle:Descs = CreateArray(255, 0);
	new Handle:File = OpenFile(sFilePath, "r");
	while (!IsEndOfFile(File))
	{
		new String:buffer[255];
		ReadFileLine(File, buffer, sizeof(buffer));
		ResizeArray(Descs, GetArraySize(Descs));
		PushArrayString(Descs, buffer);
	}
	
	new String:buff[255];
	GetArrayString(Descs, currLine, buff, sizeof(buff));
	currLine++;
	if (currLine >= GetArraySize(Descs))
	{
		currLine = 0;
	}
	SetConVarString(g_hCvarGameDesc, buff, true);
	strcopy(g_szGameDesc, sizeof(g_szGameDesc), buff);
	CloseHandle(Descs);
	CloseHandle(File);
}

public CvarChange_GameDesc(Handle:cvar, const String:oldVal[], const String:newVal[])
{
	strcopy(g_szGameDesc, sizeof(g_szGameDesc), newVal);
	if (newVal[0] > 0)
	{
		g_bChangeGameDesc = true;
	}
	else
	{
		g_bChangeGameDesc = false;
	}
}

public CvarChange_TimerTime(Handle:cvar, const String:oldVal[], const String:newVal[])
{
	#if defined DEBUG
		PrintToServer("CvarChange_TimerTime Change Hook");
	#endif
	
	if (g_hTimerAutoChange != INVALID_HANDLE)
	{
		KillTimer(g_hTimerAutoChange);
		g_hTimerAutoChange = INVALID_HANDLE;
	}

	g_hTimerAutoChange = CreateTimer(GetConVarFloat(g_hCvarTimerTime), timerProc, _, TIMER_REPEAT | TIMER_FLAG_NO_MAPCHANGE);
	currLine = 0;
}

public CvarChange_ManiFix(Handle:cvar, const String:oldVal[], const String:newVal[])
{
	g_bManiFix = bool:StringToInt(newVal);
}

Источник

Или например так не выйдет?
PHP:
public OnConfigsExecuted()
{
	OnGetGameDescription(g_sGameDesc);
}

public Action:OnGetGameDescription(String:gameDesc[64])
{
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
  • Автор ресурса
  • #43
Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

R1KO, этот код был для старого движка, в котором OnGetGameDescription вызывалось чуть ли не каждый фрейм, или же при каждом запросе информации о сервере... В новом движке вызов происходит один раз во время запуска сервера, собственно поэтому этот код и был по умолчанию вырезан из SDKHooks
 

smoke96

Участник
Сообщения
1,134
Реакции
175
Может что расширение sdkhooks из нового сорс мода переделать и впихнуть вичу изменения названия игры?
 

uJIb9

Game4net.ru
Сообщения
149
Реакции
14
Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override


Сможешь в новом sdkhooks сделать данную фичу, а то старый уже устарел и некоторые плагины с ним конфликтуют и сервер не запускается?
 
Последнее редактирование:

Димок

Участник
Сообщения
153
Реакции
7
После последнего обновления не работает.:)
 

Dobro777

Участник
Сообщения
45
Реакции
5
После обновления css до версии 85, плагин перестал работать. Ребят кто знает как восстановить, чтобы он снова заработал.... Заранее благодарю за помощь.
 

Димок

Участник
Сообщения
153
Реакции
7
Может кто нибудь займется этим плагином под новый sm? Очень надо.:)
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
  • Автор ресурса
  • #50
Будет время заниматься сборкой MM/SM - все равно буду перекомпилировать себе CSSDM - скомпилирую и SDKHooks. О сроках сказать ничего не могу.
 

Димок

Участник
Сообщения
153
Реакции
7
Ну когда же будет обновления??? все уже заждались:blush2:
 

rom4s

Не понимает, что происходит &nbsp;
Сообщения
214
Реакции
194
Думаю ответ дан. Для остальных движков и так работает, а удалив это условие и оставив один дефайн, получаем OnGetGameDescription на указанных движках.
Похоже это больше ничего не дает. Оффтоп
 

SourceSamil

Мошенник
Сообщения
121
Реакции
28
На am уже давно выложили другой аналог (рабочий)
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #56
SourceSamil, ссылку скинь
 

SourceSamil

Мошенник
Сообщения
121
Реакции
28
Да, верно, он, эм, а что мешает тебе поставить steam works?
No steam - no support
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #60
SourceSamil, ну а зачем ради одной ф-и ставить расширение?
 
Сверху Снизу