SA-MP Forums Archive
GetVehicleRotationQuat always returning {0.5, 0.5, 0.5, 0.5} after spawning - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: GetVehicleRotationQuat always returning {0.5, 0.5, 0.5, 0.5} after spawning (/showthread.php?tid=475666)



GetVehicleRotationQuat always returning {0.5, 0.5, 0.5, 0.5} after spawning - ikkentim - 14.11.2013

Hi,,

I have this code:
Код:
CreateVehicle(vehicletype, 0, 0, 5, any_rotation, -1, -1, -1);
new Float:q[4];
GetVehicleRotationQuat(vehicleid, q[0], q[1], q[2], q[3]);
printf("QUAT: %f %f %f %f", q[0], q[1], q[2], q[3]);
This always prints "QUAT: 0.5 0.5 0.5 0.5" when spawning a vehicle with any rotation. I've read somewhere this is a known bug. After a player enters the vehicle it works as it should...

Is there a way to work around this issue?


Re: GetVehicleRotationQuat always returning {0.5, 0.5, 0.5, 0.5} after spawning - ikkentim - 15.11.2013

Bump
(I know it hasn't been exactly 24hrs, but it was very much snowed under and i don't expect an answer on page 4)


Re: GetVehicleRotationQuat always returning {0.5, 0.5, 0.5, 0.5} after spawning - ikkentim - 18.11.2013

Bump


AW: GetVehicleRotationQuat always returning {0.5, 0.5, 0.5, 0.5} after spawning - NaS - 18.11.2013

I don't think bumping will result in real answers, except "stop bumping" etc... Since nobody seems to have an answer.

It's a SAMP problem, since the vehicle wasn't updated yet (or st. like this).

Try if GetVehicleZAngle returns a correct value after spawning. If not, I guess your question is answered.

There is actually no real fix, but since YOU spawn the vehicle, you have the rotation already right?


Re: GetVehicleRotationQuat always returning {0.5, 0.5, 0.5, 0.5} after spawning - ikkentim - 18.11.2013

yup, and i am storing it, but i need to know a way/moment when to re-apply the rotation to fix the problem; I want a player to interact with with the vehicle (standing behind it; i'm using the mathplugin which uses GetVehicleRotationQuat to determine the rotation) while no-one has entered the vehicle yet.


Re: GetVehicleRotationQuat always returning {0.5, 0.5, 0.5, 0.5} after spawning - ikkentim - 18.11.2013

I ended up not using the math plugin due to this issue. the rotationquat doesn't seem to update while no player is inside the vehicle.

Here is my resulting method if anyone cares:
Код:
stock IsPlayerAtVehicleTrunk(playerid, vehicleid)
{
	new Float:sizex, Float:sizey, Float:unused, Float:bumperz, 
	Float:posx, Float:posy, Float:posz, Float:posa;

	//Get all required data
	GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, sizex, sizey, unused);
	GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_REAR_BUMPER_Z, unused, unused, bumperz);
 	GetVehiclePos(vehicleid, posx, posy, posz); 
 	GetVehicleZAngle(vehicleid, posa);

 	//A check to determine if the player is actually near the vehicle. 
 	//If the player is not near the vehicle we can stop this script from doing more 'complex' calculations.
	if(!IsPlayerInRangeOfPoint(playerid, sizey, posx, posy, posz))
		return 0;

	//Calculate trunk position
	posx += (sizey / 2) * floatsin(-posa + 180, degrees);
	posy += (sizey / 2) * floatcos(-posa + 180, degrees);
	posz += bumperz;

	return IsPlayerInRangeOfPoint(playerid, sizex / 2, posx, posy, posz);
}



AW: GetVehicleRotationQuat always returning {0.5, 0.5, 0.5, 0.5} after spawning - NaS - 18.11.2013

That's the more easy way, yeah.

Is it a Math Plugin issue or does your code work even with just spawned vehicles?


Re: GetVehicleRotationQuat always returning {0.5, 0.5, 0.5, 0.5} after spawning - ikkentim - 18.11.2013

It's an issue with SA-MP; you can't rely on GetVehicleRotationQuat when the vehicle isn't ocupied. Since the math plugin uses GetVehicleRotationQuat, it may return faulty information. GetVehicleZAngle, however, returns the right information even when the vehicle isn't ocupied. But you can't calculate the exact trunk location due to not taking the x and y rotations in consideration in the calculation.


Re: GetVehicleRotationQuat always returning {0.5, 0.5, 0.5, 0.5} after spawning - whatthefuck123 - 18.11.2013

in ur code u didnt define vehicleid
maybe this the problem? look for silly mistakes too

if ur taking the quat right after creating veh /spawning it might not work try making timer?

experiment with it, but i see you might have solved it different way now


Re: GetVehicleRotationQuat always returning {0.5, 0.5, 0.5, 0.5} after spawning - ikkentim - 18.11.2013

It never works when there is not player in the vehicle, i thoroughly tested it