new Float: Pos[3];GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);CreateObject(0, Pos[0], Pos[1], Pos[2], ...);
new Float:Pos[4];GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);GetPlayerFacingAngle(playerid, Pos[3]);CreateObject(0, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], 0, 0, 0);
COMMAND:create(playerid){new Float: Pos[4];GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);GetPlayerFacingAngle(playerid, Pos[3]);CreateObject(2063, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], 0, 0, 0);return 1;}
Amit impreZZa úr írt, annak elvileg müködnie kéne, és így lehet pontos értéket megkapni. Illetve van egy másik módszer is ami ezen az elven alapul. Szintén lekérdezed a FacingAngle-t és hogyha egy adott tartományban van akkor arra fele rakja az objektet. (0;-90) (-90;-180) stb... Azonban ez nem pontos érték. Ezért érdemes suliban sin,cos,tg,ctg-t tanulni mert mindenhol jól jöhet Illetve tömb helyett: new Float:Pos[4]; használj sima változókat, mivel a tömb be beletölteni a értékeket jobban terheli a rendszert mint ha sima változókba. new Float:X,Float:Y,Float:Z,Float:A; #EnumLogic
Idézetet írta: wRt date=1500039086 Valóban működik, már csak az lenne a kérdésem, hogy a matematika csodáival megoldható-e az, hogy a létrehozott objektet a CreateObject függvény utolsó három paraméterével felém forgassa el, tehát hogy velem szemben legyen? Gondolom az ellentéte kell annak, amerre a játékos néz, de magamtól nem tudtam rájönni, hogy pontosan milyen értéket is kellene oda írni, illetve hogy melyik paraméternek kellene változtatni az értékét. COMMAND:create(playerid){new Float: Pos[4];GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);GetPlayerFacingAngle(playerid, Pos[3]);CreateObject(2063, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], 0, 0, 0);return 1;} Nem gond, ha esetleg nem megoldható. A 2063-as objekttel dolgoztam, ami egy polcszerűség, ezt szeretném létrehozás után automatikusan felém forgatni. Előre is köszönöm ismét a hasznos válaszokat, illetve köszönöm az előzőket is. Valóban működik, már csak az lenne a kérdésem, hogy a matematika csodáival megoldható-e az, hogy a létrehozott objektet a CreateObject függvény utolsó három paraméterével felém forgassa el, tehát hogy velem szemben legyen? Gondolom az ellentéte kell annak, amerre a játékos néz, de magamtól nem tudtam rájönni, hogy pontosan milyen értéket is kellene oda írni, illetve hogy melyik paraméternek kellene változtatni az értékét. COMMAND:create(playerid){new Float: Pos[4];GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);GetPlayerFacingAngle(playerid, Pos[3]);CreateObject(2063, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], 0, 0, 0);return 1;} Nem gond, ha esetleg nem megoldható. A 2063-as objekttel dolgoztam, ami egy polcszerűség, ezt szeretném létrehozás után automatikusan felém forgatni. Előre is köszönöm ismét a hasznos válaszokat, illetve köszönöm az előzőket is.
Valóban működik, már csak az lenne a kérdésem, hogy a matematika csodáival megoldható-e az, hogy a létrehozott objektet a CreateObject függvény utolsó három paraméterével felém forgassa el, tehát hogy velem szemben legyen? Gondolom az ellentéte kell annak, amerre a játékos néz, de magamtól nem tudtam rájönni, hogy pontosan milyen értéket is kellene oda írni, illetve hogy melyik paraméternek kellene változtatni az értékét. COMMAND:create(playerid){new Float: Pos[4];GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);GetPlayerFacingAngle(playerid, Pos[3]);CreateObject(2063, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], 0, 0, 0);return 1;} Nem gond, ha esetleg nem megoldható. A 2063-as objekttel dolgoztam, ami egy polcszerűség, ezt szeretném létrehozás után automatikusan felém forgatni. Előre is köszönöm ismét a hasznos válaszokat, illetve köszönöm az előzőket is.
Ahhoz képest, hogy lenéző hangnemben írtad, ez egy rakás fos, és még csak nem is működik.
......ezt komolyan kérded? GetPlayerFacingAngle(playerid, Pos[3]); if(pos[3] > =180){pos[3] -= 180} else if(pos[3]<180){pos[3]+=180} CreateObject(2063, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], pos[3], 0, 0); de van erre más lehetőség is [/quote] A játék jobban preferálja a pozitív számokat főleg a GetPlayerFacingAngle függvénynél... Ezért javaslom annak ellenére, hogy elküldtem a jó megoldást, matekozd ki a 360 at hogy sose legyen mínusz érték. A játék jobban preferálja a pozitív számokat főleg a GetPlayerFacingAngle függvénynél... Ezért javaslom annak ellenére, hogy elküldtem a jó megoldást, matekozd ki a 360 at hogy sose legyen mínusz érték. [/quote] Csak hogy ne bugoltassad majd későbbiekben inkább elküldöm if(Pos[3] >= 180){CreateObject(2063, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], 0, 0, Pos[3]-180);}else{CreateObject(2063, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], 0, 0, Pos[3]+180);} Személyi tanácsom!!!! CreateDynamicObject függvényt használj mindig
A játék jobban preferálja a pozitív számokat főleg a GetPlayerFacingAngle függvénynél... Ezért javaslom annak ellenére, hogy elküldtem a jó megoldást, matekozd ki a 360 at hogy sose legyen mínusz érték. [/quote] Csak hogy ne bugoltassad majd későbbiekben inkább elküldöm if(Pos[3] >= 180){CreateObject(2063, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], 0, 0, Pos[3]-180);}else{CreateObject(2063, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], 0, 0, Pos[3]+180);} Személyi tanácsom!!!! CreateDynamicObject függvényt használj mindig
if(Pos[3] >= 180){CreateObject(2063, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], 0, 0, Pos[3]-180);}else{CreateObject(2063, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], 0, 0, Pos[3]+180);}
Cssss.. Direkt írtam rosszat XD
COMMAND:create(playerid) {new Float:Pos[4];GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);GetPlayerFacingAngle(playerid, Pos[3]);CreateObject(2063, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], 0, 0, -atan2(Pos[0] - Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] - Pos[1] + (5.0 * floatcos(-Pos[3], degrees))));return true;}
COMMAND:create(playerid) {new Float:Pos[4];GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);GetPlayerFacingAngle(playerid, Pos[3]);CreateObject(2063, Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] + (5.0 * floatcos(-Pos[3], degrees)), Pos[2], 0, 0, -atan2(Pos[0] - Pos[0] + (5.0 * floatsin(-Pos[3], degrees)), Pos[1] - Pos[1] + (5.0 * floatcos(-Pos[3], degrees))));return true;} Copy