Search the Community
Showing results for tags 'while loop'.
Found 4 results
-
Multiplayer While Loop on Players
SeelieKnight posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
I'm trying to spawn a while loop on each player in a multiplayer mission to monitor what equipment they have but can't figure out how this works. Right now I'm just trying to hint the name of units' helmets. In initPlayerLocal.sqf: [[player], "player_scripts\01_integrated_armor.sqf"] remoteExec ["BIS_fnc_execVM", 0, true]; The code in 01_integrated_armor.sqf: _rc = _this select 0; [_rc] spawn { _rc = _this select 0; while {true} do { //%1 = name of unit //%2 = helmet unit is wearing //%3 = check if helmet matches unit's helmet variable hint format ["%1,\n%2,\n%3", _rc, headgear _rc, (headgear _rc == _rc getVariable "rc_helmet")]; sleep 1; }; }; The hint is coming through, and seems like it should be working, but the part that shows which helmet the unit is wearing won't change when I swap helmets. I checked the helmet with the debug console (i.e. "headgear player") and that shows the currently worn helmet properly, and the variable name of the player is displaying correctly in the hint, so I'm not sure why this is not working. What am I missing? -
Hello there and thank you for giving attention to to my problem. Im creating an intro in which a camera follows a player (see below), but for some reason it wont exit the while loop, anybody got an idea why? StopFollowing = 0; Follow = 0; T1 = createTrigger ["EmptyDetector", [0,0,0] , false]; T1 setTriggerStatements ["StopFollowing = 1","Follow = 1",""]; T1 setTriggerTimeout [5, 5, 5, false]; // i set this trigger with a timeout so it will turn the While condition false after 5 sec StopFollowing = 1; titleCut ["", "BLACK OUT", 2]; sleep 1; titleCut ["", "BLACK IN", 3]; while {Follow isEqualTo 0} do { _camera camPrepareTarget man1; _camera camPrepareRelPos [1,1,3]; _camera camPrepareFOV 0.700; _camera camCommitPrepared 0; WaitUntil {camCommitted _camera}; };
-
ive been trying to run this code the problem is that once one of the conditions in the "waitUntil" is true it keeps looping non stop, i tried to delete the group that was killed as you see below, but it didnt help. if anyone has any ideas it would be great. while {true} do { waitUntil {({alive _x} count units A == 0) or ({alive _x} count units B == 0)}; hint "boom yah"; A forgetTarget player1; // A & B are group names B forgetTarget player1; sleep 3; }; if (({alive _x} count units A) == 0) then {deleteGroup A}; if (({alive _x} count units A) == 0) then {deleteGroup B};
-
Hi, I am just getting started in scripting. I have a basic script that makes a unit walk a certain distance. Then i wanted him to salute while another player is alive "t1". But it seems even when i kill "t1". He keeps saluting. Should the while loop not automatically finish when the condition "while {alive t1}" isn't met? I got around this by adding an exit condition, but this doesn't seem right as it defeats the purpose of a while loop. Thank you for any help. //S1 Move and salute for "_i" from 0 to 3 do { s1 playmove "AmovPercMwlkSlowWrflDf_ver2"; }; while {alive t1} do { hint "He's Alive"; s1 playmove "AmovPercMstpSnonWnonDnon_SaluteIn"; sleep 0.769; if (!alive t1) exitwith {}; }; if (!alive t1) then {hint "He's Dead"};