TheoneandonlyNOR 12 Posted April 13, 2022 Hello, Before I start, I just want to say that. I have tried google this and search on BIS forum, but one word wrong and you find something that is not relevant. And for that I just post a new topic. Sorry if this topic allrdy out there somewere. (please post a link to it if there is.) I am trying to figure out how to make my own custom unit's and group them. in this case I been using initServer.sqf file. In the spoiler is what I done so far. Yes I kinda know its wrong because I tested it. (sorry for not using Vanilla units in this matter) Spoiler private _West3 = createGroup West; West3 createUnit ["UK3CB_CW_US_B_LATE_SL", getMarkerPos "WS", West3, [], [], "CORPORAL"]; West3 createUnit ["UK3CB_CW_US_B_LATE_AT", getMarkerPos "WS", West3; West3 createUnit ["UK3CB_CW_US_B_LATE_AT_ASST", getMarkerPos "WS", West3; West3 createUnit ["UK3CB_CW_US_B_LATE_MD", getMarkerPos "WS", West3; West3 createUnit ["UK3CB_CW_US_B_LATE_MK", getMarkerPos "WS", West3; West3 createUnit ["UK3CB_CW_US_B_LATE_RIF_1", getMarkerPos "WS", West3; West3 = [getMarkerPos "WS", West, (West3)] call BIS_fnc_SpawnGroup; So what I want to make is. xx amount of groups on West and East side. name of groups West1-xx and East1-xx Some group's with Vehicle/'s and some without. I allso wish to edit their gear as-well. After they are made, they should spawn at a marker when mission start. And when they are "!!alive", they hsould respawn. (garbage collecting will ofcourse be on so courpses etc gets deleted) Now what should I do to make it? PS! Been reading on createUnit, createGroup, BIS_fnc_SpawnGroup but cant quite understand. Sorry for bad English and newbie scripter. =D Regards. 1 Share this post Link to post Share on other sites
dreadedentity 278 Posted April 13, 2022 There are a couple issues: You have a variable "_West3" but when you use it in the command you dropped the underscore "_", it is important and part of the variable You are mixing the regular syntax and alternate syntax together, they are distinct Some syntax problems West3 createUnit ["UK3CB_CW_US_B_LATE_SL", getMarkerPos "WS", West3, [], [], "CORPORAL"]; <---- Both(?) syntax smashed together. ^ ^ ^ ^ ^ I will pretend it is regular syntax 1 2 3 4 5 1. Should be _West3 2. This should be an array of markers or [] 3. Should be a number 4. Should be one of "NONE", "CAN_COLLIDE", "CARGO" 5. This parameter is extra and should be removed West3 createUnit ["UK3CB_CW_US_B_LATE_AT", getMarkerPos "WS", West3; <--- Cant tell which syntax this is ^ ^^ 1 23 1. Should also be _West3 2. Forgot ] 3. Not enough parameters for either syntax Here is what I think you are trying to do, using the parameters you've supplied: _West3 createUnit ["UK3CB_CW_US_B_LATE_SL", getMarkerPos "WS", [], 0, "NONE"]; <-- Normal syntax "UK3CB_CW_US_B_LATE_AT" createUnit [getMarkerPos "WS", _West3, "", 0.5, "CORPORAL"]; <-- Alternate syntax Let's start by getting the units to spawn, then you can move on to trying to get them to re-spawn 1 Share this post Link to post Share on other sites
TheoneandonlyNOR 12 Posted April 13, 2022 21 minutes ago, dreadedentity said: There are a couple issues: You have a variable "_West3" but when you use it in the command you dropped the underscore "_", it is important and part of the variable You are mixing the regular syntax and alternate syntax together, they are distinct Some syntax problems West3 createUnit ["UK3CB_CW_US_B_LATE_SL", getMarkerPos "WS", West3, [], [], "CORPORAL"]; <---- Both(?) syntax smashed together. ^ ^ ^ ^ ^ I will pretend it is regular syntax 1 2 3 4 5 1. Should be _West3 2. This should be an array of markers or [] 3. Should be a number 4. Should be one of "NONE", "CAN_COLLIDE", "CARGO" 5. This parameter is extra and should be removed West3 createUnit ["UK3CB_CW_US_B_LATE_AT", getMarkerPos "WS", West3; <--- Cant tell which syntax this is ^ ^^ 1 23 1. Should also be _West3 2. Forgot ] 3. Not enough parameters for either syntax Here is what I think you are trying to do, using the parameters you've supplied: _West3 createUnit ["UK3CB_CW_US_B_LATE_SL", getMarkerPos "WS", [], 0, "NONE"]; <-- Normal syntax "UK3CB_CW_US_B_LATE_AT" createUnit [getMarkerPos "WS", _West3, "", 0.5, "CORPORAL"]; <-- Alternate syntax Let's start by getting the units to spawn, then you can move on to trying to get them to re-spawn So sorry not to spesify. I tried first make with "West3" in all.. And not "_West3" and than forgot to change it. 🙂 The markers "[ ]" I did like this because I only wanted the skill of the unit. And it says on creatUnit that the other is optimal and for that I used "[ ]" because it could be default. The syntax .... , getMarkerPos "WS", West3; Was me trying to create a unit that spawned at marker "WS" and was in the group "West3". The two you think I was refearing to are correct. But thats just for one single unit. And it has no custom loadout. Were do I put that in?. And should I just do the syntaxt again to get more unit's in the group? or is there a workarround?. Thanks allot so far Share this post Link to post Share on other sites
bLAcKmAgE87 13 Posted April 13, 2022 (edited) Type_LZ_WP_GP.sqf (prototype/test) Spoiler params ["_markersLZ","_markersWP","_selectionLZ","_selectionWP","_arrayGoods"] ; sleep 45 ; /*______________________________________________________________________________________________________________________________________________________ INITIAL VARIABLES ________________________________________________________________________________________________________________________________________________________ */ _arrayOfGoods = [] ; _arrayOfGoods = _arrayGoods ; _marksup = count _selectionLZ ; _headsup = (_arrayGoods select 0 ) ; _droppingAltZ = ( _arrayGoods select 1 ); _groupsMany = ( _arrayGoods select 2 ) ; _groupType = ( _arrayGoods select 3 ) ; _groupFashion = ( _arrayGoods select 4 ) ; /*______________________________________________________________________________________________________________________________________________________ SPILTING NUMBER OF UNITS INTO GROUPS ADDING UNITS TO GROUP ARRAY INTO: _groupLogicZ [] , ________________________________________________________________________________________________________________________________________________________ */ _baseGCount = floor((_headsup ) / ( _groupsMany)) ; _baseGRemainder = (_headsup) % (_groupsMany) ; _baseMult = (_baseGRemainder) * (_groupsMany) ; _groupLogicZ = [] ; _soGroups = _groupsMany - 1 ; _baseLogicCounting = _baseGCount ; _baseLogicRemainder = _baseGRemainder ; for "_i" from 0 to _soGroups step 1 do { _valueOver = 1 ; if( _baseLogicRemainder <= 0 ) then { _valueOver = 0 ; } ; _baseLogicRemainder = (_baseLogicRemainder) - (1) ; _baseLogicCounting = (_baseGCount) + (_valueOver) ; _groupLogicZ pushBack _baseLogicCounting ; }; //hint (str _groupLogicZ) ; /*______________________________________________________________________________________________________________________________________________________ NAMING THE LZS AND ADDING TO ARRAY USING: _selectionLZ [] , INTO: usedMarks [] , ________________________________________________________________________________________________________________________________________________________ */ _namu = "" ; _arraySelect = [] ; _arraySelect = _selectionLZ ; private _usedMarks = [] ; _selects = count _selectionLZ ; _selects = _selects - 1 ; for "_i" from 0 to _selects step 1 do { _numberBeast = ( _selectionLZ select _i ) ; _namu = "marker_LZ_" + (str _numberBeast) ; _usedMarks pushBack _namu ; _namu = "" ; }; /*______________________________________________________________________________________________________________________________________________________ NAMING THE WPS AND ADDING TO ARRAY INTO: _arrayGoTo[] , ________________________________________________________________________________________________________________________________________________________ */ _arrayGoTo = [] ; _selectsZ = count _selectionWP ; _selectsZ = _selectsZ - 1 ; for "_i" from 0 to _selectsZ step 1 do { _numberBeastZ = ( _selectionWP select _i ) ; _namuZ = "marker_WP_" + (str _numberBeastZ) ; _arrayGoTo pushBack _namuZ ; _namuZ = "" ; }; /*______________________________________________________________________________________________________________________________________________________ PASSING THE LOGISTICS THE NEW VARIABLES SPLITING THE GROUPS INTO PACTS BASED ON WPS USING: groupLogicZ [] , _groupType , _groupFashion , selectionWP, _groupsMany INTO: _productRe , _arrayPact [] , ________________________________________________________________________________________________________________________________________________________ */ _typer = _groupType ; _fashion = _groupFashion ; _countWPs = count _selectionWP ; _arrayPact = [] ; _arrayPact = _groupLogicZ ; _countPacts =floor( (_groupsMany) / (_countWPs) ); _totStart = _countPacts * _countWPs ; _totEnd = (_groupsMany) - (_totStart) ; _countPactsRe =(_groupsMany) % (_countWPs) ; _countPactsRe = _countPactsRe / (10) ; _productRe = 0; if( _countPactsRe != 0 ) then { _productRe = _totEnd ; }; //hint (str _groupLogicZ) ; //sleep 4 ; /*______________________________________________________________________________________________________________________________________________________ PUSHING THE PACTS AND WPS INTO A ORGAINZED 2D ARRAY * _arrayPact [] HAS THE ALL THE GROUP COUNTS FOR EACH PACT AS NUMBERS ... IS SIZE OF PACTS USING: _productRe , _groupsMany , _countPacts, _countWPs , _arrayPact [] , INTO: _arrayDone [] , ________________________________________________________________________________________________________________________________________________________ */ _rere = 0; _rere = _productRe ; _groupsUsed = 0 ; _arrayDone = [] ; _fug = "" ; _fug = _fug + (str _countPacts) +" mod " +(str _countPactsRe) + " re: " +(str _rere) + " END\n" ; _countPacts = _countPacts - 1 ; _countWPs = _countWPs - 1 ; _thud = 0 ; for "_i" from 0 to _countWPs step 1 do { _thud = _countPacts ; _arrayPop = [] ; if( _rere > 0) then { _thud = _thud + 1 ; _rere = _rere - (1) ; } ; for "_j" from 0 to _thud step 1 do { _arrayPop pushBack (_arrayPact select _groupsUsed) ; _groupsUsed = _groupsUsed + 1 ; }; _arrayDone pushBack _arrayPop ; } ; _fug = _fug + (str _arrayDone) + " \n"; //hint (str _fug) ; //sleep 3 ; /*______________________________________________________________________________________________________________________________________________________ DROPPING THE UNITS OFF USING: _usedMarks [] , _headsup , _marksup , _droppingAltZ , INTO: _countZ , _unitsDropped [], ________________________________________________________________________________________________________________________________________________________ */ private _countZ = 0 ; private _unitsDropped = [] ; for [{ _i = 0 }, { _i < _headsup }, { _i = _i + 1 }] do { _groupZ = createGroup east ; _namelessZ = "zol_"+ (str _countZ) ; private _blah = "" ; private _nameZ = "zoz_" ; _blah = _nameZ + (str _countZ); bob = floor (random _marksup ); _yoor = (_usedMarks select bob) ; _pound = (str _yoor) ; _countYoo = count _pound ; _countYoo = _countYoo ; _passYoor = ( _pound select [ 11 , _countYoo ] ) ; _namelessZ = _namelessZ + "_LX." + _passYoor ; _groupZ setGroupId [( _namelessZ)]; private _blotch = ""; _blotch = missionNamespace getVariable [ _blotch , objNull]; _blotch = _yoor ; //hint str ( _blotch ) ; private _posW = markerPos _blotch ; dixP = (markerDir _blotch); dixP = ( (360 - (dixP) ) - 90) ; _sizeZone = markerSize _blotch ; _sizeZoneX = (_sizeZone select 0) ; _sizeZoneY = (_sizeZone select 1) ; ranSel = floor (random 4 ); randX = 0 ; randY = 0 ; bun1 = 0 ; bun2 = 0 ; negHyp = 0 ; if(ranSel == 0) then { randX = (random _sizeZoneX ) ; randY = (random (_sizeZoneY) ) ; }; if(ranSel == 1) then { randX = -(random (_sizeZoneX) ) ; randY = (random (_sizeZoneY) ) ; bun1 = 1 ; negHyp = 1 ; }; if(ranSel == 2) then { randX = (random _sizeZoneX ) ; randY = -(random (_sizeZoneY) ) ; bun2 = 1 ; }; if(ranSel == 3) then { randX = -(random (_sizeZoneX) ) ; randY = -(random (_sizeZoneY) ) ; bun1 = 1 ; bun2 = 1 ; negHyp = 1 ; }; legToMarkx = ( randX ) ; legToMarky = ( randY ) ; dixPP = ( (atan( legToMarky / legToMarkx) )) ; squd = (legToMarkx ^ 2) + (legToMarky ^ 2) ; squd = sqrt squd ; if(negHyp == 1) then { squd = -(squd) ; }; negHyp = 0 ; legZx = 0 ; legZy = 0 ; dixx = (dixP + dixPP - 90) ; legZxT = (squd * (cos dixx ) ) ; legZyT = (squd * (sin dixx ) ) ; legZx = legZxT ; legZy = legZyT ; rah1 = 0 ; rah2 = 0 ; whatx = 0 ; whaty = 0 ; whatz = 0 ; rah1 = ( legZx ); rah2 = ( legZy ) ; if(bun1 == 1) then { rah1 = (rah1) ; }; if(bun2 == 1) then { rah2 = (rah2) ; }; whatx = ( _posW select 0) + (rah1) ; whaty = ( _posW select 1) + (rah2) ; whatz = _droppingAltZ ; private _posNew = [(whatx),(whaty),(whatz)] ; //use a script either before or after _posNew to create units //think about copying a unit by retrieving,deleting, and moving _blah = missionNamespace getVariable [ _blah , objNull]; //turns name into a ... nullObj variable _blah = (_groupZ) createUnit [ "O_sniper_F" , _posNew,[],0,"CAN_COLLIDE" ]; // //consider using temporary tags like zol_lz_1_1 for units that have just landed and don't go anywhere // _blah setFormDir ( _blah getRelDir player) ; //_blah spawn bis_fnc_tracebullets ; [_blah] execVM "Types\NINI\dresser.sqf" ; //sleep (.4); _countZ = _countZ + 1 ; randX = 0 ; randY = 0 ; bun1 = 0 ; bun2 = 0 ; _unitsDropped pushBack _blah ; }; /*______________________________________________________________________________________________________________________________________________________ ACTUALLY NAMING THE GROUPS INTO THE CORRECT TAG'D NAMES SEND THE GROUPS INTO ACTUAL GROUPS AND THEN SEND OFF TO WAYPOINTS USING : _arrayDone [] , _unitsDropped [], _arrayGoTo [] , INTO: _arrayGroups [] , _waypointsTotal ________________________________________________________________________________________________________________________________________________________ */ _waypointsTotal = [] ; _countDone = count _arrayDone ; _countDone = _countDone - 1; //_countSent = 0 ; _arrayGroups = [] ; //_arrayPacts = [] ; //same as _countDone... which is just a count of objects... //you want to create an array of people objects and not just numbers _whatGroup = "_groupZ_" ; _whatPact = "pactZ_" ; _groupNumber = 0 ; _pactNumber = 0 ; _namez = "" ; _unitsAddedToGroup = 0 ; _unitsAddedToGroupZ = 0 ; _pointNumber = 0 ; _desert = [] ; for "_i" from 0 to _countDone step 1 do { _arrayPacto = [] ; _arrayPacto = ( _arrayDone select _i ) ; _countPactDone = count ( _arrayPacto ) ; _countPactDone = _countPactDone - 1 ; _totalFool = 0 ; _pile = [] ; for "_j" from 0 to _countPactDone step 1 do { //_______________________________________________________________________________________________NAMES PART _appendGroupName = _whatGroup + (str _groupNumber) ; _appendPactNum = _whatPact + (str _pactNumber) ; _appendedName = _appendPactNum + _appendGroupName ; _namez = _namez + (str _appendedName) + "_" ; _namelessX = _appendedName ; //_______________________________________________________________________________________________GROUP COUNT AND DECON PART _totUnits = ( _arrayPacto select _j ) ; _totMod = _totUnits - 1 ; _desertGName = [] ; _newDesName = "" ; for "_k" from 0 to _totMod step 1 do { _unitToAdd = _unitsDropped select _unitsAddedToGroupZ ; _nameGuy = groupId (group _unitToAdd) ; _countY = count _nameGuy ; _countY = _countY - 1 ; _countYZ = 1 ; _newN =( _nameGuy select [ 0, _countY ]) ; _newDesName = _namelessX + "_" + _newN ; _unitsAddedToGroupZ = _unitsAddedToGroupZ + 1 ; _desertGName pushBack _newDesName ; }; _pile pushBack _desertGName ; _totalFool = _totalFool + _totUnits ; _groupNumber = _groupNumber + 1 ; /* _groupX = createGroup east ; _groupX setGroupId [(str _namelessX)]; for "_k" from 0 to _totMod step 1 do { _unitToAdd = _unitsDropped select _unitsAddedToGroup ; _unitToAdd joinAs [_groupX,_k] ; _unitsAddedToGroup = _unitsAddedToGroup + 1 ; }; _arrayGroups pushBack _groupX ; */ //_______________________________________________________________________________________________WAYPOINTS PART * REQUIRES CREATED GROUPS }; _desert pushBack _pile ; _pactNumber = _pactNumber + 1 ; }; hint ("passing") ; sleep 5 ; _pointNumberT = 0 ; for "_i" from 0 to _countDone step 1 do { _arrayPactoT = [] ; _arrayPactoT = ( _arrayDone select _i ) ; _countPactDoneT = count ( _arrayPactoT ) ; _countPactDoneT = _countPactDoneT - 1 ; _totalFoolT = 0 ; for "_j" from 0 to _countPactDoneT step 1 do { _totUnits = ( _arrayPactoT select _j ) ; _totMod = _totUnits - 1 ; for "_k" from 0 to _totMod step 1 do { _goSpot = [] ; _goSpot = ( _arrayGoTo select _i ) ; private _posG = markerPos _goSpot ; rag1 = random (51); rag2 = random (51); if(rag1 > 25) then {rag1 = -(rag1) ;}; if(rag2 > 25) then {rag2 = -(rag2) ;}; whatxG = ( _posG select 0) + (rag1) ; whatyG = ( _posG select 1) + (rag2) ; whatzG = 0 ; private _goNew = [(whatxG),(whatyG),(whatzG)] ; _manZ =_unitsDropped select _pointNumberT ; _desertPa = _desert select _i ; _desertGro = _desertPa select _j ; _desertUni = _desertGro select _k ; _desertNamo = _desertUni ; _manZGroup = (group _manZ) ; _manZGroup setGroupId [( _desertNamo )]; _wp = _manZGroup addWaypoint [ _goNew , 0]; _wapPass = _wp ; _manZGroup lockWP true ; _waypointsTotal pushBack _wapPass ; _pointNumberT = _pointNumberT + 1 ; sleep (.3) ; }; }; }; _yug = _desert select 0 ; //hint (str _yug ) ; //sleep 10 ; _yug = _desert select 1 ; //hint (str _yug ) ; //sleep 10 ; _yug = _desert select 2 ; //hint (str _yug ) ; //sleep 10 ; _beefyArray = [] ; _beefyArray pushBack _arrayOfGoods ; _beefyArray pushBack _groupLogicZ ; _beefyArray pushBack _usedMarks ; _beefyArray pushBack _arrayGoTo ; _beefyArray pushBack _arrayDone ; _beefyArray pushBack _unitsDropped ; _beefyArray pushBack _arrayGroups ; _beefyArray pushBack _desert ; [_beefyArray ] execVM "Types\WAVE\Type_LZ_WP\triggerRap.sqf" ; /*______________________________________________________________________________________________________________________________________________________ NOTICE THAT _arrayGroups IS DONE! YOU NEEDN'T OF ADDED ANYBODY TO AN ACTUAL GROUP YET! ________________________________________________________________________________________________________________________________________________________ */ /* hint (str "SENT \n") ; sleep 360 ; _numberFoo = count ( _unitsDropped ) ; _numberFoo = _numberFoo - 1 ; for "_i" from 0 to _numberFoo step 1 do { _mang = (_unitsDropped select _i) ; _wayZ = (_waypointsTotal select _i) ; _mangG = (group _mang); private _newWP = getWPPos _wayZ ; _wp = _mangG addWaypoint [ _newWP , 0] ; }; _numberFoo = count ( _unitsDropped ) ; for "_h" from 0 to _numberFoo step 1 do { _arrayPactoX = [] ; _arrayPactoX = ( _arrayDone select _h ) ; _countPactDoneX = count ( _arrayPactoX ) ; _countPactDoneX = _countPactDoneX - 1 ; _totalFoolX = 0 ; for "_u" from 0 to _countPactDoneX step 1 do { _unG = ( _arrayGroups select _h) ; _wpz = ( _waypointsTotal select _h) ; _posWay = getWPPos _wpz ; _wp = _unG addWaypoint [ _posWay , 0]; _unG setFormation "FILE"; }; }; */ /*______________________________________________________________________________________________________________________________________________________ ________________________________________________________________________________________________________________________________________________________ */ /* _bounce = 0 ; switch ( _typer ) do { case "split" : { //this part you arrange array switch ( _fashion ) do { case "LEF" : { }; case "SEF": { }; case "even": { }; default { hint str ("no fashion") ; }; }; }; case "group": { //leave as is...use same condition loop for each _LZ }; default { hint str ("no type") ; }; }; create array of all units in every marker zone (LZ) ...it should be pretty random but nonetheless make it randomized _marksup = count _selectionLZ ; _headsup = (_arrayGoods select 0 ) ; _droppingAltZ = ( _arrayGoods select 1 ); _groupsMany = ( _arrayGoods select 2 ) ; _groupType = ( _arrayGoods select 3 ) ; _groupFashion = ( _arrayGoods select 4 ) ; of all LZs arrange by syntax "split" "LEF" check: 8 8 7 7 : 2 WP 8-8 7-7 : 2 pacts : push _pacts= [[8,8],[7,7]] 8-8 : WP_1 : from _markersWP[] 7-7 : WP_2 established number per zones create array of units...random rearrange create array of units in groups... add each number for WP 8-8 : 16 : WP_1 ... etc(macros for etc) call both arrays to pop off units, copy them, and depricate as well basically done */ at some point you should notice this line:[_blah] execVM "Types\NINI\dresser.sqf" ; dresser.sqf Spoiler params ["_blah"]; comment "Exported from Arsenal by bLAcKmAgE87"; comment "[!] UNIT MUST BE LOCAL [!]"; if (!local _blah) exitWith {}; comment "Remove existing items"; removeAllWeapons _blah; removeAllItems _blah; removeAllAssignedItems _blah; removeUniform _blah; removeVest _blah; removeBackpack _blah; removeHeadgear _blah; removeGoggles _blah; comment "Add weapons"; _blah addWeapon "srifle_GM6_camo_F"; _blah addPrimaryWeaponItem "optic_LRPS"; _blah addPrimaryWeaponItem "5Rnd_127x108_Mag"; _blah addWeapon "hgun_Rook40_F"; _blah addHandgunItem "muzzle_snds_L"; _blah addHandgunItem "16Rnd_9x21_Mag"; comment "Add containers"; _blah forceAddUniform "U_O_FullGhillie_ard"; _blah addVest "V_Chestrig_khk"; _blah addBackpack "B_Parachute"; comment "Add binoculars"; _blah addWeapon "Rangefinder"; comment "Add items to containers"; _blah addItemToUniform "FirstAidKit"; for "_i" from 1 to 2 do {_blah addItemToUniform "5Rnd_127x108_Mag";}; _blah addItemToUniform "SmokeShell"; _blah addItemToVest "5Rnd_127x108_Mag"; for "_i" from 1 to 2 do {_blah addItemToVest "5Rnd_127x108_APDS_Mag";}; for "_i" from 1 to 2 do {_blah addItemToVest "16Rnd_9x21_Mag";}; _blah addItemToVest "ClaymoreDirectionalMine_Remote_Mag"; _blah addItemToVest "APERSTripMine_Wire_Mag"; _blah addItemToVest "SmokeShellRed"; _blah addItemToVest "SmokeShellOrange"; _blah addItemToVest "SmokeShellYellow"; for "_i" from 1 to 2 do {_blah addItemToVest "Chemlight_red";}; comment "Add items"; _blah linkItem "ItemMap"; _blah linkItem "ItemCompass"; _blah linkItem "ItemWatch"; _blah linkItem "ItemRadio"; _blah linkItem "ItemGPS"; _blah linkItem "NVGoggles_OPFOR"; comment "Set identity"; [_blah,"",""] call BIS_fnc_setIdentity; and hope fully this also helps you realize how plain objects can be brought up but when it comes to markers this one is much more useful.... Still tho... the problems you will run into is the direction of the marker when you want to draw something that is in the same area...its turned and without saying your in the marker have to use trigonometry to define that space... consider abstract spaces or zones with no markers than can still be tricked out to detect you Edited April 13, 2022 by bLAcKmAgE87 1 Share this post Link to post Share on other sites
dreadedentity 278 Posted April 13, 2022 it's a good idea to put extremely long code inside a Spoiler spoiler 3 Share this post Link to post Share on other sites
bLAcKmAgE87 13 Posted April 13, 2022 (edited) 47 minutes ago, dreadedentity said: it's a good idea to put extremely long code inside a Reveal hidden contents spoiler LOL i was trying to figure that out thanks! Edited April 13, 2022 by bLAcKmAgE87 Share this post Link to post Share on other sites
TheoneandonlyNOR 12 Posted April 14, 2022 Thank you @bLAcKmAgE87 I wont quoe youre post due to much content, But I will try read and read again to understand it all. And than come back. (prob. take me a week or so xD) I be back when tired this. 🙂 regards! 1 Share this post Link to post Share on other sites