Szerző Téma: ls sorompós cucc!  (Megtekintve 471 alkalommal)

Arnold_Alexander

  • Vendég
ls sorompós cucc!
« Dátum: 2011. Július 04. - 19:23:35 »
0 Show voters
sziasztok már lett létrehozva ez a téma
http://sampforum.hu/index.php?topic=12603.msg144938#msg144938
na nekemis ez a cucc kellene hogy hogyan lehet megoldani hogy vizszintes obbjectet hogylehet felállítani függõleges pozicióba hogy szépen 1.0-s gyorsasággal mozogjon! végülis egy kisebfajta leírást kérnék!
thnx

ls sorompós cucc!
« Válasz #1 Dátum: 2011. Július 04. - 20:52:21 »
0 Show voters
Hirtelen ezt találtam nem tudom mennyit fog segíteni.
http://forum.sa-mp.com/showthread.php?t=151452

ls sorompós cucc!
« Válasz #2 Dátum: 2011. Július 04. - 21:31:54 »
0 Show voters
Hát elég nehéz dolgot kérsz hogy írjam le úgy hogy valamit is megérts belõle.
Fokban elforgatni egy objectet a SetObjectRot függvénnyel lehet sajnos ennek nincs olyan paramétere amivel az object sebességét lehetne állítani.
A MoveObjectnek van, de viszont ez csak az x y z koordináták irányába mozgatja az objecteket.
Ha a te szemszögödbõl nézed akkor értsd úgy hogy csak felfelé vagy lefelé mozgatja (z) ha megfelelõ írányban állsz akkor jobbra vagy balra (x) elõre hátra (y).
A forgatás sebességét timerrel lehet meghatározni.
Vagyis lépteted egy adott object forgatási szögét, növeled vagy csökkented addig míg a kívánt pozícióját elérje, mint ahogy egy visszaszámlálót (count) léptetsz.
 

SetObjectRot(objectid, 0.0, 0.0, 5.0);
SetObjectRot(objectid, 0.0, 0.0, 6.0);
SetObjectRot(objectid, 0.0, 0.0, 7.0);
// Ez nem a mûködõ kód csak példa hogy szépen lassan növelsz egy adott értéket, de ezt ki kell tapasztalni mi a megfelelõ lehet akár 5-ös értékkel (5.0. 10.0. 15. 0)is növelni kell hogy megfelelõ legyen.

 
Ennek kitapasztalására csak azt tudom mondani hogy kell olyan parancsot gyártani ami alapból egy object forgási pozícióját változtatja.
Írok egy egyszerût sscanf használatával. 10 perc kb. ( Egy parancs ami létrehoz egy objectet és egy másik amivel forgatni lehet megadott értékekkel. )
Íme:
 

new
TesztRotateObject;
COMMAND:tesztobject(playerid)
{   
if(TesztRotateObject != 0) DestroyObject(TesztRotateObject);
new
Float:Pos[3];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
TesztRotateObject = CreateObject(968, Pos[0]+2, Pos[1], Pos[2], 0.0, 0.0, 0.0, 200);
SendClientMessage(playerid, -1, \"Object létrehozva\");
return 1;
}
COMMAND:rotateobject(playerid, params[])
{
if(TesztRotateObject == 0) return SendClientMessage(playerid, -1, \"Nem hoztad létre a teszt Objectet /tesztobject\");
new
Float:RotPos[3],
_str[128];
sscanf(params, \"F(0.0)F(0.0)F(0.0)\", RotPos[0], RotPos[1], RotPos[2]);
SetObjectRot(TesztRotateObject, RotPos[0], RotPos[1], RotPos[2]);
format(_str, sizeof _str, \"Object Elforgatva pozíció: %f | %f | %f\", RotPos[0], RotPos[1], RotPos[2]);
SendClientMessage(playerid, -1, _str);
return 1;
}

 
Használat felmész a szerverre beírod /tesztobject majd elkezded forgatni /rotateobject 90 45.65 120
« Utoljára szerkesztve: 2011. Július 04. - 21:48:23 írta Zsolesszka »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal