barn 2 Posted May 18, 2020 Hi everyone! Quick question: I have an addaction on an object "teleport with players nearby" I have a marker named: triggertower When i execute the action, it's suppose to teleport all the players in the marker on the object So i made a script like this: Quote this addAction ["ENTER WITH PLAYERS", {{if (isPlayer _x) then { if (_x inArea triggertower) then { _x setPos [(getPos Obelisk1 select 0) +5, (getPos Obelisk1 select 1) +0, (getPos Obelisk1 select 2) +2];}; }} forEach allUnits. It works on local and teleport the player, but on a server, no one is teleported not even the player doing the action. Can anybody help me understand what I am doing wrong ? Thanks. Share this post Link to post Share on other sites
opusfmspol 282 Posted May 19, 2020 9 hours ago, barn said: this addAction ["ENTER WITH PLAYERS", {{if (isPlayer _x) then { if (_x inArea triggertower) then { _x setPos [(getPos Obelisk1 select 0) +5, (getPos Obelisk1 select 1) +0, (getPos Obelisk1 select 2) +2];}; }} forEach allUnits. What you have here is incomplete, missing a semicolon ( ; ) and ending in a period ( . ), which shouldn't work. Should be: this addAction [ "ENTER WITH PLAYERS", { { if (isPlayer _x) then { if (_x inArea triggertower) then { _x setPos [(getPos Obelisk1 select 0) +5, (getPos Obelisk1 select 1) +0, (getPos Obelisk1 select 2) +2]; }; }; } forEach allUnits; } ]; Recommend you use (_x In allPlayers) rather than (isPlayer _x), since isPlayer can sometimes be problematic in multiplayer. Also possible that in description.ext you might have security protocol (CfgDisabledCommands) in place for setPos command, allowing server to use it, but not allowing clients to use it. 1 Share this post Link to post Share on other sites
barn 2 Posted May 19, 2020 Hi! Thanks for the reply it helps a lot ! So i tried as you said and had some params to fix the distance view and change the date when activate: Quote this addAction [ "<t color='#00FF00'>ENTER WITH PLAYERS</t>", { { if (_x In allPlayers) then { if (_x inArea triggertower) then { _x setPos [(getPos Obelisk1 select 0) +5, (getPos Obelisk1 select 1) +0, (getPos Obelisk1 select 2) +2]; }; }; } forEach allUnits; setDate [2002, 4, 12, 23, 0]; }, nil, 1.5, true, true, "", "true", 5, false, "", "" ]; And compress it for the init of an object on mission: Quote this addAction ["<t color='#00FF00'>ENTER WITH PLAYERS</t>",{{if (_x In allPlayers) then {if (_x inArea triggertower) then {_x setPos [(getPos Obelisk1 select 0) +5, (getPos Obelisk1 select 1) +0, (getPos Obelisk1 select 2) +2];};};} forEach allUnits; setDate [2002, 4, 12, 23, 0];},nil,1.5,true, true,"", "true", 3, false, "", ""]; No errors so far, so i will try it in MP ! Thanks again! Share this post Link to post Share on other sites
HazJ 1289 Posted May 19, 2020 allUnits will move everyone. No need for the isPlayer check when you can do: { // setPos... } forEach allPlayers - entities "HeadlessClient_F"; // exclude Headless Clients https://community.bistudio.com/wiki/allPlayers 1 Share this post Link to post Share on other sites
barn 2 Posted May 19, 2020 Thanks HazJ ! So, i tried the mission today with this new code and with a 2 players on the mission...It's not working. No one is teleported. Is there an other way to do it if _x In allPlayers and isPlayer _x can't work in MP ? Share this post Link to post Share on other sites
HazJ 1289 Posted May 19, 2020 Not tested. For quick test, name your trigger say trg1 and inside init.sqf: player addAction [ "Teleport everyone to trigger", { _x setPos getPos trg1; } forEach allPlayers - entities "HeadlessClient_F"; ]; Share this post Link to post Share on other sites
barn 2 Posted May 21, 2020 Hi! So i've finally had the time to make a test. HazJ, your script return an error "Error ] missing" on line :} forEach allPlayers - entities "HeadlessClient_F"; So i tried with a execVM in the ini of the player and your script in a file "test.sqf". And now the error appears when the mission start. And i start the mission at the trigger without activating the action in my menu. EDIT: ok i tried with an other player in MP and with this command: Quote this addAction ["<t color='#00FF00'>ENTER WITH PLAYERS</t>",{{if (_x In allPlayers) then {if (_x inArea triggertower) then {_x setPos [(getPos Obelisk1 select 0) +5, (getPos Obelisk1 select 1) +0, (getPos Obelisk1 select 2) +2];};};} forEach allPlayers - entities "HeadlessClient_F"; setDate [2002, 4, 12, 23, 0];},nil,1.5,true, true,"", "true", 3, false, "", ""]; Same result: The time change, the getpos is not working... Share this post Link to post Share on other sites
opusfmspol 282 Posted May 23, 2020 Maybe try this, has some added Order of Operations and removes some parts not needed : this addAction [ "<t color='#00FF00'>ENTER WITH PLAYERS</t>", { { if (_x inArea triggertower) then { _x setPos [ ((getPos Obelisk1) select 0) +5, ((getPos Obelisk1) select 1) +0, ((getPos Obelisk1) select 2) +2 ]; }; } forEach (allPlayers - (entities "HeadlessClient_F")); setDate [2002, 4, 12, 23, 0]; }, nil, 1.5, true, true, "", "true", 3 ]; If your mission isn't using Headless Client, and you don't anticipate any being added, you might do away with its reference and just use (allPlayers). What is the markerType, x-axis and y-axis of the triggerTower marker? And what type object is Obelisk1? 1 Share this post Link to post Share on other sites