PHP Code:
/* This is an AMXMODX Script
*
*
* Thanks to Kensai for testing this with me and helping me figure some stuff out.
* Thanks to GHW_Chronic for adding a large chunk for me.
*
* version 1.3 - GHW_Chronic added a music.ini file where you put song names in to precache them.
*
* Version 1.2 - Script works due to GHW_Chronic, added stopplay & say /stop commands as well as making the 2 amx_play commands into one.
*
*/
#include <amxmodx>
#include <amxmisc>
#define MAX_SONGS 10
new configsdir[200]
new configfile[200]
new song[MAX_SONGS][64]
new songdir[MAX_SONGS][64]
new bool:precached[MAX_SONGS]
new g_maxplayers;
new showmusic[ 64 ];
public plugin_init()
{
register_plugin("MP3 + Wav Player W/ music.ini Precacher","1.3","GHW_Chronic + bizzybone")
register_concmd("amx_play","cmd_play",ADMIN_LEVEL_E," TEST WORD ")
register_concmd("amx_playlist","cmd_playlist",ADMIN_LEVEL_E," TEST WORD ")
register_concmd("amx_stopplay","cmd_Stop",ADMIN_LEVEL_E,"TEST WORD")
register_clcmd("say /stop","cl_cmd_stop")
g_maxplayers = get_maxplayers();
}
public plugin_precache()
{
new songdir2[64]
get_configsdir(configsdir,199)
format(configfile,199,"%s/music.ini",configsdir)
new trash
for(new i=0;i<MAX_SONGS;i++)
{
precached[i]=false
read_file(configfile,i,song[i],63,trash)
if(!equali(song[i][4],""))
{
format(songdir[i],63,"zamusic/%s",song[i])
format(songdir2,63,"sound/zamusic/%s",song[i])
if(file_exists(songdir2))
{
precached[i]=true
precache_sound(songdir[i])
}
}
}
}
public cmd_playlist(id,level,cid)
{
console_print(id,"Songs in server playlist:")
for(new i=0;i<MAX_SONGS;i++)
{
if(precached[i])
{
console_print(id,song[i])
}
}
return PLUGIN_HANDLED
}
public cmd_Stop(id,level,cid)
{
if (!cmd_access(id,level,cid,1))
{
return PLUGIN_HANDLED
}
client_cmd(0,"mp3 stop;stopsound")
client_print(0,print_chat,"TEST WORD")
return PLUGIN_HANDLED
}
public cmd_play(id,level,cid)
{
if (!cmd_access(id,level,cid,2))
{
return PLUGIN_HANDLED
}
new arg1[32]
read_argv(1,arg1,31)
new songnum = MAX_SONGS
for(new i=0;i<MAX_SONGS;i++)
{
if(precached[i] && containi(song[i],arg1)!=-1)
{
if(songnum!=MAX_SONGS)
{
console_print(id,"TEST WORD")
return PLUGIN_HANDLED
}
songnum = i
}
}
if(songnum==MAX_SONGS)
{
console_print(id,"TEST WORD")
return PLUGIN_HANDLED
}
if(containi(song[songnum],".mp3"))
{
client_cmd(0,"mp3 play ^"sound/%s^"",songdir[songnum])
}
if(containi(song[songnum],".wav"))
{
client_cmd(0,"spk ^"%s^"",songdir[songnum])
}
client_print(0,print_chat,"TEST WORD",song[songnum])
copy( showmusic, 64, song[songnum] );
if( task_exists(123) )
remove_task( 123 );
set_task( 2.0, "show_music", 123, _, _, "b" );
return PLUGIN_HANDLED
}
public cl_cmd_stop(id)
{
client_cmd(id,"mp3 stop;stopsound")
client_print(id,print_chat,"TEST WORD")
return PLUGIN_HANDLED
}
public show_music()
{
for( new i = 1; i <= g_maxplayers; i++)
{
if( !is_user_connected( i ) )
continue;
if( is_user_bot( i ) )
continue;
set_hudmessage(200, 200, 200, 0.16, 0.06, 0, 6.0, 5.0)
show_hudmessage(i, showmusic);
}
}