Оба варианта работают.
Выбираю первый, он попроще и кода меньше.Добавлено (07.06.2013, 18:54:43)
---------------------------------------------
Код
#include <sourcemod>
#include <sdktools>
new Handle:g_hPath,Handle:Array,ArraySize;
public OnPluginStart()
{
g_hPath = CreateConVar("join_sound_path", "addons/sourcemod/configs/join_sound_list.cfg", "Укажите путь к файлу");
Array = CreateArray(255, 0);
}
public OnMapStart()
{
decl String:path[255];
GetConVarString(g_hPath, path, sizeof(path));
new Handle:file = OpenFile(path, "r");
if (file == INVALID_HANDLE) LogError("Не удалось открыть файл '%s'", path);
else
{
new CountLine = 0;
decl String:line[150], String:buffer[255];
while (!IsEndOfFile(file) && CountLine <= 50 && ReadFileLine(file, line, sizeof(line)))
{
CountLine++;
TrimString(line);
PushArrayString(Array, line);
PrecacheSound(line);
Format(buffer, sizeof(buffer), "sound/%s", line);
AddFileToDownloadsTable(buffer);
PrecacheSound(line);
}
ArraySize = GetArraySize(Array);
CloseHandle(file);
}
}
public OnClientPutInServer(client)
{
if (client > 0 && !IsFakeClient(client))
{
decl String:ArrayName[50];
static Numerik = 0;
for (new i = 0; i < ArraySize; i++)
{
GetArrayString(Array, i, ArrayName, sizeof(ArrayName));
}
EmitSoundToClient(client, ArrayName[Numerik]); Numerik++;
if(Numerik >= ArraySize) Numerik = 0;
}
}
Почему музыка играет только один раз и играет последняя из файла. В файле 3 звука.