kromka 40 Posted November 18, 2019 @pierremgi I didn't knew this site. Nice juxtaposition. Some things are overcomplicated for such ocasional scripting guy like me. I will check it. ----- It works properly. Thank you. Share this post Link to post Share on other sites
kromka 40 Posted March 28, 2020 I would like to back to the code of teleport flag. Currently it looks like this: teleport = _this select 0; teleportTarget = _this select 1; //this is an array sideLeader = _this select 2; interactionDistance = 5; //meters player removeAction (player getVariable "idActionTeleport"); player removeAction (player getVariable "idActionAddTeleport"); player removeAction (player getVariable "idActionRemoveTeleport"); fnc_teleport= { private _destination = getPosATL (teleportTarget select 0); { if((_x == player) || !(isPlayer _x)) then //is current player but not other player (can be AI) { _x setpos [(_destination select 0) + random [-20, 0, 20], (_destination select 1) + random [-20, 0, 20], 0.2]; }; } forEach units group player; }; fnc_addTeleport= { private _placeDistance = 4; private _playerDir = round (getDir player); private _playerPos = getPosATL player; "hello" remoteExec ["hint"]; teleportTarget set [0, "Flag_Green_F" createVehicle [(_playerPos select 0) + _placeDistance * (sin _playerDir), (_playerPos select 1) + _placeDistance * (cos _playerDir), 0]]; if(player == sideLeader) then { player removeAction (player getVariable "idActionAddTeleport"); player setVariable ["idActionRemoveTeleport", player addAction actionRemoveTeleport]; }; if((side player) == (side sideLeader)) then { player setVariable ["idActionTeleport", player addAction actionTeleport]; }; }; fnc_removeTeleport= { deleteVehicle (teleportTarget select 0); if(player == sideLeader) then { player setVariable ["idActionAddTeleport", player addAction actionAddTeleport]; player removeAction (player getVariable "idActionRemoveTeleport"); }; if((side player) == (side sideLeader)) then { player removeAction (player getVariable "idActionTeleport"); }; }; actionAddTeleport = ["add teleport", fnc_addTeleport, [], 0, false, true]; actionRemoveTeleport = ["remove teleport", fnc_removeTeleport, [], 0, false, true, "", "player distance (teleportTarget select 0) < interactionDistance"]; actionTeleport = ["teleport", fnc_teleport, [], 0, false, true, "", "player distance teleport < interactionDistance"]; if(isNull (teleportTarget select 0)) then { if(player == sideLeader) then { player setVariable ["idActionAddTeleport", player addAction actionAddTeleport]; }; } else { if(player == sideLeader) then { player setVariable ["idActionRemoveTeleport", player addAction actionRemoveTeleport]; }; if((side player) == (side sideLeader)) then { player setVariable ["idActionTeleport", player addAction actionTeleport]; }; }; On non-deditacted despite this script has still some issues but it works more or less like expected. However on dedicated it totally doesn't work. Player, who is sideLeader can place/remove pole and teleport himself but other clients stay intact and this script isn't t even launched when pole is placed. I suppose eg this part if((side player) == (side sideLeader)) then { player setVariable ["idActionTeleport", player addAction actionTeleport]; }; should be called in specific way eg with remoteExec, but I really don't know how to do it properly. Can somebody assist me once again? Best regards. Share this post Link to post Share on other sites