#include <a_samp>new object[MAX_PLAYERS];public OnPlayerSpawn(playerid){ object[playerid] = CreateObject(19300, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); SetPlayerAttachedObject(playerid, 0, object[playerid], 2); AttachCameraToObject(playerid, object[playerid]); return 1;}
SetPlayerAttachedObject(playerid, 0, 19300, 2);
#include <a_samp>new object[MAX_PLAYERS];public OnPlayerSpawn(playerid){ object[playerid] = SetPlayerAttachedObject(playerid, 0, 19300, 2); AttachCameraToObject(playerid, object[playerid]); return 1;}
new object = CreateObject(1245, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0); AttachCameraToObject(playerid, object);
Lehet, hogy hookolni kéne a createobjectet, és betenni, hogy az objectidjének a model változóját rakja, így késõbb le tudod kérni egy egy soros függvénnyel.
object[playerid] = CreateObject(19300, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);AttachObjectToPlayer(object[playerid], playerid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);AttachCameraToObject(playerid, object[playerid]);
Kedves Témanyitó!A megoldás roppant egyszerû. Az általad használt SetPlayerAttachedObject függvénnyel maximum 10 darab objectet csatolhatsz a játékosra (azokat is különbözõ slotokra), melyek az egyes csontokkal együtt mozognak. De ezek valójában nem is igazi objectek, mivel nem kell õket létrehozni. Csupán a modell kerül a karakterre. Éppen ezért nem ment neked sem az, hogy a létrehozott objectet csatold rá a játékosra. Ugyanis erre van egy másik függvény, méghozzá az AttachObjectToPlayer. Ezt használva létre tudod hozni az objectet, melyet el tudsz tárolni a próbált módon egy változóba és fel is tudod csatolni az ID alapján a játékosra azt. És így már elméletileg a kamerás dolog is menni fog. Mindez forráskódban valahogy így néz ki, de nem biztos, hogy hibátlan: object[playerid] = CreateObject(19300, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);AttachObjectToPlayer(object[playerid], playerid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);AttachCameraToObject(playerid, object[playerid]); Üdvözlettel,Dfoglalo Köszi Dfoglalo, de mint már írtam egyszer, ez a megoldás nekem nem lesz jó, mert mivel ha elkezd futni a karakter, akkor a feje egy kicsit elõrébb lesz, de az object nem a fején lesz, hanem az mögött, meg ha animáció van akkor is marad egy helyben, és nem mozog a fejével együtt az object, és vele együtt a kamera sem. (És amúgy igen, ezt használtam egy ideig, de már nem jó.)De azért köszönöm szépen!
Igaz is, elnézést.De ettõl függetlenül sajnos csakis kizárólag az az egy megoldás van. Ha azt akarod, hogy az ún. csontokkal együtt mozogjon, akkor bizony tényleg a SetPlayerAttachedObject függvényt kell majd használnod. De ha leírnád, hogy pontosan miért akarsz a tárgyra kamerát csatolni, talán adhatnánk tippeket. Egyébként nem jó a \'karakterre kamerázni\'? Sokkal egyszerûbb, nem? De gondolom ez így nem megfelelõ megoldás a számodra. Ugyanis - ha jól sejtem - mindenképpen a tárgya kell, akkor nagyjából az eredeti tárgy pozíciójára teszel egy nagyon apró, gyakorlatilag láthatatlan objectet (lehet nagyobb is, csak olyan textúrával, hogy ne látszódjon és ne ütközz bele, vagy ha bele is ütközöl, olyan legyen, mintha csak a másik játékos/karakter állná az utadat) és arra rakod a kamerát. Mintha csak azon a bizonyos objecten lenne, amelyet a SetPlayerAttachedObject függvénnyel csatoltál fel. Üdvözlettel,Dfoglalo egy First Person Nézetet szeretnék, de hogy érted, hogy a karakterre kamerázni? Ez tulajdonképpen megoldható lenne, de nagyon nagy laggot . Amit én szerettem volna:A SetPlayerAttachedObjecthez hozzáadni (hookolni, azaz, hogy annak minden lefutásakor csinálja meg) azt, hogy a játékosok AttachedObject enumjába beleírná, amit csatoltunk, milyen modelid, milyen pozíció, melyik testrész. Azonban itt végig a törléssel, és az opcionális paraméterekkel kéne sz*rakodni. Ha ez kész, akkor egy iszonyat gyors timerrel ki kéne törölnöd a player fejéhez csatolt (lehetõleg láthatatlan) objectet, vissz*rakni a játékoshoz képest megfelelõ pozícióra, és az enumba beleírt koordinátákra létrehozni egy objectet, ahhoz csatolni a kamerát, és annak a pozícióját állítgatni. A tesztelés idejére a hook nem kell, elég, ha saját függvényt csinálsz hizzá, és azt használod. Lehet, elég laggos lesz, de elméletileg megoldja.Ha hookolni (már létezõ funkcióhoz adni hozzá cuccokat) akarsz: http://forum.sa-mp.com/showthread.php?t=441293Ezen poszt alján lévõ módszert használod, persze kicserélgeted a GivePlayerMoneyt.Esetleg lehetne saját függvényed is hizzá, pl FrissitKameraPoz. És akkor OnPlayerUpdate if(JatekosInfo[playerid][FPS] == 1) ..Sok szerencsét, továvbi jó scriptelést.OFF: én is sokat szoptam ezzel, ha nagyon unatkozni fogok, csinálok hozzá valami használhatóbb megoldást.Más: a GetPlayerCamera- Pos, LookingAt, FrontVector funkciókkal ki lehet számolni hogy merre néz pontosan, kamerailag. Asszem. [/quote]Nagyon köszi, de nekem ez a hookolás ez magas, nagyon szépen köszönöm azért, és azt is köszönöm ha megpróbálod, vagy megnézed, hogy lehet e valahogy ilyet csinálni.
Ez tulajdonképpen megoldható lenne, de nagyon nagy laggot . Amit én szerettem volna:A SetPlayerAttachedObjecthez hozzáadni (hookolni, azaz, hogy annak minden lefutásakor csinálja meg) azt, hogy a játékosok AttachedObject enumjába beleírná, amit csatoltunk, milyen modelid, milyen pozíció, melyik testrész. Azonban itt végig a törléssel, és az opcionális paraméterekkel kéne sz*rakodni. Ha ez kész, akkor egy iszonyat gyors timerrel ki kéne törölnöd a player fejéhez csatolt (lehetõleg láthatatlan) objectet, vissz*rakni a játékoshoz képest megfelelõ pozícióra, és az enumba beleírt koordinátákra létrehozni egy objectet, ahhoz csatolni a kamerát, és annak a pozícióját állítgatni. A tesztelés idejére a hook nem kell, elég, ha saját függvényt csinálsz hizzá, és azt használod. Lehet, elég laggos lesz, de elméletileg megoldja.Ha hookolni (már létezõ funkcióhoz adni hozzá cuccokat) akarsz: http://forum.sa-mp.com/showthread.php?t=441293Ezen poszt alján lévõ módszert használod, persze kicserélgeted a GivePlayerMoneyt.Esetleg lehetne saját függvényed is hizzá, pl FrissitKameraPoz. És akkor OnPlayerUpdate if(JatekosInfo[playerid][FPS] == 1) ..Sok szerencsét, továvbi jó scriptelést.OFF: én is sokat szoptam ezzel, ha nagyon unatkozni fogok, csinálok hozzá valami használhatóbb megoldást.Más: a GetPlayerCamera- Pos, LookingAt, FrontVector funkciókkal ki lehet számolni hogy merre néz pontosan, kamerailag. Asszem. [/quote]Nagyon köszi, de nekem ez a hookolás ez magas, nagyon szépen köszönöm azért, és azt is köszönöm ha megpróbálod, vagy megnézed, hogy lehet e valahogy ilyet csinálni.
Akkor bukta, a karakterre nézés nem jó, mert annak nem kéne látszódnia FPS nézetben. Marad az object, mint egyetlen megoldás. Jobb ötletem nekem sincs. Azt pedig, hogy - gondolom én - a karakter fejével együtt mozogjon, már más tészta. Bonyolultabb, a szerver számára lassabb lefutású dolog.