Добрый день,
пытаюсь модифицировать плагин для проигрывания mp3 звуков по концу раунда в случае выигрыша T/CT.
При заходе игрока на сервер в консоли сыпится следуюющее
Сам код плагина (кривоват, прошу не судить строго)
Содержимое sound_roundend_ct.ini
Прекеш вроде как работает - в каталоге sound/roundend наряду с mp3 файлами появляются ztmp.
В чем может быть причина
пытаюсь модифицировать плагин для проигрывания 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.
В чем может быть причина