gms_session_player_count

Gebruik: gms_session_player_count ( id )

Omschrijving

Geeft het aantal spelers in de sessie met sessie_id id terug.

Deprecated: id kan gebruikt worden als index, in dat geval geeft de functie het aantal spelers in de nde sessie terug.

Reacties (6)

Laatste bericht op 4 Sep 2017

PaPdeveloper op 20 Aug 2016, 16:38:56
Hallo Size43!

Ik heb een bug in onze sessie browser gevonden. In onze sessie browser wordt informatie over de sessies zoals de map en de gamemode weergegeven. Deze informatie wordt gesynchroniseerd met game_ini's en het werkt perfect! Op de in de sessie browser wordt ook de player_count van elke sessie weergegeven. Hiervoor gebruik ik de functie; gms_session_player_count(sessie_id[n]). Dit lijkt goed te werken, want als iemand een sessie joint zie je op de sessie browser dat de player_count met 1 omhoog gaat. Dat klopt, maar als er iemand uit de sessie gaat, gaat de player_count van die sessie niet met 1 naar beneden. Hij blijft op het getal staan waar hij op stond voordat die persoon uit de sessie ging. Ik hoop dat je mij hiermee zou kunnen helpen! Alvast bedankt!
Size43 (Beheerder) op 20 Aug 2016, 22:52:45
Als je een andere sessie joint / een nieuwe sessie maakt, updatet het aantal spelers dan wel naar het juiste aantal?
PaPdeveloper op 22 Aug 2016, 14:04:22
Nee dat werkt ook niet. Wat ik wel zie is dat als ik op de refreshknop van de sessiebrowser druk (dit restart de room) en er is iemand uit een sessie gegaan dat de player_count van die sessie net zoals eerst niet met 1 omlaag gaat. Dus eerst stond er bijvoorbeeld 2 bij de player_count van die sessie, maar nadat iemand eruit gaat staat er nog steeds 2. Als ik op de refreshknop druk staat er ook nog steeds 2, maar als ik de applicatie opnieuw opstart dan staat er 1 bij de player_count, dus dan doet hij het wel. Dus de player_count's worden altijd omhoog geüpdatet, maar ze worden alleen omlaag geüpdatet als ik de hele applicatie opnieuw opstart.
Size43 (Beheerder) op 27 Aug 2016, 13:44:25
Vreemd. Ik kan het zo 1-2-3 niet reproduceren. Heb je dit ook bij de sessie-example? Zo ja, wat moet ik doen om die bug ook te krijgen?

Zo nee, zou je me dan misschien je project kunnen sturen zodat ik ernaar kan kijken?
TomPostmus op 24 Aug 2017, 18:12:51
Hallo Size43

Bij het sessie-example doet zich hetzelfde probleem voor (dit is in GameMaker 8). Het probleem iets simpeler geformuleerd: de gms_session_player_count()'s worden pas geupdatet als er een client (maakt niet uit welke client) een sessie joint (maakt niet uit welke sessie, dus ook sessie 0), maar de sessie player_count updatet dus niet constant. Ik vermoed dus dat als een speler een sessie joint er een of andere code wordt gerunned die alle sessie-player_counts updatet, maar deze code wordt dus niet continu gerunned. Misschien kan je achterhalen wat die code is die de player_counts van alle sessies updatet en ervoor zorgen dat deze code met GMS continu wordt gerunned. Of je kan een nieuwe functie maken gms_session_player_counts_refresh() die deze code runned. Zo kunnen mensen deze functie handmatig aanroepen om de player_counts te updaten. Ik hoop dat ik je heb kunnen helpen!
Size43 (Beheerder) op 4 Sep 2017, 11:33:57
Je zou dit handmatig kunnen verversen met

[gml]gms_optimize_request_data_update(gms_resource_session, 0, "")[/gml]

Ik heb nu even niet de tijd om te kijken hoe dit precies zit, maar het zou kunnen dat de player count updates uit staan omdat dit erg veel servercapaciteit vereist als er 150+ spelers in een game online zijn, en de player counts constant veranderen.