LScripts/Main/Game.lua
Game =
{
--
_menumusic = true, --
}
--======================
function Game:LoadLevel(name)
--
PMENU.ActivateLoadingScreen( true, self.CurrLevel, Levels_GetSketchByDir(name), name )
PMENU.SetLoadingScreenOverall( Game:CountLevelElems(name), 10 )
------------------
StopMenuMusic() ------------------
-- look for level file
local files = FS.FindFiles(path.."*.CLevel",1,0)
if table.getn(files)>0 then
--
--
GObjects:AfterLoad()
Game:ApplySettings()
--
end
---------------------------------------------------------
LScripts/Main/Cfg.lua
Cfg =
{
--
MenuMusicVolume = 100,
MenuMusic = true, --
}
---------------------------------------------------------
LScripts/HUD/PainMenu.lua function PainMenu:Draw()
if self.showStartMovies then
if IsFinalBuild() then
PMENU.PlayMovie('../Data/Movies/logo-dreamcatcher.bik');
PMENU.PlayMovie('../Data/Movies/logo-pcf.bik');
PMENU.PlayMovie('../Data/Movies/logo-nvidia.bik');
end
self.showStartMovies = false
end
self._menumusic = name
StartMenuMusic()
SOUND.StreamSetVolume(3,Cfg.MenuMusicVolume)
if Cfg.MenuMusic == false then
Game._menumusic = false
SOUND.StreamPause(3)
end end
--==============================
function PainMenu:SelectDifficulty(mode)
-----------------------
StopMenuMusic()
SOUND.StreamPause(3) -----------------------
Game:Print( "SoundTrack: "..self.movSndTrack )
if not Game.AddOn then
PMENU.PlayMovie("../Data/Movies/intro.bik",self.movSndTrack)
else
PMENU.PlayMovie("../Data/Movies/booh_intro.bik",self.movSndTrack)
end
--
end
--============================
--
function PainMenu:ShowNoCDWarning()
--
end
--========================
MenuMusicTable =
{
["menustream"]={
"painkiller-mp-sacred",
"C2L3_Opera_Music",
}
}
--========================
function StartMenuMusic()
if Game and Game._menumusic then
local tab=MenuMusicTable[Game._menumusic]
if not tab then tab=MenuMusicTable["menustream"] end
if not tab then Game:Print("menuMusicTable is empty") return end
if table.getn(tab)<1 then return end
local music=tab[math.random(1,table.getn(tab))]
if not music then Game:Print("[2] menuMusicTable is empty") return end
SOUND.StreamLoad(3,music)
SOUND.StreamPlay(3,true)
SOUND.StreamSetVolume(3,Cfg.MusicVolume)
Game._menumusic=true
end
end
--=========================
function StopMenuMusic()
if Game._menumusic==true then
SOUND.StreamPause(3)
SOUND.StreamDelete(3)
Game._menumusic=false
end
end
--=========================
function PainMenu:MenuMusicOff()
if self.currScreen == nil then
return
end
Cfg['MenuMusic'] = musmenu
local musmenu = PMENU.IsItemChecked( 'MenuMusic' )
PainMenu.MenuMusic = musmenu
Cfg.MenuMusic = musmenu
Game._menumusic = false
SOUND.StreamPause(3)
if Cfg.MenuMusic == true then
SOUND.StreamResume(3)
end
end
--============================
function PainMenu:MenuMusicVolume()
if self.currScreen == nil then
return
end
local screen = self.currScreen
local musicvol = PMENU.GetSliderValue( 'MenuMusicVolume' ) / 1
Cfg['MenuMusicVolume'] = musicvol
SOUND.StreamSetVolume(3,Cfg.MenuMusicVolume)
Cfg:Save()
end LScripts/HUD/Menu/Options/SoundOptions.lua Добавляем в конец или куда угодно на ваше усмотрение новые таблицы. Слайдер для настройки громкости музыки и кнопка для включения/отключения музыки.
MenuMusicVolume =
{
type = MenuItemTypes.Slider,
text = "MM Volume",
desc = "Set the Menu Music Volume",
option = "MenuMusicVolume",
minValue = 0,
maxValue = 100,
x = 160,
y = 320,
action = "PainMenu:MenuMusicVolume();PainMenu:ApplyAudioSettings(false)",
warning = true,
},
MenuMusic =
{
type = MenuItemTypes.Checkbox,
text = "Menu Music",
desc = "Enable Menu Music",
option = "MenuMusic",
valueOn = true,
valueOff = false,
x = 650,
y = 555,
action = "PainMenu:MenuMusicOff()",
fontBigSize = 26,
warning = true,
},