#include /*----------------------------------------------------------------------------*/ 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; } /*----------------------------------------------------------------------------*/