Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Редакотор плагина

Статус пользователя stars
сообщение 30.7.2012, 2:10
Сообщение #1
Стаж: 17 лет

Сообщений: 104
Благодарностей: 4
Полезность: 36

Помогите пожалуйста настроить Half Life Media Player III (v3.1.1)
так что бы играла только одна радио станция,и играла тогда только мертв,или находишься в спектах

если реально сделать так то напишите сразу цену

Скрытый текст
Цитата
/* Formatright © 2009, ConnorMcLeod

Half Life Media Player is free software;
you can redistribute it and/or modify it under the terms of the
GNU General Public License as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Half Life Media Player; if not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/

#include <amxmodx>
#include <nvault>

#define VERSION "3.1.1"

#define NVAULT_MAX_DAYS_SAVE 15
#define MAX_RECONNECT_TIME 300 // in seconds (take in account that players could download a new map)
#define DEFAULT_VOLUME 40

#define A_DAY_IN_SECONDS 86400 // 60 * 60 * 24

#define GROUP_MAX_LENGTH 64

#define RADIO_MAX_LENGTH 64
#define URL_MAX_LENGTH 192

#define MAX_PLAYERS 32
#define AUTHID_LENGTH 22

#define SetIdBits(%1,%2) %1 |= 1<<(%2 & 31)
#define ClearIdBits(%1,%2) %1 &= ~( 1<<(%2 & 31) )
#define GetIdBits(%1,%2) %1 & 1<<(%2 & 31)

enum _:Radios
{
RadioName[RADIO_MAX_LENGTH],
RadioUrl[URL_MAX_LENGTH]
}

enum _:Group
{
GroupName[GROUP_MAX_LENGTH],
Array:GroupArrayOffset
}

enum _:MenuSettings
{
mGroups,
mRadios,
mConfig
}

new Array:g_aGroups

new g_iGroupsCount

new g_bRepeat, g_bListening

new g_iMenuOption[MAX_PLAYERS+1]
new g_iMenuPosition[MAX_PLAYERS+1]
new g_iVolume[MAX_PLAYERS+1] = {DEFAULT_VOLUME, ...}
new g_szAuthid[MAX_PLAYERS+1][AUTHID_LENGTH]
new g_PlayerGroup[MAX_PLAYERS+1][Group]

new g_pCvarShowAll, g_pCvarNoMotd

new gmsgMOTD
new g_iMotdRegistered
new g_iNvault

public plugin_init()
{
register_plugin("Half Life Media Player", VERSION, "ConnorMcLeod")
register_dictionary("common.txt")
register_dictionary("hlmp.txt")

g_pCvarShowAll = register_cvar("hlmp_show_all", "1")
g_pCvarNoMotd = register_cvar("hlmp_no_motd", "1")

register_menucmd(register_menuid("HLMP"), 0x3FF, "HlmpMenuAction")

register_clcmd("hlmp_menu", "ClientCommand_HlmpMenu")
register_clcmd("say /hlmp", "ClientCommand_HlmpMenu")
register_clcmd("say /music", "ClientCommand_HlmpMenu")
register_clcmd("say /radio", "ClientCommand_HlmpMenu")
register_clcmd("say_team /hlmp", "ClientCommand_HlmpMenu")
register_clcmd("say_team /music", "ClientCommand_HlmpMenu")
register_clcmd("say_team /radio", "ClientCommand_HlmpMenu")

register_clcmd("say /stop", "ClientCommand_StopMusic")
register_clcmd("say_team /stop", "ClientCommand_StopMusic")

Read_ConfigFile()
Read_OpeningMotdCommandsFile()

g_iNvault = nvault_open("hlmp")
nvault_prune(g_iNvault, 0, get_systime(-(A_DAY_IN_SECONDS * NVAULT_MAX_DAYS_SAVE)) )

gmsgMOTD = get_user_msgid("MOTD")
}

Read_ConfigFile()
{
new szConfigFile[64]
get_localinfo("amxx_configsdir", szConfigFile, charsmax(szConfigFile))
format(szConfigFile, charsmax(szConfigFile), "%s/mediafiles.ini", szConfigFile)

new iFile = fopen(szConfigFile, "rt")

if(!iFile)
{
return
}

g_aGroups = ArrayCreate(Group)

new iGroup
new szText[Radios+16], RadioDatas[Radios], GroupDatas[Group]
new Array:aRadiosDatas

while(!feof(iFile))
{
fgets(iFile, szText, charsmax(szText))
trim( szText )

if(!szText[0] || szText[0] == '#' || szText[0] == ';' || (szText[0] == '/' && szText[1] == '/'))
{
continue
}

if( szText[0] == '[' )
{
iGroup++
aRadiosDatas = ArrayCreate( Radios )

strtok(szText[1], GroupDatas[GroupName], charsmax(GroupDatas[GroupName]), RadioDatas, 1, ']', 0)
GroupDatas[GroupArrayOffset] = _:aRadiosDatas

ArrayPushArray(g_aGroups, GroupDatas)
}
else if( iGroup )
{
parse( szText,
RadioDatas[RadioName], charsmax(RadioDatas[RadioName]),
RadioDatas[RadioUrl], charsmax(RadioDatas[RadioUrl]) )

ArrayPushString(aRadiosDatas, RadioDatas)
}
}
fclose(iFile)

g_iGroupsCount = ArraySize(g_aGroups)
}

Read_OpeningMotdCommandsFile()
{
new szConfigFile[64]
get_localinfo("amxx_configsdir", szConfigFile, charsmax(szConfigFile))
format(szConfigFile, charsmax(szConfigFile), "%s/hlmp_motd.ini", szConfigFile)
new iFile = fopen(szConfigFile, "rt")
if( iFile )
{
new szText[64], szCommand[32]
while(!feof(iFile))
{
fgets(iFile, szText, charsmax(szText))
trim( szText )
if(!szText[0] || szText[0] == '#' || szText[0] == ';' || (szText[0] == '/' && szText[1] == '/'))
{
continue
}
parse(szText, szCommand, charsmax(szCommand))
register_clcmd(szCommand, "OpeningMotdCommands")
}
}
}

public plugin_end()
{
new TempGroup[Group], iSize = ArraySize(g_aGroups)

for(new i; i<iSize; i++)
{
ArrayGetArray(g_aGroups, i, TempGroup)
ArrayDestroy(TempGroup[GroupArrayOffset])
}

ArrayDestroy(g_aGroups)

nvault_close(g_iNvault)
}

public client_connect(id)
{
g_szAuthid[id] = "C"
}

public client_authorized( id )
{
if( g_szAuthid[id][0] == 'P' )
{
get_user_authid(id, g_szAuthid[id], AUTHID_LENGTH-1)
GetPlayerSettings(id)
}
else
{
get_user_authid(id, g_szAuthid[id], AUTHID_LENGTH-1)
}
}

public client_putinserver(id)
{
g_iMenuOption[id] = mGroups
g_PlayerGroup[id][GroupName][0] = 0
g_PlayerGroup[id][GroupArrayOffset] = 0

if( g_szAuthid[id][0] == 'C' )
{
g_szAuthid[id] = "P"
return
}

static szSettings[8], szVolume[4], szRepeat[2], szListening[2], iVolume, iDisconnectTime
nvault_lookup(g_iNvault, g_szAuthid[id], szSettings, charsmax(szSettings), iDisconnectTime)
parse(szSettings, szVolume, charsmax(szVolume), szRepeat, charsmax(szRepeat), szListening, charsmax(szListening))

if( (iVolume = str_to_num(szVolume)) )
{
g_iVolume[id] = min(iVolume, 100)
}
else
{
g_iVolume[id] = DEFAULT_VOLUME
}

if( str_to_num(szRepeat) )
{
SetIdBits(g_bRepeat, id)
}
else
{
ClearIdBits(g_bRepeat, id)
}

if( get_systime() - iDisconnectTime < MAX_RECONNECT_TIME
&& str_to_num(szListening) == 1
&& get_pcvar_num(g_pCvarNoMotd) )
{
SetIdBits(g_bListening, id)
g_iMotdRegistered = register_message(gmsgMOTD, "Message_MOTD")
}
else
{
ClearIdBits(g_bListening, id)
}
}

GetPlayerSettings(id)
{
new szSettings[8], szVolume[4], szRepeat[2], iVolume
nvault_get(g_iNvault, g_szAuthid[id], szSettings, charsmax(szSettings))
parse(szSettings, szVolume, charsmax(szVolume), szRepeat, charsmax(szRepeat))

if( (iVolume = str_to_num(szVolume)) )
{
g_iVolume[id] = min(iVolume, 100)
}
else
{
g_iVolume[id] = DEFAULT_VOLUME
}

if( str_to_num(szRepeat) )
{
SetIdBits(g_bRepeat, id)
}
else
{
ClearIdBits(g_bRepeat, id)
}

ClearIdBits(g_bListening, id)
}

public client_disconnect( id )
{
static szSettings[8]
formatex(szSettings, charsmax(szSettings), "%d %d %d",
g_iVolume[id],
_:!!(GetIdBits(g_bRepeat, id)),
_:!!(GetIdBits(g_bListening, id)))
nvault_set(g_iNvault, g_szAuthid[id], szSettings)

g_szAuthid[id] = "D"
}

public Message_MOTD(iMsgId, iDest, id)
{
if( GetIdBits(g_bListening, id) )
{
if( get_msg_arg_int(1) )
{
unregister_message(gmsgMOTD, g_iMotdRegistered)
}
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}

public ClientCommand_HlmpMenu(id)
{
DisplayMenu(id, g_iMenuPosition[id] = 0)
}

DisplayMenu(id, iPos = 0)
{
new szMenu[1024], n
new iKeys = MENU_KEY_6|MENU_KEY_7|MENU_KEY_0

n = formatex(szMenu[n], charsmax(szMenu)-n, "\rHL Media Player (HLMP %s)^n", VERSION)

switch( g_iMenuOption[id] )
{
case mGroups:
{
new iStart = iPos * 5
new iStop = min(iStart + 5 , g_iGroupsCount)
new aGroup[Group]

n += formatex(szMenu[n], charsmax(szMenu)-n, "\d%L^n", id, "HLMP_GROUPS")

for(new i=iStart, j; i<iStop; i++)
{
iKeys |= (1<<j)
ArrayGetArray(g_aGroups, i, aGroup)
n += formatex(szMenu[n], charsmax(szMenu)-n, "\w%d. \r%s^n", ++j, aGroup[GroupName])
}
iPos = iStop - iStart
if( iPos < 5 )
{
for(new i; i < 5-iPos; i++)
{
n += formatex(szMenu[n], charsmax(szMenu)-n, "^n")
}
}

if( g_PlayerGroup[id][GroupName][0] )
{
n += formatex(szMenu[n], charsmax(szMenu)-n, "\w6. \y%s^n", g_PlayerGroup[id][GroupName])
}
else
{
n += formatex(szMenu[n], charsmax(szMenu)-n, "\w6. \y%L^n", id, "HLMP_CONFIG")
}
n += formatex(szMenu[n], charsmax(szMenu)-n, "\w7. \y%L^n\w", id, "HLMP_STOPMUSIC")

if( iStart )
{
iKeys |= MENU_KEY_8
n += formatex(szMenu[n], charsmax(szMenu)-n, "8. %L^n", id, "BACK")
}
else
{
n += formatex(szMenu[n], charsmax(szMenu)-n, "^n")
}

if( iStop < g_iGroupsCount )
{
iKeys |= MENU_KEY_9
n += formatex(szMenu[n], charsmax(szMenu)-n, "9. %L^n", id, "MORE")
}
else
{
n += formatex(szMenu[n], charsmax(szMenu)-n, "^n")
}
}
case mRadios:
{
new Array:aRadios = g_PlayerGroup[id][GroupArrayOffset]
new aCurRadio[Radios]
new iRadiosNum = ArraySize(aRadios)

new iStart = iPos * 5
new iStop = min(iStart + 5 , iRadiosNum)

n += formatex(szMenu[n], charsmax(szMenu)-n, "\d%s^n", g_PlayerGroup[id][GroupName])

for(new i=iStart, j; i<iStop; i++)
{
iKeys |= (1<<j)
ArrayGetArray(aRadios, i, aCurRadio)
n += formatex(szMenu[n], charsmax(szMenu)-n, "\w%d. \r%s^n", ++j, aCurRadio[RadioName])
}
iPos = iStop - iStart
if( iPos < 5 )
{
for(new i; i< 5 - iPos; i++)
{
n += formatex(szMenu[n], charsmax(szMenu)-n, "^n")
}
}

n += formatex(szMenu[n], charsmax(szMenu)-n, "\w6. \y%L^n", id, "HLMP_CONFIG")
n += formatex(szMenu[n], charsmax(szMenu)-n, "\w7. \y%L^n\w", id, "HLMP_STOPMUSIC")

if( iStart )
{
iKeys |= MENU_KEY_8
n += formatex(szMenu[n], charsmax(szMenu)-n, "8. %L^n", id, "BACK")
}
else
{
n += formatex(szMenu[n], charsmax(szMenu)-n, "^n")
}

if( iStop < iRadiosNum )
{
iKeys |= MENU_KEY_9
n += formatex(szMenu[n], charsmax(szMenu)-n, "9. %L^n", id, "MORE")
}
else
{
n += formatex(szMenu[n], charsmax(szMenu)-n, "^n")
}

}
case mConfig:
{
iKeys |= MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_6|MENU_KEY_7

n += formatex(szMenu[n], charsmax(szMenu)-n, "\d%L^n", id, "HLMP_CONFIG")

n += formatex(szMenu[n], charsmax(szMenu)-n, "\w1. \y%L\R%L^n", id, "HLMP_REPEAT", id, GetIdBits(g_bRepeat, id) ? "ON" : "OFF")
n += formatex(szMenu[n], charsmax(szMenu)-n, "\w2. \y%L +\R%d^n", id, "HLMP_VOLUME", g_iVolume[id])
n += formatex(szMenu[n], charsmax(szMenu)-n, "\w3. \y%L -^n", id, "HLMP_VOLUME")
n += formatex(szMenu[n], charsmax(szMenu)-n, "\w4. \y%L^n^n", id, "HLMP_ABOUT")

n += formatex(szMenu[n], charsmax(szMenu)-n, "\w6. \yGroups^n")
n += formatex(szMenu[n], charsmax(szMenu)-n, "\w7. \y%L^n^n^n", id, "HLMP_STOPMUSIC")
}
}

n += formatex(szMenu[n], charsmax(szMenu)-n, "\w0. %L", id, "EXIT")

show_menu(id, iKeys, szMenu, 30, "HLMP")

return PLUGIN_HANDLED
}

public HlmpMenuAction(id, iKey)
{
switch( g_iMenuOption[id] )
{
case mGroups:
{
switch( iKey )
{
case 0..4:
{
ArrayGetArray(g_aGroups, g_iMenuPosition[id]*5 + iKey, g_PlayerGroup[id])

g_iMenuOption[id] = mRadios
DisplayMenu(id, g_iMenuPosition[id] = 0)
}
case 5:
{
if( g_PlayerGroup[id][GroupArrayOffset] )
{
g_iMenuOption[id] = mRadios
DisplayMenu(id, g_iMenuPosition[id])
}
else
{
g_iMenuOption[id] = mConfig
DisplayMenu(id, g_iMenuPosition[id] = 0)
}
}
case 6:
{
ClientCommand_StopMusic(id)
}
case 7:
{
if( --g_iMenuPosition[id] < 0 )
{
g_iMenuPosition[id] = 0
}
DisplayMenu(id, g_iMenuPosition[id])
}
case 8:
{
if( ++g_iMenuPosition[id] >= g_iGroupsCount / 5 )
{
g_iMenuPosition[id] = g_iGroupsCount / 5
}
DisplayMenu(id, g_iMenuPosition[id])
}
case 9:
{
return PLUGIN_HANDLED
}
}
}
case mRadios:
{
switch( iKey )
{
case 0..4:
{
PlayMusic(id, g_PlayerGroup[id][GroupArrayOffset], g_iMenuPosition[id]*5 + iKey)
}
case 5:
{
g_iMenuOption[id] = mConfig
DisplayMenu(id, g_iMenuPosition[id] = 0)
}
case 6:
{
ClientCommand_StopMusic(id)
}
case 7:
{
if( --g_iMenuPosition[id] < 0 )
{
g_iMenuPosition[id] = 0
}
DisplayMenu(id, g_iMenuPosition[id])
}
case 8:
{
new iSize = ArraySize(g_PlayerGroup[id][GroupArrayOffset])
if( ++g_iMenuPosition[id] >= iSize / 5 )
{
g_iMenuPosition[id] = iSize / 5
}
DisplayMenu(id, g_iMenuPosition[id])
}
case 9:
{
return PLUGIN_HANDLED
}
}
}
case mConfig:
{
switch( iKey )
{
case 0:
{
if( GetIdBits(g_bRepeat, id) )
{
ClearIdBits(g_bRepeat, id)
}
else
{
SetIdBits(g_bRepeat, id)
}
client_print(id, print_chat, "%L", id, "HLMP_CONFIGMENUTIP")
DisplayMenu(id)
}
case 1:
{
if( (g_iVolume[id] += 5) > 100)
{
g_iVolume[id] = 100
}
client_print(id, print_chat, "%L", id, "HLMP_CONFIGMENUTIP")
DisplayMenu(id)
}
case 2:
{
if( (g_iVolume[id] -= 5) < 0)
{
g_iVolume[id] = 0
}
client_print(id, print_chat, "%L", id, "HLMP_CONFIGMENUTIP")
DisplayMenu(id)
}
case 3:
{
client_print(id, print_chat, "HL Media Player %s by ConnorMcLeod, download link in console.", VERSION)
client_print(id, print_center, "HL Media Player %s by ConnorMcLeod", VERSION)
client_print(id, print_console, "http://forums.alliedmods.net/showthread.php?p=833070#post833070")
}
case 5:
{
g_iMenuOption[id] = mGroups
DisplayMenu(id, g_iMenuPosition[id] = 0)
}
case 6:
{
ClientCommand_StopMusic(id)
}
case 9:
{
return PLUGIN_HANDLED
}
default:
{
DisplayMenu(id)
}
}
}
}
return PLUGIN_HANDLED
}

PlayMusic(id, Array:aGroup, iRadio)
{
new Radio[Radios]
ArrayGetArray(aGroup, iRadio, Radio)

if( get_pcvar_num(g_pCvarShowAll) )
{
new szName[32]
get_user_name(id, szName, charsmax(szName))
client_print(0, print_chat, "%L", LANG_PLAYER, "HLMP_LISTENING", szName, Radio[RadioName])
}

new szMotd[1024], n

n = formatex(szMotd[n], charsmax(szMotd)-n, "<html><head><meta http-equiv=^"content-type^" content=^"text/html; charset=UTF-8^"></head><body bgcolor=^"#000000^" align=^"center^"><span style=^"color: #FFB000; font-size: 9pt^">Now playing: %s <br>", Radio[RadioName])
n += formatex(szMotd[n], charsmax(szMotd)-n, "<object classid=CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6 codebase=http://www.microsoft.com/ntserver/netshow/download/en/nsmp2inf.cab#Version=5,1,51,415 type=application/x-oleobject name=msplayer width=256 height=65 align=^"middle^" id=msplayer>")
n += formatex(szMotd[n], charsmax(szMotd)-n, "<param name=^"enableContextMenu^" value=^"0^"><param name=^"stretchToFit^" value=^"1^">")
if(GetIdBits(g_bRepeat, id))
{
n += formatex(szMotd[n], charsmax(szMotd)-n, "<param name=^"AutoRewind^" value=^"1^">")
}
n += formatex(szMotd[n], charsmax(szMotd)-n, "<param name=^"Volume^" value=^"%d^">", g_iVolume[id])
n += formatex(szMotd[n], charsmax(szMotd)-n, "<param name=^"AutoStart^" value=^"1^"><param name=^"URL^" value=^"%s^">", Radio[RadioUrl])
n += formatex(szMotd[n], charsmax(szMotd)-n, "<param name=^"uiMode^" value=^"full^"><param name=^"width^" value=^"256^"><param name=^"height^" value=^"65^">")
n += formatex(szMotd[n], charsmax(szMotd)-n, "<param name=^"TransparentAtStart^" value=^"1^"></object><br>^"%L^"</span>", id, "HLMP_CLOSEWINDOW")
n += formatex(szMotd[n], charsmax(szMotd)-n, "</body></html>")

show_motd(id, szMotd, "HL Media Player")

SetIdBits(g_bListening, id)
}

public ClientCommand_StopMusic(id)
{
new szMotd[256]
formatex(szMotd, charsmax(szMotd), "<html><head><meta http-equiv=^"content-type^" content=^"text/html; charset=UTF-8^"></head><body bgcolor=^"#000000^" align=^"center^"><span style=^"color: #FFB000; font-size: 9pt^">^"%L^"</span></body></html>", id, "HLMP_CLOSEWINDOW")
show_motd(id, szMotd, "HL Media Player")
ClearIdBits(g_bListening, id)
return PLUGIN_HANDLED
}

public OpeningMotdCommands(id)
{
ClearIdBits(g_bListening, id)
}


Отредактировал: stars, - 30.7.2012, 2:15
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя stars
сообщение 4.8.2012, 5:25
Сообщение #2
Стаж: 17 лет

Сообщений: 104
Благодарностей: 4
Полезность: 36

так реально сделать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя stars
сообщение 4.8.2012, 15:43
Сообщение #3
Стаж: 17 лет

Сообщений: 104
Благодарностей: 4
Полезность: 36

Извините конечно,но можно хоть сделать что бы радио играло постоянно ?как только заходишь на сервер оно играет,без всяких команд на выключение радио и тд?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя xp2000
сообщение 7.8.2012, 20:46
Сообщение #4
Стаж: 16 лет

Сообщений: 78
Благодарностей: 1
Полезность: 14

Цитата(stars @ 4.8.2012, 23:43) *
Извините конечно,но можно хоть сделать что бы радио играло постоянно ?как только заходишь на сервер оно играет,без всяких команд на выключение радио и тд?

B motd вставь плеер и все
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: