T.Evil 5 Odesláno: 21. Březen, 2017 Share Odesláno: 21. Březen, 2017 Popis problému: Zdravím, potýkám se s problémem ohledně kamery. Problém: Po přihlášení hráči zobrazím register/login dialog. Problém je, že kamera se spustí až potom co hráč zareaguje na dialog. To se děje v případě že kameru nastavím do OnPlayerRequestClass. Když kameru nastavím do OnPlayerConnect nic se neděje, kamera se nezobrazí. Otázka tedy zní, kam mám kameru nastavit tak, aby se zobrazila ve stejnou chvíli jako register/login dialog? Chyby/varování kompilátoru a při běhu: -- Kód: forward SkipSpawn(playerid); public OnPlayerRequestClass(playerid) { SetTimerEx("SkipSpawn",1,0,"i",playerid); return 1; } public SkipSpawn(playerid) { SpawnPlayer(playerid); return 1; } // KAM S TÍM? SetPlayerCameraPos(playerid, 320.0, 50.0, 170.0); SetPlayerCameraLookAt(playerid, 324.34, 54.122, 173.35); Dodatečné poznámky: -- Link to comment Share on other sites More sharing options...
0 Administrátor Lucifer Morningstar 86 Odesláno: 21. Březen, 2017 Administrátor Share Odesláno: 21. Březen, 2017 Dávajte časti s kódom do správnej sekcie! Prosím nabudúce dávajte kód do správnej sekcie (kód) pri vytváraní témy,inak vám téma nebude schválená. Link to comment Share on other sites More sharing options...
0 OceT 60 Odesláno: 21. Březen, 2017 Share Odesláno: 21. Březen, 2017 Tak mě napadá, že můžeš dát do OnPlayerConnect pro hráče třeba timer, že se mu po 1 sekundě, co se připojí na server ukáže ten register/login dialog.. V tu dobu už by mohl mít nastavenou kameru jak máš v OnPlayerRequestClass.. :D Link to comment Share on other sites More sharing options...
0 Guyy 14 Odesláno: 21. Březen, 2017 Share Odesláno: 21. Březen, 2017 (upraveno) public OnPlayerRequestClass(playerid, classid) { SetPlayerCameraPos(playerid, 320.0, 50.0, 170.0); SetPlayerCameraLookAt(playerid, 324.34, 54.122, 173.35); ShowPlayerDialog(...); // Dialog Login, Register a s OnPlayerConnect-u ho môžeš vymazať return 1; } A po prihlásení / zaregistrovaní ho môžeš hneď spawnuť.. Edited 21. Březen, 2017 by Carlosoo Link to comment Share on other sites More sharing options...
0 T.Evil 5 Odesláno: 21. Březen, 2017 Author Share Odesláno: 21. Březen, 2017 (upraveno) @OcetNefunguje mi to - Kamera se prostě nezobrazí...@CarlosooTohle sice funguje ale ze záhadných důvodů se kamera naukáže na pozici kde chci ale ukáže hráče a jeho pozici.. :/Kamera v OnPlayerConnect nejspíš nemá co dělat, jenže já potřebuju aby se zobrazila když se hráč připojí... Nékdyž vyžaduje class.. Edited 21. Březen, 2017 by T.Evil Link to comment Share on other sites More sharing options...
0 OceT 60 Odesláno: 21. Březen, 2017 Share Odesláno: 21. Březen, 2017 (upraveno) Tak to asi nepůjde, aby byla kamera v OnPlayerConnect ještě před OnPlayerRequestClass.. :x Edited 21. Březen, 2017 by OceT Link to comment Share on other sites More sharing options...
0 T.Evil 5 Odesláno: 21. Březen, 2017 Author Share Odesláno: 21. Březen, 2017 Nějak to jít musí, spousta serverů to má tak že se přihlásíš a hned vidíš kameru i dialog zároveň.. Link to comment Share on other sites More sharing options...
0 OceT 60 Odesláno: 21. Březen, 2017 Share Odesláno: 21. Březen, 2017 Však ale to mají udělané přes OnPlayerRequestClass ne? Link to comment Share on other sites More sharing options...
0 Guyy 14 Odesláno: 22. Březen, 2017 Share Odesláno: 22. Březen, 2017 (upraveno) @Carlosoo Tohle sice funguje ale ze záhadných důvodů se kamera naukáže na pozici kde chci ale ukáže hráče a jeho pozici.. TWL Tie pozície si zmeň.. Ja som ich skopíroval čo si ty písal // KAM S TÍM? SetPlayerCameraPos(playerid, 320.0, 50.0, 170.0); SetPlayerCameraLookAt(playerid, 324.34, 54.122, 173.35); EDIT: OnPlayerConnect je len pripojenie, jak sa pripojíš tak ta hneď prehodí do OnPlayerRequestClass, kde ty budeš mať Login / Register. Takže je úplne jedno kde sú, vykoná to tak isto. Edited 22. Březen, 2017 by Carlosoo Link to comment Share on other sites More sharing options...
0 DNLS 31 Odesláno: 22. Březen, 2017 Share Odesláno: 22. Březen, 2017 Mě to právě blbnulo taky, vyřešil sem to Timerem, který sem spustil při connectu na půl sekundy... (Samozřejmě TimerEx) Link to comment Share on other sites More sharing options...
0 ATomas 290 Odesláno: 22. Březen, 2017 Share Odesláno: 22. Březen, 2017 Funkce SpawnPlayer zrusi dane nastaveni hracske kamery a prepne ji na pohled z 3 osoby, jako normal kdyz hrajes. A protoze v OnPlayerRequestClass volas timerem funkci SkipSpawn, ktera hrace spawne (mimochodem nechapu smysl timeru s 1ms, neni lepsi to volat naprimo? ), tak si tu kameru sice nastavis, ale hned zase vypnes. Reseni? Prodlud ten timer alespon na par vterin. BTW nikde v kodu co jsi nam ukazal nevidim prihlasovaci dialog. Link to comment Share on other sites More sharing options...
0 T.Evil 5 Odesláno: 22. Březen, 2017 Author Share Odesláno: 22. Březen, 2017 Přihlašovací dialog se zobrazí ve chvíli OnPlayerConnect,OnPlayerRequestClass se vyvolá až když odpoví na přihlašovací dialog a to už je dávno spawnutý.Potřebuju tu kameru vyvolat současně s login dialogem... Ale login dialog v OnPlayerRequestClass dělá bordel, lepší je v OnPlayerConnect Link to comment Share on other sites More sharing options...
0 DNLS 31 Odesláno: 23. Březen, 2017 Share Odesláno: 23. Březen, 2017 Přihlašovací dialog se zobrazí ve chvíli OnPlayerConnect, OnPlayerRequestClass se vyvolá až když odpoví na přihlašovací dialog a to už je dávno spawnutý. Potřebuju tu kameru vyvolat současně s login dialogem... Ale login dialog v OnPlayerRequestClass dělá bordel, lepší je v OnPlayerConnect forward Kamera(playerid); public Kamera(playerid) { //Místo InterpolateCameraPos tam dej ten SetPlayerCameraPos InterpolateCameraPos(playerid, 1967.290649, 1303.167114, 142.714294, 2004.173461, 1648.076904, 55.769004, 10000); InterpolateCameraLookAt(playerid, 1968.374877, 1307.247436, 140.035598, 2002.247070, 1652.677978, 56.113693, 10000); return 1; } A do Connectu si dej. SetTimerEx("Kamera", 100, false, "i", playerid); Samozřejmě 100 (čas v ms) si uprav libovolně.. Link to comment Share on other sites More sharing options...
0 ATomas 290 Odesláno: 23. Březen, 2017 Share Odesláno: 23. Březen, 2017 (upraveno) Přihlašovací dialog se zobrazí ve chvíli OnPlayerConnect, OnPlayerRequestClass se vyvolá až když odpoví na přihlašovací dialog a to už je dávno spawnutý. Potřebuju tu kameru vyvolat současně s login dialogem... Ale login dialog v OnPlayerRequestClass dělá bordel, lepší je v OnPlayerConnect Dobre tedy. OnPlayerRequestClass se rozhodne nevola s potvrzenim dialogu nato ma dialog svou funkci. Ale OnPlayerRequestClass se vola v okamziku, kdyz je clientova hra pripravena na vyber postavy, tzn to je okamzik kdy mu mas tu kameru nastavit. A SpawnPlayer musis dat az prave ten dialog potvrdi (OnDialogResponse) Pseudo-kod: public OnPlayerConnect(playerid) { ShowPlayerDialog("prihlas se zadej heslo"); } public OnPlayerRequestClass(playerid) { SetCameraPos(...) //osobne bych ten dialog dal radeji sem. } public OnDialogResponse(playerid) { if(dialog == login) { SpawnPlayer(playerid); SCM("prihlasil ses hraj") } } Edited 23. Březen, 2017 by ATomas Link to comment Share on other sites More sharing options...
0 Mr.Burgi 1 Odesláno: 23. Březen, 2017 Share Odesláno: 23. Březen, 2017 ATI to vyriešil Link to comment Share on other sites More sharing options...
0 T.Evil 5 Odesláno: 23. Březen, 2017 Author Share Odesláno: 23. Březen, 2017 (upraveno) @ATomasDíky moc,dal jsem tedy dialog do OnPlayerRequestClass. Měl jsi pravdu s tim timerem na skipspawn, přeskočil kameru. Dal jsem ho tedy pryč ale vzniká nový problém.Když nemám skip spawn, ve chvíli kdy zobrazím dialog se zobrazí i Spawn Button a to nechci... Nemám vůbec představu jak ho odstranit a nejlepší by bylokdyby se nezobrazovali ani AddPlayerClass.Když je registrovaný - pouze kamera a login dialogAny idea? EDIT: Už jsem to vyřešil, díky moc všem za radu moc si toho vážim Edited 23. Březen, 2017 by T.Evil Link to comment Share on other sites More sharing options...
0 DNLS 31 Odesláno: 23. Březen, 2017 Share Odesláno: 23. Březen, 2017 TogglePlayerSpectating(playerid, true); - Do connectu TogglePlayerSpectating(playerid, false); - Do spawnu Link to comment Share on other sites More sharing options...
Dotaz
T.Evil 5
Popis problému:
Zdravím,
potýkám se s problémem ohledně kamery.
Problém:
Po přihlášení hráči zobrazím register/login dialog.
Problém je, že kamera se spustí až potom co hráč zareaguje na dialog.
To se děje v případě že kameru nastavím do OnPlayerRequestClass.
Když kameru nastavím do OnPlayerConnect nic se neděje, kamera se nezobrazí.
Otázka tedy zní, kam mám kameru nastavit tak, aby se zobrazila ve stejnou chvíli jako register/login dialog?
Chyby/varování kompilátoru a při běhu:
--
Kód:
Dodatečné poznámky:
--
Link to comment
Share on other sites
16 odpovědí na tuto otázku
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now