GLBasic forum

Other languages => GLBasic - de => Topic started by: Tiuz on 2007-Sep-30

Title: Fehler bei NETCREATEPLAYER$()
Post by: Tiuz on 2007-Sep-30
Hallo liebe Glbasic Gemeinde,

Folgendes Programm funktioniert bei mir genau einmal:

Code (glbasic) Select
// --------------------------------- //
// Project: Netplayer
// Start: Sunday, September 30, 2007
// IDE Version: 5.022

status = NETHOSTGAME(0, "test", "", "")
ident$ = NETCREATEPLAYER$("Bob")

PRINT ident$, 100, 100

SHOWSCREEN
MOUSEWAIT
Es wird korrekt "101" ausgegeben.

Starte ich dasselbe Programm aber erneut, wird "-1" (Fehler beim Erstellen des Spielers) ausgegeben.

Starte ich meinen PC neu, funktioneriert es wieder genau einmal. :rolleyes:

Bitte Gernot kümmere dich mal um die Netzwerkbefehle, so macht es wirklich keinen Spass!
:nw:

Grüsse,  Tiuz

OS:          Windows XP Professional
CPU:        AMD 64 3000+
GrKa:       Geforce 6600 GT
GlBasic:    siehe Code
Title: Fehler bei NETCREATEPLAYER$()
Post by: Schranz0r on 2007-Sep-30
hmm mal gehts mal gehts nicht!
was willste den überhaupt mit dem Netzwerkzeugs :D
Title: Fehler bei NETCREATEPLAYER$()
Post by: trucidare on 2007-Sep-30
oh oh oh um einen spieler einem host beizufügen musst du dem host beitreten. es reicht nicht mit deinem code einfach ein neues fenster aufzumachen, da du mit dem server nicht verbunden bist.
dazu gibts den NETJOINGAME() befehl (bin mir nich sicher wie der heißt) danach sollte es auch klappen dein spieler zu erstellen.
Title: Fehler bei NETCREATEPLAYER$()
Post by: Tiuz on 2007-Sep-30
Hallo Schranz0r,

Bei dir funktionierts also ab und zu mal? Ich habe auch schon rumprobiert und nach Tasks gesucht, die nach dem Beenden des Programms "übriggeblieben" sind. Leider kann ich da kein Muster erkennen.  Wenn ich den Player mit NETDESTROYPLAYER nach erfolgreichem Erstellen zu löschen versuche, meldet sich bei mir der Visual Studio Debugger. :/

Bin leider von der fixen Idee besessen ein Netzwerkspiel schreiben zu müssen :D

Grüsse, Tiuz.
Title: Fehler bei NETCREATEPLAYER$()
Post by: Tiuz on 2007-Sep-30
@ trucidare:

Muss der Host ein eigener Task sein? Wenn ich dem Code den "Netjoingame" Befehl zwischen "host" und "Createplayer" hinzufüge, funktionierts auch nicht.

Tiuz

Code (glbasic) Select
// --------------------------------- //
// Project: Netplayer
// Start: Sunday, September 30, 2007
// IDE Version: 5.022

AUTOPAUSE FALSE
SYSTEMPOINTER TRUE

status = NETHOSTGAME(0, "test", "", "")
status = NETJOINGAME(0, "test", "127.0.0.1", "")
ident$ = NETCREATEPLAYER$("bob")

PRINT ident$ , 100, 100
SHOWSCREEN

MOUSEWAIT
Title: Fehler bei NETCREATEPLAYER$()
Post by: Schranz0r on 2007-Oct-01
Ne normal net, sonnst bräucht man ja immer einen "Server", und dann müsste man den noch selber Joinen, wär ja blöd :D

muss schon irgendwie gehn... GERNOT :D
Title: Fehler bei NETCREATEPLAYER$()
Post by: trucidare on 2007-Oct-01
aaaaalso
zuerst würd ich das programm in zwei abteilungen teilen, den host und den client. dann beim start wählen zwischen host und client.
dann solltest du dir mal unter den samples das beispiel für die netzwerkbefehle anschauen. dort ist das einigermaßen gut erklärt wie man die nutzt und wie sie funktionieren.

viel spaß beim coden und nicht die flinte ins korn werfen
Title: Fehler bei NETCREATEPLAYER$()
Post by: Kitty Hello on 2007-Oct-01
Kann sein, dass da echt ein Hund d'rin ist. Ich muss es mir evtl. ansehen. Das Problem weiter einkreisen hiflt mir dabei, danke.
Title: Fehler bei NETCREATEPLAYER$()
Post by: Tiuz on 2007-Oct-07
Ich habe mir die Netzwerksamples nochmal angesehen. Bei "Hello Net" zeigt sich bei mir das selbe Verhalten wie bei meinem geposteten Einfachprogramm. Mit frisch hochgefahrenen System kann einmal ein Spieler erstellt werden, danach nicht mehr.
Auch bei "Hello Net" wird der Spieler nach dem Hosten des Spiels erstellt, es muss also nicht vorher dem eigenen Spiel beigetreten werden.

Mein anfangs gopostetes Programm beschreibt das Problem zutreffend  :|
Title: Fehler bei NETCREATEPLAYER$()
Post by: Kitty Hello on 2007-Oct-09
OK. Ist ein Fehler. Ich seh's mir an. Kann aber keinen Zeitrahmen versprechen. Sorry. Ich bemüh' mich, ok?
Title: Fehler bei NETCREATEPLAYER$()
Post by: Schranz0r on 2007-Oct-09
hmmmmm... na gut :D
Title: Fehler bei NETCREATEPLAYER$()
Post by: Tiuz on 2007-Oct-09
Danke, Gernot.

Ich bin ja sozusagen der einsame Netzwerkfreak. =D
Aber das Positive daran ist, das die Netzwerkbefehle dann auch mal getestet werden.

Ansonsten ist Glbasic wirklich top: Einfacher Syntax, viele Möglichkeiten, schön flott. :good:
Title: Fehler bei NETCREATEPLAYER$()
Post by: Schranz0r on 2007-Oct-09
Quote from: TiuzIch bin ja sozusagen der einsame Netzwerkfreak. =D
Stimmt nicht, Frag mal trucidare
Title: Fehler bei NETCREATEPLAYER$()
Post by: Tiuz on 2007-Oct-09
Hallo trucidare,

wenn du Lust hast, kannst du ja mal deine Erfahrungen mit den Netzwerkbefehlen beschreiben.

Bei mir hat es nie richtig funktioniert. Am Anfang habe ich probiert, die Netzwerkfunktionen in bestehende Projekte einzufügen (z.B. 2D Rennspiel, Draufsicht). Ganz vereinzelt hats auch funktiomniert Nachrichten zu verschicken, aber nie reproduzierbar. Ich habe mir jetzt vorgenommen diese erstmal in einem ganz einfachen Chatprogramm stabil zum laufen zu bekommen, wobei ich auf das beschriebene Problem gestossen bin.
Kann aber natürlich nicht ausschließen, dass einiges auch an meiner eigenen Unfähigkeit liegt ;)

Tiuz.
Title: Fehler bei NETCREATEPLAYER$()
Post by: Kitty Hello on 2007-Oct-10
Update seit gestern online. Bitte testen.
Title: Fehler bei NETCREATEPLAYER$()
Post by: Tiuz on 2007-Oct-10
Ich kann es hier nur mit der Demo Version testen, aber leider ist das Problem mit dem Erstellen von Spielern noch da. Wenn ich den eingangs geposteten Code ausführe funktieniert beim ersten Mal alles problemlos. Beende ich das Programm und führe es sofort danach erneut aus, gibt es einen Fehler beim Erstellen des Spielers. :wah:

Wenn ich einige Zeit warte, oder mich neu anmelde funktioniert es manchmal wieder einmal korrekt. Zuverlässig hilft aber nur ein Systemneustart.
Title: Fehler bei NETCREATEPLAYER$()
Post by: Kitty Hello on 2007-Oct-10
Also, besser aber immer noch schlecht? Ich hab eine Stelle gefunden. Der bekommt da ein Timeout. Ich werd's nochmal größer setzen.
Title: Fehler bei NETCREATEPLAYER$()
Post by: Tiuz on 2007-Oct-10
Ja so könnte man sagen.
Es ist tatsächlich so, dass wenn man einige Minuten wartet, das Programm sich erneut normal ausführen lässt.

Rein interessehalber gefragt: Musst der Timeout nicht eher kleiner eingestellt werden, damit der Prozess (oder was auch immer) möglichst bald nach dem Beenden des Prgramms gelöscht wird?
Title: Fehler bei NETCREATEPLAYER$()
Post by: Schranz0r on 2007-Oct-10
Also die Demo vom Netzwerk läuft gut hatte einmal einen -1 nachdem ich gleich wieder drauf wollte auf den host
Title: Fehler bei NETCREATEPLAYER$()
Post by: Tiuz on 2007-Oct-11
Nächstes Netzwerkproblem?  ;)

Folgender Code müsste meiner Meinung nach 2x auf demselben Rechner ausfgeführt zu etwa folgender Ausgabe führen (Clientfenster) :

101  SP, Host : 1
102  SP, Host : 0

tatsächlich führt er nur zu aber zu:

101  SP, Host : 1
102


Code (glbasic) Select
// --------------------------------- //
// Project: test
// Start: Wednesday, October 10, 2007
// IDE Version: 5.040

AUTOPAUSE FALSE
SYSTEMPOINTER TRUE
GLOBAL ident$, name$, i, num, host;

IF NETJOINGAME(0, "test", "127.0.0.1", "") = 0 THEN host = NETHOSTGAME(0, "test", "", "")
IF NETCREATEPLAYER$("SP, Host: " + host) = "-1" THEN END

WHILE TRUE
num = NETNUMPLAYERS()
FOR i=0 TO num-1
ident$ = NETGETPLAYERID$(i)
name$ = NETPLAYERNAME$(ident$)
PRINT ident$ +"  " +name$, 100, 100+10*i
NEXT
SHOWSCREEN
WEND
Sprich, für den zweiten Spieler wird kein Name zurückgegeben, obwohl er der Identnummer nach vorhanden ist.
Laut Doku sollte bei einem Fehler mit  NETPLAYERNAME$() "NO_DATA" ausgegeben werden.
Title: Fehler bei NETCREATEPLAYER$()
Post by: Kitty Hello on 2007-Oct-14
Nochmal ein Update. Die Netzwerkbefehle waren echt kaputt.
Sind sie immer noch.
Aber: Ich verspreche sie zu richten. Bitte mal testen und feedback geben. Bitte, bitte schreibt mal einer ein einfaches Spiel/Chat Programm?
Title: Fehler bei NETCREATEPLAYER$()
Post by: Tiuz on 2007-Oct-14
Versprochen, ich bleibe an den Netzwerkbefehlen dran ;)

Zum Testen benutze ich ein einfaches Chatprogramm, dass ich, wenn alles funktioniert, gerne in den Showroom lade.
Title: Fehler bei NETCREATEPLAYER$()
Post by: trucidare on 2007-Oct-15
ich mach ein sample für deine unterlagen...
nachrichten und variablen übergabe
Title: Fehler bei NETCREATEPLAYER$()
Post by: Kitty Hello on 2007-Oct-15
Läufts jetzt?
Title: Fehler bei NETCREATEPLAYER$()
Post by: Tiuz on 2007-Oct-15
Die Sache mit den Namen der Teilnehmer abzufragen geht bei mir immer noch nicht.  
(Siehe zuletzt geposteten Beispielcode)
Title: Fehler bei NETCREATEPLAYER$()
Post by: trucidare on 2007-Oct-25
ähm noch nicht so wirklich.
Ich bekomm ein -1 wenn ich kurz nach einem start das ganze nochmal starte.
Title: Fehler bei NETCREATEPLAYER$()
Post by: Kitty Hello on 2007-Oct-26
Ja, hab' ich auch. Ein paar Sekunden später geht's dann aber wieder, oder?
Evtl. weil der Port noch offen ist!?
Title: Fehler bei NETCREATEPLAYER$()
Post by: trucidare on 2007-Oct-26
ich denke schon. zerstörst du denn auch die verbindung wenn man esc drückt?
Title: Fehler bei NETCREATEPLAYER$()
Post by: Kitty Hello on 2007-Nov-10
Update online. Netzwerk sollte jetzt voll funktionieren.
Title: Fehler bei NETCREATEPLAYER$()
Post by: trucidare on 2007-Nov-10
Ja geht einwandfrei das ding ;) und das NetzwerkBeispiel kommt auch bald. nur noch ein paaar gimicks rein
Title: Fehler bei NETCREATEPLAYER$()
Post by: Schranz0r on 2007-Nov-10
Jo man digga, gut gemacht alta, big KingPoo :D

Naja kleiner Insider unter Trucidare, Gernot und mir ^^
Title: Fehler bei NETCREATEPLAYER$()
Post by: Antidote on 2007-Nov-10
@Schranz0r
Ahja ;)
Title: Fehler bei NETCREATEPLAYER$()
Post by: Tiuz on 2007-Nov-10
Werde die Funktionen demnächst auch testen :)
Bin allerdings noch mit einem anderen GLB Projekt beschäftigt.
Title: Fehler bei NETCREATEPLAYER$()
Post by: Kitty Hello on 2007-Nov-25
Update online. Kleiner Chat ging jetzt bei uns.
Title: Fehler bei NETCREATEPLAYER$()
Post by: Kitty Hello on 2007-Nov-25
Update online. Sollte ganz gut laufen.
Title: Fehler bei NETCREATEPLAYER$()
Post by: Schranz0r on 2007-Nov-25
wo ist der Chat dazu ^^
*Testen will* take a look in direction of KingPoo :D
Title: Fehler bei NETCREATEPLAYER$()
Post by: Kitty Hello on 2007-Nov-26
Trucidare hat das gemacht
*rüberschau*
Title: Fehler bei NETCREATEPLAYER$()
Post by: trucidare on 2007-Nov-26
du has verbessert ;)
Title: Fehler bei NETCREATEPLAYER$()
Post by: Kitty Hello on 2007-Nov-26
Aber der Chat ist von Dir.
Title: Fehler bei NETCREATEPLAYER$()
Post by: Schranz0r on 2007-Nov-26
Öhmmmm.... o.O ja wie nun  :D gibt mir den nun einer oder nicht ... *DummGuck*