#include public Plugin:myinfo = { name = "Welcome Sound", description = "Welcome Sound", author = "", version = "1.0.0", url = "" }; new String:g_sWelcomeSoundList[64], Handle:g_hArraySounds, g_iCountSounds = -1; public OnPluginStart() { BuildPath(Path_SM, g_sWelcomeSoundList, sizeof(g_sWelcomeSoundList), "configs/welcome_sound_list.txt"); g_hArraySounds = CreateArray(128, 0); } public OnMapStart() { new Handle:file = OpenFile(g_sWelcomeSoundList, "r"); ClearArray(g_hArraySounds); g_iCountSounds = -1; if (file == INVALID_HANDLE) { SetFailState("'%s' not found", g_sWelcomeSoundList); return; } new String:buffer[PLATFORM_MAX_PATH]; while (!IsEndOfFile(file)) { ReadFileLine(file, buffer, sizeof(buffer)); new pos; pos = StrContains(buffer, "//"); if (pos != -1) buffer[pos] = '\0'; pos = StrContains(buffer, "#"); if (pos != -1) buffer[pos] = '\0'; pos = StrContains(buffer, ";"); if (pos != -1) buffer[pos] = '\0'; TrimString(buffer); if (buffer[0] == '\0') continue; PushArrayString(g_hArraySounds, buffer); } CloseHandle(file); g_iCountSounds = GetArraySize(g_hArraySounds); g_iCountSounds = g_iCountSounds > 0 ? g_iCountSounds : -1; } public OnClientPutInServer(client) { if(g_iCountSounds != -1) CreateTimer(1.5, Timer_WelcomeSound, GetClientUserId(client), TIMER_FLAG_NO_MAPCHANGE); } public Action:Timer_WelcomeSound(Handle:timer, any:userid) { new client = GetClientOfUserId(userid); if (client > 0) { decl String:sBuffer[128]; if (g_iCountSounds > 0) GetArrayString(g_hArraySounds, GetRandomInt(0, g_iCountSounds - 1), sBuffer, 128); else GetArrayString(g_hArraySounds, 0, sBuffer, 128); EmitSoundToClient(client, sBuffer); } return Plugin_Stop; }