Hallo,
ich hab da eine kleine Frage.
Ich habe zum testen mal den befehl CMD:drivingcam(playerID, params[], LanguageString(17)) erstellt...
dieser befehl soll mit dem parameter 0.35 0.2 0.6 die sicht des fahrers an nehmen.
So dies tut er aber die Cam bleibt stehen...
Dann habe ich es versucht anhand eines Timers die playerPosition neu zu überprüfen und anhand der InterpolateCameraPos die position alle 2ms neu zu setzten..
so mein problem:
Er erkennt die richtige Position (beim debuging...) jedoch setzt er meine Cam immer auf 0.0 x 0.0 x 0.0
ich bewege mich die Cam macht nichts.. ich kann zwar meine Maus bewegen und mich um sehen, jedoch funktioniert dort garnichts..
lass ich den Timer weg und rufe stink normal InterpolateCameraPos auf so funktioniert dies aber die camera ist halt fest was sie nciht sein soll
meine frage:
Welche weise gibt es noch Positionen zu syncronsieren?
meine zweite frage:
Wie kann ich dies zum Funktionieren bringen?
Meine vermutung:
Bug von SAMP selber..
denn die ID 1 macht /drivingcam ist mit der camera vor dem wagen.. ID 2 jedoch immer auf 0 x 0 x 0
und dann mal andersrum...
Ich hoffe ihr könnt mir helfen
mit freundlichen grüssen
//EDIT:
Hier mal der Code...
CMD:driving(playerID, params[], 0)
{
new Float:offsetX;
new Float:offsetY;
new Float:offsetZ;
sscanf(params,"fff", offsetX, offsetY, offsetZ);
if (testCam[playerID])
{
KillTimer(TestCam[playerID]);
SetCameraBehindPlayer(playerID]);
testCam[playerID] = 0;
}
else
{
testCam[playerID] = SetTimerEx("Timer_TestCam", 10, true, "dfff", playerID, offsetX, offsetY, offsetZ);
}
return COMMAND_OK;
}
und der Timer:
Timer:TestCam(playerID, Float:offsetX, Float:offsetY, Float:offsetZ)
{
new Float:posX;
new Float:posY;
new Float:posZ;
GetPlayerPos(playerID, posX, posY, posZ);
posX = floatadd(posX, offsetX);
posY = floatadd(posY, offsetY);
posZ = floatadd(posZ, offsetZ);
InterpolateCameraPos(playerID, posX, posY, posZ, 10);
}