Jump to content


  • Content Count

  • Joined

  • Last visited

  • Medals

Community Reputation

2 Neutral

About HolgerHolleBolle

  • Rank

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. oh..sure....I will see how I implement this all...Ideally I need a separate function for planes than. I am currently strugling with problems that a Heli wont return and even asiggning Waypoints in Zeus doesnt make it move....trying some stuff out now.
  2. Great....Thanks a lot. I am already testing it...It works great. Is it working with planes, too?
  3. @Rydygier I have built a ArtySpotter system for HBQ Spawnsystem. I also want to implement CAS. Would it be ok for you if I implement your CAS code in HBQ?
  4. HolgerHolleBolle

    [RELEASE] DynamicCamo Script

    Hi Real Bunc, Thank you again for makying this great script. After checking a bit I am not sure I can make a Mod out of this. I would need to learn how to make a mod from Scratch. For The Community and maybe for your further Developement I want to share my little update I made here. I hope that is ok with you. (I wont share it anywhere else) So I basically added two Features. 1) Unit speed is taken into account. So when you stand still you get a better camouflage. 2) Also I Integrated a check if the Player is on Grass and prone. If you are prone and there is Grassterain you get a really high Camouflage boost. (I always found it unfair that AI could detect players lying in grass so easily. This fixes that. These where two things I missed and it is working great from my tests. I am a novice scripter. I hope I made the code clear to understand. It would be really great if you or any other person could make this into a mod. I can not play without this Script anymore. It adds so much to the gameplay if you like sneaky style missions. //The original script was made by The Real Bunc // https://forums.bohemia.net/forums/topic/223202-release-dynamiccamo-script/ // I just added 2 Features: // Unit speed is considered for Camouflage. So when you run you get detected easier than moving slow. // Best camo is achieved by standing still and prone. // Also I added that the Ground type gets checked. So if you are on a grass surfaces AND prone you get a better Camouflage ////////////////////////////////////////////////////////////// // Put this in Init of Player : // camo = [this,"DEBUG",0,1,0,1,5] spawn compile preprocessFile "camoscript_HB.sqf"; ////////////////////////////////////////////////////////////// // DynamicCamo by Bunc v 1.5 // Free to use but credit me please. // Script adjusts unitTrait camouflagecoef & audibleCoef based on environmental factors, stance and uniform. // makes it harder for ai to detect unit depending on weather, stance, camo, cover etc. // v1.5 Script call now passes the following arguments for easy adjustment // [this,"Debug", "Ghillie",camLo,CamHi,AudLo,AudHi,Autodelay] // Where CamLo = n and n>= 0 and n<=1 default 0 // where CamHi = n and n>= 0 and n<=1 default 1 // same for AudLo and AudHi. // Autodelay is delay bewteen each autorecalc in secs. // Script now detects specific uniforms. // script also impacts ai to ai perception - ai units will benefit from DynamicCamo re detection by other ai. // to use on non player ai simply put unique call to script in that units init. // FACTORS // fog. - (0 is no fog 1 is full fog.) // Camo - factor for uniform. 0 is high uniform camo. changed via Ghillie switch. // rain - rain density. 1 full rain 0 no rain. // lightlevel - Stepwise function accounting for night, dawn, midday, dusk. range 0 dark to 1 light. // overcast - 0 clear skies to 1 full overcast. // NB script allows for linear rescaling to give better weights for each factor as required. // NB camouflageCoef values in unit trait appear to have a subtle effect // until values are small. rescaling of values ensures calculation produces figure in appropriate range for desired impact. // NB units start with camouflageCoeff set to 1 as far as I can tell. // we want combination of these factors where they are all present to produce a small ccoef // approaching zero and perhaps not too near 1 when there are no factors in play. // linear rescaling is available on the output the output if further adjustment is required. // basic formula - // newcamcoef is the value that will be set as unit trait camouflageCoef // newcamcoef = sqrt( (1-fog) * camo * (1-rain) * darkvalue * (1-overcast) // NB 0 for a factor would set camocoef to zero and we might also want some // effect even when a factor is 1 so we can scale these inputs to a smaller range eg 0.01 to 0.99 // the specific scaling needs to be tested for best effect. // We start the main loop which continues while player alive // then waituntil player presses User1 assigned key or set autodelay _ad via param. //----------------------------------------------------------------------------------------------- params ["_unit","_debug","_cLo","_cHi","_aLo","_aHi","_ad"]; if (_debug == "DEBUG" ) then { _autoInfo = "autodelay " + str _ad; hint _autoInfo; }; _time = time; while {alive player} do { waitUntil {_newtime = time; inputAction "User1" >0 OR (_newtime >_time +_ad)}; //GET FACTORS AND SCALE THEM. //GET TREES BUSHES AND HIDE FACTOR _tbhf _ntb = count nearestterrainobjects [_unit,["Tree", "SMALL TREE","RUIN", "ROCKS", "BUSH", "ROCK"],4,false,true]; _nh = count nearestterrainobjects [_unit,[ "HIDE"],4,false,true]; //set default tb factor before if _tbf = 1; if (_ntb ==0 ) then {_tbf =1;}; if (_ntb == 1) then {_tbf = 0.5;}; if (_ntb >= 2) then {_tbf = 0.25;}; //Set Hide Factor _hf = 1; if (_nh ==0 ) then {_hf =1;}; if (_nh == 1) then {_hf = 0.5;}; if (_nh >= 2) then {_hf = 0.25;}; // get fog and rescale result to desired range. _foglevel = linearconversion [0,1,fog,0,0.8,true]; // Camo V1.5 includes uniform test. Default Camo is 1 _uniform = uniform _unit; _camo = 1; if ((str _uniform find "Combat" >=1) OR (str _uniform find "CTRG" >=1) OR (str _uniform find "Officer" >=1)) then {_camo = 0.5;}; if ((str _uniform find "Ghillie" >=1) OR (str _uniform find "Sniper" >=1) OR (str _uniform find "Viper" >=1)) then { _camo=0.4;}; // v 1.3 getwind strength and scale it _windstrength = vectormagnitude wind; _windscaled = linearconversion [0,7,_windstrength,0,0.9,true]; // get rain level and scale it v.13 added specific audible level _rainLevel = linearconversion [0,1,rain,0,0.6,true]; _rainLevelA = linearconversion [0,1,rain,0,0.9,true]; // NEW LIGHT LEVEL FACTOR // 1 is full light 0 is dark. Light will not impact audible. // initialise _lightlevel before if statements // now handles dusk and dawn. // get sunrise and sunset _sunriseSunsetTime = date call BIS_fnc_sunriseSunsetTime; _sunrise = _sunriseSunsetTime select 0; _sunset = _sunriseSunsetTime select 1; _lightlevel = .5; // get decimal time _timenow = daytime; // set required variables p= 1; _sre = _sunrise +p; _srs = _sunrise -p; _sss = _sunset -p; _sse = _sunset +p; // Test and assign _lightlevel values if ((_timenow >= 0) && (_timenow <=_srs)) then { _lightlevel = 0; }; if ((_timenow >= _sse) && (_timenow <=24)) then { _lightlevel = 0; }; if ((_timenow <= _sse) && (_timenow >=_sre)) then { _lightlevel = 1;}; if ((_timenow >=_srs) && (_timenow <= _sre)) then {_lightlevel = 0.5 *(_timenow-_srs);}; if ((_timenow >=_sss) && (_timenow <=_sse)) then {_lightlevel = -0.5 * (_timenow -(_sse));}; // Linear scaling to allow adjustment of lightlevel impact. _lightlevelscaled = linearconversion [0,1,_lightlevel,0.1,1]; // get overcast level and scale it. _overcastLevel = linearconversion [0,1,overcast,0,0.4,true]; // GET STANCE AND ASSIGN VALUES v1.3 added _stA stance audible impact. _stanceresult = stance _unit; _st = 1; _stA = .5; switch (_stanceresult) do { case "STAND" : {_st = 1; _stA =1;}; case "CROUCH" : {_st = 0.6; _stA=.7;}; case "PRONE" : {_st = 0.4; _stA =.5;}; case "SWIMMING": {_st = 0.75;_stA=.7;}; case "UNDEFINED" : {_st = 1;_stA=0;}; }; //GET GROUND _gtype = surfaceType position _unit; // set ground factor _gf = 1; if (_gtype == "#GdtGrassDry" and _stanceresult == "PRONE") then {_gf =0.3}; if (_gtype == "#GdtGrassGreen" and _stanceresult == "PRONE") then {_gf =0.3}; if (_gtype == "#GdtDirt" and _stanceresult == "PRONE") then {_gf =0.3}; //Unit Speed _speed = speed _unit; _sf = 1; if (_speed <= 15) then {_sf = 0.9;}; if (_speed <= 5.5) then {_sf = 0.8;}; if (_speed <= 3) then {_sf = 0.7;}; if (_speed == 0) then {_sf = 0.6;}; // RUN THE CALCULATION _newCamCoef = sqrt ( (1-_foglevel) * _camo * (1 - _rainLevel) * _lightLevelscaled * (1 - _overcastLevel) * _st * _tbf *_gf *_sf *_hf ); _newCamCoefA = sqrt ( (1-_foglevel) * (1 - _rainLevel) * (1 - _overcastLevel) * _stA * (1-_windscaled) ); // scale our new camcoefs to whatever ranges we desire // as given in arguments to the script _newCamCoefScaled = linearconversion [0,1,_newCamCoef,_cLo,_cHi,true]; _newaudibleCoefScaled = linearconversion [0,1,_newCamCoefA,_aLo,_aHi,true]; // set our calculated value as the UnitTrait for camouflageCoef and audibleCoef _unit setUnitTrait ["camouflageCoef", _newcamCoefscaled]; _unit setunitTrait ["audibleCoef", _newaudibleCoefScaled]; // DEBUG / ONSCREEN INFO if (_debug =="DEBUG") then { _known = man knowsAbout _unit; _testit = _unit getUnitTrait "camouflageCoef"; _testit1 = _unit getUnitTrait "audibleCoef"; // show calculated result for tuning - comment out if required _camCoeftest= "Camo "+ str _testit; _AudCoeftest= "Audio "+ str _testit1; _knowledge = "KnowsAbout " + str _known; _TBresult = "Bushes: " + str _ntb + " Ground: " + str _gf + " HIDE " + str _nh + " SPEED: " + str _sf; hint _TBresult; systemchat _camCoeftest; systemchat _AudCoeftest; systemchat str _knowledge; }; // sleep for a bit so that bobbing up and down in combat doesnt cause // too many runs on the script. Also allows player to go prone, // get extra camo then bob up again retaining prone camo for a short while. sleep 1; _time=time; };
  5. HolgerHolleBolle

    [RELEASE] DynamicCamo Script

    Hi Bunc, I have added a few features to your great script and would like to make a mod version of it. Would it be ok for you if I Publish that on the workshop with reference to your script? I feel this should be a mod available with CBA Parameters.
  6. Hmm. I tried with the Parameter -mod in Addition Parameters with a link to the CSLA mod. But it does not load. For now I guess I need to launch with the Steam Launcher when I want to play CSLA.
  7. I have an Issue with Arma Sync. It does not show the CSLA in the DLC list. Vietnam and GM is shown but not CSLA. Any Idea?