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
;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>
;neu
#include <StaticConstants.au3>
Dim $gegnerkarten[5]
Dim $karte[5]
Dim $random[5]
Dim $gegnerspeicher[5] ;KI Karten im Verborgenen
Dim $gegnerrandom[5]
Dim $gegnerdeleted[5]
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)
#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
#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
#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
#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)
#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)
GUISetState()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]_kartensetzen()
_gegnerkartensetzen()
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
Func _kartensetzen()
$random[0] = Round(Random(1,10))
$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
Func _gegnerkartensetzen()
$gegnerrandom[0] = Round(Random(1,10))
$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
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
Func _ziehen()
TrayTip("","Sie ziehen....",0)
$stapel = "DEFAULT"
EndFunc
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
Die Haupt.au3
Spoiler anzeigen
;===============================================================================
; 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
; 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)
;===============================================================================
#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>
;Variablen deklarieren (nur wegen mehrfacher Benutzung in verschiedenen Funktionen nötig)
Global $name , $returncode , $listofenemys , $connectenemy , $exitloop , $ip , $recv
TraySetToolTip("Multiplayer UNO") ;Optik
[/autoit] [autoit][/autoit] [autoit];zum Schließen ohne Schließen-Button
HotKeySet("{F1}","_close")
;initialisieren
FileDelete(@Tempdir & "\Userdata\user.txt")
;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
;1. Schritt -> Login
Login()
Exit
; 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)
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]; 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
;----------------------------------------------------------------------------------------------------------------------
; 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]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
#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
#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
#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
#Region chat
[/autoit] [autoit][/autoit] [autoit]$chatanzeige = GUICtrlCreateList($recv,15,370,370,100)
$chatinput = GUICtrlCreateInput("",15,470,370,25)
#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)
GUISetState()
[/autoit] [autoit][/autoit] [autoit]While 1
$msg = GUIGetMsg()
Select
Case $msg = $button
TrayTip("TEST","Knopf gedrückt !",5)
EndSelect
WEnd
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
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
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
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
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
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
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
Func _close()
Exit
EndFunc
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