rendered paste body#include <a_samp>
/*----------------------------------------------------------------------------*/
new InCargoBob[MAX_PLAYERS],CargoHours[MAX_PLAYERS],CargoMinutes[MAX_PLAYERS],bool:ObjectsAdded[MAX_PLAYERS];
/*----------------------------------------------------------------------------*/
#define NOT_IN_CARGO "You need to be in a trailer."
#define ENTERED_CARGO "You entered the trailer"
#define TO_FAROF_CARGO "You need to be at a trailer"
#if !defined COLOR_NEUTRALGREEN
#define COLOR_NEUTRALGREEN 0x81CFAB00
#endif
#if !defined dcmd
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#endif
/*----------------------------------------------------------------------------*/
#if defined FILTERSCRIPT
public OnFilterScriptInit(){
print("\n trailer succesfully loaded \n");
return true;
}
public OnFilterScriptExit(){
print("\n trailer succesfully unloaded \n");
return true;
}
#endif
/*----------------------------------------------------------------------------*/
AddCargoObjects(playerid)
{
}
Float:GetXYOfVehicle(vehicleid, &Float:x, &Float:y, Float:distance)
{
new Float:a;
GetPlayerPos(vehicleid, x, y, a);
GetVehicleZAngle(vehicleid, a);
x += (distance * floatsin(-a, degrees));
y += (distance * floatcos(-a, degrees));
return a;
}
GetPlayerPosPower(playerid,Float: X,Float: Y,Float: Z,Float:PowX,Float:PowY,Float:PowZ,Float: PowXYZ)
{
new Float: CtX,Float:CtY,Float:CtZ;
new Float: DtX,Float: DtY,Float:DtZ;
GetPlayerPos(playerid,CtX,CtY,CtZ);
DtX = (CtX -X); DtY = (CtY -Y); DtZ = (CtZ -Z);
if(DtX< PowXYZ+PowX && DtX> -PowXYZ+PowX && DtY < PowXYZ+PowY && DtY > -PowXYZ+PowY && DtZ < PowXYZ+PowZ && DtZ > -PowXYZ+PowZ)
return true;
return false;
}
/*----------------------------------------------------------------------------*/
public OnPlayerConnect(playerid)
{
AddCargoObjects(playerid);
ObjectsAdded[playerid] = true;
return true;
}
/*----------------------------------------------------------------------------*/
public OnPlayerDisconnect(playerid,reason)
{
if(InCargoBob[playerid] != 0)
InCargoBob[playerid] = 0;
ObjectsAdded[playerid] = false;
return true;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(InCargoBob[playerid] != 0)
InCargoBob[playerid] = 0;
SetPlayerVirtualWorld(playerid,0);
return true;
}
/*----------------------------------------------------------------------------*/
public OnVehicleDeath(vehicleid, killerid)
{
if(GetVehicleModel(vehicleid) == 435)
{
for(new i = 0;i < MAX_PLAYERS;i++)
{
if(InCargoBob[i] == vehicleid)
{
new Float:X,Float:Y,Float:Z;
GetPlayerPos(i,X,Y,Z);
CreateExplosion(X,Y,Z,3,10);
SetPlayerHealth(i,0.0);
InCargoBob[i] = 0;
}
}
}
return true;
}
/*----------------------------------------------------------------------------*/
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(enter,5,cmdtext);
dcmd(leave,5,cmdtext);
return false;
}
dcmd_enter(playerid,params[])
{
for(new i = 0;i < MAX_VEHICLES;i++)
{
if(GetVehicleModel(i) == 435)
{
new Float:vX,Float:vY,Float:vZ;
GetVehiclePos(i,vX,vY,vZ);
GetXYOfVehicle(i,vX,vY,-5.5);
vZ -= 1.932519;
if (GetPlayerPosPower(playerid,vX,vY,vZ,0,0,0,2.5))
{
if (ObjectsAdded[playerid] == false)
{
AddCargoObjects(playerid);
ObjectsAdded[playerid] = true;
}
InCargoBob[playerid] = i;
SendClientMessage(playerid,COLOR_NEUTRALGREEN,ENTERED_CARGO);
GetPlayerTime(playerid,CargoHours[playerid],CargoMinutes[playerid]);
SetPlayerTime(playerid,0,0);
SetPlayerPos(playerid,-2178.4397,716.1625,53.8906);
GivePlayerWeapon(playerid,46,1);
PlayerPlaySound(playerid,1187, 0.0, 0.0, 0.0);
SetPlayerVirtualWorld(playerid,i);
return true;
}
}
}
SendClientMessage(playerid,COLOR_NEUTRALGREEN,TO_FAROF_CARGO);
#pragma unused params
return true;
}
dcmd_leave(playerid,params[])
{
if(InCargoBob[playerid] == 0)
return SendClientMessage(playerid,COLOR_NEUTRALGREEN,NOT_IN_CARGO);
new Float:vX,Float:vY,Float:vZ;
GetVehiclePos(InCargoBob[playerid],vX,vY,vZ);
vZ -= 1.932519;
new Float:a = GetXYOfVehicle(InCargoBob[playerid],vX,vY,-5.5);
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,vX,vY,vZ);
SetPlayerFacingAngle(playerid,a-180);
SetPlayerVirtualWorld(playerid,0);
PlayerPlaySound(playerid, 1188, 0.0, 0.0, 0.0);
SetPlayerTime(playerid,CargoHours[playerid],CargoMinutes[playerid]);
InCargoBob[playerid] = 0;
#pragma unused params
return true;
}
/*----------------------------------------------------------------------------*/