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

Тема в разделе "Counter-Strike: Global Offensive", создана пользователем Dmitriy Mikliaev, 25 апр 2015.

  1. Dmitriy Mikliaev

    Dmitriy Mikliaev

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

    Код:

    Код:
    #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.");
    	}
    }
     
  2. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.718
    Симпатии:
    453
    Оффтоп

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

    Dmitriy Mikliaev

    Сообщения:
    168
    Симпатии:
    2
    Спасибо, но можно подробный пример с прописанной директорией звука?
     
  4. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.718
    Симпатии:
    453
    PHP:
    EmitSoundToClient(clientsound.mp3);  
    sound.mp3 должен быть в папке sound\
     
  5. AlmazON

    AlmazON деревянный © yand3xmail

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

    Danyas Спасибо, браток © yand3xmail Модератор

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

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.964
    На CS:GO всё куда запущенней специфичней.
     
    Влад Латыпов 1668282800 и Danyas нравится это.