Ami nekem itt tetszik nagyon, hogy mindenkit megmozgatott a kód és mennyi fajta logikai megoldás van.
Még nekem van egy másik ötletem mivel az átírt kódban nincs olyan lehetõség hogy meghatározott távolságban kell lennie a legközelebbi jármûnek ezért lehetne egy visszatérés erre az adatra is rögtön átírom, és közlöm.
Kész is:
[pawn]/*
floatcmp(2.0, 2.0) -> 0
floatcmp(1.0, 2.0) -> -1
floatcmp(2.0, 1.0) -> 1
*/
CMD:distance(playerid)
{
new
Float:distance,
vehicleid = GetVehicleWithinDistance(playerid, distance);
if(vehicleid == INVALID_VEHICLE_ID) return SendClientMessage(playerid, -1, \"Nincs jármû a szerveren.\");
if(floatcmp(15.0, distance) == -1) return SendClientMessage(playerid, -1, \"Nem vagy elég közel egy jármûhöz se.\");
new
str[128];
format(str, sizeof str, \"vehicleID: %d\", vehicleid);
SendClientMessage(playerid, -1, str);
new
Float:x,
Float:y,
Float:z;
GetVehiclePos(vehicleid, x, y, z);
SetPlayerPos(playerid, x, y, z + 2);
return 1;
}
//native IsValidVehicle(vehicleid); // Kifelejtett native funkció a függvénykönyvtárakból
stock
GetVehicleWithinDistance(playerid, &Float:dist = 0.0)
{
new
Float:temp_distance = Float:0x7F800000,
Float:distance = 0.0,
temp_vehicle = INVALID_VEHICLE_ID,
Float:x,
Float:y,
Float:z;
GetPlayerPos(playerid, x, y, z);
for(new vehicleid = 1; vehicleid <= MAX_VEHICLES; vehicleid++)
{
if(IsValidVehicle(vehicleid))
{
distance = GetVehicleDistanceFromPoint(vehicleid, x, y, z);
if(temp_distance > distance)
{
temp_distance = distance;
temp_vehicle = vehicleid;
}
}
}
dist = temp_distance;
return temp_vehicle; // return legközelebb lévõ jármû azonosítószáma (vehicleid)
}[/pawn]