JackFighter

Vanilla Dynamic Ambient Script

Jul 31st, 2021
779
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQF 3.70 KB | None | 0 0
  1. // Vanilla Dynamic Ambient Music script by JackFighter
  2. // Definition of tracks
  3. actionAmbient =
  4. [
  5.     "LeadTrack01a_F",
  6.     "LeadTrack03_F",
  7.     "LeadTrack04_F",
  8.     "LeadTrack04a_F",
  9.     "BackgroundTrack03_F",
  10.     "BackgroundTrack02_F",
  11.     "LeadTrack03a_F_EPA",
  12.     "LeadTrack04_F_EPB",
  13.     "LeadTrack04_F_EPC",
  14.     "LeadTrack05_F_EPC",
  15.     "EventTrack02_F_EPC",
  16.     "EventTrack02b_F_EPC",
  17.     "LeadTrack02_F_Mark",
  18.     "LeadTrack03_F_EXP",
  19.     "MainTheme_F_Tank",
  20.     "LeadTrack01_F_Tank",
  21.     "LeadTrack05_F_Tank",
  22.     "Music_Battle_Alien",
  23.     "Music_Battle_Human",
  24.     "Music_FreeRoam_Battle_Alien",
  25.     "Music_FreeRoam_Battle_Human"
  26. ];
  27.  
  28. dayCalmAmbient =
  29. [
  30.     "LeadTrack05_F",
  31.     "LeadTrack06_F",
  32.     "AmbientTrack01_F",
  33.     "AmbientTrack01a_F",
  34.     "AmbientTrack03_F",
  35.     "LeadTrack01_F_EPA",
  36.     "EventTrack02a_F_EPA",
  37.     "LeadTrack01a_F_EPB",
  38.     "LeadTrack02a_F_EPB",
  39.     "LeadTrack03_F_EPB",
  40.     "LeadTrack03a_F_EPB",
  41.     "EventTrack01a_F_EPB",
  42.     "EventTrack02_F_EPB",
  43.     "EventTrack02a_F_EPB",
  44.     "EventTrack04_F_EPB",
  45.     "EventTrack04a_F_EPB",
  46.     "EventTrack03a_F_EPB",
  47.     "BackgroundTrack01_F_EPB",
  48.     "LeadTrack03_F_EPC",
  49.     "EventTrack01_F_EPC",
  50.     "EventTrack03_F_EPC",
  51.     "BackgroundTrack02_F_EPC",
  52.     "Fallout",
  53.     "Wasteland",
  54.     "SkyNet",
  55.     "MAD",
  56.     "LeadTrack02_F_Bootcamp",
  57.     "LeadTrack03_F_Mark",
  58.     "AmbientTrack01_F_EXP",
  59.     "AmbientTrack02_F_EXP",
  60.     "AmbientTrack01_F_Orange",
  61.     "AmbientTrack01a_F_Tacops",
  62.     "AmbientTrack02a_F_Tacops",
  63.     "AmbientTrack02b_F_Tacops",
  64.     "AmbientTrack04a_F_Tacops",
  65.     "AmbientTrack04b_F_Tacops",
  66.     "LeadTrack04_F_Tank",
  67.     "AmbientTrack01_F_Tank",
  68.     "Music_Roaming_Day",
  69.     "Music_Roaming_Day_02",
  70.     "Music_Hostile_Drone_Close_01",
  71.     "Music_Freeroam_02_MissionStart",
  72.     "Music_FreeRoam_Suspended_Loop_01",
  73.     "Music_FreeRoam_Russian_Theme_Loop",
  74.     "Music_FreeRoam_Russian_Theme",
  75.     "Music_Default",
  76.     "Track_R_06",
  77.     "OM_Music02",
  78.     "OM_Music03"
  79. ];
  80.  
  81. nightCalmAmbient =
  82. [
  83.     "LeadTrack02_F",
  84.     "AmbientTrack04a_F",
  85.     "AmbientTrack04_F",
  86.     "AmbientTrack01_F_EPB",
  87.     "BackgroundTrack04_F_EPC",
  88.     "Defcon",
  89.     "AmbientTrack01b_F_Tacops",
  90.     "AmbientTrack03a_F_Tacops",
  91.     "AmbientTrack03b_F_Tacops",
  92.     "Music_Roaming_Night",
  93.     "Music_Roaming_Night_02"
  94. ];
  95.  
  96. //Script itself
  97. detectionBoolean = false;
  98. musicBooleanStop = false;
  99. addMusicEventHandler ["MusicStop", {musicBooleanStop = true}];
  100.  
  101. [] spawn {
  102. scopeName "checkingLoop",
  103. while {true} do
  104.     {
  105.         detectionBoolean = true;
  106.         _closestEnemy = player findNearestEnemy player;
  107.         _distanceToClosestEnemy = player distance2D _closestEnemy;
  108.         _enemyAwareness = opfor knowsAbout player; // <-------------------------------could be blufor, opfor or independent
  109.         if (_enemyAwareness > 1.495 and _distanceToClosestEnemy < 650) then {detectionBoolean = true;} else {detectionBoolean = false;};
  110.         sleep 0.5;
  111.     };
  112. };
  113.  
  114. [] spawn {
  115. scopeName "ambientLoop",
  116.     while {true} do {
  117.         _randomCalmDay = selectRandom dayCalmAmbient;
  118.         _randomCalmNight = selectRandom nightCalmAmbient;
  119.         _randomAction = selectRandom actionAmbient;
  120.             3 fadeMusic 1;
  121.         if (dayTime < 19) then {playMusic _randomCalmDay;} else {playMusic _randomCalmNight;};
  122.         waitUntil {detectionBoolean isEqualTo true or musicBooleanStop isEqualTo true};
  123.         if (musicBooleanStop isEqualTo true) then {musicBooleanStop = false};
  124.         if (detectionBoolean isEqualTo true) then {
  125.             scopeName "actionLoop",
  126.             while {true} do {
  127.                 3 fadeMusic 1;
  128.                 playMusic _randomAction;
  129.                 sleep 4;
  130.                 waitUntil {detectionBoolean isEqualTo false or musicBooleanStop isEqualTo true};
  131.                 if (musicBooleanStop isEqualTo true) then {musicBooleanStop = false};              
  132.                 sleep 0.5;
  133.                     3 fadeMusic 0;
  134.                     sleep 3;
  135.                 _randomAction = selectRandom actionAmbient;
  136.                 if (detectionBoolean isEqualTo false) then {breakOut "ActionLoop",};
  137.             };
  138.             sleep 0.5;
  139.         };
  140.         sleep 0.5;
  141.     };
  142. };
Advertisement
Add Comment
Please, Sign In to add comment