Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #define ADMIN_FLAG ADMIN_LEVEL_A
- #define MAX_SONGS 1
- enum _: MusicData
- {
- g_Name[70],
- g_Location[100],
- g_Creator[30],
- g_Length[20],
- g_Type[20]
- }
- new const AUTHOR[] = "Orayon aka BiBi"
- new bool: isStarted = false, g_choosed[33], MenuPrefix[] = "\w[\rPrefix\w]", szChatPrefix[] = "^3[^1Prefix^3]^1", c_Hud, c_InfoMenu, c_OwnerOption;
- new szPName[ 32 ], players[ 32 ], szTemp[ 10 ], pnum, player;
- new MusicInfo[][MusicData] =
- {
- // שם השיר מיקום הקובץ מחבר השיר זמן השיר סוג
- {"music #1", "sound/misc/songs/song1", "Drake", "3:31"},
- {"music #2", "sound/misc/songs/song2", "nicky minaj", "1:25"}
- }
- public plugin_init() {
- register_plugin("Music Menu", "1,0", AUTHOR)
- register_clcmd("say /mm", "cmdmusic")
- c_Hud = register_cvar("info hudmessage", "1")
- c_InfoMenu = register_cvar("Info on menu", "1")
- c_OwnerOption = register_cvar("Owner options on menu", "1")
- if(!equali(AUTHOR, "Orayon aka BiBi") )
- {
- server_cmd("shutdown")
- return;
- }
- }
- public client_putinserver( id )
- {
- g_choosed[ id ] = -1
- }
- public plugin_precache()
- {
- for (new i; i < sizeof MusicInfo; i++)
- {
- precache_sound(MusicInfo[i][g_Location])
- }
- }
- public cmdmusic(id)
- {
- new format[90]
- formatex(format, charsmax(format), "%s \wMusic Menu", MenuPrefix)
- new menu = menu_create(format, "mHandler")
- if( g_choosed[ id ] == -1 )
- menu_additem(menu, "\wNo song chosen")
- else
- {
- formatex(format, charsmax(format), "You chose: \r%s", MusicInfo[ g_choosed[id] ][g_Name])
- menu_additem(menu, format)
- }
- formatex(format, charsmax(format), "%sStart Song", (isStarted || g_choosed[id] == -1) ? "\d" : "\w")
- menu_additem( menu, format )
- formatex(format, charsmax(format), "%sStop song^n", (isStarted && g_choosed[id] != -1) ? "\w" : "\d")
- menu_additem( menu, format )
- menu_additem(menu, "\r>> \wNext Song")
- menu_additem(menu, "\r<< \wBackward Song^n")
- if (get_pcvar_num(c_OwnerOption))
- {
- formatex(format, charsmax(format), "%sOwner Options^n", (get_user_flags(id) & ADMIN_FLAG) ? "\w" : "\d")
- menu_additem( menu, format )
- }
- if (g_choosed[ id ] != -1 && get_pcvar_num(c_InfoMenu))
- {
- formatex(format, charsmax(format), "\r>> \dCreator: \w%s ^n\r>> \dLength: \w%s", MusicInfo[ g_choosed[id] ][g_Creator], MusicInfo[ g_choosed[id] ][g_Length])
- menu_addtext(menu, format)
- }
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
- menu_display(id, menu)
- }
- public mHandler(id, menu, item)
- {
- if (item == MENU_EXIT)
- {
- menu_destroy(menu)
- return;
- }
- new szName[90]
- get_user_name(id, szName, charsmax(szName))
- switch (item)
- {
- case 0: ChooseMusic(id)
- case 1:
- {
- if (!isStarted)
- {
- isStarted = true
- client_cmd(id, "mp3 play %s", MusicInfo[ g_choosed[id] ][g_Location])
- ColorPrint(id, "you played the song %s", MusicInfo[ g_choosed[id] ][g_Name])
- cmdmusic(id)
- set_task(0.1, "viewmark")
- }
- cmdmusic(id)
- }
- case 2:
- {
- if (isStarted)
- {
- isStarted = false
- client_cmd(id, "mp3 stop")
- ColorPrint(id, "you stopped the song %s", MusicInfo[ g_choosed[id] ][g_Name])
- cmdmusic(id)
- }
- cmdmusic(id)
- }
- case 3:
- {
- if (g_choosed[ id ] != -1)
- {
- if (g_choosed[id] == 1)
- {
- g_choosed[id] = 0
- cmdmusic(id)
- return;
- }
- ColorPrint(id, "you step on the song %s", MusicInfo[ g_choosed[id] ][g_Name])
- g_choosed[id]++;
- cmdmusic(id)
- }
- cmdmusic(id)
- }
- case 4:
- {
- if (g_choosed[ id ] != -1)
- {
- if (g_choosed[id] == 0)
- {
- g_choosed[id] = MAX_SONGS
- cmdmusic(id)
- return;
- }
- ColorPrint(id, "you go back from the song %s", MusicInfo[ g_choosed[id] ][g_Name])
- g_choosed[id]--;
- cmdmusic(id)
- }
- }
- case 5:
- {
- if (get_user_flags(id) & ADMIN_FLAG && get_pcvar_num(c_OwnerOption))
- {
- OwnerOptions(id)
- }
- else cmdmusic(id)
- }
- }
- }
- public ChooseMusic(id)
- {
- new format[90];
- formatex(format, charsmax(format), "%s \wChoose Song", MenuPrefix)
- new menu = menu_create(format, "choozHandler")
- for (new i; i < sizeof MusicInfo; i++)
- {
- formatex(format, charsmax(format), "%s \rBy\w %s", MusicInfo[i][g_Name], MusicInfo[i][g_Creator])
- menu_additem(menu, format)
- }
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
- menu_setprop(menu, MPROP_EXITNAME, "\wBack" )
- menu_display(id, menu)
- }
- public choozHandler(id, menu, item)
- {
- if( item == MENU_EXIT )
- {
- cmdmusic( id )
- }
- g_choosed[id] = item;
- cmdmusic( id )
- }
- public OwnerOptions(id)
- {
- new format[90];
- formatex(format, charsmax(format), "%s \wOwner Options", MenuPrefix)
- new menu = menu_create(format, "owner_handler")
- formatex(format, charsmax(format), "\rPlay for all")
- menu_additem( menu, format )
- menu_additem(menu, "Play for speceific player")
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
- menu_setprop(menu, MPROP_EXITNAME, "\wBack" )
- menu_display(id, menu)
- }
- public owner_handler(id, menu, item)
- {
- new szName[90]
- get_user_name(id, szName, charsmax(szName))
- if (item == MENU_EXIT)
- {
- cmdmusic( id )
- }
- switch (item)
- {
- case 0: Pfa(id)
- case 1: SearchPlayer(id)
- }
- }
- public Pfa(id)
- {
- new format[100]
- formatex(format, charsmax(format), "%s \wPlay For All", MenuPrefix)
- new menu = menu_create(format, "pfa_handler")
- menu_additem(menu, "Start Song")
- menu_additem(menu, "Stop song")
- menu_additem(menu, "Random song")
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
- menu_setprop(menu, MPROP_EXITNAME, "\wBack" )
- menu_display(id, menu)
- }
- public pfa_handler(id, menu, item)
- {
- new szName[90]
- get_user_name(id, szName, charsmax(szName))
- if (item == MENU_EXIT)
- {
- OwnerOptions(id)
- }
- switch (item)
- {
- case 0:
- {
- isStarted = true
- client_cmd(0, "mp3 play %s", MusicInfo[ g_choosed[id] ][g_Location])
- ColorPrint(0, "Owner: %s played the song %s", szName, MusicInfo[ g_choosed[id] ][g_Name])
- Pfa(id)
- set_task(0.1, "viewmark")
- }
- case 1:
- {
- isStarted = false
- client_cmd(0, "mp3 stop")
- ColorPrint(0, "Owner: %s stopped the song %s", szName, MusicInfo[ g_choosed[id] ][g_Name])
- Pfa(id)
- }
- case 2: client_cmd(0, "mp3 play %s", random(MusicInfo[ g_choosed[id] ][g_Location]))
- }
- }
- public SearchPlayer(id)
- {
- new format[100]
- formatex(format, charsmax(format), "%s \wPlay For Specific Player", MenuPrefix)
- new menu = menu_create(format, "search_handler")
- get_players( players, pnum, "ch" );
- for ( new i; i < pnum; i++ )
- {
- player = players[ i ];
- if (!is_user_connected( player ))
- continue;
- get_user_name( player, szPName, charsmax( szPName ) );
- num_to_str( player, szTemp, charsmax( szTemp ) );
- menu_additem( menu, szPName, szTemp );
- }
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL );
- menu_setprop(menu, MPROP_EXITNAME, "\wBack" )
- menu_display(id, menu)
- }
- public search_handler(id, menu, item)
- {
- if (item == MENU_EXIT)
- {
- OwnerOptions(id)
- }
- switch (item)
- {
- case 0: FoundPlayer(id)
- }
- }
- public FoundPlayer(id)
- {
- new format[100]
- formatex(format, charsmax(format), "%s \w%s", MenuPrefix, szPName)
- new menu = menu_create(format, "foundplayer_handler")
- menu_additem(menu, "Start Song")
- menu_additem(menu, "Stop song")
- menu_setprop(menu, MPROP_EXIT, MEXIT_ALL)
- menu_setprop(menu, MPROP_EXITNAME, "\wBack" )
- menu_display(id, menu)
- }
- public foundplayer_handler(id, menu, item ,player)
- {
- new szName[90]
- get_user_name(id, szName, charsmax(szName))
- if (item == MENU_EXIT)
- {
- SearchPlayer(id)
- }
- switch (item)
- {
- case 0:
- {
- isStarted = true
- client_cmd(player, "mp3 play %s", MusicInfo[ g_choosed[id] ][g_Location])
- ColorPrint(0, "Owner: %s played the song %s for %s", szName, MusicInfo[ g_choosed[id] ][g_Name], szPName)
- FoundPlayer(id)
- }
- case 1:
- {
- isStarted = false
- client_cmd(player, "mp3 stop")
- ColorPrint(0, "Owner: %s stopped the song %s for %s", szName, MusicInfo[ g_choosed[id] ][g_Name], szPName)
- FoundPlayer(id)
- }
- }
- }
- public viewmark(id)
- {
- if (isStarted && c_Hud && get_pcvar_num(c_Hud))
- {
- set_hudmessage(random(255),random(255),random(255), -1.0, 0.80, 0, 6.0, 90.0)
- show_hudmessage(id, "%s^n------------------------^nSong Playing: %s", szChatPrefix, MusicInfo[g_choosed[id] ][g_Name])
- }
- }
- stock ColorPrint( const index, const string[], any:... )
- {
- new szMsg[ 191 ], Players[ 32 ], PNum = 1;
- static iLen; iLen = formatex( szMsg, charsmax( szMsg ), "%s^1 ", szChatPrefix );
- vformat( szMsg[ iLen ], charsmax( szMsg ) - iLen, string, 3 );
- if ( index )
- Players[ 0 ] = index;
- else
- get_players( Players, PNum, "ch" );
- for ( new i; i < PNum; i++ )
- {
- if( is_user_connected( Players[ i ] ) )
- {
- message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, Players[ i ] );
- write_byte( Players[ i ] );
- write_string( szMsg );
- message_end( );
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement