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

Dmitriy Mikliaev

Участник
Сообщения
185
Реакции
5
Как сделать, чтобы игроку, которого перекинуло, воспроизводился звук, хочу записать фразу с содержанием такого типа "Вас перекинуло за противоположную команду"!

Код:

C-подобный:
#include <cstrike>

public Plugin:myinfo = 
{
	name = "Special Team Balancer",
	author = "AlmazON",
	description = "Балансировка команд, исключающая администраторов",
	version = "0.1.1m",
	url = "http://www.hlmod.ru"
}

public OnPluginStart()
{
	HookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);
	OnRebuildAdminCache(AdminCache_Admins);
}

public OnRebuildAdminCache(AdminCachePart:p) for(new i=1; i<=MaxClients; i++) if(IsClientInGame(i)) OnClientPostAdminCheck(i);

new bool:bCA[MAXPLAYERS+1];
public OnClientPostAdminCheck(c) bCA[c] = GetUserAdmin(c) != INVALID_ADMIN_ID;
public Event_RoundEnd(Handle:E, String:N[], bool:B)
{
	new a, b;
	for(new i=1; i<=MaxClients; i++) if(IsClientInGame(i)) switch(GetClientTeam(i))
	{
		case 2:a++;
		case 3:b++;
	}if((a=b-a) >1)
	{
		for(b=1; b<=MaxClients; b++) if(bCA[b]==false && IsClientInGame(b) && GetClientTeam(b) ==3)
		{
			CS_SwitchTeam(b, 2);
			PrintHintText(b, "Вы были перемещены в команду Террористов!");
			if(--a ==1) break;
		}for(b=1; b<=MaxClients; b++) if(IsClientInGame(b)) PrintToChat(b, " \x01\04[Автобаланс] \x01Лишние игроки команды \x03Контр-террористов \x05перемещены\x01.");
	}else if(a <-1)
	{
		for(b=1; b<=MaxClients; b++) if(bCA[b]==false && IsClientInGame(b) && GetClientTeam(b) ==2)
		{
			CS_SwitchTeam(b, 3);
			PrintHintText(b, "Вы были перемещены в команду Контр-террористов!");
			if(++a ==-1) break;
		}for(b=1; b<=MaxClients; b++) if(IsClientInGame(b)) PrintToChat(b, " \x01\04[Автобаланс] \x01Лишние игроки команды \x03Террористов \x05перемещены\x01.");
	}
}
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
Оффтоп

Добавлено через 19 минут
PHP:
 PrintHintText(b, "Вы были перемещены в команду Контр-террористов!");
Вроде это ж, а звук можно сделать так
PHP:
EmitSoundToClient(client, file);
 
Последнее редактирование:

Dmitriy Mikliaev

Участник
Сообщения
185
Реакции
5
Оффтоп

Добавлено через 19 минут
PHP:
 PrintHintText(b, "Вы были перемещены в команду Контр-террористов!");
Вроде это ж, а звук можно сделать так
PHP:
EmitSoundToClient(client, file);

Спасибо, но можно подробный пример с прописанной директорией звука?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
EmitSoundToClient(client, sound.mp3); 
sound.mp3 должен быть в папке sound\
В коде пишется с обычным флешем (не обратным): sound/
Сам звук должен идти строкой и со звёздочкой впереди, т.е. EmitSoundToClient(client, "*sound.mp3"); + необходимо поставить этот звук на загрузку и фиктивно "кэшировать":
PHP:
public OnMapStart()
{
    AddFileToDownloadsTable("sound/sound.mp3");
    AddToStringTable(FindStringTable("soundprecache"), "*sound.mp3");
}
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072
В коде пишется с обычным флешем (не обратным): sound/
Сам звук должен идти строкой и со звёздочкой впереди, т.е. EmitSoundToClient(client, "*sound.mp3"); + необходимо поставить этот звук на загрузку и фиктивно "кэшировать":
PHP:
public OnMapStart()
{
    AddFileToDownloadsTable("sound/sound.mp3");
    AddToStringTable(FindStringTable("soundprecache"), "*sound.mp3");
}

Если быть честным то я не вникал, раньше через
PHP:
ClientCommand("play sound.mp3");
делал, и вроде работало.
(CSS only)
 
Сверху Снизу