stock IsPlayerNearAnyVehiclewTrunk(playerid)
{
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
if(IsPlayerNearAnyVehicle(playerid, 100.0) && boot == 1)
{
return true;
}
else
{
return false;
}
}
stock IsPlayerNearAnyVehicle(playerid, Float:range=100.0)
{
for(new i; i<MAX_VEHICLES; i++)
{
GetVehiclePos(i, p[0], p[1], p[2]);
if(IsPlayerInRangeOfPoint(playerid, range, p[0], p[1], p[2]))return true;
return false;
}
}

stock IsPlayerNearAnyVehiclewTrunk(playerid, Float:range=100.0)
{
for(new i; i<MAX_VEHICLES; i++)
{
new boot;
GetVehicleParamsEx(i, engine, lights, alarm, doors, bonnet, boot, objective);
#pragma usused engine
#pragma usused lights
#pragma usused alarm
#pragma usused doors
#pragma usused bonnet
#pragma usused objective
GetVehiclePos(i, p[0], p[1], p[2]);
if(IsPlayerInRangeOfPoint(playerid, range, p[0], p[1], p[2]) && boot == 0) return true;
return false;
}
}
CMD:closetrunk(playerid, params[])
{
if(!IsPlayerConnected(playerid)) return 1;
if(IsPlayerNearAnyVehiclewTrunk(playerid, 100.0))
{
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, 1, objective); //CLOSING THE TRUNK
SendClientMessage(playerid, red, "You have closed the trunk of the vehicles with trunk open!");
}
return 1;
}
|
pawn Код:
![]() EDIT: code repaired a bit: pawn Код:
|
stock GetNearestVehicle(playerid, Float:distance = 30.0)
{
new
Float:fPos[3],
Float:sPos[3],
currentvehicle,
engine,
lights,
alarm,
doors,
bonnet,
boot,
objective
;
GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);
for(new v = 1; v < MAX_VEHICLES; v++)
{
GetVehicleParamsEx(v, engine, lights, alarm, doors, bonnet, boot, objective);
if(boot == 1)
{
GetVehiclePos(v, sPos[0], sPos[1], sPos[2]);
new Float:odist =
floatsqroot(
floatpower(floatsub(sPos[0], fPos[0]), 2.0) +
floatpower(floatsub(sPos[1], fPos[1]), 2.0) +
floatpower(floatsub(sPos[2], fPos[2]), 2.0)
)
;
if (odist < distance)
{
currentvehicle = v;
distance = odist;
}
}
}
return currentvehicle;
}
.#include <a_samp>
#include <zcmd>
CMD:getcar(playerid, arg[])
{
new veh = GetClosestVehicle(playerid, 100.0);
if(veh != INVALID_VEHICLE_ID)
{
if(IsTrunkOpen(veh)) SendClientMessage(playerid, 0xFF00FFFF, "You are near a vehicle with a trunk open!");
else SendClientMessage(playerid, 0xFF00FFFF, "You are not near a vehicle with a trunk open!");
}
else SendClientMessage(playerid, 0xFF00FFFF, "You are not near any vehicles");
return 1;
}
stock IsTrunkOpen(vehicleid)
{
new engine, lights, alarm, doors, bonnet, boot, objective;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
if(boot) return 1;
return 0;
}
stock GetClosestVehicle(playerid, Float:Range = 100.0)
{
new ClosestVehicle;
new Float:ClosestDist = 100000.0;
new Float:DistX;
new Float:DistY;
new Float:DistZ;
new Float:px;
new Float:py;
new Float:pz;
new Float:CheckDist;
// Get the players position
GetPlayerPos(playerid, px, py, pz);
// Loop through vehicles to find cloest vehicle
for(new i = 0; i < MAX_VEHICLES; i++)
{
// Vehicle doesn't exist
if(!GetVehicleModel(i)) continue;
// Get vehicle position
GetVehiclePos(i, DistX, DistY, DistZ);
// Get the distance
CheckDist = floatsqroot(
floatpower(floatsub(DistX, px), 2.0) +
floatpower(floatsub(DistY, py), 2.0) +
floatpower(floatsub(DistZ, pz), 2.0));
// Distance less than range?
if(CheckDist <= Range)
{
// Distance less than cloest distance, new cloest distance!
if(CheckDist < ClosestDist)
{
ClosestDist = CheckDist;
ClosestVehicle = i;
}
}
}
// Cloest less than or equal to the range return the closest vehicle ID
if(ClosestDist <= Range) return ClosestVehicle;
// no vehichle? return INVALID_VEHICLE_ID
return INVALID_VEHICLE_ID;
}
CMD:clv(playerid,params[]){
new vid;
if(!sscanf(params,"K<clv>("#playerid")",vid))
{
new string[128];
format(string,sizeof(string),"closest vehicle: %d.",vid);
SendClientMessage(playerid,MSGSUCC_COLOR,string);
}
return 1;
}