GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: TheChansee - 2015. Április 25. - 22:22:22

Cím: Legközelebbi jármű
Írta: TheChansee - 2015. Április 25. - 22:22:22
Ü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; }
}
Cím: Legközelebbi jármű
Írta: DrAkE - 2015. Április 25. - 22:54:20

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)
Cím: Legközelebbi jármű
Írta: Tomasz - 2015. Április 25. - 23:38:17
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;
}
Cím: Legközelebbi jármű
Írta: TheChansee - 2015. Április 25. - 23:40:20
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.
Cím: Legközelebbi jármű
Írta: Tomasz - 2015. Április 26. - 00:13:58

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;
}
Cím: Legközelebbi jármű
Írta: TheChansee - 2015. Április 26. - 00:35:40
Megoldva, zárok köszi.