[CS: Source] Easy Round Events

Equiment

Участник
Сообщения
32
Реакции
16
Easy Round Events​

Описание:
Простой плагин, который выполняет четыре функции:

1. Проигрывает ваш звук при старте раунда
2. Заменяет стандартный звук в конце раунда
3. Выводит ваше сообщение в начале раунда
4. Заменяет стандартное сообщение в конце раунда

Тестировал в CS:S, возможно работает и в других играх.

Все звуки и сообщения являются разными для команд.
PS: Да, плагин заменяет стандартные "Counter-Terrorist / Terrorist team win".

Конфиг:
HTML:
sm_ct_start_sound - Звук для КТ при старте.
sm_t_start_sound - Звук для Т при старте.
sm_ct_end_sound - Звук для КТ в конце.
sm_t_end_sound - Звук для Т в конце.

Сообщения:
Все сообщения вы можете легко изменить в файле фраз. Стартовые сообщение поддерживают цвета (через morecolors).
Полный список цветов можно найти тут.

Это мой первый плагин, жду ваших отзывов :)
 

Вложения

  • easy_round_events.sp
    3.3 КБ · Просмотры: 79
  • easy_round_events.smx
    11.2 КБ · Просмотры: 38
  • easy_round_events.phrases.txt
    821 байт · Просмотры: 71
Последнее редактирование:

R1KO

fuck society
Сообщения
9,460
Реакции
7,799
  • Команда форума
  • #3
где сам плагин?
 

R1KO

fuck society
Сообщения
9,460
Реакции
7,799
  • Команда форума
  • #5
trial, начнем:
PHP:
public OnConfigsExecuted() 
{
	GetConVarString(g_CvarCTstart, g_soundCTs, 80);
	decl String:CTs[80];
	PrecacheSound(g_soundCTs, true);
	Format(CTs, sizeof(CTs), "sound/%s", g_soundCTs);
	AddFileToDownloadsTable(CTs);
//
	GetConVarString(g_CvarTstart, g_soundTs, 80);
	decl String:Ts[80];
	PrecacheSound(g_soundTs, true);
	Format(Ts, sizeof(Ts), "sound/%s", g_soundTs);
	AddFileToDownloadsTable(Ts);
//
	GetConVarString(g_CvarCTwin, g_soundCTw, 80);
	decl String:CTw[80];
	PrecacheSound(g_soundCTw, true);
	Format(CTw, sizeof(CTw), "sound/%s", g_soundCTw);
	AddFileToDownloadsTable(CTw);
//
	GetConVarString(g_CvarTwin, g_soundTw, 80);
	decl String:Tw[80];
	PrecacheSound(g_soundTw, true);
	Format(Tw, sizeof(Tw), "sound/%s", g_soundTw);
	AddFileToDownloadsTable(Tw);
}

Лучше сделать так:
PHP:
public OnMapStart() 
{
	GetConVarString(g_CvarCTstart, g_soundCTs, 80);
	GetConVarString(g_CvarTstart, g_soundTs, 80);
	GetConVarString(g_CvarCTwin, g_soundCTw, 80);
	GetConVarString(g_CvarTwin, g_soundTw, 80);
	LoadSound(g_soundCTs);
	LoadSound(g_soundTs);
	LoadSound(g_soundCTw);
	LoadSound(g_soundTw);
}

stock(String:sSound[])
{
	decl String:sFile[80];
	Format(sFile, sizeof(sFile), "sound/%s", sSound);
	if(FileExists(sFile))
	{
		PrecacheSound(sSound, true);
		AddFileToDownloadsTable(sFile);
	}
}

PHP:
if ((IsClientInGame(client)) && (IsPlayerAlive(client)))
{
	if (GetClientTeam(client) == 3)
	{
		CPrintToChat(client, "%t", "CT_Start");
		EmitSoundToClient(client,g_soundCTs);
	}
	if (GetClientTeam(client) == 2)
	{
		CPrintToChat(client, "%t", "T_Start");
		EmitSoundToClient(client,g_soundTs);
	}
}
Я бы сделал так:
PHP:
if ((IsClientInGame(client)) && (IsPlayerAlive(client)))
{
	new iTeam = GetClientTeam(client);
	CPrintToChat(client, "%t", (iTeam == 3) ? "CT_Start":"T_Start");
	EmitSoundToClient(client, (iTeam == 3) ? g_soundCTs:g_soundTs);
}

PHP:
public Event_RoundEnd(Handle:event, const String:name[], bool:silent) 
{ 
	if (!silent) 
	{ 
		SetEventBroadcast(event, true); 
	}
	
	winner = GetEventInt(event, "winner");
	
	for(new i = 1; i <= MaxClients; i++)
	{
		if(IsClientInGame(i) && !IsFakeClient(i))
		{
			StopSound(i, SNDCHAN_STATIC, "radio/ctwin.wav");
			StopSound(i, SNDCHAN_STATIC, "radio/terwin.wav");
		}
		if (winner == 2)
		{
			PrintCenterText(i, "%t", "T_Win");
			EmitSoundToClient(i, g_soundTw, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
		}
		if (winner == 3)
		{
			PrintCenterText(i, "%t", "CT_Win");
			EmitSoundToClient(i, g_soundCTw, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
		}
	}
}

Так:
PHP:
public Event_RoundEnd(Handle:event, const String:name[], bool:silent) 
{ 
	if (!silent) SetEventBroadcast(event, true); 
	
	new iWinner = GetEventInt(event, "winner");
	
	for(new i = 1; i <= MaxClients; i++)
	{
		if(IsClientInGame(i) && !IsFakeClient(i)) StopSound(i, SNDCHAN_STATIC, (iWinner == 3) ? "radio/ctwin.wav":"radio/terwin.wav");
	}
	
	PrintCenterTextAll("%t", (iWinner == 2) ? "T_Win":"CT_Win");
	EmitSoundToAll((iWinner == 2) ? g_soundTw:g_soundCTw, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
}

И еще:
PHP:
StopSound(i, SNDCHAN_STATIC, ...
Вроде не нужно делать если ты делаешь
PHP:
PrecacheSound("...", false);
 

Vit_ amin

Добрая душа
Сообщения
1,596
Реакции
763
Нравиться способ со знаком вопроса (условие вместо if) только не совсем понимаю как его делать ...
 

Мария Фомина

Участник
Сообщения
41
Реакции
14
А добавьте еще звук закладки и разминирования бомбы) Я думаю это не сложно будет сделать:)
 

R1KO

fuck society
Сообщения
9,460
Реакции
7,799
  • Команда форума
  • #9
Мария Фомина, пробуй
 

Вложения

  • easy_round_events.smx
    10.8 КБ · Просмотры: 22
  • easy_round_events.sp
    3.9 КБ · Просмотры: 45
Сверху Снизу