Login-Routine
Übersicht

![]() |
N0XBetreff: Login-Routine |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey!
Ich habe eine Loginroutine. Also... Der Spieler sendet ein Byte(1), seinen Namen und das Passwort. Daraufhin gleicht der Server die angekommenen Daten mit einer Txt-Datei ab. Wenn die Daten im Dokument gefunden wurden und auch Stimmen, wird dem Spieler gesagt das er "kommen kann", wenn die Daten allerdings nicht gefunden wurden wird ein Byte(7) gesendet und der Spieler connectet nicht. Problem: Wenn in meiner Txt-Datei nicht in der 1.Zeile die Daten stehen, gibt das Programm irgendwie beides zurück. Warum? Gibt's vielleicht sogar eine bessere Lösung? ![]() (stark gekürzter, auf Anfrage gibts mehr) Code: Code: [AUSKLAPPEN] Case 1
user_file = ReadFile("users\user.txt") name$ = ReadString(svr) pass$ = ReadString(svr) While Not Eof(user_file) user$ = ReadLine(user_file) u.users = New users u\login = Instr(user$,name$+":"+pass$) Wend CloseFile(user_file) For u.users = Each users If u\login<>0 Then Print "Neuer Spieler!" Else WriteByte svr,7 SendUDPMsg svr,ip,port EndIf Next Mfg, N0X P.S.: Ich glaube es liegt an Instr ![]() |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
Lion |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja, weil du ja in der For schleife jedes mal einen neuen user erstellst.
So kommt es vor, dass er für jedes mal, dass er es nicht findet ein Byte(7) verschickt und für jedes mal, dass er findet einen positiven bescheid abgibt. |
||
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, ok, aber wie kann ich das denn anders machen?
Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
Lion |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
BlitzBasic: [AUSKLAPPEN] If Instr(user$,name$+":"+pass$) Then Das gleich anstatt user\login=Instr... und den abschnitt unten kannste dir dann sparen. edit: Huch, continue gibts ja net, guck mal hier: https://www.blitzforum.de/foru...t=continue wobei dus in diesem falle auch weglassen kannst, da es ja schon am ende praktisch ist. |
||
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x |
![]() |
N0X |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm...
Mit den Daten der 1.Zeile in der Txt-Datei geht's. Aber wenn ich die Daten in der 2.Zeile eingebe, gehts wieder nicht. (TXT_Datei: 1.Zeile: pete:po, 2.Zeile: n0x:no) Hier Code: Code: [AUSKLAPPEN] Case 1
user_file = ReadFile("users\user.txt") name$ = ReadString(svr) pass$ = ReadString(svr) While Not Eof(user_file) user$ = ReadLine(user_file) If Instr(user$,name$+":"+pass$) Then For p.Player = Each Player WriteByte svr,1 WriteInt svr,ip WriteInt svr,port WriteString svr,name$ SendUDPMsg svr,p\ip,p\port WriteByte svr,1 WriteInt svr,p\ip WriteInt svr,p\port WriteString svr,p\name$ SendUDPMsg svr,ip,port Next p.Player = New Player p\name$ = name$ p\ip$ = ip p\port = port Print "Player Connected... "+p\name$ Exit Else WriteByte svr,7 SendUDPMsg svr,ip,port EndIf Wend CloseFile(user_file) Mfg, N0X |
||
Projekte: |Tibario| http://www.blitzforum.de/worklogs/325/ | 5% |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group