Хочу проиграть звук после соединения клиента, через функцию OnClientConnected

Тема в разделе "Программирование / Скриптинг", создана пользователем AMD, 15 апр 2014.

  1. AMD

    AMD

    Сообщения:
    180
    Симпатии:
    16
    Ну во первых хочу сразу подметить что я не уверен в том что я беру ту функцию которая мне подходит.

    Пример с вики:
    PHP:
    #include <sourcemod>
    #include <sdktools>
     
    new const String:FULL_SOUND_PATH[] = "sound/custom/ur.mp3";
    new const 
    String:RELATIVE_SOUND_PATH[] = "*custom/ur.mp3";
     
    public 
    OnPluginStart()
    {
        
    RegConsoleCmd"sm_testsound"sm_testsound );
    }
     
    public 
    OnMapStart()
    {
        
    AddFileToDownloadsTableFULL_SOUND_PATH );
        
    FakePrecacheSoundRELATIVE_SOUND_PATH );
    }
     
    public 
    Action:sm_testsoundclientargc )
    {
        
    EmitSoundToClientclientRELATIVE_SOUND_PATH );
     
        return 
    Plugin_Handled;
    }
     
    stock FakePrecacheSound( const String:szPath[] )
    {
        
    AddToStringTableFindStringTable"soundprecache" ), szPath );
    }
    Ну тут вроде ясно, вызывается действие sm_testsound и музыка играет.

    Но как вызвать это действие через OnClientConnected я тупо не понимаю как составить код, примеры мне особо не понятны, я не знаю интернационал(

    Пробывал как то худо бедно заюзать
    OnClientConnected

    Syntax:
    forward OnClientConnected(client);

    Usage:
    client Client index.
    не получилось, это форвард как он используется и где объявляется не знаю, не ну примерно догадываюсь.

    Пробывал так, но сразу понел что бред.
    PHP:
    public OnClientConnectedclientid)
    {
        
    EmitSoundToClientclientRELATIVE_SOUND_PATH );
     
        return 
    Plugin_Handled;
    }
    Как верно написать код?
     
  2. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.998
    Симпатии:
    2.992
    AMD, лучше в OnClientPostAdminCheck(client);
     
    AMD нравится это.
  3. AMD

    AMD

    Сообщения:
    180
    Симпатии:
    16
    Спасибо конечно, но синтаксис тот же((
    OnClientPostAdminCheck

    Syntax:
    forward OnClientPostAdminCheck(client);

    Usage:
    client Client index.
    :crazy:

    P.S. Просто не до конца понимаю алгоритм написания чего либо.
     
  4. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.998
    Симпатии:
    2.992
    PHP:
    #include <sourcemod> 
    #include <sdktools>

    #define SOUND_PATH "ur.mp3"
      
    public OnMapStart() 
    {
        
    PrecacheSound(SOUND_PATH);
        
    decl String:sPath[PLATFORM_MAX_PATH];
        
    FormatEx(sPathsizeof(sPath), "sound/custom/%s"SOUND_PATH);
        
    AddFileToDownloadsTable(sPath); 
    }

    public 
    OnClientPostAdminCheck(client)

        if(
    client && !IsFakeClient(client)) ClientCommand(client"playgamesound %s"SOUND_PATH);
    Еще не научился работать с папкой custom, если кто хочет поделиться опытом - буду рад.
     
  5. AMD

    AMD

    Сообщения:
    180
    Симпатии:
    16
    Попробовал твой код, не работает(
    Сделал так:
    PHP:
    #include <sourcemod>
    #include <sdktools>
     
    new const String:FULL_SOUND_PATH[] = "sound/a/nd.mp3";
    new const 
    String:RELATIVE_SOUND_PATH[] = "*a/nd.mp3";
     
    public 
    OnMapStart()
    {
        
    AddFileToDownloadsTableFULL_SOUND_PATH );
        
    FakePrecacheSoundRELATIVE_SOUND_PATH );
    }
     
    public 
    OnClientPostAdminCheckclient )
    {
        
    EmitSoundToClientclientRELATIVE_SOUND_PATH );
    }
     
    stock FakePrecacheSound( const String:szPath[] )
    {
        
    AddToStringTableFindStringTable"soundprecache" ), szPath );
    }
    Работает, но после закрытие motd звук блочится, наверное это из за того что в момент респавна вызываются другие *.mp3.

    Вообще хочется использовать твой код, ибо там проверка на фэйк клиент, и decl используется, вроде как лучше.
     
  6. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.569
    Симпатии:
    1.152
  7. AMD

    AMD

    Сообщения:
    180
    Симпатии:
    16
  8. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.569
    Симпатии:
    1.152
    AMD, я вроде написал в помощь.
     
  9. semjef

    semjef semjef.ru

    Сообщения:
    1.031
    Симпатии:
    473
    AMD, Оффтоп