Фоновая музыка на сервере

Сообщения
2
Реакции
0
Баллы
1
Не попадался мне такой плагин вроде, но может я плохо искала.

Ищу плагин , который будет проигрывать MP3 файлы самостоятельно в рандомное время.
Заходишь на сервер , и допустим либо сразу либо через минуту (настраивается в исходнике либо кваром) включается музыка (рандомный трек)
Далее по истечению допустим 2х минут (настраивается в исходнике либо кваром) опять включается музыка в рандомном порядке и тд.
 
Подобного плагина в интернете я не встречал, но могу написать для тебя за пятисоточку.
 
типа такого?
C-подобный:
#pragma semicolon 1

#include <amxmodx>

#include <api_player_music>

#define TRACK_START_DELAY 5.0

new const g_rgszMusicList[][] = {
  "media/Half-Life05.mp3",
  "media/Half-Life01.mp3",
  "media/Half-Life02.mp3",
  "media/Half-Life03.mp3",
  "media/Half-Life04.mp3"
};

new PlayerMusic_Track:g_rgiTracks[sizeof(g_rgszMusicList)];

new g_pHudObj;

public plugin_precache() {
  for (new i = 0; i < sizeof(g_rgszMusicList); ++i) {
    g_rgiTracks[i] = PlayerMusic_LoadTrack(g_rgszMusicList[i]);
  }
}

public plugin_init() {
  register_plugin("Test Music System", "1.0.0", "Hedgehog Fog");

  g_pHudObj = CreateHudSyncObj();
}

public client_putinserver(pPlayer) {
  @Player_ScheduleTrack(pPlayer);

  set_task(1.0, "Task_ShowTrackInfo", pPlayer, _, _, "b");
}

public PlayerMusic_OnTrackEnd(const pPlayer, const PlayerMusic_Track:track, bool:bStopped) {
  @Player_ScheduleTrack(pPlayer);
}

@Player_ScheduleTrack(const &pPlayer) {
  PlayerMusic_Player_PlayTrack(pPlayer, g_rgiTracks[random(sizeof(g_rgszMusicList))], TRACK_START_DELAY);
}

public Task_ShowTrackInfo(const pPlayer) {
  new PlayerMusic_Track:track = PlayerMusic_Player_GetTrack(pPlayer);
  if (track == PlayerMusic_Track_Invalid) {
    ClearSyncHud(pPlayer, g_pHudObj);
    return;
  }

  static szTrackTitle[64]; PlayerMusic_GetTrackTitle(track, szTrackTitle, charsmax(szTrackTitle));
  static szArtist[64]; PlayerMusic_GetTrackArtist(track, szArtist, charsmax(szArtist));
  static szAlbum[64]; PlayerMusic_GetTrackAlbum(track, szAlbum, charsmax(szAlbum));

  new iYear = PlayerMusic_GetTrackYear(track);

  static szMessage[512];

  new iPos = 0;

  iPos += format(szMessage[iPos], charsmax(szMessage) - iPos, "Currently playing: %s^n", szTrackTitle);
  iPos += format(szMessage[iPos], charsmax(szMessage) - iPos, "Author: %s^n", szArtist);
  iPos += format(szMessage[iPos], charsmax(szMessage) - iPos, "Album: %s^n", szAlbum);
  iPos += format(szMessage[iPos], charsmax(szMessage) - iPos, "Year: %d^n", iYear);

  if (PlayerMusic_Player_IsTrackStarted(pPlayer)) {
    iPos += format(szMessage[iPos], charsmax(szMessage) - iPos, "Time Left: %.0f seconds", PlayerMusic_Player_GetTrackTimeLeft(pPlayer));
  } else {
    iPos += format(szMessage[iPos], charsmax(szMessage) - iPos, "Time Left: Scheduled");
  }

  set_hudmessage(random(256), random(256), random(256), 0.025, 0.1, 0, 0.0, 1.25, 0.0, 0.0);
  ShowSyncHudMsg(pPlayer, g_pHudObj, szMessage);
}

Это не готовое решение
 
типа такого?
C-подобный:
#pragma semicolon 1

#include <amxmodx>

#include <api_player_music>

#define TRACK_START_DELAY 5.0

new const g_rgszMusicList[][] = {
  "media/Half-Life05.mp3",
  "media/Half-Life01.mp3",
  "media/Half-Life02.mp3",
  "media/Half-Life03.mp3",
  "media/Half-Life04.mp3"
};

new PlayerMusic_Track:g_rgiTracks[sizeof(g_rgszMusicList)];

new g_pHudObj;

public plugin_precache() {
  for (new i = 0; i < sizeof(g_rgszMusicList); ++i) {
    g_rgiTracks[i] = PlayerMusic_LoadTrack(g_rgszMusicList[i]);
  }
}

public plugin_init() {
  register_plugin("Test Music System", "1.0.0", "Hedgehog Fog");

  g_pHudObj = CreateHudSyncObj();
}

public client_putinserver(pPlayer) {
  @Player_ScheduleTrack(pPlayer);

  set_task(1.0, "Task_ShowTrackInfo", pPlayer, _, _, "b");
}

public PlayerMusic_OnTrackEnd(const pPlayer, const PlayerMusic_Track:track, bool:bStopped) {
  @Player_ScheduleTrack(pPlayer);
}

@Player_ScheduleTrack(const &pPlayer) {
  PlayerMusic_Player_PlayTrack(pPlayer, g_rgiTracks[random(sizeof(g_rgszMusicList))], TRACK_START_DELAY);
}

public Task_ShowTrackInfo(const pPlayer) {
  new PlayerMusic_Track:track = PlayerMusic_Player_GetTrack(pPlayer);
  if (track == PlayerMusic_Track_Invalid) {
    ClearSyncHud(pPlayer, g_pHudObj);
    return;
  }

  static szTrackTitle[64]; PlayerMusic_GetTrackTitle(track, szTrackTitle, charsmax(szTrackTitle));
  static szArtist[64]; PlayerMusic_GetTrackArtist(track, szArtist, charsmax(szArtist));
  static szAlbum[64]; PlayerMusic_GetTrackAlbum(track, szAlbum, charsmax(szAlbum));

  new iYear = PlayerMusic_GetTrackYear(track);

  static szMessage[512];

  new iPos = 0;

  iPos += format(szMessage[iPos], charsmax(szMessage) - iPos, "Currently playing: %s^n", szTrackTitle);
  iPos += format(szMessage[iPos], charsmax(szMessage) - iPos, "Author: %s^n", szArtist);
  iPos += format(szMessage[iPos], charsmax(szMessage) - iPos, "Album: %s^n", szAlbum);
  iPos += format(szMessage[iPos], charsmax(szMessage) - iPos, "Year: %d^n", iYear);

  if (PlayerMusic_Player_IsTrackStarted(pPlayer)) {
    iPos += format(szMessage[iPos], charsmax(szMessage) - iPos, "Time Left: %.0f seconds", PlayerMusic_Player_GetTrackTimeLeft(pPlayer));
  } else {
    iPos += format(szMessage[iPos], charsmax(szMessage) - iPos, "Time Left: Scheduled");
  }

  set_hudmessage(random(256), random(256), random(256), 0.025, 0.1, 0, 0.0, 1.25, 0.0, 0.0);
  ShowSyncHudMsg(pPlayer, g_pHudObj, szMessage);
}

Это не готовое решение
Этот сложный какой то.

Мне нужен простой...заходишься на сервер , в motd включается музыка (определённая-для приветствия)
Потом когда музыка при входе отыграет, запускаются игровые треки в рандомном порядке с небольшими перерывами между треками.
 

Кто просматривает тему

Назад
Верх