Ja der Titel erklärt schon alles.
Kann man irgendwie z.B. die Vehicleid von dem Fahrzeug welches neben einem steht ermitteln ohne drin zu sitzen?
Ja der Titel erklärt schon alles.
Kann man irgendwie z.B. die Vehicleid von dem Fahrzeug welches neben einem steht ermitteln ohne drin zu sitzen?
Das müsste gehen.
Ich glaub mit der funktion die, die playerid eines andere spieler ausgibt und du mit der halt überprüft ob einer in der nähe deiner Position ist.
Von im lässt du dan die VehicleID ausgeben.
und wenn das Fahrzeug leer ist? also niemand drin sitzt?
wie wilslte ein leeres farzeug id haben denk doch mal nach ich wüsste net wie es geht
Beispiel:
/vinfo auf GTA:WC. Da geht es doch auch.
Doch eig. müsste es gehen.
Per Variable aber nur glaube ich.
new cars[10]; // bsp
cars[0] = AddStaticVehicle....
cars[1] = AddStaticVehicle....
if(strcmp....
{
new Float:x,Float:y,Float:z;
GetVehiclePos(cars,x, y, z);
if(IsPlayerInRangeOfPoint(playerid,range,x, y, z))
{
if(GetVehicleModel(cars) == 411)
{
SendClientMessage(playerid,FARBE,"Neben dir steht ein Infernus");
}
}
return 1;
}
Ungetestet!
Kann fehler enthalten
wie wilslte ein leeres farzeug id haben denk doch mal nach ich wüsste net wie es geht
ja ich denke nach... jedes fahrzeug hat eine vehicleid -.- wenn du die net besonders definierst ist das halt dann 1,2,3,4 usw.
hmm adnan das net ganz das was ich suche aber trotzdem danke.
Ich hab ein carownership gebaut das problem ist das mit dem Fahrzeug abschließen. will halt das man sein eignes Fahrzeug nur dann abschließen kann, wenn man daneben steht.
Lol^^
Nichts einfacher als das
Das geht mit ner einfachen rechnung
if((floatabs(SpielerX-CarX)<radius)&&(floatabs(SpielerY-CarY)<radius)&&(floatabs(SpielerZ-CarZ)<radius))
Mit ner for schleife vergleichst du alle posis vom spieler die mit nem car. Eine achse des spielerposis wird mit einer achse eines cars subtrahiert(?^^). floatabs macht, dass wenn das ergebnis im minusbereich liegt, das minus weg. Wenn dann die zahl die rauskommt kleiner is als der radius, un das mit allen achsen, dann weiß man welches car in der nähe des spielers is
MFG, Robdeflop®
Wenn du folgendes Clever kombinierst hast du das gewünschte Ergebniss.
new
Float:X,
Float:Y,
Float:Z,
vehicleid = 0;
GetPlayerPos(playerid, X,Y, Z );
GetClosestVehicle(X, Y, Z, 15.0, vehicleid);
if(vehicleid){
// Mach was
}
stock GetClosestVehicle(Float:x1, Float:y1, Float:z1, Float:dist, &veh){
new
i,
Float:vDist,
Float:x2,
Float:y2,
Float:z2;
for(new v = 1 ; v < MAX_VEHICLES ; v++) {
GetVehiclePos(v, x2, y2, z2);
x1 -= x2;
y1 -= y2;
z1 -= z2;
vDist = ((x1*x1)+(y1*y1)+(z1*z1));
if( vDist < dist){
veh = v;
dist = vDist;
}
}
return 1;
}
Der Lösungsweg wurde hier schon Teilweise genannt.Man besorgt sich zuerst die Position des Spielers in dessen Umkreis ein Fahrzeug gesucht werden soll.Danach wird durch alle Fahrzeuge geloopt und geschaut ob es in einem bestimmten Umkreis zum Spieler steht.Dabei wird automatisch das Fahrzeug ausgewählt,welches am nächsten zum Spieler steht.
alles klar danke an euch leute. nun werd ich mal versuchen dies auch in die tat umzusetzen
Da gibts aber noch bessere funktionen^^ also einfacher aufgebaut und kürzer.
public Naechstecar(playerid, Float:radius)
{
new Float:SpielerX, Float:SpielerY, Float:SpielerZ, Float:CarX, Float:CarZ, Float:CarY;
GetPlayerPos(playerid, SpielerX, SpielerY, SpielerZ);
for(new i = 1; i < MAX_VEHICLES; i++)
{
GetVehiclePos(i, CarX, CarY, CarZ);
if((floatabs(SpielerX-CarX)<radius)&&(floatabs(SpielerY-CarY)<radius)&&(floatabs(SpielerZ-CarZ)<radius))
{
return i;
}
}
return false;
}
Benutzung:
new car = Naechstescar(playerid, 5);
Dann beinhaltet die variable car die carid des cars in der nähe von 5 metern. Wenn kein car in der nähe is, wird 0 zurückgegeben
warum macht ihr euch das immer so umständlich wens auch einfach geht kennt ihr denn befehl /dl ????? gibt es seit 0.3 xD
nein kenn ich net? aber wir reden hier über scipten und net über befehle... möchte per script die id ermitteln