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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: ZeRo - 2009. November 11. - 19:03:01

Cím: GetClosestVehicle
Írta: ZeRo - 2009. November 11. - 19:03:01
Ezzel a kóddal megkereshetjük a megadott játékoshoz eso legközelebbi jármuvet. A visszatérési érték -1 lesz, ha nem talál jármuvet, viszont a távolság lesz, ha megtalálta a jármuvet.
Szükséges hozzá a GetDistanceFromVehicle függvényem, ami ITT található!
 

stock GetClosestVehicle( playerid ) { //By ZeRo
new Found = -1,
    Float: MaxDistance = 99999.0,
    Float: TheDistance;
for( new index = 0; index < MAX_VEHICLES; index++ ) {
    if( IsPlayerInAnyVehicle( playerid ) ) {
    if( index != GetPlayerVehicleID( playerid ) ) {
       TheDistance = GetDistanceFromVehicle( playerid, index );
       if( TheDistance < MaxDistance ) {
           MaxDistance = TheDistance;
           Found = index;
      }
   }
} else {
    TheDistance = GetDistanceFromVehicle( playerid, index );
    if( TheDistance < MaxDistance ) {
        MaxDistance = TheDistance;
        Found = index;
   }
}
}
return Found;
}

 
Példa: A /clveh parancsra belerakatjuk magunkat a legközelebbi kocsiba:
 

public OnPlayerCommandText( playerid, cmdtext[  ] ) {
    if( strcmp( \"/clveh\", cmdtext, true ) == 0 ) {
        PutPlayerInVehicle( playerid, GetClosestVehicle( playerid ), 0 );
        return 1;
    }
    return 0;
}

 
ZeRo
Cím: GetClosestVehicle
Írta: Handoo - 2009. November 12. - 11:55:40
Kösz  :D Grat jó lett  ;)
Cím: GetClosestVehicle
Írta: ZeRo - 2009. November 13. - 15:54:26
Köszönöm. :)
ZeRo
Cím: GetClosestVehicle
Írta: BaNDiiKa - 2010. Február 14. - 12:14:24
Khmmm, nekem a GetDistanceFromVehicle függvény linkje nem muködik... Tudnál nekem adni egy másikat? Vagy írd le ide nékem, aztán ha megnéztem mondom a véleményem...  :-X
Cím: GetClosestVehicle
Írta: Gamestar - 2010. Február 14. - 12:59:30
Próbáld ezt. (Nem teszteltem le)
 
stock Float:GetDistanceFromVehicle(playerid,vehicleid) {
new
    Float:P[3],
    Float:V[3];
GetPlayerPos(playerid,P[0],P[1],P[2]);
GetVehiclePos(vehicleid,V[0],V[1],V[2]);
for(new index=0; index<3; index++)
    P[index]-=V[index];
return _:(P[0]*P[0])+(P[1]*P[1])+(P[2]*P[2]);
}