Szerző Téma: Legközelebbi jármű  (Megtekintve 1486 alkalommal)

Legközelebbi jármű
« Dátum: 2015. április 25. - 22:22:22 »
0 Show voters
Üdv.
Megpróbáltam írni egy legközelebbi jármű függvényt ami egy kissé bugos lett és nem tudok rájönni a megoldásra. Van amikor tökéletesen teszi a dolgát ahogy kell, de van amikor azt írja ki, hogy több jármű is van a közelében, miközben csak egy.
Kódok:
 
CMD:tankol(playerid)
{
     if(IsPlayerInRangeOfPoint(playerid, 8.0,-2026.0741,156.0420,28.6122))
{
        if(NearestCar(playerid) == -1) { SendClientMessage(playerid, -1, \"(( Nincs a közeledben jármű! ))\"); }
else if(NearestCar(playerid) == -2) {  SendClientMessage(playerid, -1, \"(( Túl sok jármű van a közeledben! ))\"); }
else { ShowPlayerDialog(playerid,tankoldialog,DIALOG_STYLE_LIST,\"Tankolás\",\"349 Ft / liter\\t\\tBenzin 95\\n343 Ft / liter\\t\\tBenzin 98\\n352 Ft / liter\\t\\tDiesel\",\"Mehet\",\"Mégse\"); }
} else SendClientMessage(playerid,-1,\"(( Nem vagy benzinkúton! ))\");
return 1;
}

 

NearestCar(playerid)
{
new Float:Pos[3],eredmeny,mennyinel;
for(new carid = 1; carid < MAX_VEHICLES; carid++)
{
GetVehiclePos(carid,Pos[0],Pos[1],Pos[2]);
if(IsPlayerInRangeOfPoint(playerid, 3.5,Pos[0],Pos[1],Pos[2]))
{
   eredmeny = carid;
   mennyinel ++;
}
}
if(eredmeny != 0) { if(mennyinel == 1) { return eredmeny; } else { return -2; } } else { return -1; }
}
« Utoljára szerkesztve: 2015. április 26. - 00:26:38 írta RusH. »

Nem elérhető DrAkE

  • 2078
    • Profil megtekintése
Legközelebbi jármű
« Válasz #1 Dátum: 2015. április 25. - 22:54:20 »
+1 Show voters

stock GetClosestVehicle( playerid )
{
new   iMax=INVALID_VEHICLE_ID,
Float:dis,
Float:dMax = float( 10000 ),
Float:VehiclePos[ 3 ];
for( new x = 0; x < MAX_VEHICLES; x++ )
{
GetVehiclePos( x, VehiclePos[ 0 ], VehiclePos[ 1 ], VehiclePos[ 2 ] );
dis = GetPlayerDistanceFromPoint(playerid, VehiclePos[ 0 ], VehiclePos[ 1 ], VehiclePos[ 2 ]);
if( dis < dMax )
{
   dMax = dis,
   iMax = x;
}
}
return iMax;
}

 
By GameStar (http://sampforum.hu/index.php?topic=3638.0)
(kicsit korszerűsítve)
« Utoljára szerkesztve: 2015. április 25. - 22:56:46 írta DrAkE »

Nem elérhető Tomasz

  • 123
    • Profil megtekintése
Legközelebbi jármű
« Válasz #2 Dátum: 2015. április 25. - 23:38:17 »
0 Show voters
Nem teszteltem!
 

stock NearestVehicle(playerid)
{
new carid = -1,Float:pos[3],Float:dis;
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
for(new i=0;i<MAX_VEHICLES;i++)
{
dis = GetVehicleDistanceFromPoint(i,pos[0],pos[1],pos[2]);
if(dis < 3.5) carid = i;
}
return carid;
}

Legközelebbi jármű
« Válasz #3 Dátum: 2015. április 25. - 23:40:20 »
0 Show voters
A legközelebbi jármű lekérdezéssel nekem sincsen problémám, de nekem az is kéne bele, hogy ha több jármű van az adott területen belül akkor azt jelezze neki.

Nem elérhető Tomasz

  • 123
    • Profil megtekintése
Legközelebbi jármű
« Válasz #4 Dátum: 2015. április 26. - 00:13:58 »
+1 Show voters

stock NearestVehicle(playerid)
{
new carid = -1,Float:pos[3],Float:dis,szamolas;
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
for(new i=0;i<MAX_VEHICLES;i++)
{
dis = GetVehicleDistanceFromPoint(i,pos[0],pos[1],pos[2]);
if(dis < 3.5)
{
   carid = i;
   szamolas++;
}
}
if(szamolas == 1)return carid;
return -1;
}

Legközelebbi jármű
« Válasz #5 Dátum: 2015. április 26. - 00:35:40 »
0 Show voters
Megoldva, zárok köszi.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal