Не играет музыка в roundsound'e...только через меню прослушивания.
В чем может быть проблема? Какой баг у нее...
- Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#define PLUGIN "Old: raund sound"
#define VERSION "1.0"
#define AUTHOR "AMXX"
new g_LoadTrackList[81]
new g_TrackNum
new g_TrackName[999][64]
new g_TrackFile[999][3][128]
new g_TrackTime[999]
new g_TrackStart
new g_TrackStartTime
new g_Booking
new iPlayerEnabled[33]
new iPlayerVoice[33]
new iPlayerSelectTrack[33]
new iPlayerSelectTrackTime[33]
new g_Cvar[7]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("SendAudio", "StartTrack", "a", "2&%!MRAD_terwin")
register_event("SendAudio", "StartTrack", "a", "2&%!MRAD_ctwin")
g_Cvar[1] = register_cvar("rm_autoenable", "1")
g_Cvar[2] = register_cvar("rm_voice", "100")
g_Cvar[3] = register_cvar("rm_booking_cost", "5000")
g_Cvar[4] = register_cvar("rm_skidka_start", "0")
g_Cvar[5] = register_cvar("rm_skidka_ent", "10")
g_Cvar[6] = register_cvar("rm_skidka", "25")
register_clcmd("say /sound", "MusicAction")
register_clcmd("say sound", "MusicAction")
register_clcmd("say_team /sound", "MusicAction")
register_clcmd("say_team sound", "MusicAction")
register_clcmd("amx_msound", "MusicMenu")
register_dictionary("music.txt")
}
public plugin_precache()
{
new g_LoadDir[81]
get_configsdir(g_LoadDir, charsmax( g_LoadDir ))
formatex(g_LoadTrackList, charsmax( g_LoadTrackList ), "%s/music.ini", g_LoadDir)
new szParse[128]
new szParseName[64], szParseTrack[128], szParseTime[32]
new iLine, iNum
for(iLine = 1; read_file(g_LoadTrackList, iLine, szParse, charsmax( szParse ), iNum); iLine++)
{
if(iNum == 0 || szParse[0] == ';' || ( szParse[0] == '/' && szParse[1] == '/' ))
continue
parse(szParse, szParseName, charsmax( szParseName ), szParseTrack, charsmax( szParseTrack ), szParseTime, charsmax( szParseTime ))
new szFormatex[128]
formatex(szFormatex, charsmax( szFormatex ), "sound/deathrun_plague/music/%s", szParseTrack)
precache_generic(szFormatex)
++g_TrackNum
g_TrackName[g_TrackNum] = szParseName
g_TrackFile[g_TrackNum][1] = szParseTrack
g_TrackFile[g_TrackNum][2] = szFormatex
g_TrackTime[g_TrackNum] = str_to_num( szParseTime )
}
}
public client_connect(id)
{
iPlayerEnabled[id] = get_pcvar_num( g_Cvar[1] )
iPlayerVoice[id] = get_pcvar_num( g_Cvar[2] )
}
public MusicAction(id)
{
if(iPlayerEnabled[id])
{
iPlayerEnabled[id] = false
}
else
{
iPlayerEnabled[id] = true
}
}
public MusicMenu(id)
{
new szTitle[512]
new szItem[512]
formatex(szTitle, charsmax( szTitle ), "%L", id, "RM_MUSICMENU_TITLE")
new iMenu = menu_create(szTitle, "MusicMenu_handler" )
if(iPlayerEnabled[id])
{
formatex(szItem, charsmax( szItem ), "%L", id, "RM_MUSICMENU_ITEM_1")
menu_additem(iMenu, szItem, "1", 0)
}
else
{
formatex(szItem, charsmax( szItem ), "%L", id, "RM_MUSICMENU_ITEM_1_1")
menu_additem(iMenu, szItem, "1", 0)
}
formatex(szItem, charsmax( szItem ), "%L", id, "RM_MUSICMENU_ITEM_2", iPlayerVoice[id])
menu_additem(iMenu, szItem, "2", 0)
formatex(szItem, charsmax( szItem ), "%L", id, "RM_MUSICMENU_ITEM_3")
menu_additem(iMenu, szItem, "3", 0)
menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL )
menu_setprop(iMenu, MPROP_NEXTNAME, "Далее")
menu_setprop(iMenu, MPROP_BACKNAME, "Назад")
menu_setprop(iMenu, MPROP_EXITNAME, "Выход")
menu_display(id, iMenu, 0)
return PLUGIN_HANDLED
}
public MusicMenu_handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT)
{
menu_destroy( iMenu )
return PLUGIN_HANDLED
}
new szData[6], szName[64], iAccess, iCallback
menu_item_getinfo(iMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), iCallback)
new iKey = str_to_num( szData )
switch( iKey )
{
case 1:
{
MusicAction(id)
MusicMenu(id)
}
case 2:
{
if(iPlayerVoice[id] == 100)
{
iPlayerVoice[id] = 10
}
else
{
iPlayerVoice[id] += 10
}
client_cmd(id, "mp3volume %f", (float(iPlayerVoice[id]) / 100.0))
MusicMenu(id)
}
case 3:
{
TrackList(id)
}
}
menu_destroy( iMenu )
return PLUGIN_HANDLED
}
public TrackList(id)
{
new szTitle[512]
new iNum[10]
formatex(szTitle, charsmax( szTitle ), "%L", id, "RM_TRACKLIST_TITLE", g_TrackNum)
new iMenu = menu_create(szTitle, "TrackList_handler" )
for(new i = 1; i <= g_TrackNum; i++)
{
num_to_str(i, iNum, charsmax( iNum ))
menu_additem(iMenu, g_TrackName[i], iNum, 0)
}
menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL )
menu_setprop(iMenu, MPROP_NEXTNAME, "Далее")
menu_setprop(iMenu, MPROP_BACKNAME, "Назад")
menu_setprop(iMenu, MPROP_EXITNAME, "Выход")
menu_display(id, iMenu, 0)
return PLUGIN_HANDLED
}
public TrackList_handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT)
{
menu_destroy( iMenu )
return PLUGIN_HANDLED
}
new szData[6], szName[64], iAccess, iCallback
menu_item_getinfo(iMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), iCallback)
new iKey = str_to_num( szData )
iPlayerSelectTrack[id] = iKey
ShowTrack(id, iKey)
menu_destroy( iMenu )
return PLUGIN_HANDLED
}
public ShowTrack(id, iMusic)
{
new szTime[32]
get_time("%H", szTime, charsmax( szTime ))
new iTime = str_to_num( szTime )
new szTitle[512]
new szItem[512]
formatex(szTitle, charsmax( szTitle ), "%L", id, "RM_TRACKINFO_TITLE", g_TrackName[iMusic], FormatTime( g_TrackTime[iMusic] ), g_TrackFile[iMusic][2])
new iMenu = menu_create(szTitle, "ShowTrack_handler" )
formatex(szItem, charsmax( szItem ), "%L", id, "RM_TRACKINFO_ITEM_1")
menu_additem(iMenu, szItem, "1", 0)
formatex(szItem, charsmax( szItem ), "%L", id, "RM_TRACKINFO_ITEM_2")
menu_additem(iMenu, szItem, "2", 0)
if(g_Booking)
{
formatex(szItem, charsmax( szItem ), "%L", id, "RM_TRACKINFO_ITEM_3")
menu_additem(iMenu, szItem, "3", ADMIN_ADMIN)
}
else
{
if(cs_get_user_money(id) >= GetSkidka(get_pcvar_num( g_Cvar[3] )))
{
if(iTime >= get_pcvar_num( g_Cvar[4] ) && iTime < get_pcvar_num( g_Cvar[5] ))
{
formatex(szItem, charsmax( szItem ), "%L", id, "RM_TRACKINFO_ITEM_3_2", GetSkidka(get_pcvar_num( g_Cvar[3] )), get_pcvar_num( g_Cvar[6] ))
menu_additem(iMenu, szItem, "3", 0)
}
else
{
formatex(szItem, charsmax( szItem ), "%L", id, "RM_TRACKINFO_ITEM_3_1", GetSkidka(get_pcvar_num( g_Cvar[3] )))
menu_additem(iMenu, szItem, "3", 0)
}
}
else
{
formatex(szItem, charsmax( szItem ), "%L", id, "RM_TRACKINFO_ITEM_3_1", GetSkidka(get_pcvar_num( g_Cvar[3] )))
menu_additem(iMenu, szItem, "3", ADMIN_ADMIN)
}
}
menu_setprop(iMenu, MPROP_EXIT, MEXIT_ALL )
menu_setprop(iMenu, MPROP_NEXTNAME, "Далее")
menu_setprop(iMenu, MPROP_BACKNAME, "Назад")
menu_setprop(iMenu, MPROP_EXITNAME, "Выход")
menu_display(id, iMenu, 0)
return PLUGIN_HANDLED
}
public ShowTrack_handler(id, iMenu, iItem)
{
if(iItem == MENU_EXIT)
{
menu_destroy( iMenu )
return PLUGIN_HANDLED
}
new szData[6], szName[64], iAccess, iCallback
menu_item_getinfo(iMenu, iItem, iAccess, szData, charsmax( szData ), szName, charsmax( szName ), iCallback)
new iKey = str_to_num( szData )
switch( iKey )
{
case 1:
{
new szCommand[128]
if(containi(g_TrackFile[iPlayerSelectTrack[id]][2], ".wav") != -1)
{
formatex(szCommand, charsmax( szCommand ), "spk %s", g_TrackFile[iPlayerSelectTrack[id]][2])
}
else if(containi(g_TrackFile[iPlayerSelectTrack[id]][2], ".mp3") != -1)
{
formatex(szCommand, charsmax( szCommand ), "mp3 play %s", g_TrackFile[iPlayerSelectTrack[id]][2])
}
client_cmd(id, "stopsound")
client_cmd(id, "mp3volume %f", (float(iPlayerVoice[id]) / 100.0))
client_cmd(id, "%s", szCommand)
iPlayerSelectTrackTime[id] = g_TrackTime[iPlayerSelectTrack[id]]
set_task(1.0, "TrackInfoPlayer", id, _, _, "b")
}
case 2:
{
client_cmd(id, "stopsound")
client_cmd(id, "mp3 stop")
remove_task(id)
}
case 3:
{
g_Booking = iPlayerSelectTrack[id]
new szNameB[32]
get_user_name(id, szNameB, charsmax( szNameB ))
cs_set_user_money(id, cs_get_user_money(id) - GetSkidka(get_pcvar_num( g_Cvar[3] )))
ChatColor(0, "%L", id, "RM_BOOKING_TRACK", szNameB, g_TrackName[iPlayerSelectTrack[id]])
}
}
ShowTrack(id, iPlayerSelectTrack[id])
menu_destroy( iMenu )
return PLUGIN_HANDLED
}
public StartTrack()
{
remove_task(123)
remove_task(1234)
new iPlayers[32]
new iPlayer, iNum
get_players(iPlayers, iNum)
new iRandom
if(!g_Booking)
{
iRandom = random_num(1, g_TrackNum)
}
else
{
iRandom = g_Booking
g_Booking = 0
}
new szCommand[128]
if(containi(g_TrackFile[iRandom][2], ".wav") != -1)
{
formatex(szCommand, charsmax( szCommand ), "spk %s", g_TrackFile[iRandom][2])
}
else if(containi(g_TrackFile[iRandom][2], ".mp3") != -1)
{
formatex(szCommand, charsmax( szCommand ), "mp3 play %s", g_TrackFile[iRandom][2])
}
for(new i; i < iNum; i++)
{
iPlayer = iPlayers[i]
if(!iPlayerEnabled[iPlayer] || !is_user_connected(iPlayer))
continue
g_TrackStart = iRandom
g_TrackStartTime = g_TrackTime[iRandom]
client_cmd(iPlayer, "stopsound")
client_cmd(iPlayer, "mp3volume %f", (float(iPlayerVoice[iPlayer]) / 100.0))
client_cmd(iPlayer, "%s", szCommand)
}
set_task(1.0, "TrackInfo", 123, _, _, "b")
}
public TrackInfo()
{
--g_TrackStartTime
if(g_TrackStartTime <= 0)
{
remove_task(123)
remove_task(1234)
}
else if(g_TrackStartTime == 3)
{
set_task(0.2, "Zatuhanie", 1234, _, _, "b")
}
new iTime = g_TrackTime[g_TrackStart] - g_TrackStartTime
new szText[512]
formatex(szText, charsmax( szText ), "%L", 0, "RM_TRACKINFO", g_TrackName[g_TrackStart], FormatTime( iTime ), FormatTime( g_TrackTime[g_TrackStart] ))
new iPlayers[32]
new iPlayer, iNum
get_players(iPlayers, iNum)
for(new i; i < iNum; i++)
{
iPlayer = iPlayers[i]
if(!iPlayerEnabled[iPlayer] || !is_user_connected(iPlayer))
continue
remove_task(iPlayer)
set_hudmessage(255, 255, 255, -1.0, 0.75, 0, 6.0, 0.9, 0.1, 0.1)
show_hudmessage(iPlayer, szText)
}
}
public TrackInfoPlayer(id)
{
--iPlayerSelectTrackTime[id]
if(iPlayerSelectTrackTime[id] <= 0)
{
remove_task(id)
}
new iTime = g_TrackTime[iPlayerSelectTrack[id]] - iPlayerSelectTrackTime[id]
new szText[512]
formatex(szText, charsmax( szText ), "%L", 0, "RM_TRACKINFO", g_TrackName[iPlayerSelectTrack[id]], FormatTime( iTime ), FormatTime( g_TrackTime[iPlayerSelectTrack[id]] ))
set_hudmessage(255, 255, 255, -1.0, 0.75, 0, 6.0, 0.9, 0.1, 0.1)
show_hudmessage(id, szText)
}
public Zatuhanie()
{
new iPlayers[32]
new iPlayer, iNum
get_players(iPlayers, iNum)
for(new i; i < iNum; i++)
{
iPlayer = iPlayers[i]
if(!iPlayerEnabled[iPlayer] || !is_user_connected(iPlayer))
continue
new Float:fTime = float(iPlayerVoice[iPlayer]) / 100.0
fTime = fTime - 0.35
client_cmd(iPlayer, "mp3volume %f", fTime)
}
}
stock FormatTime(iTime)
{
new szTime[32]
new iMin, iSec
iMin = iTime / 60
iSec = iTime - (iMin * 60)
if(iSec <= 9)
{
formatex(szTime, charsmax( szTime ), "%d:0%d", iMin, iSec)
}
else
{
formatex(szTime, charsmax( szTime ), "%d:%d", iMin, iSec)
}
return szTime
}
stock GetSkidka(iSum)
{
new szTime[32]
get_time("%H", szTime, charsmax( szTime ))
new iTime = str_to_num( szTime )
if(iTime >= get_pcvar_num( g_Cvar[4] ) && iTime < get_pcvar_num( g_Cvar[5] ))
{
return iSum - ((iSum / 100) * get_pcvar_num( g_Cvar[6] ))
}
return iSum
}
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
Добавлено спустя 45 секунд:
Пробовал вставить окончание .mp3
Не помогло
Добавлено спустя 24 секунды:
Трек лист функционален...музыка залита