• Guten Abend allerseits .

    Ich hatte (wie manin einem anderen Thema sehen konnte) die Idee,ein UNO zu erstellen,was man über das Internet spielen kann.

    Nun hilft sogar schon jemand (Fisch) mit.

    Wir wollten fragen,wer noch mitmachen möchte?

    Aufgrund Geheimhaltung der Passwörter in Betracht der Findbarkeit durch Suchmaschinen sind die Passwörter zensiert !

    Das Login ist bereits fertig.

    Informationen:
    Archiv ist angehängt !

    Die Oberfläche:

    Spoiler anzeigen
    [autoit]

    ;nur zur sicherheit,nicht mit exportieren !!!!!

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;wie machen,dass Inputfeld mit Enter abgeschickt wird? - done? [x]

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;spielprinzip erstmal simulieren (KI ?)

    [/autoit] [autoit][/autoit] [autoit]

    ;Bild mit der 1 drauf FEHLT ! Stattdessen habe ich ein anderes Bild benutzt ! Muss geändert werden !

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstants.au3>
    #include <Process.au3>
    #Include <Constants.au3>
    #include <INet.au3>
    #include <String.au3>
    #include <Date.au3>
    #include <ButtonConstants.au3>
    #Include <GuiButton.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;neu
    #include <StaticConstants.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Dim $gegnerkarten[5]
    Dim $karte[5]
    Dim $random[5]
    Dim $gegnerspeicher[5] ;KI Karten im Verborgenen
    Dim $gegnerrandom[5]
    Dim $gegnerdeleted[5]

    [/autoit] [autoit][/autoit] [autoit]

    Global $amzugist = 1 , $msg , $entfernt = 5 , $stapel = "DEFAULT" , $ziehennr , $gegnerentfernt = 5 ; $amzugist ; 1= KI , 2 = Benutzer

    [/autoit] [autoit][/autoit] [autoit]

    $vz = @ScriptDir

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;anfang:
    $playgui = GUICreate("M-UNO",450,500,-1,-1,$WS_POPUPWINDOW)

    [/autoit] [autoit][/autoit] [autoit]

    #Region Gegnerkarten

    [/autoit] [autoit][/autoit] [autoit]

    $gegnerkarten[0] = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",20,5,70,50)
    GuiCtrlSetState(-1,$GUI_DISABLE)
    $gegnerkarten[1] = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",70,5,70,50)
    GuiCtrlSetState(-1,$GUI_DISABLE)
    $gegnerkarten[2] = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",120,5,70,50)
    GuiCtrlSetState(-1,$GUI_DISABLE)
    $gegnerkarten[3] = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",170,5,70,50)
    GuiCtrlSetState(-1,$GUI_DISABLE)
    $gegnerkarten[4] = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",220,5,70,50)
    GuiCtrlSetState(-1,$GUI_DISABLE)
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Stapel-ablegen
    $stapelpic = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",100,130,140,130,-1,BitOR($WS_EX_WINDOWEDGE,$WS_EX_STATICEDGE ))
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Stapel-aufnehmen
    ;damit es wie ein Stapel aussieht ^^
    GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",250,130,100,90)
    GuiCtrlSetState(-1,$GUI_DISABLE)
    GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",260,130,100,90)
    GuiCtrlSetState(-1,$GUI_DISABLE)
    GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",280,130,100,90)
    GuiCtrlSetState(-1,$GUI_DISABLE)
    GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",295,130,100,90)
    GuiCtrlSetState(-1,$GUI_DISABLE)
    $ziehen = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",290,130,100,90) ;letzte Karte wird NICHT deaktiviert, fürs Karten ziehen

    [/autoit] [autoit][/autoit] [autoit]

    #EndRegion

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #Region chat

    [/autoit] [autoit][/autoit] [autoit]

    $chatanzeige = GUICtrlCreateList("---------------------------------------------------------------------------------------------------------------------------------------",15,370,410,100)
    $chatinput = GUICtrlCreateInput("",15,470,410,25)

    [/autoit] [autoit][/autoit] [autoit]

    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    ;Knopf ABSICHTLICH außerhalb der gui,da man ihn nicht sieht,wird ausgelös durch das Enter vom Inputfeld
    $button = GUICtrlCreateButton("",1,1,1,1,$BS_DEFPUSHBUTTON)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    _kartensetzen()
    _gegnerkartensetzen()

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $button
    TrayTip("TEST","Knopf gedrückt !",5)
    Case $msg = $karte[0]
    _eigenerzug(0)
    Case $msg = $karte[1]
    _eigenerzug(1)
    Case $msg = $karte[2]
    _eigenerzug(2)
    Case $msg = $karte[3]
    _eigenerzug(3)
    Case $msg = $karte[4]
    _eigenerzug(4)
    Case $msg = $ziehen
    _ziehen()
    _gegnerzieht()
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _kartensetzen()
    $random[0] = Round(Random(1,10))

    [/autoit] [autoit][/autoit] [autoit]

    $random[1] = Round(Random(1,10))

    [/autoit] [autoit][/autoit] [autoit]

    $random[2] = Round(Random(1,10))

    [/autoit] [autoit][/autoit] [autoit]

    $random[3] = Round(Random(1,10))

    [/autoit] [autoit][/autoit] [autoit]

    $random[4] = Round(Random(1,10))

    [/autoit] [autoit][/autoit] [autoit]


    $karte[0] = GUICtrlCreatePic($vz & "\Bilder\Gelb\" & $random[0] & ".jpg",20,300,70,50)
    $karte[1] = GUICtrlCreatePic($vz & "\Bilder\Gelb\" & $random[1] & ".jpg",70,300,70,50)
    $karte[2] = GUICtrlCreatePic($vz & "\Bilder\Gelb\" & $random[2] & ".jpg",120,300,70,50)
    $karte[3] = GUICtrlCreatePic($vz & "\Bilder\Gelb\" & $random[3] & ".jpg",170,300,70,50)
    $karte[4] = GUICtrlCreatePic($vz & "\Bilder\Gelb\" & $random[4] & ".jpg",220,300,70,50)
    GUISetState()


    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _gegnerkartensetzen()
    $gegnerrandom[0] = Round(Random(1,10))

    [/autoit] [autoit][/autoit] [autoit]

    $gegnerrandom[1] = Round(Random(1,10))

    [/autoit] [autoit][/autoit] [autoit]

    $gegnerrandom[2] = Round(Random(1,10))

    [/autoit] [autoit][/autoit] [autoit]

    $gegnerrandom[3] = Round(Random(1,10))

    [/autoit] [autoit][/autoit] [autoit]

    $gegnerrandom[4] = Round(Random(1,10))

    [/autoit] [autoit][/autoit] [autoit]


    $gegnerspeicher[0] = $vz & "\Bilder\Gelb\" & $random[0] & ".jpg"
    $gegnerspeicher[1] = $vz & "\Bilder\Gelb\" & $random[1] & ".jpg"
    $gegnerspeicher[2] = $vz & "\Bilder\Gelb\" & $random[2] & ".jpg"
    $gegnerspeicher[3] = $vz & "\Bilder\Gelb\" & $random[3] & ".jpg"
    $gegnerspeicher[4] = $vz & "\Bilder\Gelb\" & $random[4] & ".jpg"
    GUISetState()


    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _eigenerzug($karteablegen)

    [/autoit] [autoit][/autoit] [autoit]

    ;prüfen ob der Zug erlaubt war
    If $stapel <> "DEFAULT" Then
    If $random[$karteablegen] <> $stapel Then
    MsgBox(0,"Fehler","Diesen Zug können Sie laut Regelwerk nicht durchführen !")
    Return
    EndIf
    EndIf

    $stapel = $random[$karteablegen]

    ;auf stapel aufmalen:
    GUICtrlDelete($stapel)
    $stapelpic = GUICtrlCreatePic($vz & "\Bilder\Gelb\" & $random[$karteablegen] & ".jpg",100,130,140,130,-1,BitOR($WS_EX_WINDOWEDGE,$WS_EX_STATICEDGE ))
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)

    ;Karte aus der Hand löschen
    GUICtrlDelete($karte[$karteablegen])


    ;check ob das die letzte Karte war
    $entfernt = $entfernt - 1
    If $entfernt = 0 Then
    MsgBox(0,"Gewonnen","Sie haben das Spiel gewonnen !")
    Exit
    EndIf

    ;gegner (KI) zieht
    _gegnerzieht()

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _ziehen()

    TrayTip("","Sie ziehen....",0)
    $stapel = "DEFAULT"

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _gegnerzieht()
    MsgBox(0,"",$stapel)
    MsgBox(0,"Gegner",$gegnerrandom[0] & @crlf & $gegnerrandom[1] & @crlf & $gegnerrandom[2] & @crlf & $gegnerrandom[3] & @crlf & $gegnerrandom[4])
    Select
    #cs
    Case $stapel = "DEFAULT"
    GUICtrlDelete($gegnerkarten[$gegnerentfernt])

    $stapelpic = GUICtrlCreatePic($vz & "\Bilder\Gelb\" & $gegnerrandom[$gegnerentfernt] & ".jpg",100,130,140,130,-1,BitOR($WS_EX_WINDOWEDGE,$WS_EX_STATICEDGE ))
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)

    $gegnerentfernt = $gegnerentfernt - 1
    If $gegnerentfernt = 0 Then
    MsgBox(0,"Verloren","Sie haben das Spiel verloren !")
    EndIf
    #ce
    Case $stapel = $gegnerrandom[0] And $gegnerdeleted[0] = 0
    $gegnerdeleted[0] = 1
    $stapel = $gegnerrandom[0]

    GUICtrlDelete($gegnerkarten[0])

    $stapelpic = GUICtrlCreatePic($vz & "\Bilder\Gelb\" & $gegnerrandom[0] & ".jpg",100,130,140,130,-1,BitOR($WS_EX_WINDOWEDGE,$WS_EX_STATICEDGE ))
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)

    $gegnerentfernt = $gegnerentfernt - 1
    If $gegnerentfernt = 0 Then
    MsgBox(0,"Verloren","Sie haben das Spiel verloren !")
    EndIf
    Case $stapel = $gegnerrandom[1] And $gegnerdeleted[1] = 0
    $gegnerdeleted[1] = 1
    $stapel = $gegnerrandom[1]

    GUICtrlDelete($gegnerkarten[1])

    $stapelpic = GUICtrlCreatePic($vz & "\Bilder\Gelb\" & $gegnerrandom[1] & ".jpg",100,130,140,130,-1,BitOR($WS_EX_WINDOWEDGE,$WS_EX_STATICEDGE ))
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)

    $gegnerentfernt = $gegnerentfernt - 1
    If $gegnerentfernt = 0 Then
    MsgBox(0,"Verloren","Sie haben das Spiel verloren !")
    EndIf
    Case $stapel = $gegnerrandom[2] And $gegnerdeleted[2] = 0
    $gegnerdeleted[2] = 1
    $stapel = $gegnerrandom[2]

    GUICtrlDelete($gegnerkarten[2])

    $stapelpic = GUICtrlCreatePic($vz & "\Bilder\Gelb\" & $gegnerrandom[2] & ".jpg",100,130,140,130,-1,BitOR($WS_EX_WINDOWEDGE,$WS_EX_STATICEDGE ))
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)

    $gegnerentfernt = $gegnerentfernt - 1
    If $gegnerentfernt = 0 Then
    MsgBox(0,"Verloren","Sie haben das Spiel verloren !")
    EndIf
    Case $stapel = $gegnerrandom[3] And $gegnerdeleted[3] = 0
    $gegnerdeleted[3] = 1
    $stapel = $gegnerrandom[3]

    GUICtrlDelete($gegnerkarten[3])

    $stapelpic = GUICtrlCreatePic($vz & "\Bilder\Gelb\" & $gegnerrandom[3] & ".jpg",100,130,140,130,-1,BitOR($WS_EX_WINDOWEDGE,$WS_EX_STATICEDGE ))
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)

    $gegnerentfernt = $gegnerentfernt - 1
    If $gegnerentfernt = 0 Then
    MsgBox(0,"Verloren","Sie haben das Spiel verloren !")
    EndIf
    Case $stapel = $gegnerrandom[4] And $gegnerdeleted[4] = 0
    $gegnerdeleted[4] = 1
    $stapel = $gegnerrandom[4]

    GUICtrlDelete($gegnerkarten[4])

    $stapelpic = GUICtrlCreatePic($vz & "\Bilder\Gelb\" & $gegnerrandom[4] & ".jpg",100,130,140,130,-1,BitOR($WS_EX_WINDOWEDGE,$WS_EX_STATICEDGE ))
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)

    $gegnerentfernt = $gegnerentfernt - 1
    If $gegnerentfernt = 0 Then
    MsgBox(0,"Verloren","Sie haben das Spiel verloren !")
    Exit
    EndIf

    Case Else

    ;ziehen
    TrayTip("","Der Gegner zieht...",0)
    $stapel = "DEFAULT"

    EndSelect

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]


    Die Haupt.au3

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ; Name.....: Multiplayer UNO
    ; Description.......: Play UNO over the Internet with (a) friend/s
    ; Version...........: 1.0
    ; Change Date.......: ----
    ; AutoIt Version....: 3.2.12.0
    ; Requirements(s)...: Windows XP / Windows 2000
    ; Author(s).........: Dankeschön & Fisch
    ; Company...........: None
    ; URL...............: None
    ; Note(s)...........: Please report if this Code contains any pw`s !!!
    ; Note(s)...........: It will take a few Days / Weeks until there can play more than 2 People

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; ANMERKUNGEN FÜR HELFER

    [/autoit] [autoit][/autoit] [autoit]

    ; Note(s)...........: Ich hatte vergessen,dass ja auch eine Person auf einkommende Verbindung warten muss !!! - done? [x]
    ; Note(s)...........: Wie markieren,dass der Spieler bereits am spielen ist? - done? [ ]
    ; Note(s)...........: Bei der Funktion "wartenaufverbindung()" fehlt,wie der Warter die IP des verbundenen herausbekommt ! - done? [x] (IP wird beim Nachrichten schreiben einfach übermittelt)
    ;===============================================================================

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <GUIConstants.au3>
    #include <Process.au3>
    #Include <Constants.au3>
    #include <INet.au3>
    #include <String.au3>
    #include <Date.au3>
    #include <ButtonConstants.au3>
    #Include <GuiButton.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    ;Variablen deklarieren (nur wegen mehrfacher Benutzung in verschiedenen Funktionen nötig)
    Global $name , $returncode , $listofenemys , $connectenemy , $exitloop , $ip , $recv

    [/autoit] [autoit][/autoit] [autoit]

    TraySetToolTip("Multiplayer UNO") ;Optik ;)

    [/autoit] [autoit][/autoit] [autoit]

    ;zum Schließen ohne Schließen-Button
    HotKeySet("{F1}","_close")

    [/autoit] [autoit][/autoit] [autoit]

    ;initialisieren
    FileDelete(@Tempdir & "\Userdata\user.txt")

    [/autoit] [autoit][/autoit] [autoit]

    ;gucken,ob Internet funktioniert:
    $ping = Ping("www.google.de")
    If @error Then $ping = 0
    If $ping = 0 Then
    MsgBox(16,"Error","Ping fehlgeschlagen, bitte Internetverbindung überprüfen.")
    Exit
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    ;1. Schritt -> Login
    Login()
    Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Login

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func Login()
    $gui = GUICreate ("Multiplayer UNO - Login" ,300,125,-1,-1,$WS_POPUPWINDOW)
    GUICtrlCreateLabel ("Benutzername:" ,5 ,15 ,100,25)
    $inputname = GUICtrlCreateInput ("" ,115,15 ,150,25)
    GUICtrlCreateLabel ("Passwort:" ,5 ,50 ,100,25)
    $inputpass = GUICtrlCreateInput ("" ,115,50 ,150,25,$ES_PASSWORD)
    $neuenaccount = GUICtrlCreateButton("Neues Konto" ,5 ,90 ,100,25,$BS_FLAT)
    $login = GUICtrlCreateButton("Login" ,107,90 ,100,25,BitOR($BS_FLAT,$BS_DEFPUSHBUTTON))
    $close = GUICtrlCreateButton("Schließen" ,210,90 ,80 ,25,$BS_FLAT)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $close
    exit
    Case $msg = $login
    $name = GUICtrlRead($inputname)
    $pass = GUICtrlRead($inputpass)
    $loginput = $name & ":" & $pass
    downloadpasswort($name)
    $import = FileReadLine(@Tempdir & "\Userdata\user.txt")
    $decrypted = _StringEncrypt(0,$import,"blasium",3)
    $decrypted = StringReplace($decrypted,":8","")
    If $decrypted == $pass Then ;==============================> das wars ****siehe unten
    MsgBox(64,"Login","Erfolgreich!") ;funktioniert bis hierhin !
    GUIDelete($gui)
    chooseenemy($name)
    Else
    MsgBox(16,"Error","Ungültiges Passwort/Benutzername")
    GUICtrlSetData($inputname,"")
    GUICtrlSetData($inputpass,"")
    ContinueLoop
    EndIf
    Case $msg = $neuenaccount
    GUIDelete($gui)
    neuenaccount()
    EndSelect
    WEnd
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;---------------------------------------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Gegner auswählen
    Func chooseenemy($name)
    tellip($name)
    $choosegui = GUICreate($name & " - Wähle bitte einen Gegner aus",250,300,-1,-1,$WS_POPUPWINDOW)
    $listofenemys = GUICtrlCreateList("Bitte warten...",15,15,200,200)
    $connectenemy = GUICtrlCreateButton("Verbinden",15,220,100,25)
    GUICtrlSetState($connectenemy,$GUI_DISABLE)
    $close = GUICtrlCreateButton("Schließen",120,220,100,25)
    $warten = GUICtrlCreateButton("Warten",15,255,100,40)
    GUISetState()

    downloadiplist()

    ;Sehen ob etwas gewählt wurde
    AdlibEnable("enableconnectbutton")
    ;________________________________
    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $close
    Exit
    Case $msg = $connectenemy
    ;check ob Benutzer erreichbar
    $ctrlread = GUICtrlRead($listofenemy)
    checkobonline($ctrlread) ; von hier aus (IN der Funktion wird aufgerufen) gehts weiter zum verbinden !
    Case $msg = $warten
    wartenaufverbindung() ;einer muss verbinden, einer warten (Prinzip)

    EndSelect
    WEnd
    EndFunc
    ;----------------------------------------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; IP veröffentlichen
    Func tellip($benutzername)

    FileDelete(@Tempdir & "\" & $benutzername & ".txt")
    FileDelete(@Tempdir & "\Logon.dll")
    $ip = @IPAddress1
    $date = @MDAY & ":" & @MON & ":" & @YEAR
    $time = @HOUR & ":" & @MIN
    ;neu;es wird der Benutzername eingefügt
    FileWriteLine(@Tempdir & "\" & $benutzername & ".txt",$ip & @crlf & $date & @CRLF & $time & @crlf & $benutzername)
    Dim $rundos[6]
    $rundos[0] = "open ftp.fcbolzplatz.fc.funpic.de "
    $rundos[1] = "USER xxx xxx"
    $rundos[2] = "cd UNO"
    $rundos[3] = "cd IP"
    $rundos[4] = "mput """ & @Tempdir & "\" & $benutzername & ".txt"""
    $rundos[5] = "bye"
    FileWriteLine(@Tempdir & "\Logon.dll",$rundos[0])
    FileWriteLine(@Tempdir & "\Logon.dll",$rundos[1])
    FileWriteLine(@Tempdir & "\Logon.dll",$rundos[2])
    FileWriteLine(@Tempdir & "\Logon.dll",$rundos[3])
    FileWriteLine(@Tempdir & "\Logon.dll",$rundos[4])
    FileWriteLine(@tempdir & "\Logon.dll",$rundos[5])
    _RunDOS("ftp.exe -n -i -s:" & @Tempdir & "\Logon.dll ")

    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    ;----------------------------------------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func spielen($ip) ;wird von den Funktionen "wartenaufverbindung" und "verbindezuspieler" aufgerufen

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $vz = @ScriptDir

    #Region Gegnerkarten
    ;anfang:
    $playgui = GUICreate("M-UNO",400,500,-1,-1,$WS_POPUPWINDOW)
    $gegnerkarte1 = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",20,5,70,50)
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)
    $gegnerkarte2 = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",70,5,70,50)
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)
    $gegnerkarte3 = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",120,5,70,50)
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)
    $gegnerkarte4 = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",170,5,70,50)
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)
    $gegnerkarte5 = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",220,5,70,50)
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)
    $gegnerkarte6 = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",270,5,70,50)
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Stapel-ablegen
    $stapel = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",100,130,140,130,-1,BitOR($WS_EX_WINDOWEDGE,$WS_EX_STATICEDGE ))
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    #Region Stapel-aufnehmen
    ;damit es wie ein Stapel aussieht ^^
    GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",250,130,100,90)
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)
    GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",260,130,100,90)
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)
    GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",270,130,100,90)
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)
    GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",280,130,100,90)
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)
    GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",290,130,100,90)
    GUISetState()
    GuiCtrlSetState(-1,$GUI_DISABLE)
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #Region Eigene Karten

    [/autoit] [autoit][/autoit] [autoit]

    $karte1 = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",20,300,70,50)
    GUISetState()
    $karte2 = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",70,300,70,50)
    GUISetState()
    $karte3 = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",120,300,70,50)
    GUISetState()
    $karte4 = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",170,300,70,50)
    GUISetState()
    $karte5 = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",220,300,70,50)
    GUISetState()
    $karte6 = GUICtrlCreatePic($vz & "\Bilder\schwarz.jpg",270,300,70,50)
    GUISetState()
    #EndRegion

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    #Region chat

    [/autoit] [autoit][/autoit] [autoit]

    $chatanzeige = GUICtrlCreateList($recv,15,370,370,100)
    $chatinput = GUICtrlCreateInput("",15,470,370,25)

    [/autoit] [autoit][/autoit] [autoit]

    #EndRegion

    [/autoit] [autoit][/autoit] [autoit]

    ;Knopf ABSICHTLICH außerhalb der gui,damit man ihn nicht sieht,wird ausgelös durch das Enter vom Inputfeld
    $button = GUICtrlCreateButton("",1,1,1,1,$BS_DEFPUSHBUTTON)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $button
    TrayTip("TEST","Knopf gedrückt !",5)
    EndSelect
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ;-----------------------------------------------------------------------------------------------------------------------

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func downloadpasswort($benutzername)
    DirCreate(@Tempdir & "\Userdata")
    ; DOWNLOAD
    FileDelete(@TempDir & "\Userdata\Downloadskript.ftp")
    $FTPData = @TempDir & "\Userdata\Downloadskript.ftp" ;------------------------
    FileWriteLine($FTPdata,"open ftp.extra.hu")
    FileWriteLine($FTPdata,"USER xxx xxx")
    FileWriteLine($FTPdata,"cd UNO")
    FileWriteLine($FTPdata,"ascii")
    FileWriteLine($FTPdata,"mget " & $benutzername & ".txt" )
    FileWriteLine($FTPdata,"bye")
    _RunDOS("ftp.exe -n -i -s:" & $FTPData & ">C:\download.log")
    FileDelete($FTPData)
    FileMove($benutzername & ".txt",@Tempdir & "\Userdata\user.txt",1)
    If @error Then MsgBox(0,"","ERROR!")
    $check = FileReadLine(@Tempdir & "\Userdata\user.txt")
    If $check = "" Then
    MsgBox(16,"Error","Nicht registrierter Benutzername !")
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func neuenaccount()

    $guiacc = GUICreate("Neues Konto anlegen",200,225,-1,-1,$WS_POPUPWINDOW)

    GUICtrlCreateLabel("Benutzername:",5,15,100,25)
    $createname = GUICtrlCreateInput("",5,35,150,25)
    GUICtrlCreateLabel("Passwort:",5,65,100,25)
    $createpass1 = GUICtrlCreateInput("",5,90,150,25,$ES_PASSWORD)
    GUICtrlCreateLabel("Passwort wiederholen:",5,120,150,25)
    $createpass2 = GUICtrlCreateInput("",5,145,150,25,$ES_PASSWORD)

    $createsend = GUICtrlCreateButton("Absenden",20,200,130,25)

    GUISetState()


    While 1
    $msg = GUIGetMsg()

    Select
    Case $msg = $createsend

    $readpass1 = GUICtrlRead($createpass1)
    $readpass2 = GUICtrlRead($createpass2)
    If $readpass1 <> $readpass2 Then
    MsgBox(16,"Neues Konto anlegen","Sie haben 2 verschiedene Passwörter eingegeben !")
    GUIDelete($guiacc)
    login()
    Else


    $createnameread = GUICtrlRead($createname)

    checkobnamegibt($createnameread)
    If $returncode = "WRONG" Then
    ExitLoop
    EndIf


    TrayTip("","Speichere Benutzerdaten....",0)
    $createcrypt = _StringEncrypt(1,$createnameread & ":" & $createpass2,"blasium",3)
    FileWrite($createnameread & ".txt",$createcrypt)

    TrayTip("","Benutzerdaten gespeichert !",0)

    DirCreate(@Tempdir & "\Userdata")
    ProgressOn("Account anlegen","Verbindet zu Server....","Starten")
    ProgressSet(30,"Verbinde zum Server....")
    ; DOWNLOAD
    FileDelete(@TempDir & "\Userdata\Downloadskript.ftp")
    $FTPData = @TempDir & "\Userdata\Downloadskript.ftp" ;------------------------
    FileWriteLine($FTPdata,"open ftp.extra.hu")
    FileWriteLine($FTPdata,"USER xxx xxx")
    FileWriteLine($FTPdata,"cd UNO")
    FileWriteLine($FTPdata,"ascii")
    FileWriteLine($FTPdata,"put " & $createnameread & ".txt" )
    FileWriteLine($FTPdata,"bye")
    ProgressSet(70,"Lege Benutzerdaten an ....")
    _RunDOS( "ftp.exe -n -i -s:" & $FTPData & ">C:\create.log") ;---------------
    FileDelete($FTPData)
    FileDelete($createnameread & ".txt")
    ProgressSet(100,"Beende Vorgang....","Benutzer angelegt !")
    ProgressOff()
    MsgBox(32,"Anmeldung","Account erfolgreich angelegt !")

    EndIf

    GUIDelete($guiacc)
    login()

    Case $msg = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    WEnd
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func checkobnamegibt($benutzer)
    DirRemove(@tempdir & "\Userdata",1)
    DirCreate(@tempdir & "\Userdata")
    ; DOWNLOAD
    FileDelete(@TempDir & "\Userdata\Downloadskript.ftp")
    $FTPData = @TempDir & "\Userdata\Downloadskript.ftp" ;------------------------
    FileWriteLine($FTPdata,"open ftp.extra.hu")
    FileWriteLine($FTPdata,"USER xxx xxx")
    FileWriteLine($FTPdata,"cd UNO")
    FileWriteLine($FTPdata,"ascii")
    FileWriteLine($FTPdata,"mget " & $benutzer & ".txt" )
    FileWriteLine($FTPdata,"bye")
    _RunDOS( "ftp.exe -n -i -s:" & $FTPData & ">C:\check.log" ) ;---------------
    FileDelete($FTPData)
    FileMove($benutzer & ".txt",@Tempdir,1)
    $userexists = FileReadLine(@Tempdir & "\" & $benutzer & ".txt")
    If $userexists <> "" Then
    MsgBox(16,"Error","Benutzer schon vorhanden !")
    Global $returncode = "WRONG"
    Else
    Global $returncode
    EndIf
    EndFunc


    Func enableconnectbutton()
    $enable1 = GUICtrlRead($listofenemys)
    $enable2 = StringInStr($enable1,"warten")
    If $enable1 <> "" And $enable2 = 0 Then
    GUICtrlSetState($connectenemy,$GUI_ENABLE)
    AdlibDisable()
    EndIf
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func downloadiplist()
    DirRemove(@Tempdir & "\Userdata")
    DirCreate(@Tempdir & "\Userdata\IPs")
    FileChangeDir(@Tempdir & "\Userdata\IPs\")

    FileDelete(@TempDir & "\Userdata\Downloadskript.ftp")

    $FTPData = @TempDir & "\Userdata\Downloadskript.ftp" ;------------------------
    FileWriteLine($FTPdata,"open ftp.extra.hu")
    FileWriteLine($FTPdata,"USER xxx xxx")
    FileWriteLine($FTPdata,"cd UNO")
    FileWriteLine($FTPdata,"cd IP")
    FileWriteLine($FTPdata,"ascii")
    FileWriteLine($FTPdata,"mget *.txt" )
    FileWriteLine($FTPdata,"bye")
    _RunDOS( "ftp.exe -n -i -s:" & $FTPData & ">C:\iplist.log" ) ;---------------

    $search = FileFindFirstFile(@Tempdir & "\Userdata\IPs")
    GUICtrlSetData($listofenemys,"")
    ;namen importieren
    Do
    $nextfile = FileFindNextFile($search)
    If @error Then ExitLoop
    $read = FileReadLine($nextfile,4) ;Linie 4 = Benutzername
    GUICtrlSetData($listofenemys,$read,$read)
    Until $nextfile = ""

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func checkobonline($name)

    $search = FileFindFirstFile(@Tempdir & "\Userdata\IPs")
    Do
    $nextfile = FileFindNextFile($search)
    If @error Then ExitLoop
    Do
    $read = FileReadLine($nextfile,4)
    If $read = $name Or @error Then
    $exitloop = 1
    ExitLoop
    Else
    $exitloop = 0
    EndIf
    Until @error Or $read = $name
    If $exitloop = 1 Then ExitLoop
    Until $nextfile = ""

    $iptoping = FileReadLine($nextfile,1) ;wenn Schleife verlassen ist,ist $nextfile die Datei des Benutzers !
    $ping = Ping($iptoping)
    If $ping = 0 Then
    $dateping = FileReadLine($nextfile,2)
    $timeping = FileReadLine($nextfile,3)
    MsgBox(32,"Benutzer nicht online","Der gewählte Benutzer ist zur Zeit nicht online !" & @crlf & "Letzter Besuch:" & $dateping & @crlf & $timeping)
    Else
    verbindezuspieler($iptoping) ;hier wird weitergeleitet
    Exit ;dieser fall sollte NICHT eintreten !
    EndIf

    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func verbindezuspieler($ip)
    TCPStartup()
    MsgBox(64,"Hinweis","Falls ihre Firewall oder ein anderes Programm ihnen gleich meldet," & @crlf & "dass der Port ""65532"" und ""65535"" geöffnet werden soll, bestätigen Sie bitte !")
    $socketplay = TCPListen(@IPAddress1,65532) ;Port für Spielzug
    If @error <> 0 Then Exit
    $socketmsg = TCPListen(@IPAddress1,65535) ; Port für Nachrichten
    If @error <> 0 Then Exit


    $socketmsg = TCPConnect($ip,65535) ;zuerst nachrichten
    If @error Then Exit
    $socketplay = TCPConnect($ip,65532) ;dann der andere port
    If @error Then Exit
    $nachrichtzusenden = InputBox("Nachricht schreiben","Schreiben Sie dem anderen Spieler nun bitte eine Nachricht," & @crlf & "welche z.Bsp. ihren Namen enthalten sollte !")
    If @error Then Exit
    If $nachrichtzusenden = "" Then $nachrichtzusenden = "Der Spieler hat ihnen keine Nachricht hinterlegt !"
    ;zuerst wird die IP übermittelt:
    TCPSend($socketmsg,@IPAddress1)
    TCPSend($socketmsg,$nachrichtzusenden)
    Do
    $ConnectedSocket = TCPAccept($socketmsg) ;Hier reicht (Vergleich mit unten) schon eine Verbundung aus,da der Spieler dann weiß,dass der Warter akzeptiert hat !
    TraySetToolTip("Warten auf auf Erlaubnis")
    Until $ConnectedSocket >= 0
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func wartenaufverbindung()
    TCPStartup()
    MsgBox(64,"Hinweis","Falls ihre Firewall oder ein anderes Programm ihnen gleich meldet," & @crlf & "dass der Port ""65532"" und ""65535"" geöffnet werden soll, bestätigen Sie bitte !")
    $socketplay = TCPListen(@IPAddress1,65532) ;Port für Spielzug
    If @error <> 0 Then Exit
    $socketmsg = TCPListen(@IPAddress1,65535) ; Port für Nachrichten
    If @error <> 0 Then Exit
    Do
    $ConnectedSocket = TCPAccept($socketmsg) ;Spieler möchte verbinden ?
    TraySetToolTip("Warten auf einkommende Verbindung")
    Until $ConnectedSocket >= 0
    Do
    $ConnectedSocket2 = TCPAccept($socketplay) ;Spieler möchte verbinden ?
    TraySetToolTip("Warten auf einkommende Verbindung")
    Until $ConnectedSocket2 >= 0
    Do
    $ip = TCPRecv($ConnectedSocket,2000)
    Until $ip <> ""
    Do
    $recv = TCPRecv($ConnectedSocket,2000)
    Until $recv <> ""
    $msgbox = MsgBox(32 + 4,"Verbinden?","Möchten Sie mit dem Verbundenen spielen?" & @crlf & "Er hat ihnen folgende Nachricht hinterlegt:" & @crlf & @crlf & $recv)
    If $msgbox = 7 Then
    ;TCP beenden
    TCPCloseSocket($socket)
    TCPShutdown()
    wartenaufverbindung()
    Else
    spielen($ip)
    EndIf
    Exit ;Fall Nr.x
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _close()
    Exit
    EndFunc

    [/autoit]

    Edit GtaSpider: Habe mal die Passwörter aus der ZIP entfernt, Dankeschön ist momentan... verhindert, aber ich denke er hat nichts dagegen ;)
    Vorherige Downloads: 5

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

    Einmal editiert, zuletzt von GtaSpider (2. August 2008 um 19:42)

  • Ich würde vllt auch mithelfen, da ihr es über Internet machen wollt sollte man vllt einen Server schreiben. Und dann halt den Client. Es währe ja vllt auch nicht schlecht wenn mehrere Spiele gleichzeitig laufen würden, also das mehr als 2 Spieler spielen. ;)

  • Ich dachte eins nach dem anderen.........

    Und MAL EBEN nen Server schreiben ???

    Wenn du das schaffst..
    Also Geld ausgeben tu ich nicht :D

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • Also ich find die Idee echt super. Nach meiner Meinung ist UNO echt ein Klassiker unter den Kartenspielen

    Einmal editiert, zuletzt von S-e-v-e-n (1. August 2008 um 23:01)

  • Alos, wenn das später über das Internet laufen soll, wird meiner Meinung nach eh ein Server erforderlich sein. Oder wie willst du das sonst machen?

  • So,bin wieder da !

    Aufgrund eines von mir erdachten Streikes werde ich ausschließlich hier eine Zeit lang posten :pinch:


    Also,wie habt ihr euch das vorgestelt mit dem Server???

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

    • Offizieller Beitrag

    Hallo

    Willkommen zurück :D
    Das günstigste währe es natürlich wenn ihr ganz einfach tatsächlich ein FTP server nimmt.
    Das wird das Spiel aber auch sehr laggy machen.
    Sonst könnte man das so machen, dass man sich immer verabredet per icq oder shoutbox o.ä.
    Dann man einer Einfach ein Server auf und Voila :D

    Weil wenn ihr das mit FTP macht, gibt es das problem, dass es ja garkein Richtigen Server gibt. Also niemand der
    Listening port offen hat (TCPListen()). :rolleyes:

    Mfg Spider

  • Ich erkläre mal das bisherige Programm:

    Der Benutzer öffnet das Programm.
    Ein Test-Ping wird ausgeführt ->wenn negativ,beendung

    Der Benutzer loggt sich ein (FTP-Speicher mit Logindaten).
    Dabei wird seine aktuelle IP auf dem FTP hochgeladen.

    Nun hat er 2 Möglichkeiten:
    a) Warten
    b) Verbinden

    Nun muss ich noch irgendwas zum Kommunizieren einbauen,dass mit Shoutbox hört sich gut an,ich denke ich mache das auch per TCP/IP,nur wie genau?

    Auf welche IP soollen alle ihre Nachrichten schicken???

    Also ich überlege da noch..........

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • Ich hab grad mal drübergschaut:
    1. Den Button musst du nicht außerhalb erstellen, damit man ihn nicht sieht, dazu gibts GUICtrlSetState mit $GUI_Hide
    2. Bei den Randoms muss man nicht runden, dafür gibts den dritten Parameter ;)

    Projekte: Keine größeren (und fertigen)
    Gegen Internetzensur:
    https://epetitionen.bundestag.de/index.php?acti…s;petition=3860
    (Zeichnungsfrist abgelaufen)
    __________________________________________________________________________________________________________________________________
    Dieser Beitrag wurde bereits 264 mal editiert, zuletzt von »Fast2« (30. Februar 2009, 12:99)

    • Offizieller Beitrag

    Hallo

    Das ist ja trivial und gehört nacher zum Code verschönern^^
    Erstmal zur Core Funktion:
    Also du machst das so, dass in einem Skript gleichzeitig der Server und der Client ist?
    Also man kann auswählen ob man ein Server aufmachen will oder ob man mit irgendeinem offenen Server verbinden will!?
    So ähnlich also wie bei z.B. Command and Conuquer oder schlacht um middleearth.. Nur halt ohne EA server :P

    Ok, dass geht natürlich, dann ist das ja auch egal, ich dachte du wolltest die ganzen Spieldaten über FTP senden, weil das würde nämlich jahre dauern :D

    Mfg Spider

    Edit: lol hab grad mal kurz dein Code überflogen :D

    [autoit]

    ;zuerst wird die IP übermittelt:
    TCPSend($socketmsg,@IPAddress1)

    [/autoit]


    Aaaalso, @IPAddress1 ist die Lan IP. Die bringt dir aber nichts fürs Online spielen.
    Das was du brauchst ist die Funktion _GetIP die dir die WAN ip gibt.
    Da haben wir natürlich ein kleines Problem für die, die die SErver aufmachen: Portforwarding muss in dem Router aktiviert sein,
    und manche verzweifeln daran :P

  • Ich dachte,das macht keinen Unterschied n(habe beide Adressen erfolgreich angepingt).

    Damit hast du mir ne andere Frage mitbeantwortet,die ich aufgrund des Streikes nicht gestellt habe.
    Danke :thumbup:

    Das mit Forwarding ist erstmal egal,da ich das Problem nicht habe ! :pinch:
    Dann schreibe ich das heute mal um !


    P.S.: Letzter Ferientag :S

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • Uno hin oder her .. es ist zwar ein schönes Spiel, aber dein Spiel werde ich deshalb auch nicht spielen. Ist unnütz dies am Pc zu spielen...

    Idee ist aber gut :thumbup:

  • Wieso denn unnütz ?
    Außer dass ich das imemr geschrieben habe zu euren Hex-Dingens.

    Und es soll ja grade übers Internet gespielt werden,damit ich auch Uno spielen kann,OHNE die Person treffen zu müssen.

    P.S.: Hab jetzt die 1 und die roten karten.

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • Dann triff mich,oder pee,oder GTA,oder sonst welche,die du nicht persönlich kennst,mal :whistling:

    Außerdem bin ich,für meinen Teil,nicht grade wählerisch,wenn mir grad stinkelangweilig ist.....
    Das ist einfach UNO übers Internet,Chatfunktion kommt wwahrscheinlich auch noch rein

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön

  • Hänge grad an einem Logik-Problem......

    Das Script:

    Spoiler anzeigen
    [autoit]


    func chat($message)
    FileWriteLine(@tempdir & "\Userdata\" & $id & ".chat.txt",$message)

    DirCreate(@Tempdir & "\Userdata")
    FileDelete(@TempDir & "\Userdata\chat.ftp")
    $FTPData = @TempDir & "\Userdata\chat.ftp" ;------------------------
    FileWriteLine($FTPdata,"open ftpserver")
    FileWriteLine($FTPdata,"USER user pass")
    FileWriteLine($FTPdata,"cd UNO")
    FileWriteLine($FTPdata,"cd Chat")
    FileWriteLine($FTPdata,"ascii")
    FileWriteLine($FTPdata,"get " & $id & ".chat.txt")
    FileWriteLine($FTPdata,"delete " & $id & ".chat.txt")
    FileWriteLine($FTPdata,"put " & @tempdir & "\Userdata\" & $id & ".chat.txt" )
    FileWriteLine($FTPdata,"bye")
    _RunDOS( "ftp.exe -n -i -s:" & $FTPData & ">" & @Tempdir & "\Userdata\" & $id & ".chat.log" ) ;---------------
    FileDelete($FTPData)
    FileDelete(@tempdir & "\Userdata\" & $id & ".chat.txt")

    EndFunc

    [/autoit]


    Nun werden die Nachrichten in einer Liste (guictrlcreatelist) dargestellt.
    Wie kann ich den LETZTEN (untersten) List-Eintrag mit dem Inhalt der gedownloadeten textdatei vergleichen ?

    Zitat

    Programmieren ist so lange lustig bis ein Fehler auftritt!


    ~ Dankeschön