An alle Clients senden!?!

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Tankbuster

Betreff: An alle Clients senden!?!

BeitragSa, Jan 27, 2007 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Dieser Server soll die Daten, die ein Client schickt, an alle anderen Clients schicken! Wenn ein Client dem Server zum ersten mal etwas schickt, wird seine ip (P\recv) gespeichert, und am Ende sendet der Server an alle Clients die Nachricht, die er zuvor erhalten hat!
Kleines Problem: Das funktioniert allerdings nicht Sad

Zitat:
Type player
Field alles!!!xD
End Type

Graphics 600,600
stream = CreateUDPStream(8000)

While Not KeyHit(1)

ip= RecvUDPMsg(stream)
If ip<>0 Then

While ReadAvail(stream)

byte$=ReadString$(stream) ;(byte$="Play Spieler2")<--das stimmt =)

Print byte$

If nwort$(byte$, 1)="Play";erstes wort(Play
Name$=nwort$(byte$, 2);zweites wort(Spieler

For P.player=Each player
If Name$<> P\id$ Then
P.player=New player
P\id$=Name$
P\recv=ip
EndIf
Next
EndIf

For P.player=Each player
Print DottedIP(P\recv)
WriteString(stream,byte$)
SendUDPMsg stream,P\recv,800
Next

Wend
EndIf
Flip
Wend



Function nwort$(byte$, wort)
If wort < 1 Then Return ""
trenn$ = " " ;<-- Trennzeichen
byte$ = byte$ + trenn$
w = 0
pos = 1
While w < wort And pos > 0
While Mid$(byte$, pos, 1) = trenn$
pos = pos + 1
Wend
x = pos
y = Instr(byte$, trenn$, pos)
pos = y
w = w + 1
Wend
Return Mid$(byte$, x, y - x)
End Function

Function INT_IP(IP$)
a1=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
a2=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
a3=Int(Left(IP$,Instr(IP$,".")-1)):IP$=Right(IP$,Len(IP$)-Instr(IP$,"."))
a4=Int(IP$)
Return (a1 Shl 24) + (a2 Shl 16) + (a3 Shl 8 ) +a4
End Function
Twitter
Download Jewel Snake!
Windows|Android
 

Dreamora

BeitragSa, Jan 27, 2007 21:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast alle deine Player schon, erzeugst jedoch unzählige neue bei jedem Connect. (du müsstest einfach drüber gehen über alle und sehen ob der name vorkam und wenn nicht 1 player erzeugen, nicht bei jedem spieler <> dem neuen einen, weil sonst wird jeder neue n-1 mal eingetragen wobei n = seine eigene nummer bei der anzahl spieler die geloggt sind)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Tankbuster

BeitragSa, Jan 27, 2007 21:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh,... danke,Dreamora!
Ich veränder es mal ein bisschen!*moment*
Twitter
Download Jewel Snake!
Windows|Android

Tankbuster

BeitragSa, Jan 27, 2007 22:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiß zwar, wie du's gemeint hast, aber wenn ich das in den Code einbaue, brauche ich ja für jede "P\id$" eine neue Variable, die ich dann mit dem "Name$" vergleiche. Und wenn ich nur 5 Variablen mache, und es connecten mehr als 5 Spieler dadrauf,dann bekommen die neuen spieler keine Nachrichten!
Twitter
Download Jewel Snake!
Windows|Android
 

Dreamora

BeitragSa, Jan 27, 2007 23:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine ID ist normalerweise eine eindeutige Integer Zahl
Hab ich wohl übersehen das du da sonstige Dinge reinspeicherst die eigentlich nur beim "login" transferiert werden und danach eigentlich nimmer (ID -> int = 4 byte. String: X byte)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Tankbuster

BeitragSa, Jan 27, 2007 23:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Die ID ist in dem Fall der Name des Spielers (Beispiel=Spieler2)!
Twitter
Download Jewel Snake!
Windows|Android
 

Dreamora

BeitragSo, Jan 28, 2007 0:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Und was ist deine eindeutige ID welche der Spieler später bei seinen Paketen reinhängt um sich zu "identifizieren"?
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Tankbuster

BeitragSo, Jan 28, 2007 1:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich könnte doch die IP adresse nehmen, oder etwa nicht?
Twitter
Download Jewel Snake!
Windows|Android

5k41

BeitragSo, Jan 28, 2007 1:20
Antworten mit Zitat
Benutzer-Profile anzeigen
nimm doch einfach eine Fortlaufende Nummer, von 1 beginnend, also machst du noch ein Field id und noch eins name$ in name speicherst du das, was du bis jetzt in id speicherst und in id speicherst du eine variable, die du danach inkrementierst!

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Tankbuster

BeitragSo, Jan 28, 2007 1:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Stimmt! so könnte ich das auch machen!
Ich glaub, jetzt weiß ich genau was ich machen muss. Danke an euch!
Twitter
Download Jewel Snake!
Windows|Android

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group