Hallo Community
Ich suche einen kleinen Script der die Position hinter dem Fahrzeug herausfindet also
je nachdem wie das Fahrzeug halt gedreht ist
Danke im Vorraus
Hallo Community
Ich suche einen kleinen Script der die Position hinter dem Fahrzeug herausfindet also
je nachdem wie das Fahrzeug halt gedreht ist
Danke im Vorraus
Ich glaube das Problem wurde schon mal hier behandelt:
http://easy-scripting.net/boar…ter-dem-fahrzeug/#post769
Vielleicht hilft dir das weiter.
MFG
Jap aber hilft mir nicht so recht weiter...
Da haben die auch Lösungvorschläge gegeben aber da wohl auch nichts sor echt geklappt
Naja habs nicht so mit den Pos berechnungen ...
naya,
überleg dir das einfach mal mit sinus und cosinus,
leg dir nen taschenrechner hin, und gib einfach alle möglichkeiten ein.
Also wenn die rot 0 ist, muss die y-koordinate kleiner werden, die x bleibt gleich,
bei einer rot von 90 muss die y koordinate gleich sein, die x wird größer... usw
uhnd dann probierste aus, wann das der fall ist
ist wars. besser als alles zu kopieren, so weisst dus nämlich nächstes mal auch nicht.
ps: kleiner tip, schau dir den aufbau von GetXYInFrontOfPlayer an.
Theoretisch müsste es auch so gehen.
new Float:angle;
GetPlayerFacingAngle(playerid,angle-180);
ich habe es noch nie probiert, also die Angle vom Fahrer muss herausgefunden werden & dann einfach -180° somit, dass es hinter dem Spieler ist.
Ist lediglich eine Idee.
MfG
nee das wäre zu einfach
Hat das Script nicht jemand? :p
dann änderst du die angle, aber nicht die pos ? xD
verwende meine variante, wenn du scripten kannst, kannste auch mit mathematik umgehen...
in diesem forum sollten die leute mal lernen etwas selbst zu machen...
Hi
Das musst du berechnen.
Hier die Funktion aus meinem altem RL GM:
public SpielerHinterAuto(playerid, Abstand)
{
new sha = GetNearestCar(playerid, 5), Float:grad;
new Float:shavX, Float:shavY, Float:shavZ;
if(sha != INVALID_CAR)
{
format(printtext, sizeof(printtext),"sha: %d", sha);
printex(printtext);
GetVehiclePos(sha,shavX,shavY,shavZ);
GetVehicleZAngle(sha, grad);
if(Abstand < 0)
{
shavX += (Abstand * floatsin(-grad, degrees));
shavY += (Abstand * floatcos(-grad, degrees));
format(printtext, sizeof(printtext),"Abstand: %d | shavX: %f | shavY: %f", sha, shavX, shavY);
printex(printtext);
if(IsPlayerInRangeOfPoint(playerid, 3, shavX, shavY, shavZ))
{
format(printtext, sizeof(printtext),"return 1;");
printex(printtext);
return 1;
}
}
if(Abstand > 0)
{
shavX += (Abstand * floatsin(-grad, degrees));
shavY += (Abstand * floatcos(-grad, degrees));
format(printtext, sizeof(printtext),"Abstand: %d | shavX: %f | shavY: %f", sha, shavX, shavY);
printex(printtext);
if(IsPlayerInRangeOfPoint(playerid, 3, shavX, shavY, shavZ))
{
format(printtext, sizeof(printtext),"return 2;");
printex(printtext);
return 2;
}
}
}
return 0;
}
Es wird in einem Radius von 3 metern Hinter oder Vor einem Auto abgefragt, ob der Spieler darin steht. Mit der Variablen "Abstand" kannst du dem Funktion sagen wie weit dieser Radius vor und hinter dem Auto sein soll. (z.B. wenn du ein Bus hast, muss der Abstand natürlich größer sein)
Die Funktion return 0 wenn du nicht vor oder hinter einem Auto stehst, 1 wenn du hinter einem Auto stehst, 2 wenn du vor einem Auto stehst
Am besten nich gleich kopieren, sondern vielleicht auch schauen wie genau das funktioniert, sonst bringt dir das nicht viel
MFG, Robdeflop®