Nem hogy örülnél hogy írt valaki...
Egyébként: megoldható, DE baromi nehéz. Szóval hacsak nem ûberfontos a dolog, akkor hagyd a fenébe, ha nagyon akarod, akkor kicsit olvasgass a dolgok után. A hivatalos fórumon találtam régebben 1 függvényt, ami használható erre (is). 2 linket tudok adni, az egyikben Y_Less, Ryder és Gamer_Z beszélgetnek fõként errõl a problémakörrõl, a másikon egy include-ot találsz, amitvel a quaternion adatokat át tudod konvertálni más számokra. Annyit elõre tisztázzunk, hogy ez már nagyon magas szintû matek, térgeometria, és programozás keveréke. Megérteni ne akard, a beszélgetést csak érdekességnek tettem ki. Gentleman-el mi is napokat szenvedtünk, mire sikerült mûködésre bírnunk, de már fogalmam sincs hol van a z a kód, amit mi használtunk. Sok szerencsét, talán valamelyik linken benne lesz amit te keresem.
Íme:
Y_Less, Gamer_Z és Ryder beszélgetése: LINK
Include: LINK
Sok szerencsét.
Köszi szépen..
Az egyik linknél találtam egy változatot, a függvény neve IsVehicleState volt..
Módosítgattam, megoldottam rövidebben, optimalizáltam kicsit..
A végeredmény:
stock IsVehicleUpsideDown(vehicleid) {
new Float:p[4];
if(GetVehicleRotationQuat(vehicleid, p[0], p[1], p[2], p[3])) {
new Float:angle;
angle = atan2(2.0 * ((p[2] * p[3]) + (p[1] * p[0])), (-(p[1] * p[1]) - (p[2] * p[2]) + (p[3] * p[3]) + (p[0] * p[0])));
return (75.0 < angle > -75.0);
}
return 0;
}
A kód tesztelve, mûködik!
Köszönöm, akik segíteni próbáltak, és köszi Anthony. (: