RicardoLew 10 Posted January 9, 2018 Im still new to the scripting of Arma 3, and im trying to make a simple script where the player get near a house door and it opens. I got this so far: if (position player isEqualTo [house,[2.5,-1.5,0]]) then {house animate ["door_1_rot",1]}; I dont know how to handle a position with the vector of the house where the door is located, maybe someone can help me with this? Share this post Link to post Share on other sites
HallyG 239 Posted January 9, 2018 This script, by @Heeeere's johnny!, might provide you with a suitable starting point: 1 Share this post Link to post Share on other sites
pierremgi 4906 Posted January 10, 2018 9 hours ago, RicardoLew said: Im still new to the scripting of Arma 3, and im trying to make a simple script where the player get near a house door and it opens. I got this so far: if (position player isEqualTo [house,[2.5,-1.5,0]]) then {house animate ["door_1_rot",1]}; I dont know how to handle a position with the vector of the house where the door is located, maybe someone can help me with this? I assume house is a single specific building as you are using a global variable. So why don't you place a trigger repeatable player present with house animate ["door_1_rot",1] in activation field and house animate ["door_1_rot",0] in deact field ? Note: The relative position from an object is given by commands like modelToWorld or worldToModel, depending on final aim. Never compare two positions with isEqualTo (there is more chance to win a lottery). Use distance range instead. player distance house < 15m (be careful you player with the center of each model). Share this post Link to post Share on other sites
pierremgi 4906 Posted January 10, 2018 If you need a script for any door of any house, it's different, of course. test this one: 0 = [] spawn { while {true} do { _houses = nearestObjects [player, ["house"], 50]; if (count _houses > 0) then { _house = _houses select 0; private _intersects = []; { _intersects = ([cursorObject, _x] intersect [ASLToATL eyepos player, (screentoworld [0.5,0.5])]); if (count (_intersects select 0) > 0) exitwith { _intersects } } forEach ["FIRE","GEOM","VIEW"]; if (count _intersects > 0) then { _intersect = _intersects select 0 select 0; _dist = _intersects select 0 select 1; _is_door = [false,true] select (["door",_intersect] call BIS_fnc_inString); if (_is_door && _dist < 4) then { _select_door = format ["%1_rot", _intersect]; _house animate [_select_door, 1,false]; [_house,_select_door] spawn { params ["_house","_select_door"]; if (_house animationPhase _select_door >0) then { sleep 5; _house animate [_select_door, 0,false]; }; }; }; }; }; sleep 0.5; }; }; Sorry I haven't added specific lines for Altis terminal gates. They suck with weird name not compliant with their animation. Same for some Kavala office buildings with glass doors, detected as glass instead of door. Boring! 3 Share this post Link to post Share on other sites
RicardoLew 10 Posted January 24, 2018 Oh, thanks! It helps a lot :D Share this post Link to post Share on other sites