Jump to content
Dunklik

Teleport different group of players into different vehicles

Recommended Posts

Hi Everyone,

 

I searched on the website for a similar topic but only found a JIP teleport for a single vehicle, I am not a novice in scripting but neither am what you called gifted. I figured he who doesn't ask never gets so here we go:

 

I am creating a D-Day paradrop multiplayer mission and once briefing is over I want the 3 different units of 15 players to be teleported simultaneously in 3 distinctive C-47's (as they cannot hold more than 15 passengers). Those C47 will have AI pilots in the front. 

 

Said units of players are pre-defined by the slots players will pick when they connect to the server. 

 

This teleportation should be activated by one specific player (in this case me) variable name Zeus walking into a trigger area. Said trigger should happen after 60 seconds wait and a fade to black of 5 second upon teleportation. 

 

Here are the naming protocols:

 

Infantry groups:

 

Alpha 1-1 

variable name of  playable slot 1 is Player1

variable name of playable slot 2 is Player2

All the way to slot 15 with Player15

 

Alpha 1-2 

variable name of playable slot 1 is Player16

All the way to slot 15 with Player30

 

Alpha 1-3 

variable name of playable slot 1 is Player31

All the way to slot 15 with variable name Player45

 

Planes:

 

First C47 carrying Alpha 1-1 variable name Plane1

Second C47 carrying Alpha 1-2 variable name Plane2

Third C47 carrying Alpha 1-3 variable name Plane3

 

Here is what I am thinking.

 

SQF:

 

//Initplayerlocal.sqf 


fn_teleport = { if (didJIP) then { Player1 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player2 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player3 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player4 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player5 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player6 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player7 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player8 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player9 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player10 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player11 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player12 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player13 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player14 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player15 moveincargo Plane1};
fn_teleport = { if (didJIP) then { Player16 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player17 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player18 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player19 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player20 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player21 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player22 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player23 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player24 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player25 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player26 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player27 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player28 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player29 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player30 moveincargo Plane2};
fn_teleport = { if (didJIP) then { Player31 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player32 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player33 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player34 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player35 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player36 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player37 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player38 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player39 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player40 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player41 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player42 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player43 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player44 moveincargo Plane3};
fn_teleport = { if (didJIP) then { Player45 moveincargo Plane3};

};

Trigger

 

Make trigger owner player slot with variable name Zeus. Timeout after 60 sec min med and max. Should I tick server only? 

 

init

[] remoteExec ["fn_teleport", allPlayers];

 

Am I in the money.

 

Any help is strongly appreciated.

 

Peace

Share this post


Link to post
Share on other sites

A kind soul on discord shared this - I'll pay it forward for the future google searches

 

//in your SQF file

fn_teleport = {
    if didJIP exitWith {};
    if ( player in group1 ) exitWith { player moveInCargo plane1 };
    if ( player in group2 ) exitWith { player moveInCargo plane2 };
    if ( player in group3 ) exitWith { player moveInCargo plane3 };
};

give Alpha 1-1 variable name group1 etc ...

 

 

Share this post


Link to post
Share on other sites

Allright back at home - I tried the above method who didn't do anything 😞

 

 

I tried which works wonders 

player1 MoveInCargo [D_23, 12]; 

But am not sure it would work in multiplayer

Share this post


Link to post
Share on other sites

I'll tell  about my method of teleporting squads. Maybe it's stupid and not beautiful, but it works in MP on our TvT games.

1. create markers on destination points

2. give each unit in squad a unique name

3. create  object wich will have  action teleport-menu 

4. write script, as i show below, for all destination points and all squads. In the example below, one squad is teleported to one point

sdv_1_teleport_1 addAction ["<t color='#FFFFFF' shadow = 1 size='2'>Выбери место старта Водолазов 3-3 <br />(будет доступно после фризтайма)</t>", {}]; //action menu on object  

waitUntil {!isNil "WMT_pub_frzState" && {WMT_pub_frzState >= 3}}; // waiting start for mission

sdv_1_teleport_1 removeAction 0; // remove action

sdv_1_teleport_1 addAction  // make new action menu for teleport
[  
 "<t color='#00ff00' shadow = 1 size='2'>Водолазы 3-3 на позицию #1</t>",  
 { 
{_x moveInAny sdv_1;} forEach [spn_1_voda_KO, spn_1_voda_2, spn_1_voda_3, spn_1_voda_4]; // list with unique unit names, which  are loaded into vehicle
 
sdv_1 setPos (getMarkerPos "kostil_1"); // teleport vehicle to destination point 
sdv_1 setDir 0;

 deleteVehicle sdv_1_teleport_1;  // remove objects with action menu  
 deleteVehicle sdv_1_teleport_2; 
 deleteVehicle sdv_1_teleport_3; 
 
 {deleteMarker _x;} forEach ["wmt_east_sdv_1","wmt_east_sdv_4"]; // remove markers
 },  
 nil,  
 1.5,  
 true,  
 true,  
 "",  
 "true",   
 4,  
 false,  
 "",  
 ""  
]; 

 

 

Share this post


Link to post
Share on other sites
On 6/17/2022 at 1:47 AM, Dunklik said:

Allright back at home - I tried the above method who didn't do anything 😞

 

 

I tried which works wonders 


player1 MoveInCargo [D_23, 12]; 

But am not sure it would work in multiplayer

 

Start with a civilian car with 4 seats.

 

Teleport  a soldier into a seat.  There are 4 seats so do it 4 times into the 4 specific seats. Once that is right you can do it with your aircraft.

 

 

 

 

Share this post


Link to post
Share on other sites
On 6/16/2022 at 8:48 AM, Dunklik said:

I am creating a D-Day paradrop multiplayer mission and once briefing is over I want the 3 different units of 15 players to be teleported simultaneously in 3 distinctive C-47's (as they cannot hold more than 15 passengers). Those C47 will have AI pilots in the front. 

 

Said units of players are pre-defined by the slots players will pick when they connect to the server. 

 

This teleportation should be activated by one specific player (in this case me) variable name Zeus walking into a trigger area. Said trigger should happen after 60 seconds wait and a fade to black of 5 second upon teleportation. 

 

Here are the naming protocols:

 

Infantry groups:

 

Alpha 1-1 

variable name of  playable slot 1 is Player1

variable name of playable slot 2 is Player2

All the way to slot 15 with Player15

 

Alpha 1-2 

variable name of playable slot 1 is Player16

All the way to slot 15 with Player30

 

Alpha 1-3 

variable name of playable slot 1 is Player31

All the way to slot 15 with variable name Player45

 

Planes:

 

First C47 carrying Alpha 1-1 variable name Plane1

Second C47 carrying Alpha 1-2 variable name Plane2

Third C47 carrying Alpha 1-3 variable name Plane3

 

 

 

 

Name your groups (easier) like group1, group2, group3  instead of Alpha 1-1... by default

 

In initPlayerLocal.sqf  (run for each player when joining and ready to play)

 

[] spawn {
   waitUntil { isPlayer ZeusUnit};  // wait for your zeus (you) ready to play, I called it zeusUnit

   call {

     if (group player == group1) exitWith {

       player moveinCargo plane1
    };

     if (group player == group2) exitWith {

       player moveinCargo plane2
    };

     if (group player == group3) exitWith {

       player moveinCargo plane3
    };

  };
};

 

Now if you need also to wait for everyone (player1 to player45) to be ready to play, you need extra condition like:


[player1,player2,player3,player4,player5,player6,player7,player8,player9,player10,player11,player12,player13,player14,player15,player16,player17,player18,player19,player20,player21,player22,player23,player24,player25,player26,player27,player28,player29,player30,player31,player32,player33,player34,player35,player36,player37,player38,player39,player40,player41,player42,player43,player44,player45] findIf {!isPlayer _x} == -1

 

or better:

(units group1 + units group2 + units group3) findIf {!isPlayer _x} == -1

 

That can be looong. So you can also split the array for each group and start to teleport when a group is full of players.

Share this post


Link to post
Share on other sites

Hey guys - First of all thanks for your separate answers its heart warming to see the community still comes together to solve this. 

 

 

I'll trial them and see what works.

 

I did find some kind of hybrid solution which i'll post here. 

 

 

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×