Nachrichten auch an neuen Spieler schicken, der connectet

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

mas93

Betreff: Nachrichten auch an neuen Spieler schicken, der connectet

BeitragSo, Mai 20, 2007 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

Ich mach gerade ein UDP Spiel.

Wenn ich es zu 2. Spiele gibt es kein Problem.
Ich gebe meinem Freund per messenger meine ip und er mir seine
Dann tragen wir das in bb ein(Gibts auch ne andere möglichkeit??).

Dann müssen wir beide auch noch verschiedene Ports einstellen(also send und empfangsport vertauschen).(Auch hierfür muss es ne einfachere lösung geben^^)

Nun kann es losgehen und ich komm zur eigentlichen frage:

Wenn jetzt ein neuer Spieler beitreten will, dann muss er das ja irgendwie den Spielenden bekannt geben, und die müssen dann ja immer einem mehr ne nachricht schicken.

Wie mache ich das am besten??


Wäre nett wenn ihr mir diese Fragen beantworten könntet

mfg
Mariuis
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Tankbuster

BeitragSo, Mai 20, 2007 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
^^
Das mit den Ports musst du nicht machen!
Also nur wenn du es auf einem PC spielen willst!
Mach einfach Port=8000 und SendPort=8000 Dann gehts auch!
Das mit den Ports war nur für das testen auf einem PC, weil man nicht 2 mal die selben Ports belegen kann!
(Mas93 weiß wovon ich rede)
Wenn ein neuer Spieler beitritt, sollte er einfach eine Nachricht schicken!
z.B. "Login"+ Den Spielername!
Bei allen wird dan ein Spieler mit dem Spielername erstellt, und der eine darf ihn kontrollieren,.......
Wenn 2 Spieler den selben namen haben, musst du noch ne IF- Abfrage machen, ob es den Namen schon gibt!
Twitter
Download Jewel Snake!
Windows|Android

mas93

BeitragMo, Mai 21, 2007 19:26
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, aber wie weiß der andere Spieler die ip adressen der beiden die schon spielen?
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]
 

ChristianK

BeitragMo, Mai 21, 2007 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Entweder auch per Messenger Wink ,
oder du speicherst die IPs auf einem zentralen Server, auf den alle Spieler zugreifen können.

mas93

BeitragMo, Mai 21, 2007 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm, Ich hab keinen server.
Und das wäre für mich wahrscheinlich auch zu schwer mit dem server.

Gibts keine andere möglichkeit?
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Silver_Knee

BeitragMo, Mai 21, 2007 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ein spieler per udp ne nachricht schickt bekommt doch der andere die ip mit von dem die nachricht kommt, oder? dann würde das einladen system greifen:

host:
Bildschirm...
Code: [AUSKLAPPEN]
Einladen Modus
--------------------
tippen sie hier die ip ein und esc um abzubrechen:

und im programm sowas wie
Code: [AUSKLAPPEN]
repeat
 writeline "hallo"
 sendudpmessage an eingetippte ip
 for count= 1 to 5
  warte auf antwort
  if antwort=gekommen then mach(mal,spiel,an) oder Lad(noch,einen,ein)
  if keyhit(1) then error=true
  delay 1000;client zeit geben
 next
until error


eingeladener:
Code: [AUSKLAPPEN]
Erwarte einladung (esc bricht den vorgang ab)....

Code: [AUSKLAPPEN]
repeat
 if recvudpmsg()
  hostip=UDPMSGIP()
  writeline "HAB DICH GEHÖRT"
  sendudpmsg an hostip
  gehe zu game
 endif
until keyhit(1)


game im client modus:
wenn nach dem spielstart innerhalb von 20 sec noch keine positionsangabe etc vom host kam einfach nochmal
Code: [AUSKLAPPEN]
  writeline "HAB DICH GEHört"
  sendudpmsg an hostip

mas93

BeitragDi, Mai 22, 2007 14:48
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, dann werd ichs wohl mit einladen versuchen.

Aber wie kann ich testen ob in einem Stream am anfang steht:

Code: [AUSKLAPPEN]

New Player Connected:18248264826


So und jetzt soll das c.a so aussehen:



Code: [AUSKLAPPEN]

If im stream am anfang steht New Player Connected then

Die ip danach in nem neuen typ spechern(Das im type speichern is kein problem,nur die hinter NPC auszulesen)




wäre nett wenn ihr mir da helfen könntet mfg
Marius
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Tankbuster

BeitragDi, Mai 22, 2007 15:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür gibt es eine Funktion! Also wenn du das in einem String schicken willst! Du kannst es aber auch anders machen, indem du mehrere Strings und so schickst!
Zitat:
A=ReadString(stream)
If A="New"
Name=ReadString(stream)
Leben=ReadInt(stream)
[...]
endif
Twitter
Download Jewel Snake!
Windows|Android

mas93

BeitragDi, Mai 22, 2007 15:37
Antworten mit Zitat
Benutzer-Profile anzeigen
nein, es wäre schon besser wenn alles in einem string wäre.
Wiesst du wie die funktion heißt?
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Silver_Knee

BeitragDi, Mai 22, 2007 15:40
Antworten mit Zitat
Benutzer-Profile anzeigen
mid ^^

Mid(txt,1[=anfang des strings],instr(txt,"New Player Connected:")+1)

wobei txt das ist was im string steht

Tankbuster

BeitragDi, Mai 22, 2007 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
=D
Ist nicht von mir aber trotzdem schön Very Happy

Zitat:
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
Twitter
Download Jewel Snake!
Windows|Android

mas93

BeitragDi, Mai 22, 2007 16:05
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, hat eine ipadresse immer gleichviel stellen wenn sie als float ist??
Wenn ja wie viele?

Und wenn sie ganz normal ist schon,oder?
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Silver_Knee

BeitragDi, Mai 22, 2007 16:12
Antworten mit Zitat
Benutzer-Profile anzeigen
wie wärs wenn du einfach von dem doppelpunkt bis zumende alles ausliest

mid (txt,instr(txt,":")+1)

mas93

BeitragDi, Mai 22, 2007 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm ich habs mal so getestet.
Funktioniert aber nicht

Code: [AUSKLAPPEN]

Graphics 640,480,16,2

Global mail$="NewPlayerConnected0120401024"
Global npctest$
Global cip%

npctest$=Mid$ (mail$, 1, 18)

Repeat
If npctest="NewPlayerConnected" Then cip%=Mid (mail$,Instr(mail$,":")+1)


Text 20,20,npctest
Text 30,30,cip

Until KeyHit(1)


was hab ich falsch gemacht?
www.lpbase.de
Meine Linkin Park Fanseite[Noch im Aufbau]

Tankbuster

BeitragDi, Mai 22, 2007 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Wo ist denn da ein DOPPELPUNKT -.-
Twitter
Download Jewel Snake!
Windows|Android

Silver_Knee

BeitragDi, Mai 22, 2007 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
hatte den noch im kopf

New Player Connected:18248264826

bei
NewPlayerConnected18248264826
nimmt man eben das "d"

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group