GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Pedró - 2012. szeptember 24. - 15:25:41

Cím: Egy olyan függvény, ami ellenõrzi, hogy a jármû fejjel lefelé van-e..
Írta: Pedró - 2012. szeptember 24. - 15:25:41
Mint a címbõl kiderül, egy olyan függvényre van szükségem, ami le ellenõrzi, hogy a jármû fejjel lefelé van-e..
Eljutottam odáig, hogy elkezdjem.. GetVehicleZAngle-val fogtam neki, rájöttem, hogy az erre nem jó.. >.<
Nos, találtam egy ilyen függvényt:
http://wiki.sa-mp.com/wiki/GetVehicleRotationQuat
Szerintem ez az, ami kell ehez a függvény megírásához.. Csak nekem nincs hozzá ötletem hogyan vágjak neki..
Ötleteket, tippeket, kész kódokat szeretettel várom!
Elõre is köszi.
Cím: Egy olyan függvény, ami ellenõrzi, hogy a jármû fejjel lefelé van-e..
Írta: 1ST_Chr - 2012. szeptember 24. - 16:00:55
A Z angle az olyan mint a játékosnál a facing, tehát akármennyire állítod, a skin(itt a kocsi) nem fog fejen állni. xd
Ha jól sejtem a GetVehicleRotationQuat-nál, ha az utolsó három paraméterbõl akármelyik negatív, akkor a kocsi fel van borulva...
E: Teszteltem sokféle pozícióban és sokféle kocsival, de nem jutottam semmire (volt sok negatív is nem felborulva), valószínûleg az elõzõ ötletem se helyes. :(
Cím: Egy olyan függvény, ami ellenõrzi, hogy a jármû fejjel lefelé van-e..
Írta: ZyZu. - 2012. szeptember 24. - 16:10:36
Én úgy vettem észre, hogy a flip parancsban benne van a megoldás ha a kocsi fell van borulva akkor helyre állítja a kocsidat szóval kell legyen egy pozíció ami a kocsinak x y z kordinatait lekeri mikor fell van borulva most ez a jó kérdés, hogyan.. Ha találok valamit írok !
Cím: Egy olyan függvény, ami ellenõrzi, hogy a jármû fejjel lefelé van-e..
Írta: Pedró - 2012. szeptember 24. - 16:25:00
Idézetet írta: ZyZu date=1348495836\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27909\" data-ipsquote-contentclass=\"forums_Topic
Én úgy vettem észre, hogy a flip parancsban benne van a megoldás ha a kocsi fell van borulva akkor helyre állítja a kocsidat szóval kell legyen egy pozíció ami a kocsinak x y z kordinatait lekeri mikor fell van borulva most ez a jó kérdés, hogyan.. Ha találok valamit írok !
 
ezzel baromi sokat segítettél, hogy leírtad, hogy fellehet állítani a kocsit.. de nem ez a kérés.. ilyen hsz-eket nem kérek többet. ha mégis találsz valamit akkor írd le.. megköszönném.
Cím: Egy olyan függvény, ami ellenõrzi, hogy a jármû fejjel lefelé van-e..
Írta: tonyo - 2012. szeptember 24. - 17:15:10
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.
Cím: Egy olyan függvény, ami ellenõrzi, hogy a jármû fejjel lefelé van-e..
Írta: Pedró - 2012. szeptember 24. - 19:37:04
Idézetet írta: Anthony date=1348499710\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"27909\" data-ipsquote-contentclass=\"forums_Topic
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. (: