mirror of
https://github.com/ChocoTaco1/TacoServer.git
synced 2026-07-16 00:24:35 +00:00
Added VehiclePassengerEject
If Pilot of a vehicle, Eject players with the use of the Backback button
This commit is contained in:
parent
5b869b6260
commit
e9193ba587
1 changed files with 66 additions and 0 deletions
66
Classic/scripts/autoexec/VehiclePassengerEject.cs
Normal file
66
Classic/scripts/autoexec/VehiclePassengerEject.cs
Normal file
|
|
@ -0,0 +1,66 @@
|
||||||
|
if (! $EjectDone)
|
||||||
|
{
|
||||||
|
schedule( 30000, 0, "exec", "scripts/autoexec/VehiclePassengerEject.cs" );
|
||||||
|
$EjectDone = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function Player::use( %this,%data )
|
||||||
|
{
|
||||||
|
// If player is in a station then he can't use any items
|
||||||
|
if(%this.station !$= "")
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Convert the word "Backpack" to whatever is in the backpack slot.
|
||||||
|
if ( %data $= "Backpack" )
|
||||||
|
{
|
||||||
|
if ( %this.inStation )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if ( %this.isPilot() )
|
||||||
|
{
|
||||||
|
%vehicle = %this.getObjectMount();
|
||||||
|
EjectAllPassengers(%vehicle, %this);
|
||||||
|
// messageClient( %this.client, 'MsgCantUsePack', '\c2You can\'t use your pack while piloting.~wfx/misc/misc.error.wav' );
|
||||||
|
// return( false );
|
||||||
|
}
|
||||||
|
else if ( %this.isWeaponOperator() )
|
||||||
|
{
|
||||||
|
messageClient( %this.client, 'MsgCantUsePack', '\c2You can\'t use your pack while in a weaponry position.~wfx/misc/misc.error.wav' );
|
||||||
|
return( false );
|
||||||
|
}
|
||||||
|
|
||||||
|
%image = %this.getMountedImage( $BackpackSlot );
|
||||||
|
if ( %image )
|
||||||
|
%data = %image.item;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Can't use some items when piloting or your a weapon operator
|
||||||
|
if ( %this.isPilot() || %this.isWeaponOperator() )
|
||||||
|
if ( %data.getName() !$= "RepairKit" )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return ShapeBase::use( %this, %data );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function EjectAllPassengers(%obj, %player)
|
||||||
|
{
|
||||||
|
// if there are passengers, kick them out
|
||||||
|
// %this.deleteAllMounted(%obj);
|
||||||
|
for(%i = 0; %i < %obj.getDatablock().numMountPoints; %i++)
|
||||||
|
if (%obj.getMountNodeObject(%i))
|
||||||
|
{
|
||||||
|
%passenger = %obj.getMountNodeObject(%i);
|
||||||
|
|
||||||
|
if (%passenger != %player)
|
||||||
|
{
|
||||||
|
%passenger.getDataBlock().doDismount(%passenger, true);
|
||||||
|
%xVel = 250.0 - (getRandom() * 500.0);
|
||||||
|
%yVel = 250.0 - (getRandom() * 500.0);
|
||||||
|
%zVel = (getRandom() * 100.0) + 250.0;
|
||||||
|
%flingVel = %xVel @ " " @ %yVel @ " " @ %zVel;
|
||||||
|
%passenger.applyImpulse(%passenger.getTransform(), %fllingvel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue