OFPEC Forum
Editors Depot - Mission Editing and Scripting => OFP - Editing/Scripting Multiplayer => Topic started by: Baphomet on 29 Jun 2003, 04:42:41
-
I'm trying to write a interval based revealing script for multiplayer. However I'm not sure how script a way to get the list of human players and integrate that into the "group reveal unit" command.
So it's not simply one unit revealing another, but when a timer runs down for a particular player. His location is revealed to everyone on the map briefly.
-
its not exactly a simple task because you cannot use arrays in MP scripts, so I'm afraid you will have to use metavariables. Here's some code you could try:
;// INIT.SQS CODE - RUNS ON ALL CLIENTS
~random .5
?format ["%1",clientCounter]=="scalar bool array string 0xfcffffef":clientCounter=0; publicVariable "clientCounter"
_player=PLAYER
_p=[_player]
Call Format ["client%1=_p select 0", clientCounter]; publicvariable format ["client%1", clientCounter]
clientCounter=clientCounter+1; publicVariable "clientCounter"
Ok short explaination: First off I check if the "clientCounter" var is initialized, if not it is set to zero. Next I make a metavariable "clientX" with X being a number from 0..clientCounter-1 and stick the player ID into it.
There is a random delay to reduce traffic and collisions of the variable broadcasting.
In you script where you need the player arrays, use the following expression to get hold of a player name:
_playerUnit=Call Format ["client%1",_c]
where _c is a number between 0 and (clientCounter-1)
hope that helps!
-
You can get the list of players by using the skill command. The player always have the skill set to 1 (even if you set it to something else in the editor). Avoid setting skills to 1 and check which units have the skill 1.
With this, you don't have to broadcast variables using publicVariable. :)