Hey Com,
Wie finde ich dynamisch von jeder Position den Tankdeckel bzw ob ich neben dem Tankdeckel stehe heraus?
Wäre ncie wenn mir da jemand helfen könnte.
Hey Com,
Wie finde ich dynamisch von jeder Position den Tankdeckel bzw ob ich neben dem Tankdeckel stehe heraus?
Wäre ncie wenn mir da jemand helfen könnte.
Ist dies überhaupt möglich?
Bzw. gibt es schon eine solche Funktion?
Also ich denke nein.
Korrigiert mich wenn ich falsch liege.
Was wird mit Tankdeckel gemeint?
Ja es ist möglich ich habe es gerade rausgefunden
Tankdeckel von einem Auto!
Da kann nur einer helfen:
@Kailiber:
Rein theoretisch ist es machbar, ob der Aufwand sich lohnt ist allerdings fraglich.
Rein von der Mathematik her, entsteht folgender Logikvorgang:
Position vom Auto herausfinden -> Koordinaten subtrahieren/addieren bis man an der Tanköffnung ist (Der Algorithmus dafür muss für jedes Auto einzeln bestimmt werden) -> IsPlayerInRangeOfPoint mit einem Radius von geschätzten 0.25 bis 0.5?
So kann er zwar auch hinter dem Auto stehen, oder vllt sogar auf dem Auto, aber beispielsweise nicht mehr auf der falschen Seite des Wagens. Und rein in der Theorie könnte ich mich auch auf mein Auto legen während ich tanke, wenn ich Lust drauf hätte
Position vom Auto herausfinden -> Koordinaten subtrahieren/addieren bis man an der Tanköffnung ist (Der Algorithmus dafür muss für jedes Auto einzeln bestimmt werden) -> IsPlayerInRangeOfPoint mit einem Radius von geschätzten 0.25 bis 0.5?
Hast recht es wäre zu einfach, die gegebene Funktion dafür zu nutzen
Wie du bereits sagst, es wäre zu einfach. Solch niederem Gebrauch gebe ich mich nicht hin. Wenn schon übertrieben, dann richtig!
Wieder was dazu gelernt, danke
Oha BlackAce, ist dir jede Funktion bekannt
b2t
Dir ist bewusst, soviel würd es nicht bringen
Nun gut. Weil du es bist spendier ich dir mal meine Funktion, die ich im Script dafür habe.
stock GetVehicleInfo(vehicleid, infotype, &Float:x, &Float:y, &Float:z, &Float:angle)
{
if(vehicleid == INVALID_VEHICLE_ID) return 0;
new Float:mX, Float:mY, Float:mZ;
GetVehicleModelInfo(GetVehicleModel(vehicleid), infotype, mX, mY, mZ);
z += mZ;
x += (mY * floatsin(-angle, degrees));
y += (mY * floatcos(-angle, degrees));
angle += 270.0;
x += (mX * floatsin(-angle, degrees));
y += (mX * floatcos(-angle, degrees));
angle -= 270.0;
return 1;
}
Du musst der Funktion den infotype geben, sowie die Position des Autos. Die Funktion spuckt dir dann die Koordinaten des gewünschten typens aus.
Bsp.:
stock IsPlayerInRangeOfTankdeckel(playerid, carid)
{
new Float:vpos[4];
GetVehiclePos(carid, vpos[0], vpos[1], vpos[2]);
GetVehicleZAngle(carid, vpos[3]);
GetVehicleInfo(carid, VEHICLE_MODEL_INFO_PETROLCAP, vpos[0], vpos[1], vpos[2], vpos[3]);
if(IsPlayerInRangeOfPoint(playerid, 2, vpos[0], vpos[1], vpos[2]))
{
return 1;
}
return 0;
}
Mfg,
UncleSub
Oha Danke
Du bist so gut c;