Data Realms Fan Forums
http://forums.datarealms.com/

Pilot Ejection
http://forums.datarealms.com/viewtopic.php?f=1&t=45878
Page 1 of 1

Author:  Silent00 [ Sat Dec 20, 2014 2:40 pm ]
Post subject:  Pilot Ejection

After I made a new, huge amount updates for the ACTA mod, such as a actors and weapons, and the ejecting pods for the AC Crafts....

I made this eject pods like this:




if without a Team = 1 for the actor(s), they'll be as a neutral team though, it stills remain a Red team even I plays as a other team. Is there any lua for this?

Author:  Asklar [ Sat Dec 20, 2014 9:31 pm ]
Post subject:  Re: Pilot Ejection

There are many ways to do this. The only problem I see is that with Lua, detecting the pilot and his escape craft would be somewhat complicated since they are all gibs, so if you attach the script to the DropShip and make it trigger on it's destruction, it won't be able to change the team of the pilot.

I'm not really sure of why the craft gib into a MOSRotating that then gibs into the ACDropShip instead of gibbing the craft into the ACDropShip right away. In case this doesn't really matter, the "easy" option would be directly creating all the things with Lua:

Code:
function Create(self)
   self.eject = CreateACDropShip("Pilot Release");
   self.eject.Team = self.Team;
   self.pilot = CreateAHuman("R-FP 44-1C");
   self.pilot.Team = self.Team;
   self.pilot:AddInventoryItem(CreateHDFirearm("PL2-Kl"));
   self.eject:AddInventoryItem(self.pilot);
end

function Destroy(self)
   self.eject.Pos = self.Pos;
   self.eject.Vel = self.Vel; --to give it an inertia-like movement when spawned
   MovableMan:AddActor(self.eject);
end


Something like that would be enough.

Author:  Silent00 [ Sun Dec 21, 2014 8:27 am ]
Post subject:  Re: Pilot Ejection

thanks, does it have eject more at once?

Author:  Asklar [ Mon Dec 22, 2014 2:18 am ]
Post subject:  Re: Pilot Ejection

I didn't get your question, you mean if it can eject more than one pilot/escpae pod at once? Yeah, you can.

Author:  Silent00 [ Mon Dec 22, 2014 9:08 am ]
Post subject:  Re: Pilot Ejection

but how?

Author:  Asklar [ Mon Dec 22, 2014 8:44 pm ]
Post subject:  Re: Pilot Ejection

Simply defining more ejects and pilots, though you'd have to be careful to place the ejection things in such way that they won't overlap with each other, since that would cause them to explode or something.

For example,

Code:
function Create(self)
   self.eject = CreateACDropShip("Pilot Release");
   self.eject.Team = self.Team;
   self.pilot = CreateAHuman("R-FP 44-1C");
   self.pilot.Team = self.Team;
   self.pilot:AddInventoryItem(CreateHDFirearm("PL2-Kl"));
   self.eject:AddInventoryItem(self.pilot);

   self.eject2 = CreateACDropShip("Pilot Release");
   self.eject2.Team = self.Team;
   self.pilot2 = CreateAHuman("R-FP 44-1C");
   self.pilot2.Team = self.Team;
   self.pilot2:AddInventoryItem(CreateHDFirearm("PL2-Kl"));
   self.eject2:AddInventoryItem(self.pilot2);
end

function Destroy(self)
   self.eject.Pos = self.Pos + Vector(-30,0); -- this (-30,0) vector is just a place holder, replace it for a better value later
   self.eject.Vel = self.Vel;

   self.eject2.Pos = self.Pos + Vector(30,0);
   self.eject2.Vel = self.Vel;

   MovableMan:AddActor(self.eject);
   MovableMan:AddActor(self.eject2);
end


That would allow you to bring out more escape pods. If you'd like to add more, you simply have to copy and paste the obviously copy/pasted chunk and rename the variables (adding a number at the end).

Author:  Silent00 [ Tue Dec 23, 2014 2:51 am ]
Post subject:  Re: Pilot Ejection

Ok, I made this, but when the dropships left in the orbit, it left a pod instead along with it. It must've been only deleting AC.

Author:  Asklar [ Tue Dec 23, 2014 3:55 am ]
Post subject:  Re: Pilot Ejection

I'm not sure if a health check would be enough because instant gibbing might not set the health of the craft to 0. Maybe a height check?

Code:
function Create(self)
   self.eject = CreateACDropShip("Pilot Release");
   self.eject.Team = self.Team;
   self.pilot = CreateAHuman("R-FP 44-1C");
   self.pilot.Team = self.Team;
   self.pilot:AddInventoryItem(CreateHDFirearm("PL2-Kl"));
   self.eject:AddInventoryItem(self.pilot);

   self.eject2 = CreateACDropShip("Pilot Release");
   self.eject2.Team = self.Team;
   self.pilot2 = CreateAHuman("R-FP 44-1C");
   self.pilot2.Team = self.Team;
   self.pilot2:AddInventoryItem(CreateHDFirearm("PL2-Kl"));
   self.eject2:AddInventoryItem(self.pilot2);
end

function Destroy(self)
   if self.Pos.Y > 0 then
      self.eject.Pos = self.Pos + Vector(-30,0); -- this (-30,0) vector is just a place holder, replace it for a better value later
      self.eject.Vel = self.Vel;

      self.eject2.Pos = self.Pos + Vector(30,0);
      self.eject2.Vel = self.Vel;

      MovableMan:AddActor(self.eject);
      MovableMan:AddActor(self.eject2);
   end
end

Page 1 of 1 All times are UTC [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/