Не воспроизводится музыка

Тема в разделе "Программирование / Скриптинг", создана пользователем Андрей Трегубенко, 18 фев 2015.

  1. Андрей Трегубенко

    Андрей Трегубенко

    Сообщения:
    13
    Симпатии:
    0
    По какой-то причине не играет музыка.
    - Файлы качаются
    - Название трека пишется в чат
    - Музыка не играет
    - Ошибок в консоли у клиента нет
    - Ошибок в логах сервера нет

    Я озадачен. Помогите.

    PHP:
    #include <sourcemod>
    #include <sdktools>
    #include <sdktools_sound>

    #define PLUGIN_VERSION "1.6"
    #define MAX_FILE_LEN 150
    #define MAX_DISPLAY_LENGTH 150
    #define MAX_SOUNDS 100
    #define MAX_PLAYERS 256

    new Handle:EnNameEnN;
    new 
    SoundValue[MAXPLAYERS];
    new 
    Handle:g_hEnabled;
    new 
    Handle:g_hFile;

    new 
    g_numSounds;
    new 
    randomSound;
    new 
    String:g_displayNames[MAX_SOUNDS][MAX_FILE_LEN];
    new 
    String:g_soundNames[MAX_SOUNDS][MAX_DISPLAY_LENGTH];

    public 
    Plugin:myinfo =  
    {  
        
    name "RES",
        
    author "Z3R0M1ND",
        
    description "Playing music on end round.",
        
    version PLUGIN_VERSION,
        
    url ""
    }  

    public 
    OnPluginStart()  

        
    RegConsoleCmd("res"ToggleRES);
        
    RegAdminCmd("sm_soundtest"TestRESADMFLAG_ROOT);
        
        
    EnName CreateConVar("dp_esname_enable""1""Enable sound name");
        
    EnN GetConVarBool(EnName);
        
        
    AutoExecConfig(true"RoundEndSound");
        
    CreateConVar("sm_res_version"PLUGIN_VERSION"Round End Sound"FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
        
    g_hEnabled        CreateConVar("sm_res_enabled",  "1",                    "Enable/disable displaying advertisements.");
        
    g_hFile           CreateConVar("sm_res_file",        "res_musiclist.txt",     "File to read the advertisements from.");
            
        
    HookEvent("round_end"RoundEnd);
        
        
    ParseMusic();
    }

    public 
    Action:ToggleRES(clientargs)
    {
        if (
    client 0)
        {
            switch(
    SoundValue[client])
            {
                case 
    1:
                {
                    
    SoundValue[client] = 0;
                    
    PrintToChat(client"Музыка включена");
                }
                case 
    0:
                {
                    
    SoundValue[client] = 1;
                    
    PrintToChat(client"Музыка отключена");
                }
            }
        }
    }

    public 
    Action:TestRES(clientargs)
    {
        if (
    client 0)
        {
            
    PlayMusic();
        }
    }

    public 
    OnClientConnected(client)
    {
        
    SoundValue[client] = 0;
    }

    public 
    OnMapStart() 
    {
        if (
    GetConVarBool(g_hEnabled))
            for(new 
    0g_numSoundsi++)    
                
    SoundDownload(g_soundNames[i]);
    }

    stock SoundDownload(const String:soundLocation[])
    {
        
    decl String:fullSoundPath[PLATFORM_MAX_PATH];
        
    Format(fullSoundPathsizeof(fullSoundPath), "sound/%s"soundLocation);

        if (
    FileExists(fullSoundPath))
        {
            
    AddFileToDownloadsTable(fullSoundPath);
            
    PrecacheSound(soundLocation);
        }
    }

    ParseMusic()
    {
        if (
    GetConVarBool(g_hEnabled))
        {
            
    decl String:sFile[256], String:sPath[MAX_FILE_LEN];
            
    GetConVarString(g_hFilesFilesizeof(sFile));
            
    BuildPath(Path_SMsPathsizeof(sPath), "configs/%s"sFile);
            
            new 
    Handle:hFile OpenFile(sPath"r");
            if (
    hFile == INVALID_HANDLE)
            {
                
    SetFailState("addons/sourcemod/configs/res_musiclist.txt not found");
                return;
            }
            
            
    g_numSounds 0;
            
            while (!
    IsEndOfFile(hFile))
            {
                
    decl String:line[255];
                if (!
    ReadFileLine(hFilelinesizeof(line)))
                {
                    break;
                }
                
                
    /* Trim comments */
                
    new len strlenline );
                new 
    bool:ignoring false;
                for ( new 
    0leni++ )
                {
                    if ( 
    ignoring )
                    {
                        if ( 
    line] == '"' )
                        {
                            
    ignoring false;
                        }
                    } else {
                        if ( 
    line] == '"' )
                        {
                            
    ignoring true;
                        } else if ( 
    line] == ';' ) {
                            
    line] = '\0';
                            break;
                        } else if ( 
    line] == '/' && != len && line] == '/')
                        {
                            
    line] = '\0';
                            break;
                        }
                    }
                }
            
                
    TrimStringline );
                
                if ( ( 
    line] == '/' && line] == '/' ) || (line] == ';' || line] == '\0' ) )
                {
                    continue;
                }
                
                
    g_displayNamesg_numSounds ][ ] = 0;
                
    g_soundNamesg_numSounds ][ ] = 0;
                
                new 
    String:file_name[MAX_DISPLAY_LENGTH];
                new 
    String:file_sound[MAX_FILE_LEN];    
                new 
    cur_idxidx;
                
                
    cur_idx BreakString(linefile_namesizeof(file_name));
                
    strcopy(g_displayNames[g_numSounds], sizeof(g_displayNames[]), file_name);
                
                
    idx cur_idx;
                
    cur_idx BreakString(line[idx], file_soundsizeof(file_sound));
                
    strcopy(g_soundNames[g_numSounds], sizeof(g_soundNames[]), file_sound);
                
                
    g_numSounds++;
            }
            
            
    CloseHandlehFile );
        }
    }

    public 
    RoundEnd(Handle:event, const String:name[], bool:dontBroadcast)  
    {
        
    PlayMusic();
    }

    PlayMusic()
    {
        for (new 
    client 1client <= MaxClientsclient++)
        {
            if (
    SoundValue[client] == && IsClientInGame(client))
            {
                
    randomSound GetRandomInt(0g_numSounds 1);
                
    EmitSoundToAll(g_soundNames[randomSound]);
                
                if(
    EnNPrintToChat(client"[ МУЗЫКА ] \x04 %s"g_displayNames[randomSound]);
            }
        }
    }
     
  2. AlmazON

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

    Сообщения:
    4.509
    Симпатии:
    1.962
    CS:GO? Эта игра не поддерживается плагином толком, это для CS:S.
     
  3. Андрей Трегубенко

    Андрей Трегубенко

    Сообщения:
    13
    Симпатии:
    0
    Ну так может подскажите как оптимизировать для CS:GO?
     
  4. Саша Шеин

    Саша Шеин

    Сообщения:
    1.259
    Симпатии:
    191
    Андрей Трегубенко, формат звуков какой? Путь до звуков какой?
     
  5. AlmazON

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

    Сообщения:
    4.509
    Симпатии:
    1.962
    Не "оптимизировать", а "подстроить" тогда уж. Думаю, где-то так:
    Полностью удаляем и заменям на:
    PHP:
    public OnMapStart() if (GetConVarBool(g_hEnabled))
    {
        
    decl String:fullSoundPath[PLATFORM_MAX_PATH];
        for (new 
    FindStringTable("soundprecache"), ig_numSoundsi++)
        if (
    FormatEx(fullSoundPathPLATFORM_MAX_PATH"sound/%s"g_soundNames[i]) > && FileExists(fullSoundPath))
        {
            
    AddFileToDownloadsTable(fullSoundPath);
            
    FormatEx(g_soundNames[i], MAX_FILE_LEN"*%s"soundLocation);
            
    AddToStringTable(sg_soundNames[i]);
        }
    }
     
  6. Саша Шеин

    Саша Шеин

    Сообщения:
    1.259
    Симпатии:
    191
  7. Андрей Трегубенко

    Андрей Трегубенко

    Сообщения:
    13
    Симпатии:
    0
    Не помогло
     
  8. Андрей Трегубенко

    Андрей Трегубенко

    Сообщения:
    13
    Симпатии:
    0
    Все равно (
     
  9. AlmazON

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

    Сообщения:
    4.509
    Симпатии:
    1.962
    Не плагин, а бред! Лучше возьми какой-нибудь другой. В этом править ещё надо.