Проигрывание mp3 в конце раунда - не работает скачивание файлов

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
17
Реакции
4
Добрый день,

пытаюсь модифицировать плагин для проигрывания mp3 звуков по концу раунда в случае выигрыша T/CT.
При заходе игрока на сервер в консоли сыпится следуюющее
Код:
BUILD 1500 SERVER (0 CRC)
Server # 5
Invalid file type...skipping download of sound/roundend/knife.mp3

Invalid file type...skipping download of sound/roundend/kidrock.mp3

Invalid file type...skipping download of sound/roundend/gta_success_short.mp3

Invalid file type...skipping download of sound/roundend/7army.mp3

Requesting tempdecal.wad from server
Сам код плагина (кривоват, прошу не судить строго)

Код:
#include <amxmodx> 
#include <amxmisc>
#include <engine>

#if !defined MAX_PLAYERS
    #define MAX_PLAYERS 32
#endif

new const SOUND_CFG_CT[] = "sound_roundend_ct.ini";
new const SOUND_CFG_T[] = "sound_roundend_t.ini";

new Array:g_soundsCT;
new Array:g_soundsT;

new    szSoundName[64]; 
new szSoundPath[128];
new iUsers[MAX_PLAYERS];
new iNum; 

public plugin_init()
{
    register_plugin("Round Sound","0.1m1","XyLiGaN & andy")

    register_event("SendAudio", "t_win", "a", "2&%!MRAD_terwin")
    register_event("SendAudio", "ct_win", "a", "2&%!MRAD_ctwin")
}

public t_win()
{
    new rand = random_num(0, ArraySize(g_soundsT)-1)
    ArrayGetString(g_soundsCT, rand, szSoundName, charsmax(szSoundName))
    formatex(szSoundPath, charsmax(szSoundPath), "sound/roundend/%s", szSoundName)
    get_players(iUsers, iNum, "eh", "T")

    for(new i; i < iNum ; i++) {
        client_cmd(i,"mp3 stop")
        client_cmd(i,"mp3 play %s", szSoundPath)
    }

    return PLUGIN_CONTINUE
}

public ct_win()
{
    new rand = random_num(0, ArraySize(g_soundsCT)-1)
    ArrayGetString(g_soundsCT, rand, szSoundName, charsmax(szSoundName))
    formatex(szSoundPath, charsmax(szSoundPath), "sound/roundend/%s", szSoundName) 
    get_players(iUsers, iNum, "eh", "CT")

    for(new i; i < iNum ; i++) {
        client_cmd(i,"mp3 stop")
        client_cmd(i,"mp3 play %s", szSoundPath)
    }

    return PLUGIN_CONTINUE
}

public plugin_precache()
{
    LoadSoundsFromFile()
    for(new i; i < ArraySize(g_soundsCT); i++)
    {
        ArrayGetString(g_soundsCT, i, szSoundName, charsmax(szSoundName))
        formatex(szSoundPath, charsmax(szSoundPath), "sound/roundend/%s", szSoundName)
        precache_generic(szSoundPath)
    }
    for(new i; i < ArraySize(g_soundsT); i++)
    {
        ArrayGetString(g_soundsT, i, szSoundName, charsmax(szSoundName))
        formatex(szSoundPath, charsmax(szSoundPath), "sound/roundend/%s", szSoundName)
        precache_generic(szSoundPath)
    }

    return PLUGIN_CONTINUE
}

public LoadSoundsFromFile()
{
    g_soundsCT = ArrayCreate(charsmax(szSoundName));
    g_soundsT = ArrayCreate(charsmax(szSoundName));
    new szDir[128], szFile[128];
    get_localinfo("amxx_configsdir", szDir, charsmax(szDir));
    formatex(szFile, charsmax(szFile), "%s/%s", szDir, SOUND_CFG_CT);
    if(file_exists(szFile))
    {
        new f = fopen(szFile, "rt");
        
        if(f)
        {
            
            while(!feof(f))
            {
                fgets(f, szSoundName, charsmax(szSoundName));
                
                if(!szSoundName[0] || szSoundName[0] == ';') continue;
                
                ArrayPushArray(g_soundsCT, szSoundName);
            }
            fclose(f);
            
            new iSize = ArraySize(g_soundsCT);
            
            if(iSize == 0)
            {
                set_fail_state("Nothing loaded from file.");
            }
        }        
    }
    else
    {
        set_fail_state("CT sound file doesn't exist.");
    }
    formatex(szFile, charsmax(szFile), "%s/%s", szDir, SOUND_CFG_T);
    if(file_exists(szFile))
    {
        new f = fopen(szFile, "rt");
        
        if(f)
        {
            while(!feof(f))
            {
                fgets(f, szSoundName, charsmax(szSoundName));
                
                if(!szSoundName[0] || szSoundName[0] == ';') continue;
                
                ArrayPushArray(g_soundsT, szSoundName);
            }
            fclose(f);
            
            new iSize = ArraySize(g_soundsT);
            
            if(iSize == 0)
            {
                set_fail_state("Nothing loaded from file.");
            }
        }        
    }
    else
    {
        set_fail_state("T sound file doesn't exist.");
    }
}

public plugin_end()
{
    ArrayDestroy(g_soundsCT);
    ArrayDestroy(g_soundsT);
}

Содержимое sound_roundend_ct.ini
Код:
knife.mp3
kidrock.mp3
gta_success_short.mp3
7army.mp3

Прекеш вроде как работает - в каталоге sound/roundend наряду с mp3 файлами появляются ztmp.

В чем может быть причина
 
Сообщения
775
Реакции
291
Помог
11 раз(а)
Andy, причина в том что файл в данный момент используются и получается это расширение
19 Июл 2018
Ну плагин, который отвечает за два звука, слишком огромный
 
Сообщения
198
Реакции
273
Помог
5 раз(а)
Если файлы передаются с игрового сервера (не через fastdl), то они предварительно сжимаются перед отправкой. Так и получаются ztmp файлы.
Проблема с музыкой только у контров?
 
Сообщения
17
Реакции
4
Если файлы передаются с игрового сервера (не через fastdl), то они предварительно сжимаются перед отправкой. Так и получаются ztmp файлы.
Проблема с музыкой только у контров?
Файлы передаются через fastdl. Проблема с музыкой у всех. Сообщение из первого поста появляется у всех, независимо от выбора команды.
19 Июл 2018
Andy, причина в том что файл в данный момент используются и получается это расширение
19 Июл 2018
Ну плагин, который отвечает за два звука, слишком огромный
Ну он не за два звука отвечает - планировалось, что для CT один наборк звуков будет, для T другой набор звуков.
 
Сообщения
198
Реакции
273
Помог
5 раз(а)
Задам вопрос по-другому. Проблемы возникают только с файлами контров?
 
Сообщения
17
Реакции
4
BoecSpecOPs, в обоих конфигах пока прописан одинаковый набор mp3 файлов. Вечером дома попробую сделать 2 разных списка и проверить.
19 Июл 2018
Разобрался, проблема была в том, что я не убирал символ "newline (\n)" из названия звуков.
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу