So im trying to get music to play at random on my server. I can somewhat get it to play via client side, but the music files make the mission like 20+ mb
So i want to make it server side.
here is the code I have so far, but being that ive gotten it from other forums and originally was for arma 2, 2 functions are not working.
under @epochhive\addons I have my pbo file
ambients.pbo
in that pbo i have samples folder with my music ogg files
in the root of the pbo i have my init.sqf with the code
[spoiler]
if (!isDedicated) then { private ["_sound","_length","_pause","_enableAmbient","_minWaitTime","_maxWaitTime","_musicArray","_waitTimeDifference","_randomWait"]; // Enable Ambient music? true/false _enableAmbient = true; waitUntil {alive vehicle player}; waitUntil {typeOF player != "VirtualMan_EPOCH"}; if (_enableAmbient) then { // Minimum amount of time before running the next track (in seconds) // Default for my script is 10 minutes. (600 seconds) // Must be less than the maximum wait time. _minWaitTime = 120; // Maximum amount of time before running the next track (in seconds) // Default for my script is 30 minutes. (1800 seconds) // Must be more than the maximum wait time. _maxWaitTime = 900; // The array of your ambient tracks. These must match the class of a // cfgMusic entry either in the default DayZ cfgMusic or Description.ext // In your Mission.pbo. (Example: class bombs) // It will choose a random track from this array. _musicArray = ["Misc_strange_wind","stinger_0","stinger_1","suspense_0","suspense_1","suspense_2","suspense_3","suspense_4","suspense_5","suspense_6","suspense_7","suspense_8","suspense_9","suspense_10","suspense_11","suspense_12","suspense_13","suspense_14","suspense_15","suspense_16","suspense_17","suspense_18","suspense_19","suspense_20","suspense_21","suspense_22","suspense_23","suspense_24","suspense_25","suspense_26","suspense_27","suspense_28","suspense_29","suspense_30","suspense_31","suspense_32","suspense_33","suspense_34","suspense_35"]; // Pick a sound _sound = _musicArray select floor random count _musicArray; // Get it's length from the cfgMusic/Description.ext _length = getNumber(configFile >> "cfgMusic" >> _sound >> "Duration"); // Lets figure out the random wait time _waitTimeDifference = ((_maxWaitTime) - (_minWaitTime)); _randomWait = (random (_waitTimeDifference)); _pause = (_randomWait) + (_length); // Play the song if (!r_player_unconscious and !r_pitchWhine) then { playMusic _sound; }; // Let the script sleep the song length and the random amount of time sleep _pause; }; };
in my pbo file i also have my config.cpp with
class cfgMusic { tracks [] = {"Misc_strange_wind", "stinger_0", "stinger_1", "suspense_0", "suspense_1", "suspense_2", "suspense_3", "suspense_4", "suspense_5", "suspense_6", "suspense_7", "suspense_8", "suspense_9", "suspense_10", "suspense_11", "suspense_12", "suspense_13", "suspense_14", "suspense_15", "suspense_16", "suspense_17", "suspense_18", "suspense_19", "suspense_20", "suspense_21", "suspense_22", "suspense_23", "suspense_24", "suspense_25", "suspense_26", "suspense_27", "suspense_28", "suspense_29", "suspense_30", "suspense_31", "suspense_32", "suspense_33", "suspense_34", "suspense_35"}; class Misc_strange_wind { name = "Misc_strange_wind"; sound [] = {"\ambients\samples\fx_misc4.ogg", 1.000000, 1.000000}; duration = 25; }; class stinger_0 { name = "stinger_0"; sound [] = {"\ambients\samples\stinger_0.ogg", 1.000000, 1.000000}; duration = 27; }; class stinger_1 { name = "stinger_1"; sound [] = {"\ambients\samples\stinger_1.ogg", 1.000000, 1.000000}; duration = 19; }; class suspense_0 { name = "suspense_0"; sound [] = {"\ambients\samples\suspense_0.ogg", 1.000000, 1.000000}; duration = 17; }; class suspense_1 { name = "suspense_1"; sound [] = {"\ambients\samples\suspense_1.ogg", 1.000000, 1.000000}; duration = 13; }; class suspense_2 { name = "suspense_2"; sound [] = {"\ambients\samples\suspense_2.ogg", 1.000000, 1.000000}; duration = 14; }; class suspense_3 { name = "suspense_3"; sound [] = {"\ambients\samples\suspense_3.ogg", 1.000000, 1.000000}; duration = 16; }; class suspense_4 { name = "suspense_4"; sound [] = {"\ambients\samples\suspense_4.ogg", 1.000000, 1.000000}; duration = 13; }; class suspense_5 { name = "suspense_5"; sound [] = {"\ambients\samples\suspense_5.ogg", 1.000000, 1.000000}; duration = 15; }; class suspense_6 { name = "suspense_6"; sound [] = {"\ambients\samples\suspense_6.ogg", 1.000000, 1.000000}; duration = 22; }; class suspense_7 { name = "suspense_7"; sound [] = {"\ambients\samples\suspense_7.ogg", 1.000000, 1.000000}; duration = 17; }; class suspense_8 { name = "suspense_8"; sound [] = {"\ambients\samples\suspense_8.ogg", 1.000000, 1.000000}; duration = 24; }; class suspense_9 { name = "suspense_9"; sound [] = {"\ambients\samples\suspense_9.ogg", 1.000000, 1.000000}; duration = 18; }; class suspense_10 { name = "suspense_10"; sound [] = {"\ambients\samples\suspense_10.ogg", 1.000000, 1.000000}; duration = 14; }; class suspense_11 { name = "suspense_11"; sound [] = {"\ambients\samples\suspense_11.ogg", 1.000000, 1.000000}; duration = 15; }; class suspense_12 { name = "suspense_12"; sound [] = {"\ambients\samples\suspense_12.ogg", 1.000000, 1.000000}; duration = 15; }; class suspense_13 { name = "suspense_13"; sound [] = {"\ambients\samples\suspense_13.ogg", 1.000000, 1.000000}; duration = 12; }; class suspense_14 { name = "suspense_14"; sound [] = {"\ambients\samples\suspense_14.ogg", 1.000000, 1.000000}; duration = 6; }; class suspense_15 { name = "suspense_15"; sound [] = {"\ambients\samples\suspense_15.ogg", 1.000000, 1.000000}; duration = 23; }; class suspense_16 { name = "suspense_16"; sound [] = {"\ambients\samples\suspense_16.ogg", 1.000000, 1.000000}; duration = 17; }; class suspense_17 { name = "suspense_17"; sound [] = {"\ambients\samples\suspense_17.ogg", 1.000000, 1.000000}; duration = 28; }; class suspense_18 { name = "suspense_18"; sound [] = {"\ambients\samples\suspense_18.ogg", 1.000000, 1.000000}; duration = 13; }; class suspense_19 { name = "suspense_19"; sound [] = {"\ambients\samples\suspense_19.ogg", 1.000000, 1.000000}; duration = 17; }; class suspense_20 { name = "suspense_20"; sound [] = {"\ambients\samples\suspense_20.ogg", 1.000000, 1.000000}; duration = 65; }; class suspense_21 { name = "suspense_21"; sound [] = {"\ambients\samples\suspense_21.ogg", 1.000000, 1.000000}; duration = 89; }; class suspense_22 { name = "suspense_22"; sound [] = {"\ambients\samples\suspense_22.ogg", 1.000000, 1.000000}; duration = 44; }; class suspense_23 { name = "suspense_23"; sound [] = {"\ambients\samples\suspense_23.ogg", 1.000000, 1.000000}; duration = 59; }; class suspense_24 { name = "suspense_24"; sound [] = {"\ambients\samples\suspense_24.ogg", 1.000000, 1.000000}; duration = 52; }; class suspense_25 { name = "suspense_25"; sound [] = {"\ambients\samples\suspense_25.ogg", 1.000000, 1.000000}; duration = 52; }; class suspense_26 { name = "suspense_26"; sound [] = {"\ambients\samples\suspense_26.ogg", 1.000000, 1.000000}; duration = 158; }; class suspense_27 { name = "suspense_27"; sound [] = {"\ambients\samples\suspense_27.ogg", 1.000000, 1.000000}; duration = 130; }; class suspense_28 { name = "suspense_28"; sound [] = {"\ambients\samples\suspense_28.ogg", 1.000000, 1.000000}; duration = 116; }; class suspense_29 { name = "suspense_29"; sound [] = {"\ambients\samples\suspense_29.ogg", 1.000000, 1.000000}; duration = 129; }; class suspense_30 { name = "suspense_30"; sound [] = {"\ambients\samples\suspense_30.ogg", 1.000000, 1.000000}; duration = 117; }; class suspense_31 { name = "suspense_31"; sound [] = {"\ambients\samples\suspense_31.ogg", 1.000000, 1.000000}; duration = 33; }; class suspense_32 { name = "suspense_32"; sound [] = {"\ambients\samples\suspense_32.ogg", 1.000000, 1.000000}; duration = 29; }; class suspense_33 { name = "suspense_33"; sound [] = {"\ambients\samples\suspense_33.ogg", 1.000000, 1.000000}; duration = 14; }; class suspense_34 { name = "suspense_34"; sound [] = {"\ambients\samples\suspense_34.ogg", 1.000000, 1.000000}; duration = 15; }; class suspense_35 { name = "suspense_35"; sound [] = {"\ambients\samples\suspense_35.ogg", 1.000000, 1.000000}; duration = 20; }; };
in my mission init.sqf i call on the pbo's init.sqf
execVM "\q\addons\ambients\init.sqf";
am I forgetting anything?
and finally
// Play the song if (!r_player_unconscious and !r_pitchWhine) then { playMusic _sound; };
instead of
(!r_player_unconscious and !r_pitchWhine) what would you recommend i use as a trigger? this is what is used in arma 2, but could not find these in arma 3 epoch code anywhere.Edited by tinboye