PHP Code:
/* Sublime AMXX Editor v2.2 */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Author"
#define CONFIG_FILE "song.ini"
new Array: ready_sound;
new Array: sound1;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /t1", "play")
register_clcmd("say /t2", "play2")
}
public plugin_precache()
{
ready_sound = ArrayCreate(64);
sound1 = ArrayCreate(64);
load_config_file();
precacheSound(ready_sound);
precacheSound(sound1);
}
precacheSound(array)
{
new buffer[128], temp_string[256], i;
for(i = 0; i < ArraySize(array); i++)
{
ArrayGetString(array, i, temp_string, sizeof(temp_string))
if(equal(temp_string[strlen(temp_string) - 4], ".mp3"))
{
format(buffer, charsmax(buffer), "sound/%s", temp_string)
precache_generic(buffer)
}
else
{
precache_sound(temp_string)
}
}
}
public load_config_file()
{
// Build customization file path
new path[64]
get_configsdir(path, charsmax(path))
format(path, charsmax(path), "%s/%s", path, CONFIG_FILE)
// File not present
if (!file_exists(path))
{
return;
}
// Set up some vars to hold parsing info
new linedata[1024], key[64], value[960]
// Open customization file for reading
new file = fopen(path, "rt")
while (file && !feof(file))
{
// Read one line at a time
fgets(file, linedata, charsmax(linedata))
trim(linedata);
// Blank line or comment
if (!linedata[0] || linedata[0] == ';') continue;
// Get key and value(s)
strtok(linedata, key, charsmax(key), value, charsmax(value), '=')
// Trim spaces
trim(key)
trim(value)
if (equal(key, "START"))
{
// Parse weapons
while (value[0] != 0 && strtok(value, key, charsmax(key), value, charsmax(value), ','))
{
// Trim spaces
trim(key)
trim(value)
// Add to weapons array
ArrayPushString(ready_sound, key)
//precacheSound(key)
}
}
else if (equal(key, "STOP"))
{
// Parse weapons
while (value[0] != 0 && strtok(value, key, charsmax(key), value, charsmax(value), ','))
{
// Trim spaces
trim(key)
trim(value)
// Add to weapons array
ArrayPushString(sound1, key)
//precacheSound(key)
}
}
}
}
public play()
{
if(ArraySize(ready_sound))
{
new temp_string[128]
ArrayGetString(ready_sound, random_num(0, ArraySize(ready_sound) - 1), temp_string, sizeof(temp_string))
client_print(0, print_chat, "song path %s", temp_string)
play_sound(0, temp_string)
}
}
public play2()
{
if(ArraySize(sound1))
{
new temp_string[128]
ArrayGetString(sound1, random_num(0, ArraySize(sound1) - 1), temp_string, sizeof(temp_string))
client_print(0, print_chat, "song path %s", temp_string)
play_sound(0, temp_string)
}
}
play_sound(id, szSound[])
{
client_cmd(id, "%s ^"sound/%s^"", (equal(szSound[strlen(szSound) - 4], ".mp3")) ? "mp3 play" : "spk", szSound);
}
public plugin_end()
{
ArrayDestroy(ready_sound);
ArrayDestroy(sound1)
}