Jump to content

Sgt_HARTMAN

Donator
  • Content Count

    22
  • Donations

    10.00 GBP 
  • Joined

  • Last visited

About Sgt_HARTMAN

  • Birthday 07/11/1994

Contact Methods

  • Steam Name
    Sgt_HARTMAN__

Profile Information

  • Gender
    Male
  • Location
    France

ArmA 3

  • ArmA 3 Player Name
    Sgt HARTMAN

TeamSpeak

  • TeamSpeak Name
    Sgt HARTMAN

Recent Profile Visitors

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

  1. I almost found, at first the exclamation mark which was present on the respawn location disappeared after removing the units and replacing their variable names initially noted "S1" by "s1". I realized that the loadout equipped before respawn is reset after death. I checked the script "OnPlayerRespawn.sqf" and there is obviously no faction setting to change. Since this script works with the "Player" variable, wouldn't these two errors be linked? I continue my research. PS: All faction changes work perfectly beyond this.
  2. I will continue to see this message appear, thanks again for your help!
  3. it works, thank you very much! However, this error remains :
  4. I'm using the 3.3.50 and I forgot this line indeed. However when I change "west" to "guerrila" or "indep", I have a variable error that appears so I imagine that "guerrila" and "indep" are not good ...
  5. Good morning all, I modified the mission in order to play on the side of the AAF against NATO. The whole mission scenario works without errors. I am embarrassed because I can't find why I can't appear in the AAF unit. I replaced all NATO units with AAFs by carefully repeating every detail on each unit. I changed the settings "West" by "Indep" or "guerrila" of fn_BaseManager & Main_Machine.sqf and despite that, I cannot manage spwan other than as a pilot. I've this message on bottom left. [ZONE RESTRICTION] no synchronized units found thank you in advance
  6. It's so much simpler ... Thank you very much again Stanhope...
  7. what I would like it is that the number of current unit is distributed in several buildings by covering a maximul the AO. The size of the groups has no importance, I just want to avoid a group of 12 men occupying a single house This is for working CQB techniques
  8. Hello Stanhope, thank you for your reply. I am fully aware of the obligations that the integration of script from elsewhere gives me. In Attachement there is a capture that directly shows the distribution problem I am having. Thank you
  9. Hello World, I don't know if it's the same with you, but with me, the units appear in groups, grouped into the same building. So I found a script in @Achilles Mods which allows to fill and distribute the units in the buildings. I tried several times to integrate it into "fn_mainAOSpawnHandler.sqf" but nothing works. According to you, is this script adaptable in "fn_mainAOSpawnHandler.sqf" (in this //=================Garrison inf===========================) ? or is it in another file? Or is it just not adaptable? I will try to create a new .SQF file calling this function. If anyone has an idea to adapt it, I would be grateful //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // AUTHOR: Kex // DATE: 12/26/17 // VERSION: AMAE.0.1.0 // DESCRIPTION: Teleports units to random positions in nearby buildings. // Preferably orients them in such that they look out of windows. // They won't be able to move away till forceSpeed is set to -1. // // ARGUMENTS: 0: ARRAY - 3D position from where the building search starts. // 1: ARRAY - Array of units which are used for the occupation. // 2: SCALAR - Building search radius in meter (default: 150). // 3: BOOLEAN - Only use positions inside buildings (default: false). // 4: BOOLEAN - Distribute units evenly over closest buildings (default: false). // // RETURNS: nothing // // Example: [position leader _group, units _group] call Achilles_fnc_instantBuildingGarrison; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// #define GOOD_LOS 10 #define MEDIOCRE_LOS 3 #define EYE_HEIGHT 1.53 #define REL_REF_POS_LIST_HORIZONTAL [[25,0,0],[0,25,0],[-25,0,0],[0,-25,0]] #define REL_REF_POS_VERTICAL [0,0,25] // get arguments params ["_AOpos", "_units", ["_searchRadius",150,[0]], ["_insideOnly",false,[false]], ["_fillEvenly",false,[false]]]; private _errorOccured = false; // local function for checking whether positions are inside a building private _fnc_isInsideBuilding = { params ["_pos","_building"]; _pos = ATLToASL _pos; _pos set [2, EYE_HEIGHT + (_pos select 2)]; // if we have at least 3 walls and a roof, we are inside if (_building in (lineIntersectsObjs [_pos, _pos vectorAdd REL_REF_POS_VERTICAL])) then { {_building in (lineIntersectsObjs [_pos, _pos vectorAdd _x])} count REL_REF_POS_LIST_HORIZONTAL >= 3; } else { false; }; }; // get all near buildings and their positions inside private _nearestBuildings = nearestObjects [_AOpos, ["building"], _searchRadius, true]; private _buildings = if (_searchRadius < 0) then {[_nearestBuildings select 0]} else {_nearestBuildings}; private _pos_nestedList = []; { private _building = _x; private _pos_list = [_building] call BIS_fnc_buildingPositions; // filter positions that are already occupied or not inside if "inside only" is true. for "_i_pos" from (count _pos_list - 1) to 0 step -1 do { private _pos = _pos_list select _i_pos; if (count (_pos nearEntities [["Man"], 0.5]) > 0 or {_insideOnly and {not ([_pos, _building] call _fnc_isInsideBuilding)}}) then { _pos_list deleteAt _i_pos; }; }; // filter buildings that do not offer valid positions if (not (_pos_list isEqualTo [])) then { _pos_nestedList pushBack _pos_list; }; } forEach _buildings; for "AO-GarrisonInf-%1" from 0 to (count _units - 1) do { private _unit = _units select AO-GarrisonInf-%1; private "_pos"; private _n_building = count _pos_nestedList; if (_n_building > 0) then { if (_fillEvenly) then { // fill closest buildings by distributing the units randomly private _i_building = floor random _n_building; private _pos_list = _pos_nestedList select _i_building; private _i_pos = floor random count _pos_list; _pos = +(_pos_list select _i_pos); _pos_list deleteAt _i_pos; if (count _pos_list == 0) then {_pos_nestedList deleteAt _i_building}; } else { // fill closest buildings one by one private _i_building = 0; private _pos_list = _pos_nestedList select _i_building; private _i_pos = floor random count _pos_list; _pos = +(_pos_list select _i_pos); _pos_list deleteAt _i_pos; if (count _pos_list == 0) then {_pos_nestedList deleteAt _i_building}; }; _unit setPosATL _pos; // rotate unit for a good line of sight private _eyePosASL = (ATLToASL _pos) vectorAdd [0,0,EYE_HEIGHT]; private _startAngle = (round random 360); for "_angle" from _startAngle to (_startAngle + 360) step 10 do { // use angle finally if the line of sight is good private _relRefPos = [GOOD_LOS*sin(_angle), GOOD_LOS*cos(_angle), 0]; if (not lineIntersects [_eyePosASL, _eyePosASL vectorAdd _relRefPos]) exitWith { _unit doWatch (_pos vectorAdd _relRefPos); }; // use angle provisionally if the line of sight is mediocre private _relRefPos = [MEDIOCRE_LOS*sin(_angle), MEDIOCRE_LOS*cos(_angle), 0]; if (not lineIntersects [_eyePosASL, _eyePosASL vectorAdd _relRefPos]) then { _unit doWatch (_pos vectorAdd _relRefPos); }; }; } else { // if we don't have sufficient building positions _errorOccured = true; }; _unit forceSpeed 0; }; if (_errorOccured) then { [localize "STR_AMAE_DID_NOT_FIND_SUFFICIENT_FREE_POSITIONS"] call Achilles_fnc_showZeusErrorMessage; }; fn_mainAOSpawnHandler.sqf //=================Garrison inf=========================== [_AOpos, _radiusSize] spawn { params ["_AOpos", "_radiusSize"]; private _grpList = []; private _milBuildingsarray = nearestObjects [_AOpos, ["house","building"], _radiusSize*0.5]; sleep 0.5; private _milBuildingCount = count _milBuildingsarray; private _garrisongroupamount = 0; waitUntil {sleep 0.1; !isNil "MainFaction"}; if (_milBuildingCount > 0) then{ if (_milBuildingCount > 15) then{_milBuildingCount = 15;}; for "_i" from 1 to _milBuildingCount do { private _infBuilding = selectRandom _milBuildingsarray; _milBuildingsarray = _milBuildingsarray - [_infBuilding]; private _infbuildingpos = _infBuilding buildingPos -1; private _buildingposcount = count _infbuildingpos; if (_buildingposcount > 12 ) then {_buildingposcount = 12}; _garrisongroupamount = _garrisongroupamount + 1; private _garrisongroup = createGroup east; _grpList pushBack _garrisongroup; _garrisongroup setGroupIdGlobal [format ['AO-GarrisonInf-%1', _garrisongroupamount]]; if (_buildingposcount > 0) then{ for "_i" from 1 to _buildingposcount do { private _unitpos = selectRandom _infbuildingpos; _infbuildingpos = _infbuildingpos - [_unitpos]; private _unitArray = (missionConfigFile >> "unitList" >> MainFaction >> "units") call BIS_fnc_getCfgData; private _unittype = selectRandom _unitArray; private _unit = _garrisongroup createUnit [_unittype, _unitpos, [], 0, "CAN_COLLIDE"]; _unit disableAI "PATH"; }; }; [units _garrisongroup] remoteExec ["AW_fnc_addToAllCurators", 2]; { mainAOUnits pushBack _x; } forEach (units _garrisongroup); [units _garrisongroup] spawn derp_fnc_AISkill; { _x setCombatMode "YELLOW"; _x setBehaviour "AWARE"; } forEach _grpList; sleep 0.5; }; }; publicVariableServer "mainAOUnits"; }; [_AISkillUnitsArray] spawn { params ["_AISkillUnitsArray"]; [_AISkillUnitsArray] call derp_fnc_AISkill; }; [mainAOUnits] remoteExec ["AW_fnc_addToAllCurators", 2]; publicVariableServer "mainAOUnits"; { _x setCombatMode "YELLOW"; _x setBehaviour "AWARE"; } forEach _grpList; mainAOUnitsSpawnCompleted = true; publicVariableServer "mainAOUnitsSpawnCompleted"; Thanks
  10. Thank you very much, this works perfectly, without any modification. I am very grateful for the help you have given me.
  11. Hello world, I allow myself to UP this subject because because I did not find the solution. I understood why the sides did not appear and have fixed it. thank you in advance
  12. Thank you, I just found how to move the spawn point of the first AO and following. I keep looking how spawn the AOs as in the 2.82 version of the invade & annex Do I wish you a good holiday ? lol Thank's
  13. That's what I do, I learn by integrating pre-edited scripts and create some basic ones. I & A is quite complex and it allows me to learn. I thank you for the advice you give me because you help me to learn even if I know you have more important things to do. I tried the last script you gave me but unfortunately nothing happens. the main and secondaries missions don't spawn but no error messages appears. Would this be a problem with "(_nextAO in controlledZones)" or because the "manualAO" should be called by another scipt ? or quite simply manually called by an admin command in game ? I will continue my tests by modifying the script in "MainMachine.sqf" thanks for your help.
  14. I tried to declare the variable or replace _x with _AO_Entry by declaring _AO_Entry = _this select 0; but it does not work, I will try other things while waiting for some help. Thank you
  15. I am not an expert in scripting, I made several attempts but unsuccessful. Would there be another way to only change the order of appearance? In my tests I changed the order of "Class" in "MainAos.hpp" but the first AO spawn always to "Atkinarki". Would there be another script determining the order of appearance of "Aos"? Thanks
×
×
  • Create New...