Jump to content


  • Content Count

  • Joined

  • Last visited

  • Medals

Community Reputation

177 Excellent


About opusfmspol

  • Rank
    Master Sergeant

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

1923 profile views
  1. Move the if-then inside the addAction code.
  2. opusfmspol

    Random Town name in task

    _TownName is the returned location itself. If the name text of the location is what you want, use: Text _TownName Also, nearestLocations will search multiple location types ("NameCity", "NameVillage", etc.) and the locations it returns are sorted by distance.
  3. opusfmspol

    Troubles with enableAI "Move"

    The likely reason enableAI did not work on dedicated is that the command has to be run where the unit is local. addAction runs local to the client (player). When AI is a one-man group (i.e., leader of his own group) the AI is local to the server. In singleplayer and MP hosted, the host client is also the server, and the command run in addAction will work there. With dedicated server they are not local to client, so the command fails, it has to be run by server. But in the event locality of the unit is in question, best to just remoteex using the _unit as the target, then the enableAI command will run wherever the unit is local, whether server or client. Multiplayer Scripting remoteExec remoteExecCall
  4. Waypoints are a group function. It sounds like you have the target and pilots in the same group. The target and pilots need to be in separate groups which have their own waypoints.
  5. missionConfigFile can get description.ext entries for comparison. But I thought client received mission from the server when connecting... how would they run different versions?
  6. Maybe I'm misunderstanding the scenario and the {false} should instead be {true} for trigger condition. Certain MP behavior with Units and Group commands may also need to be considered, see Kronzky's note at the bottom of the Units biki page. The alternate detection might need to be: if (isNull playersGroup || {{Alive _x} Count (Units playersGroup) < 1}). What exactly is the extract setup/scenario using the trigger? Are all the player/playable units in one group (playersGroup), or are there multiple groups with playable units being extracted? What respawn type is used (Instant, base, group, etc)? < 1 is same as == 0, meaning no Units are detected in a group. Reversing that would be > 0 Units, meaning Units are still detected in a group.
  7. Check to see if the respawned unit belongs to a different group. If that's the case, use respawn event handler to have him joinSilent the playersGroup, so long as the group still exists. Or redefine playersGroup as the respawn unit's group if it no longer exists.
  8. Try this: (if (isNull playersGroup || {Count (Units playersGroup) < 1}) then {false} else {{_x in heli_1} Count (Units playersGroup) == {Alive _x} Count (Units playersGroup)})
  9. Not to my knowledge. Player is a command (I would say a local command though wiki has no indicator for it), and the return is different on each machine. Dedicated server has no user. The command's use has to be reviewed in each 'composition' you have, with an eye toward the objNull returned by dedicated server. Multiplayer Scripting
  10. Only to one unit in the group. With dedicated server you have to use direct unit references instead of Player, and group references from some unit rather than relying on (Group Player ). Unit reference is as simple as naming units in editor. @dreadpirate provides example above of setting a group reference and using it.
  11. opusfmspol

    Counting variable in MP

    Should be: "_this distance _target < 3", "_caller distance _target < 3", Means "not the server". Will execute on all connected clients, but the server itself will be excluded. It's commonly used to keep a dedicated server from executing Player and hasInterface related stuff where it might result in errors, since Player is objNull on dedicated server and it has no interface.
  12. opusfmspol

    Counting variable in MP

    Yes, please. What you have is this: [ puitdevin, "<t color='#00FF00'>SEARCH</t>", "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_requestleadership_ca.paa", "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_requestleadership_ca.paa", "_this distance _target < 3", "_this distance _target < 3", {}, {}, { [_this select 1] execVM "randompuits.sqf"; [(_this select 0),(_this select 2)] remoteExec ["bis_fnc_holdActionRemove",[0,-2] select isDedicated,true]; }, {}, [], 2, 0, true, false ] call BIS_fnc_holdActionAdd; Try changing array select 5 to: "_caller distance _target < 3".
  13. If its an unchanging value, as the items list here appears to be, best practice is definitely to predefine the value in an init script. Maintain it in a separate process, if necessary. Sometimes running code ahead of evaluating condition is needed and helpful for getting condition values. In this case, trying to find what works, it's helpful. But you've got it right, whenever possible best practice is to use condition alone. Array should be predefined elsewhere and trigger should just run the condition check.
  14. Not sure these are the issue, but: _script is undefined in the expression. Spawn uses function, not script. execVM uses script. Trigger activation must return nothing, and spawn or execVM returns a handle, so might try "nul = [%1] spawn function;" or "nul = [%1] execVM 'folder\script';". Also might try formatting the statement first, then set triggerStatement: _expression = format ["nul = [%1] spawn function;", _variable]; _trigger setTriggerStatements ["this", _expression, ""];