game maker
Gebruikersnaam:
Wachtwoord:
Home Info Forums Help
Welkom, Gast. Alsjeblieft inloggen of registreren.
+  Forums
|-+  Werken met Game Maker
| |-+  Beginners (Moderators: Erik Leppen, ericlegomeer, BlueMoonProductions)
| | |-+  game maker server sessions vragen
Pagina's: [1] 2
« vorige volgende »
Print
Advertenties

29632963
Gebruiker


Offline Offline

Berichten: 2530


WWW
« Gepost op: 21 November 2017, 17:02:20 »

hey
ik probeer een soort sessions te maken (soort van party systeem zodanig je enkel jouw team ziet in de stages die je speelt .

nu heb ik wel een probleem
allereerst mijn codes

GML:
script on_session_change
//Shows a message to notify the user that the session changed.
//Obviously completely optional.
gms_show_message("Now in session " + string(argument0))


GML:
Information about object: obj_controller
Sprite:
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent:
Children:
Mask:

No Physics Object
Create Event:

execute code:

//Setup
gms_debug_enable();
gms_settings(true, 1, obj_player, obj_other_player);
gms_login_set_username(string(irandom(1000)));

gms_login_execute(login_finish);

gms_script_set_session_change(on_session_change)

Draw Event:

execute code:

if(gms_info_isloggedin())
{
    draw_set_alpha(1);
    draw_set_color(0);
   
    //Draw some general info
    draw_text(5, 105,
    "Connected: " + string(gms_info_isconnected()) + "#" +
    "Number of sessions: " + string(gms_session_count()));

    //Enumerate over all sessions.
    for(i = 0; i < gms_session_count(); i += 1)
    {
        draw_text(205, 105 + i * 20,
            "Session [" + string(i) + "]: Player Count = " + string(gms_session_player_count(i)) +
            " / Type = " + string(gms_session_type(i)) +
            " / ID = " + string(gms_session_id(i)));
    }

    draw_text(5, 205, "Note that all players join a session with type '0', or that a new session with type '0' is#created when a session with type '0' doesn't exist.##Press [N] to create a new session.#Press [J] to join an existing session.");

    draw_text(5, 5, "You are currently in the session with session_id = " + string(gms_session_current_id()) + "#(It takes some time for the session_id to update)");
}

Key Press Event for J-key Key:

execute code:

//Ask the player which session to join. (NOTE: this dialog
//asks for an id; If you wish to use the 'i' from the enumeration you
//should use this code:
//server_session_join(server_session_id(get_integer("Enter the number of the session you want to join (starting with 0):", 0)));

gms_session_join(get_integer("ID:", 0));

Key Press Event for N-key Key:

execute code:

//Creates a new session, with the arbitrary type 'st_demo_session'
//(which is a constant, and equals 5)
gms_session_create(st_demo_session)


het probleem ligt volgens mij bij
GML:
Key Press Event for N-key Key:

execute code:

//Creates a new session, with the arbitrary type 'st_demo_session'
//(which is a constant, and equals 5)
gms_session_create(st_demo_session)

maar in de example stond dit zo dus ik weet niet wat ik kan doen

verder krijg ik deze error als ik duw op de N key
GML:

___________________________________________
############################################################################################
FATAL ERROR in
action number 1
of Key Press Event for N-key Key
for object obj_controller:

Variable obj_controller.st_demo_session(100012, -2147483648) not set before reading it.
 at gml_Object_obj_controller_KeyPressed_N_1 (line 3) - gms_session_create(st_demo_session)
############################################################################################


hopelijk kan iemand me helpen het probleem op te lossen verder heb ik ook een aantal vragen over hoe dit nu juist werkt


nog hulp nodig met volgende topics
game maker server
http://www.game-maker.nl/forums/topic,86241.0
Naar boven Gelogd

29632963
Gebruiker


Offline Offline

Berichten: 2530


WWW
« Antwoord #1 Gepost op: 25 November 2017, 12:38:36 »

iemand een idee waarom ik de error krijg . helaas kan ik de examples ook niet volledig testen omdat er bepaalde files missing zijn .


nog hulp nodig met volgende topics
game maker server
http://www.game-maker.nl/forums/topic,86241.0
Naar boven Gelogd

Flumble
Gebruiker


Offline Offline

Berichten: 2020


« Antwoord #2 Gepost op: 30 November 2017, 20:59:38 »

In de example, waar je de code uit geplukt hebt, wordt st_demo_session ergens gedefinieerd (ik verwacht tussen de "Macros"; wat vroeger constanten heette). Aangezien jij die niet hebt, crasht gamemaker op een 'onbestaande variabele/constante'.

Zoals de handleiding aangeeft, mag je helemaal zelf weten wat voor waarde je als argument aan gms_session_create geeft. Dus bijvoorbeeld de stage waar je in zit.
Ik weet niet hoe erg het is als iedereen een sessie aanmaakt, dus misschien wil je iets als
GML:
//zet bij voorkeur in een script
var session_id = <de stage waar je in zit/naartoe gaat>;

if (gms_session_exists(session_id))
  gms_session_join(session_id);
else
  gms_session_create(session_id);


Ik heb verder geen idee of sessies het antwoord zijn voor wat je wil met je party-systeem, aangezien GMS ook teams ondersteunt. En je kan altijd instances onzichtbaar maken op je eigen scherm (als het goed is) als ze geen onderdeel zijn van je party.

Naar boven Gelogd

size43
Gebruiker


Offline Offline

Berichten: 3512


WWW
« Antwoord #3 Gepost op: 3 December 2017, 12:05:28 »

Ik heb verder geen idee of sessies het antwoord zijn voor wat je wil met je party-systeem, aangezien GMS ook teams ondersteunt. En je kan altijd instances onzichtbaar maken op je eigen scherm (als het goed is) als ze geen onderdeel zijn van je party.
Om hier antwoord op te geven:

Sessies zijn de betere optie. Naast het 'verbergen' van de andere spelers, worden als je verschillende sessies gebruikt de objecten voor de 'verborgen' spelers ook niet aangemaakt. Daarnaast worden globale variabelen per sessie gesynchroniseerd, dus zonder sessies deel je globale variabelen met alle andere teams. Als laatste is er per sessie ook een aparte chat.

In de example, waar je de code uit geplukt hebt, wordt st_demo_session ergens gedefinieerd (ik verwacht tussen de "Macros"; wat vroeger constanten heette). Aangezien jij die niet hebt, crasht gamemaker op een 'onbestaande variabele/constante'.

Zoals
Ik weet niet hoe erg het is als iedereen een sessie aanmaakt, dus misschien wil je iets als
GML:
//zet bij voorkeur in een script
var session_id = <de stage waar je in zit/naartoe gaat>;

if (gms_session_exists(session_id))
  gms_session_join(session_id);
else
  gms_session_create(session_id);
Merk op dat gms_session_create een type verwacht, en niet een id. IDs worden door de server toegekend. Om onderscheid te maken tussen de verschillende sessies kan je een type gebruiken (de VS mode heeft bijvoorbeeld aparte types voor de lobby en in-game), of extra informatie naar de GameINI wegschrijven.


GameMaker Server+: Online INIs, achievements en multiplayer.
[HTML5]WhatShallIMake? - Background Generator - Green's Blobs
Naar boven Gelogd

29632963
Gebruiker


Offline Offline

Berichten: 2530


WWW
« Antwoord #4 Gepost op: 10 December 2017, 14:06:53 »

de bedoeling is dat je in de towns en werelddelen vrij rondloopt en daar alle spelers kan zien.
maar eens aan een portaal er gevraagt word of je solo gaat of in team (in team word het moeilijker)
 
neem nu vb je gaat naar een portaal en neemt team mode zou je in een soort lobby moeten komen.
dit zou een tussenplaats zijn om je nodige spelers te verzamelen
eens je daar bent en vb hier 3 man nodig is kan je de rift niet openen tot alle nodige spelers er zijn. eens wel aanwezig en in de buurt van de rift kan je samen met deze 3 naar een aparte wereld gaan. hierin zie je enkel jouw team dat samengesteld is.
andere spelers mogen in deze stage ook geen invloed hebben op openen
van kisten of doden van de monsters.
uiteraard zou ik willen dat je zelf kunt kiezen welke lobby je heen gaat.

is hiervoor sessions dan de beste oplossing en hoe kan ik dit het beste doen ? of welke functies zou ik nodig hebben.

ook nog eens over dit stukje
GML:
//Creates a new session, with the arbitrary type 'st_demo_session'
//(which is a constant, and equals 5)
gms_session_create(st_demo_session)
hier zou ik dus een constante moeten maken die noemt dan st_demo_session en als value 5 geven ? is er een reden dat hij value 5 moet hebben of niet ?

« Laatste verandering: 10 December 2017, 14:09:41 door 29632963 »

nog hulp nodig met volgende topics
game maker server
http://www.game-maker.nl/forums/topic,86241.0
Naar boven Gelogd

size43
Gebruiker


Offline Offline

Berichten: 3512


WWW
« Antwoord #5 Gepost op: 12 December 2017, 11:39:38 »

Sessies zijn daarvoor inderdaad de beste keuze.

De waarde van de constante mag je zelf kiezen, tussen 0 en 255. Je zou bijvoorbeeld aparte waardes voor de normale wereld, lobby en het deel 'in' de rift.


GameMaker Server+: Online INIs, achievements en multiplayer.
[HTML5]WhatShallIMake? - Background Generator - Green's Blobs
Naar boven Gelogd

29632963
Gebruiker


Offline Offline

Berichten: 2530


WWW
« Antwoord #6 Gepost op: 13 December 2017, 10:49:15 »

hoe kan ik juist zeggen
in normale wereld vb room 1 tot 10 hier kan je geen sessies maken .
als je aan een portaal komt vraag solo of party.
als je party neemt dat hij vraagt of je nieuw wilt maken of een wilt joinen.
bij het maken van nieuwe is dit mogelijk zelf te zeggen maak sessie 10 aan ipv eerst sessie 1 ?
want ik merkte op in mijn game dat ik getest heb als ik sessie aanmaak met sessie 1 tot 3 krijg ik vaak errors als iemand die wilt joinen


nog hulp nodig met volgende topics
game maker server
http://www.game-maker.nl/forums/topic,86241.0
Naar boven Gelogd

size43
Gebruiker


Offline Offline

Berichten: 3512


WWW
« Antwoord #7 Gepost op: 13 December 2017, 10:53:23 »

Wat zeggen die errors?

Misschien is het het verschil tussen IDs en types? Je kan namelijk niet een ID kiezen voor een sessie die je aanmaakt, maar wel een type. Sommige sessie functies verwachten een id, en andere verwachten den type.


GameMaker Server+: Online INIs, achievements en multiplayer.
[HTML5]WhatShallIMake? - Background Generator - Green's Blobs
Naar boven Gelogd

29632963
Gebruiker


Offline Offline

Berichten: 2530


WWW
« Antwoord #8 Gepost op: 16 December 2017, 19:23:42 »

http://g2f.nl/0bzgiao

dit is de error dat ik krijg . als ik 0 -1-2 ingeef krijg ik deze error (bij beiden accounts)
ook als ik bij vb player1 een nieuwe sessie neem en dit ook doe met de 2de zitten ze beiden blijkbaar nog in een aparte sessie terwijl ze beiden vb in sessie 1 zouden moeten zijn of is dit normaal ?

edit zoals je ook ziet geeft hij bij alle sessie aan dat er geen spelers inzitten ik weet niet hoe dit komt Twijfelachtig

« Laatste verandering: 17 December 2017, 12:29:29 door 29632963 »

nog hulp nodig met volgende topics
game maker server
http://www.game-maker.nl/forums/topic,86241.0
Naar boven Gelogd

size43
Gebruiker


Offline Offline

Berichten: 3512


WWW
« Antwoord #9 Gepost op: 21 December 2017, 16:41:45 »

Die player counts kloppen inderdaad niet, mogelijk is dat een bug. Ik zal er zodra ik tijd heb eens naar kijken.

0 en 1 horen bij het screenshot dat je postte in ieder geval niet te werken, de sessies hebben namelijk IDs 2 t/m 5.

Als je een sessie aanmaakt moet je het type invullen. Als je op allebei de clients een nieuwe sessie maakt, maar wel hetzelfde type opgeeft, horen dat inderdaad twee aparte sessies te zijn.


GameMaker Server+: Online INIs, achievements en multiplayer.
[HTML5]WhatShallIMake? - Background Generator - Green's Blobs
Naar boven Gelogd

29632963
Gebruiker


Offline Offline

Berichten: 2530


WWW
« Antwoord #10 Gepost op: 21 December 2017, 19:03:10 »

het pop up scherm dat dan komt is er een manier dat hij ipv vb sessie 1 (de 1 vervangen word door het nummer van de id ? ) want dat is wat verwarrend
ik dacht dat ik in sessie 1 zat maar blijkbaar zat ik dus heel de tijd fout en moet ik dus naar het ID kijken
is er een manier dat ik de speler zelf een sessie laat aanmaken met een ID nummer ?


nog hulp nodig met volgende topics
game maker server
http://www.game-maker.nl/forums/topic,86241.0
Naar boven Gelogd

size43
Gebruiker


Offline Offline

Berichten: 3512


WWW
« Antwoord #11 Gepost op: 21 December 2017, 20:06:18 »

Van de sessies kan je de IDs krijgen met gms_session_id(n), waarbij n net als bij een array 0-based is.

De sessie IDs worden bepaald door de server, en kan je niet veranderen.


GameMaker Server+: Online INIs, achievements en multiplayer.
[HTML5]WhatShallIMake? - Background Generator - Green's Blobs
Naar boven Gelogd

29632963
Gebruiker


Offline Offline

Berichten: 2530


WWW
« Antwoord #12 Gepost op: 26 December 2017, 16:33:18 »

maar als je een new sessie aanmaakt hoort hij dan niet te starten bij 1?


nog hulp nodig met volgende topics
game maker server
http://www.game-maker.nl/forums/topic,86241.0
Naar boven Gelogd

size43
Gebruiker


Offline Offline

Berichten: 3512


WWW
« Antwoord #13 Gepost op: 26 December 2017, 18:03:06 »

Nee, dat kan in principe bij elk getal beginnen.

Als je een tweede sessie aanmaakt hoeft de ID daarvan ook niet groter te zijn dan de eerste.


GameMaker Server+: Online INIs, achievements en multiplayer.
[HTML5]WhatShallIMake? - Background Generator - Green's Blobs
Naar boven Gelogd

29632963
Gebruiker


Offline Offline

Berichten: 2530


WWW
« Antwoord #14 Gepost op: 29 December 2017, 15:55:29 »

enig idee hoe ik die error dan juist kan oplossen ? het is spijtig dat de mensen geen 1 of 2 als sessie waarde mogen opgeven en ik weet niet hoe ik dit kan oplossen.


nog hulp nodig met volgende topics
game maker server
http://www.game-maker.nl/forums/topic,86241.0
Naar boven Gelogd

Advertenties
« vorige volgende »
Pagina's: [1] 2
Print


Topic Informatie
0 geregistreerde leden en 1 gast bekijken dit topic.

Ga naar:  

Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines
www.game-maker.nl © 2003-2021 Nederlandse Game Maker Community