Jump to content
GIGN Forum

Recommended Posts

  • Replies 59
  • Created
  • Last Reply

Top Posters In This Topic

man *.sma fails ir redigets kaa adv_media_player.sma

Nu bet kaads var iedot kodu ko tur rakstit.... ? Man ir saadi:

#include <amxmodx>
#include <amxmisc>
#include <nvault>

#define MAX_PLAYERS	32
#define MAX_GROUPS	10
#define MAX_MEDIA	20

#define STR_SIZE_XSM	32
#define STR_SIZE_SML	64
#define STR_SIZE_MED	128
#define STR_SIZE_LRG	256
#define STR_SIZE_XLG	512
#define STR_SIZE_XXL	1024
#define STR_SIZE_XXX	2048

new const g_media_list_filename[]  = "amp_medialist.ini"
new const g_media_player_filename[]	= "amp_player.html"
new const g_media_stats_vaultname[]	= "amp_stats"

#define str_size(%1) sizeof(%1) - 1

enum
{
GROUP = 0,
MEDIA
}

enum
{
STR_GROUP_NAME = 0,
STR_MEDIA_NAME,
STR_MEDIA_URL,
STR_MEDIA_RATINGS
}

new const FIND[4][] =
{
"[GROUP_NAME]",
"[MEDIA_NAME]",
"[MEDIA_URL]",
"[MEDIA_RATINGS]"
}

new g_menuposition[MAX_PLAYERS+1][2]
new g_curmediaplaying[MAX_PLAYERS+1][2]

new g_hudsync
new g_numofgroup
new g_numofmedia[MAX_GROUPS]
new g_media_player[STR_SIZE_MED]
new g_group_names[MAX_GROUPS][STR_SIZE_XSM]
new g_media_names[MAX_GROUPS][MAX_MEDIA][STR_SIZE_XSM]
new g_media_urls[MAX_GROUPS][MAX_MEDIA][STR_SIZE_LRG]

static const PLUGIN_NAME[]  = "Advance Media Player"
static const PLUGIN_AUTHOR[]  = "Cheap_Suit"
static const PLUGIN_VERSION[]	= "3.0"

public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_cvar(PLUGIN_NAME, PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER)
register_menucmd(register_menuid("media_group"), 1023, "action_grouplist")
register_menucmd(register_menuid("media_list"),  1023, "action_medialist")
register_clcmd("say", "cmd_say")

register_media()
g_hudsync = CreateHudSyncObj() 
set_task(1.0, "task_hud", _, _, _, "b")
}

public client_putinserver(id)
{
g_curmediaplaying[id][GROUP] = -1
g_curmediaplaying[id][MEDIA] = -1
}

public task_hud()
{
static players[32]
new num, id

get_players(players, num, "bch")
set_hudmessage(255, 255, 255, 0.0, 0.13, _, _, 1.1, _, _, 1)

for(new i = 0; i < num; ++i) 

}

public cmd_say(id)
{
static say_args[STR_SIZE_MED]
read_args(say_args, str_size(say_args))
remove_quotes(say_args)

if(say_args[0] != '/')
 return PLUGIN_CONTINUE

if(equali(say_args, "/music"))
{
 display_grouplist(id, g_menuposition[id][GROUP] = 0)
 
 return PLUGIN_HANDLED
}
else if(equali(say_args, "/stopmusic"))
{
 g_curmediaplaying[id][GROUP] = -1
 g_curmediaplaying[id][MEDIA] = -1
 
 static motd[STR_SIZE_XLG]
 new len = format(motd, str_size(motd), "<html><head><style type=^"text/css^">pre{color:#FFB000;}body{background:#000000;margin-left:8px;margin-top:0px;}</style></head><pre><body>")
 len += format(motd[len], str_size(motd) - len, "<center>Stopped media. This has been brought you by %s.^n", PLUGIN_NAME)
 len += format(motd[len], str_size(motd) - len, "<center>You can get this plugin @ amxmodx.org.^n")
 
 show_motd(id, motd, PLUGIN_NAME)
 
 return PLUGIN_HANDLED
}
else if(containi(say_args, "/ratemedia") != -1)
{
 if(g_curmediaplaying[id][MEDIA] == -1)
 {
 	client_print(id, print_chat, "You are not listening to any media.")
 	return PLUGIN_HANDLED
 }
 
 static text[20]
 static trash[2]
 static rate[3]
 
 read_argv(1, text, str_size(text))
 strbreak(text, trash, str_size(trash), rate, str_size(rate))
 
 if(!isdigit(rate[0]) || strlen(rate) == 0 || str_to_num(rate) > 5)
 	client_print(id, print_chat, "Rate scale is from 1 to 5")
 else
 {
 	save_data(id, str_to_num(rate))
 	client_print(id, print_chat, "You have rated Media: %s - %s stars.", g_media_names[g_curmediaplaying[id][GROUP]][g_curmediaplaying[id][MEDIA]], rate)
 }
 return PLUGIN_HANDLED
}
else if(equali(say_args, "/reloadmedia"))
{
 if(g_curmediaplaying[id][MEDIA] == -1)
 	client_print(id, print_chat, "You are not listening to any media.")
 else
 	play_media(id, g_curmediaplaying[id][MEDIA], g_curmediaplaying[id][GROUP])
 
 return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

display_grouplist(id, pos)
{
if(pos < 0)
 return

new maxtotal = g_numofgroup
 
new start = pos * 8
 	if(start >= maxtotal)
     start = pos = g_menuposition[id][GROUP]

static menubody[STR_SIZE_XLG]
 	new len = format(menubody, str_size(menubody), "Select Media Group^n^n")

 	new end = start + 8
 	new keys = MENU_KEY_0

if(end > maxtotal)
     end = maxtotal

new b = 0
 	for(new a = start; a < end; ++a) 
{
 keys |= (1<<b)
 
 len += format(menubody[len], str_size(menubody) - len, "%d. %s^n", ++b, g_group_names[a])
 	}

 	if(end != maxtotal)
{
     format(menubody[len], str_size(menubody) - len, "^n9. %s...^n0. %s", "More", pos ? "Back" : "Exit")
     keys |= MENU_KEY_9
 	}
 	else
 format(menubody[len], str_size(menubody) - len, "^n0. %s", pos ? "Back" : "Exit")
 
 	show_menu(id, keys, menubody, -1, "media_group")
}

public action_grouplist(id, key)
{
switch(key) 
{
     case 8:	display_grouplist(id, ++g_menuposition[id][GROUP])
 case 9:	display_grouplist(id, --g_menuposition[id][GROUP])
     default:display_medialist(id, g_menuposition[id][MEDIA] = 0, g_menuposition[id][GROUP] = (g_menuposition[id][GROUP] * 8 + key))
}
return PLUGIN_HANDLED
}

display_medialist(id, pos, group)
{
if(pos < 0)
{
 display_grouplist(id, g_menuposition[id][GROUP] = 0)
 return
}

new maxtotal = g_numofmedia[group]

new start = pos * 8
 	if(start >= maxtotal)
     start = pos = g_menuposition[id][MEDIA]

static menubody[STR_SIZE_XLG]
 	new len = format(menubody, str_size(menubody), "%s^n^n", g_group_names[group])

 	new end = start + 8
 	new keys = MENU_KEY_0

if(end > maxtotal)
     end = maxtotal

new b = 0
 	for(new a = start; a < end; ++a) 
{
 keys |= (1<<b)
 len += format(menubody[len], str_size(menubody), "%d. %s^n", ++b, g_media_names[group][a])
 	}

 	if(end != maxtotal)
{
     format(menubody[len], str_size(menubody), "^n9. %s...^n0. %s", "More", pos ? "Back" : "Back to group list")
     keys |= MENU_KEY_9
 	}
 	else
 format(menubody[len], str_size(menubody), "^n0. %s", pos ? "Back" : "Back to group list")
 
 	show_menu(id, keys, menubody, -1, "media_list")
}

public action_medialist(id, key)
{
switch(key) 
{
     case 8: display_medialist(id, ++g_menuposition[id][MEDIA], g_menuposition[id][GROUP])
 case 9: display_medialist(id, --g_menuposition[id][MEDIA], g_menuposition[id][GROUP])
     default:play_media(id, g_menuposition[id][GROUP], (g_menuposition[id][MEDIA] * 8 + key))
}
return PLUGIN_HANDLED
}

play_media(id, group_id, media_id)
{
if(!file_exists(g_media_player))
 return

g_curmediaplaying[id][GROUP] = group_id
g_curmediaplaying[id][MEDIA] = media_id

new player[STR_SIZE_XXL]
new motd[STR_SIZE_XXX]
new line, length

while(read_file(g_media_player, line++, player, str_size(player), length))
 add(motd, str_size(motd), player)

replace_all(motd, str_size(motd), FIND[STR_GROUP_NAME], g_group_names[group_id])
replace_all(motd, str_size(motd), FIND[STR_MEDIA_NAME], g_media_names[group_id][media_id])
replace_all(motd, str_size(motd), FIND[STR_MEDIA_URL], g_media_urls[group_id][media_id])

static ratings[STR_SIZE_XSM]
get_media_ratings(g_media_names[group_id][media_id], ratings, str_size(ratings))
replace_all(motd, str_size(motd), FIND[STR_MEDIA_RATINGS], ratings)

show_motd(id, motd, PLUGIN_NAME)
}

stock get_media_ratings(media_name[], string[], len)
{
new vault_id = nvault_open(g_media_stats_vaultname)
if(vault_id == INVALID_HANDLE)
 log_amx("Enable to open nvault file: %s", g_media_stats_vaultname)

static value[STR_SIZE_XSM]
static key[STR_SIZE_MED]

new total = 0, score = 0, timestamp, ratings

format(key, str_size(key), "%s-TOTAL", media_name)
replace_all(key, sizeof(key), " ", "_")
 
if(nvault_lookup(vault_id, key, value, str_size(value), timestamp))
 total = str_to_num(value)

format(key, str_size(key), "%s-SCORE", media_name)
replace_all(key, sizeof(key), " ", "_")

if(nvault_lookup(vault_id, key, value, str_size(value), timestamp))
 score = str_to_num(value)

ratings = format(string, len, "none")
if(total != 0 && score != 0)
{
 new totalstars = floatround(float(score) / float(total))
 
 new stars[5]
 for(new i = 0; i < totalstars; ++i)
 	copy(stars[i], str_size(stars), "*")
 
 ratings = format(string, len, stars)
}
return ratings
}

save_data(id, data)
{
new vault_id = nvault_open(g_media_stats_vaultname)
if(vault_id == INVALID_HANDLE)
 log_amx("Enable to open nvault file: %s", g_media_stats_vaultname)

static value[STR_SIZE_XSM]
static key[STR_SIZE_MED]
new timestamp, addvalue = 0

static media_name[STR_SIZE_SML]
format(media_name, str_size(media_name), g_media_names[g_curmediaplaying[id][GROUP]][g_curmediaplaying[id][MEDIA]])

format(key, str_size(key), "%s-TOTAL", media_name)
replace_all(key, sizeof(key), " ", "_")
 
if(nvault_lookup(vault_id, key, value, str_size(value), timestamp))
 addvalue = str_to_num(value) + 1
else
 addvalue = 1
   
num_to_str(addvalue, value, str_size(value))
nvault_pset(vault_id, key, value)
 	
format(key, str_size(key), "%s-SCORE", media_name)
replace_all(key, sizeof(key), " ", "_")
 	
if(nvault_lookup(vault_id, key, value, str_size(value), timestamp))
 addvalue = str_to_num(value) + data
else
 addvalue = data
   
num_to_str(addvalue, value, str_size(value))
nvault_pset(vault_id, key, value)

nvault_close(vault_id)
}

register_media()
{
static configs_dir[STR_SIZE_SML]
static file_text[STR_SIZE_XXX]
new len = 0

get_localinfo("amxx_configsdir", configs_dir, str_size(configs_dir))

format(g_media_player, str_size(g_media_player), "%s/%s", configs_dir, g_media_player_filename)
if(!file_exists(g_media_player))
{
 len = format(file_text, str_size(file_text), "<html><head><style type=^"text/css^">pre{color:#FFB000;}body{background:#000000;margin-left:8px;margin-top:0px;}</style></head><pre><body>")
 len += format(file_text[len], str_size(file_text) - len, "<center><b>Media:</b> ([GROUP_NAME]) [MEDIA_NAME]^n")
 len += format(file_text[len], str_size(file_text) - len, "<center><b>Ratings:[MEDIA_RATINGS]</b>^n")
 len += format(file_text[len], str_size(file_text) - len, "<center>Note: Selected media may take long to load.^n")
 len += format(file_text[len], str_size(file_text) - len, "<center>You may close this motd, the media will keep playing.^n")
 len += format(file_text[len], str_size(file_text) - len, "<center><OBJECT ID=^"MediaPlayer1^" width=400 height=144^n")
 len += format(file_text[len], str_size(file_text) - len, "classid=^"CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95^"^n")
 len += format(file_text[len], str_size(file_text) - len, "CODEBASE=^"http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715^"^n")
 len += format(file_text[len], str_size(file_text) - len, "standby=^"Loading Microsoft? Windows? Media Player components...^"^n")
 len += format(file_text[len], str_size(file_text) - len, "type=^"application/x-oleobject^">^n")
 len += format(file_text[len], str_size(file_text) - len, "<PARAM NAME=^"AutoStart^" VALUE=^"True^">^n")
 len += format(file_text[len], str_size(file_text) - len, "<PARAM NAME=^"FileName^" VALUE=^"[MEDIA_URL]^">^n")
 len += format(file_text[len], str_size(file_text) - len, "<PARAM NAME=^"ShowControls^" VALUE=^"True^">^n")
 len += format(file_text[len], str_size(file_text) - len, "<PARAM NAME=^"ShowStatusBar^" VALUE=^"False^">^n")
 len += format(file_text[len], str_size(file_text) - len, "<PARAM NAME=^"AutoRewind^" VALUE=^"True^">^n")
 len += format(file_text[len], str_size(file_text) - len, "<EMBED type=^"application/x-mplayer2^" pluginspage=^"http://www.microsoft.com/Windows/MediaPlayer/^"^n")
 len += format(file_text[len], str_size(file_text) - len, "SRC=^"[MEDIA_URL]^"^n")
 len += format(file_text[len], str_size(file_text) - len, "name=^"MediaPlayer1^"^n")
 len += format(file_text[len], str_size(file_text) - len, "autostart=1^n")
 len += format(file_text[len], str_size(file_text) - len, "showcontrols=1^n")
 len += format(file_text[len], str_size(file_text) - len, "autorewind=^"True^"^n")
 len += format(file_text[len], str_size(file_text) - len, "showstatusbar=^"False^">^n")
 len += format(file_text[len], str_size(file_text) - len, "</EMBED></OBJECT></body></pre></html>^n")
 
 write_file(g_media_player, file_text)
 log_amx("Created default media player.")
}

static file[STR_SIZE_MED]
len = 0

format(file, str_size(file), "%s/%s", configs_dir, g_media_list_filename)
if(!file_exists(file))
{
 len = format(file_text, str_size(file_text), "; %s Media List^n", PLUGIN_NAME)
 len += format(file_text[len], str_size(file_text) - len, "; Max string size:^n")
 len += format(file_text[len], str_size(file_text) - len, "; Group Name %d^n", sizeof(g_group_names[]))
 len += format(file_text[len], str_size(file_text) - len, "; Media Name %d^n", sizeof(g_media_names[][]))
 len += format(file_text[len], str_size(file_text) - len, "; Media URL  %d^n^n", sizeof(g_media_urls[][]))
 
 write_file(file, file_text)
 log_amx("Created media list file.")
}

static text[STR_SIZE_XXL]
static left[STR_SIZE_MED]
static right[STR_SIZE_LRG]

new bool:brackets_open

new line
new length
new group

while(read_file(file, line++, text, str_size(text), length))
{
 trim(text)
 if(!length || text[0] == ';')
 	continue
 
 strbreak(text, left, str_size(left), right, str_size(right))
 
 replace_all(left, str_size(left), "^"", "")
 replace_all(right, str_size(right), "^"", "")
 
 if(brackets_open)
 {
 	if(equal(text, "}"))
 	{
   brackets_open = false
   continue
 	}
 	
 	group = g_numofgroup - 1
 	
 	if(g_numofmedia[group] > MAX_MEDIA)
 	{
    log_amx("Max media reached")
    break
 	}

 	if(strlen(left) > 0 && strlen(right) > 0)
 	{
   replace_all(right, str_size(right), " ", "%20")
   copy(g_media_names[group][g_numofmedia[group]], str_size(g_media_names[][]), left)
   copy(g_media_urls[group][g_numofmedia[group]], str_size(g_media_urls[][]), right)
   g_numofmedia[group]++
 	}
 }
 
 if(strlen(left) > 0 && equal(right, "{"))
 {
 	if(g_numofgroup > MAX_GROUPS)
 	{
   log_amx("Max groups reached")
   break
 	}
 	
 	brackets_open = true
 	copy(g_group_names[g_numofgroup++], str_size(g_group_names[]), left)
 }
}
}

Link to comment
Share on other sites

L' date='May 23 2007, 16:32'] TEV NEIIET playmedia jo staaav tas crsh.oo.lv

A kaa, es nevaresu savu radio iebaazt?!

Link to comment
Share on other sites

L,May 23 2007, 16:39] Es Sapratu.... Raksti sava crsh vietaa shita

http://cs-crsh.oo.lv:8080/stream.ogg.m3u

Pameeginasshu!

EDIT: Nu jaa, kkas ar to pluginu nav... jeb man kkas nesanak!

Edited by W1nkys
Link to comment
Share on other sites

Uzgaidi, tagad mes ar draugu taisam! Ja nesanax tad atsutiisu!

Link to comment
Share on other sites

Kroch... Man neiet plugins.... Tur nav sakars ar to .ini bet ar pluginu!

1maja sava posta es uzraxtiju problemu(runa par funkciju showsynshudmsg) un vinjsh saka lai parbaudu modules.ini... Tatad kuru moduli man vajag piebazt (nVault jau ir)

Edited by W1nkys
Link to comment
Share on other sites

To jau es dariju....

Visi plugini man iet bet shis ne...

gaidu cilveku, kas zin kursh modilis vajadzigs lai "showsynshudmsg" funkcija darbotos...

Link to comment
Share on other sites

Ka tas ir uz jaunu?

Es panjemu orginalo pluginu (tagad)

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share


×
×
  • Create New...