Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 08:45

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Kleines Problemmm....

Discussion on Kleines Problemmm.... within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
arisha's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 76
Received Thanks: 6
Question Kleines Problemmm....

Wenn ich meinen Chat starte kommt dauernt der Fehler :
==> Variable used without being declared.:
_FileWriteLog(@ScriptDir & "\" & $sGeneralLogName, $sData)
_FileWriteLog(@ScriptDir & "\" & ^ ERROR


Was muss ich oben drüber schreiben???

Global $sGeneralLogName <----Klappt net


thx for help
arisha is offline  
Old 05/21/2010, 20:15   #2


 
Al Kappaccino's Avatar
 
elite*gold: 179
Join Date: Oct 2009
Posts: 7,853
Received Thanks: 8,558
Könnt sein das $sGeneralLogName schon irgendwo im gebrauch ist, oder du erstmal $sGeneralLogName einen Wert oder sonstiges zuweisen musst.
Ein script wäre hilfreich
Al Kappaccino is offline  
Old 05/21/2010, 21:02   #3
 
arisha's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 76
Received Thanks: 6
Exclamation

Hier ist der Script .... Fehler ist in Zeile 355 oder schaut nach einem Pfeil am Anfang der Zeile ------>>> :

Code:
#include <Array.au3>
#include <File.au3>
#include <GuiListView.au3>
#include <Misc.au3>
#include <Timers.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
#include <WinAPI.au3>
#include <EditConstants.au3>
#include <ButtonConstants.au3>
#include <Date.au3>

$tGes = _Timer_Init()

LogFile("@compiled: " & @Compiled, "Programm")
LogFile("Pfad zur Exe: " & @AutoItExe, "Programm")
LogFile("PID: " & @AutoItPID, "Programm")
LogFile("AutoItVersion: " & @AutoItVersion, "Programm")
LogFile("", "Programm")

If TCPStartup() <> 1 Then
	MsgBox(48, "Error", "TCP-Service konnte nicht gestartet werden!" & @LF & _
			"Programm wird beendet!")
	Exit
EndIf

LogFile("TCP-Service erfolgreich gestartet", "Programm")

Global Const $sTitle = "Chat Server"
Global Const $sGUITitle = "Client-Verwaltung"
Global Const $sIP = @IPAddress1
Global Const $sPort = 2150
Global Const $MainSocket = TCPListen($sIP, $sPort)
Global Const $sPCNetworkName = @ComputerName
Global Const $sBanListPath = @ScriptDir & "\Banlist.txt"

LogFile("Konstanten definiert", "Programm")
LogFile("", "Programm")
LogFile("Server-IP: " & $sIP, "Programm")
LogFile("Server-Port: " & $sPort, "Programm")
LogFile("Computername: " & $sPCNetworkName, "Programm")
LogFile("", "Programm")
LogFile("Abhör-Anschluss für eingehende Verbindung (Socket): " & $MainSocket, "Programm")
LogFile("", "Programm")

If Not FileExists($sBanListPath) Then _FileCreate($sBanListPath)

Global $sTitleChat = "Multichat"
Global $tTrayTipTimer
Global $bRestart = False
Global $sDataAdmin
Global $iMaxIndexClientList
Global $iHours
Global $iMins
Global $iSecs
Global $iLastMins
Global $iLastHour
Global $Time
Global $aBanList[1]
Global $BanMode
Global $sBannedUser

_FileReadToArray($sBanListPath, $aBanList)
_ArrayDelete($aBanList, 0)

Dim $aUsers[1][4]

If _Singleton($sGUITitle) = 0 Then
	LogFile("Zweite Instanz geschlossen! - Nur eine Instanz erlaubt!", "Programm")
	LogFile("", "Programm")
	Exit
EndIf

Opt("TrayOnEventMode", 1)
Opt("GuiOnEventMode", 1)
Opt("TrayAutoPause", 0)
Opt("TrayMenuMode", 1)

If _VersionCompare(@AutoItVersion, "3.3.1.0") = -1 Then
	AdlibEnable("RefreshStuff")
	AdlibEnable("CheckSocket")
	AdlibEnable("CheckConnection", 2000)
	AdlibEnable("CheckIncoming")
Else
	AdlibRegister("RefreshStuff")
	AdlibRegister("CheckSocket")
	AdlibRegister("CheckConnection", 2000)
	AdlibRegister("CheckIncoming")
EndIf

TrayTipExt("Server IP: " & $sIP & "" & @LF _
		 & "Computername: " & $sPCNetworkName)

TraySetToolTip("Server IP: " & $sIP & "" & @LF _
		 & "Computername: " & $sPCNetworkName)

#Region ### TrayMenu
TrayCreateItem("Verwaltung")
TrayItemSetOnEvent(-1, "ToggleClientGUI")
TrayCreateItem("IP in Zwischenablage kopieren")
TrayItemSetOnEvent(-1, "CopyIPClipboard")
TrayCreateItem("Chatchronik öffnen")
TrayItemSetOnEvent(-1, "OpenChatLog")
TrayCreateItem("")
TrayCreateItem("Server neu starten")
TrayItemSetOnEvent(-1, "_Exit")
TrayCreateItem("Beenden")
TrayItemSetOnEvent(-1, "_Exit")
TrayCreateItem("")
TrayCreateItem("Chat beitreten (als Admin)")
TrayItemSetOnEvent(-1, "_AdminChat")
#EndRegion ### TrayMenu

#Region ### VerwaltungGUI
$hClientverwaltung = GUICreate($sGUITitle, 312, 248, 198, 131)
$Group1 = GUICtrlCreateGroup("Verbundene Clients ", 0, 0, 185, 241)
$ListView1 = GUICtrlCreateListView("Name|IP", 8, 16, 169, 217)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 70)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 95)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Kick", 192, 8, 115, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "KickSelected")
$Button2 = GUICtrlCreateButton("GUI beenden", 192, 104, 115, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "ToggleClientGUI")
$Button3 = GUICtrlCreateButton("Server beenden", 192, 136, 115, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "_Exit")
$Button4 = GUICtrlCreateButton("Server neu starten", 192, 168, 115, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "_Exit")
$Button5 = GUICtrlCreateButton("Erneuern", 192, 72, 115, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "ShowClients")
$Button6 = GUICtrlCreateButton("Bann", 192, 40, 115, 25, $WS_GROUP)
GUICtrlSetOnEvent(-1, "BanSelected")
GUISetState(@SW_HIDE, $hClientverwaltung)
#EndRegion ### VerwaltungGUI

#Region ### ChatGUI
$hMainGUI = GUICreate($sTitleChat, 750, 424, 203, 150)
$Edit1 = GUICtrlCreateEdit("", 0, 0, 617, 393, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY, $ES_WANTRETURN, $WS_HSCROLL, $WS_VSCROLL))
GUICtrlSetData(-1, "")
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUICtrlSetCursor(-1, 2)
$Input1 = GUICtrlCreateInput("", 0, 392, 521, 29)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUICtrlSetCursor(-1, 5)
$Button6 = GUICtrlCreateButton("Senden", 520, 392, 97, 29, BitOR($BS_DEFPUSHBUTTON, $BS_CENTER, $BS_VCENTER, $WS_GROUP))
GUICtrlSetOnEvent(-1, "_Send")
$ListView2 = GUICtrlCreateListView("", 616, 0, 129, 420)
GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUISetState(@SW_HIDE, $hMainGUI)
#EndRegion ### ChatGUI

#Region ###
$hBanMsgBox = GUICreate("Wirklich verbannen?", 342, 103, 206, 133, BitOR($WS_CAPTION, $WS_BORDER, $WS_CLIPSIBLINGS))
$Label1 = GUICtrlCreateLabel("", 16, 24, 308, 20)
$Button7 = GUICtrlCreateButton("Permanent", 48, 64, 75, 25, $WS_GROUP)
$Button8 = GUICtrlCreateButton("Temporär", 128, 64, 75, 25, $WS_GROUP)
$Button9 = GUICtrlCreateButton("Gar nicht", 208, 64, 75, 25, $WS_GROUP)
GUISetState(@SW_HIDE, $hBanMsgBox)
#EndRegion ###

GUISetOnEvent($GUI_EVENT_CLOSE, "ToggleClientGUI", $hClientverwaltung)
GUISetOnEvent($GUI_EVENT_CLOSE, "HideChatGUI", $hMainGUI)

GUICtrlSetState($Input1, $GUI_FOCUS)

Global $hListView1 = GUICtrlGetHandle($ListView1)
Global $hListView2 = GUICtrlGetHandle($ListView2)

_GUICtrlListView_AddColumn($hListView2, "Andere Clients", 125)

While 1
	Sleep(100)
WEnd

Func CheckSocket()
	$TempSocket = TCPAccept($MainSocket)
	If $TempSocket <> -1 Then
		LogFile("Verbindungsanfrage von " & SocketToIP($TempSocket), "Programm")
		LogFile("", "Programm")
		If MsgBox(48 + 4, "Neuer Cient", "Ein neuer Client will sich mit dem Server verbinden!" & @LF & _
				"Daten:" & @LF & _
				"IP: " & SocketToIP($TempSocket) & @LF & _
				"Zulassen?", 15) = 6 Then
			ReDim $aUsers[UBound($aUsers, 1) + 1][4]
			$aUsers[UBound($aUsers, 1) - 1][0] = $TempSocket
			$aUsers[UBound($aUsers, 1) - 1][1] = SocketToIP($TempSocket)
			TrayTipExt("Neuer Client verbunden: '" & $aUsers[UBound($aUsers, 1) - 1][1] & "'")
			TCPSend($TempSocket, "//Accept")
		Else
			TCPCloseSocket($TempSocket)
		EndIf
	EndIf

	$TempSocket = ""

EndFunc   ;==>CheckSocket

Func CheckIncoming()
	Local $aData[1]
	Local $TempUsers

	For $iIndex = 0 To UBound($aUsers, 1) - 1
		$TempData = TCPRecv($aUsers[$iIndex][0], 8192)
		Select

			Case StringLeft($TempData, 6) = "//Name"
				$TempData = StringTrimLeft($TempData, 7)
				$TempData = StringTrimRight($TempData, 1)
				If $TempData = "" Then ContinueCase
				$aUsers[$iIndex][2] = $TempData
				$TempSearchResultName = _ArraySearch($aUsers, $TempData, _ArraySearch($aUsers, $TempData) + 1)

				If $TempSearchResultName <> -1 And StringLen($aUsers[$TempSearchResultName][2]) > 0 Then
					TCPSend($aUsers[$TempSearchResultName][0], "//Kick(DoubleName)")
					TCPCloseSocket($aUsers[$TempSearchResultName][0])

					For $i = 1 To UBound($aUsers, 1) - 1
						If $aUsers[$i][0] = "" Then ContinueLoop
						TCPSend($aUsers[$i][0], "Server|" & $sIP & "|'" & $aUsers[$TempSearchResultName][2] & "' wurde vom Server gekickt, weil der Name bereits vergeben ist!")
						LogFile("Server => " & $aUsers[$i][2] & ": '" & $aUsers[$TempSearchResultName][2] & "' wurde vom Server gekickt, weil der Name bereits vergeben ist!", "Chat")
					Next
					WriteMemo("'" & $aUsers[$TempSearchResultName][2] & "' wurde vom Server gekickt, weil der Name bereits vergeben ist!", "Server")
					$aUsers[$TempSearchResultName][0] = ""
					$aUsers[$TempSearchResultName][1] = ""
					$aUsers[$TempSearchResultName][2] = ""
					$aUsers[$TempSearchResultName][3] = ""
				EndIf

				For $i = 1 To UBound($aUsers, 1) - 1
					$TempUsers = $aUsers[$i][2] & ";" & $TempUsers
				Next

				For $i = 1 To UBound($aUsers, 1) - 1
					If $aUsers[$i][0] = "" Then ContinueLoop
					TCPSend($aUsers[$i][0], "//Users(" & $TempUsers & ")")
					If $TempSearchResultName = -1 Then LogFile("Server => " & $aUsers[$i][2] & ": '" & $TempData & "' ist dem Chat beigetreten! IP: (" & $aUsers[$i][1] & ")", "Chat")
				Next
				WriteMemo("'" & $TempData & "' ist dem Chat beigetreten!", "Server")
				_GUICtrlListView_AddItem($hListView2, $TempData)

			Case StringLeft($TempData, 5) = "//Key"
				$TempData = StringTrimLeft($TempData, 6)
				$TempData = StringTrimRight($TempData, 1)

				If $TempData = "" Then ContinueCase

				$aUsers[$iIndex][3] = $TempData
				$TempSearchResultKey = _ArraySearch($aBanList, $TempData)

				If $TempSearchResultKey <> -1 Then
					$sBannedUser = _ArraySearch($aUsers, $TempData)
					TCPSend($aUsers[$sBannedUser][0], "//Kick(Banned)")
					TCPCloseSocket($aUsers[$sBannedUser][0])

					For $i = 1 To UBound($aUsers, 1) - 1
						If $aUsers[$i][0] = "" Then ContinueLoop
						TCPSend($aUsers[$i][0], "Server|" & $sIP & "|'" & $aUsers[$sBannedUser][2] & "' ist ein verbannter User!")
						LogFile("Server => " & $aUsers[$i][2] & ": '" & $aUsers[$sBannedUser][2] & "' ist ein verbannter User!", "Chat")
					Next

				Else
					TCPSend($aUsers[$iIndex][0], "//Allowed")
				EndIf

				$aUsers[$sBannedUser][0] = ""
				$aUsers[$sBannedUser][1] = ""
				$aUsers[$sBannedUser][2] = ""
				$aUsers[$sBannedUser][3] = ""

			Case StringLeft($TempData, 6) = "//Quit"
				$TempData = StringTrimLeft($TempData, 7)
				$TempData = StringTrimRight($TempData, 1)
				If $TempData = "" Then ContinueCase
				$TempSearch = _ArraySearch($aUsers, $TempData)
				TCPCloseSocket($aUsers[$TempSearch][0])

				$aUsers[$TempSearch][0] = ""
				$aUsers[$TempSearch][1] = ""
				$aUsers[$TempSearch][2] = ""

				For $i = 1 To UBound($aUsers, 1) - 1
					If $aUsers[$i][0] = "" Then ContinueLoop
					TCPSend($aUsers[$i][0], "//UserQuit(" & $TempData & ")")
					LogFile("Server => " & $aUsers[$i][2] & ": '" & $TempData & "' hat den Chat verlassen!", "Chat")
				Next
				WriteMemo("'" & $TempData & "' hat den Chat verlassen!", "Server")
				_GUICtrlListView_DeleteItem($hListView2, _GUICtrlListView_FindText($hListView2, $TempData))

			Case StringLen($TempData) > 0
				_ArrayAdd($aData, $TempData)

		EndSelect
	Next
	If StringLen($aData[(UBound($aData, 1) - 1)]) > 0 Then

		For $iIndex = 1 To UBound($aData, 1) - 1

			For $i = 1 To UBound($aUsers, 1) - 1
				If $aUsers[$i][0] = "" Then ContinueLoop
				TCPSend($aUsers[$i][0], $aData[$iIndex])
				$aTempData = StringSplit($aData[$iIndex], "|", 2)
				LogFile($aTempData[0] & " => " & $aUsers[$i][2] & ": " & $aTempData[2], "Chat")
			Next
			WriteMemo($aTempData[2], $aTempData[0])
		Next

	EndIf

	$TempUsers = ""
	$TempData = ""
	$TempSearchResultName = ""

EndFunc   ;==>CheckIncoming

Func CheckConnection()
	For $iIndex = 0 To UBound($aUsers, 1) - 1
		If Ping($aUsers[$iIndex][1], 250) = 0 And StringLen($aUsers[$iIndex][1]) > 0 Then
			TCPCloseSocket($aUsers[$iIndex][0])
			$aUsers[$iIndex][0] = ""
			$aUsers[$iIndex][1] = ""
			$aUsers[$iIndex][2] = ""
			For $i = 1 To UBound($aUsers, 1) - 1
				If $aUsers[$i][0] = "" Then ContinueLoop
				TCPSend($aUsers[$i][0], "Server|" & $sIP & "|Die Verbindung zur Maschine von '" & $aUsers[$iIndex][1] & "' ging verloren!")
			Next
		EndIf
	Next
EndFunc   ;==>CheckConnection

Func AFKKick()
EndFunc   ;==>AFKKick

Func SocketToIP($SHOCKET)
	Local $sockaddr, $aRet
	$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
	$aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
			"ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
	If Not @error And $aRet[0] = 0 Then
		$aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
		If Not @error Then $aRet = $aRet[0]
	Else
		$aRet = 0
	EndIf
	$sockaddr = 0
	Return $aRet
EndFunc   ;==>SocketToIP

Func LogFile($sData, $sType)
	Switch $sType
		Case "Chat"
			_FileWriteLog(@ScriptDir & "\" & $sChatLogName, $sData)
		Case "Programm"
;----->>>>			_FileWriteLog(@ScriptDir & "\" & $sGeneralLogName, $sData)
	EndSwitch
EndFunc   ;==>LogFile

Func OpenChatLog()
	TrayItemSetState(@TRAY_ID, 68)
	If Not FileExists(@SystemDir & "\notepad.exe") Then
		MsgBox(48, "Error", "notepad.exe konnte nicht gefunden werden!")
		Return -1
	EndIf
	Run("notepad.exe " & $sChatLogName)
EndFunc   ;==>OpenChatLog

Func ShowClients()
	_GUICtrlListView_DeleteAllItems($hListView1)
	For $i = 0 To UBound($aUsers, 1) - 1
		If StringLen($aUsers[$i][2]) > 0 And StringLen($aUsers[$i][1]) > 0 Then
			$iTempIndex = _GUICtrlListView_AddItem($hListView1, $aUsers[$i][2], 0)
			_GUICtrlListView_AddSubItem($hListView1, $iTempIndex, $aUsers[$i][1], 1, 1)
		EndIf
		$iMaxIndexClientList = _GUICtrlListView_GetItemCount($hListView1)
	Next
EndFunc   ;==>ShowClients

Func KickSelected()
	For $iIndex = 0 To $iMaxIndexClientList - 1
		$TempStatus = _GUICtrlListView_GetItem($hListView1, $iIndex)
		If BitAND($TempStatus[0], 8) = 8 Then
			$TempSearchResult = _ArraySearch($aUsers, _GUICtrlListView_GetItemText($hListView1, $iIndex))
			If $TempSearchResult <> -1 Then
				TCPSend($aUsers[$TempSearchResult][0], "//Kick(Admin)")
				TCPCloseSocket($aUsers[$TempSearchResult][0])
				$aUsers[$TempSearchResult][0] = ""
				$aUsers[$TempSearchResult][1] = ""
				$aUsers[$TempSearchResult][3] = ""

				For $i = 1 To UBound($aUsers, 1) - 1
					If $aUsers[$i][0] = "" Then ContinueLoop
					TCPSend($aUsers[$i][0], "//UserKick(" & $aUsers[$TempSearchResult][2] & ")")
				Next
				_GUICtrlListView_DeleteItem($hListView2, _GUICtrlListView_FindText($hListView2, $aUsers[$TempSearchResult][2]))
				$aUsers[$TempSearchResult][2] = ""
			Else
				MsgBox(48, "Error", "Der User konnte nicht gefunden werden!")
				Return -1
			EndIf
		EndIf
	Next

	_GUICtrlListView_DeleteAllItems($hListView1)
	For $i = 0 To UBound($aUsers, 1) - 1
		If StringLen($aUsers[$i][2]) > 0 And StringLen($aUsers[$i][1]) > 0 Then
			$iTempIndex = _GUICtrlListView_AddItem($hListView1, $aUsers[$i][2], 0)
			_GUICtrlListView_AddSubItem($hListView1, $iTempIndex, $aUsers[$i][1], 1, 1)
		EndIf
	Next

	$TempStatus = ""
	$iTempIndex = ""
	$TempSearchResult = ""

EndFunc   ;==>KickSelected

Func BanSelected()
	For $iIndex = 0 To $iMaxIndexClientList - 1
		$TempStatus = _GUICtrlListView_GetItem($hListView1, $iIndex)
		If BitAND($TempStatus[0], 8) = 8 Then
			$TempSearchResult = _ArraySearch($aUsers, _GUICtrlListView_GetItemText($hListView1, $iIndex))
			If $TempSearchResult <> -1 Then

				Switch MsgBox(48 + 3, "Perm/Temp - Ban", "Soll der User permanent gebannt werden?" & @LF _
						"'JA' = Perm, 'NEIN' = Temp, 'Abbrechen' = Abbruch der Funktion")
					Case 6
						_FileWriteToLine($sBanListPath, _FileCountLines($sBanListPath) + 1, $aUsers[$TempSearchResult][3])
						_ArrayAdd($aBanList, $aUsers[$TempSearchResult][3])
					Case 7
						_ArrayAdd($aBanList, $aUsers[$TempSearchResult][3])
					Case Else
						Return -1
				EndSwitch

				TCPSend($aUsers[$TempSearchResult][0], "//Kick(AdminBan)")
				TCPCloseSocket($aUsers[$TempSearchResult][0])
				$aUsers[$TempSearchResult][0] = ""
				$aUsers[$TempSearchResult][1] = ""
				$aUsers[$TempSearchResult][3] = ""

				For $i = 1 To UBound($aUsers, 1) - 1
					If $aUsers[$i][0] = "" Then ContinueLoop
					TCPSend($aUsers[$i][0], "//UserBan(" & $aUsers[$TempSearchResult][2] & ")")
				Next
				_GUICtrlListView_DeleteItem($hListView2, _GUICtrlListView_FindText($hListView2, $aUsers[$TempSearchResult][2]))
				$aUsers[$TempSearchResult][2] = ""
			Else
				MsgBox(48, "Error", "Der User konnte nicht gefunden werden!")
				Return -1
			EndIf
		EndIf
	Next

	_GUICtrlListView_DeleteAllItems($hListView1)
	For $i = 0 To UBound($aUsers, 1) - 1
		If StringLen($aUsers[$i][2]) > 0 And StringLen($aUsers[$i][1]) > 0 Then
			$iTempIndex = _GUICtrlListView_AddItem($hListView1, $aUsers[$i][2], 0)
			_GUICtrlListView_AddSubItem($hListView1, $iTempIndex, $aUsers[$i][1], 1, 1)
		EndIf
	Next

	$TempStatus = ""
	$iTempIndex = ""
	$TempSearchResult = ""

EndFunc   ;==>BanSelected

Func _AdminChat()

	GUICtrlSetState($Input1, $GUI_FOCUS)
	GUISetState(@SW_SHOW, $hMainGUI)
	TrayItemSetState(@TRAY_ID, 68)

EndFunc   ;==>_AdminChat

Func _Send()

	$sDataAdmin = GUICtrlRead($Input1)

	Select
		Case StringLower($sDataAdmin) = "restart"
			LogFile("Programm wird von Admin per Chatbefehle neugestartet!", "Programm")
			LogFile("", "Programm")
			$bRestart = True
			Exit

		Case StringLower($sDataAdmin) = "shutdown"
			LogFile("Programm wird von Admin per Chatbefehle beendet!", "Programm")
			LogFile("", "Programm")
			Exit

		Case StringLower(StringLeft($sDataAdmin, 5)) = "kick "
			$sName = StringRight($sDataAdmin, StringLen($sDataAdmin) - 5)
			$TempSearchResult = _ArraySearch($aUsers, $sName)
			If $TempSearchResult <> -1 Then
				TCPSend($aUsers[$TempSearchResult][0], "//Kick(Admin)")
				TCPCloseSocket($aUsers[$TempSearchResult][0])
				$aUsers[$TempSearchResult][0] = ""
				$aUsers[$TempSearchResult][1] = ""
				For $i = 1 To UBound($aUsers, 1) - 1
					If $aUsers[$i][0] = "" Then ContinueLoop
					TCPSend($aUsers[$i][0], "//UserKick(" & $aUsers[$TempSearchResult][2] & ")")
				Next
				_GUICtrlListView_DeleteItem($hListView2, _GUICtrlListView_FindText($hListView2, $aUsers[$TempSearchResult][2]))
				$aUsers[$TempSearchResult][2] = ""
			Else
				MsgBox(48, "Error", "Der User konnte nicht gefunden werden!")
				Return -1
			EndIf

		Case StringLower(StringLeft($sDataAdmin, 4)) = "ban "
			$sName = StringRight($sDataAdmin, StringLen($sDataAdmin) - 4)
			$TempSearchResult = _ArraySearch($aUsers, $sName)
			If $TempSearchResult <> -1 Then

				Switch MsgBox(48 + 3, "Perm/Temp - Ban", "Soll der User permanent gebannt werden?" & @LF _
						"'JA' = Perm, 'NEIN' = Temp, 'Abbrechen' = Abbruch der Funktion")
					Case 6
						_FileWriteToLine($sBanListPath, _FileCountLines($sBanListPath) + 1, $aUsers[$TempSearchResult][3])
						_ArrayAdd($aBanList, $aUsers[$TempSearchResult][3])
					Case 7
						_ArrayAdd($aBanList, $aUsers[$TempSearchResult][3])
					Case Else
						Return -1
				EndSwitch

				TCPSend($aUsers[$TempSearchResult][0], "//Kick(AdminBan)")
				TCPCloseSocket($aUsers[$TempSearchResult][0])
				$aUsers[$TempSearchResult][0] = ""
				$aUsers[$TempSearchResult][1] = ""
				$aUsers[$TempSearchResult][3] = ""

				For $i = 1 To UBound($aUsers, 1) - 1
					If $aUsers[$i][0] = "" Then ContinueLoop
					TCPSend($aUsers[$i][0], "//UserBan(" & $aUsers[$TempSearchResult][2] & ")")
				Next
				_GUICtrlListView_DeleteItem($hListView2, _GUICtrlListView_FindText($hListView2, $aUsers[$TempSearchResult][2]))
				$aUsers[$TempSearchResult][2] = ""

			Else
				MsgBox(48, "Error", "Der User konnte nicht gefunden werden!")
				Return -1
			EndIf

		Case StringLen($sDataAdmin) > 0
			For $i = 1 To UBound($aUsers, 1) - 1
				If $aUsers[$i][0] = "" Then ContinueLoop
				TCPSend($aUsers[$i][0], "Admin|" & $sIP & "|" & $sDataAdmin)
			Next
			WriteMemo($sDataAdmin, "Admin")
			LogFile("Admin => ALL: " & $sDataAdmin, "Chat")
	EndSelect

	GUICtrlSetData($Input1, "")
	GUICtrlSetState($Input1, $GUI_FOCUS)

EndFunc   ;==>_Send

Func ToggleClientGUI()
	Switch _WinAPI_IsWindowVisible($hClientverwaltung)
		Case True
			GUISetState(@SW_HIDE, $hClientverwaltung)
			TrayItemSetState(@TRAY_ID, 68)
			ShowClients()
		Case False
			GUISetState(@SW_SHOW, $hClientverwaltung)
			TrayItemSetState(@TRAY_ID, 65)
			ShowClients()
	EndSwitch
EndFunc   ;==>ToggleClientGUI

Func HideChatGUI()
	GUISetState(@SW_HIDE, $hMainGUI)
EndFunc   ;==>HideChatGUI

Func OnAutoItStart()
	Global Const $sChatLogName = "ChatLog_" & @MDAY & "-" & @MON & "-" & @YEAR & ".log"
	Global Const $sGeneralLogName = "GeneralLog_" & @MDAY & "-" & @MON & "-" & @YEAR & ".log"
	LogFile("", "Programm")
	LogFile(" --- SERVER STARTUP --- ", "Programm")
	LogFile("", "Programm")
	LogFile("", "Chat")
	LogFile(" --- SERVER STARTUP --- ", "Chat")
	LogFile("", "Chat")
EndFunc   ;==>OnAutoItStart

Func OnAutoItExit()
	For $i = 1 To UBound($aUsers, 1) - 1
		If $aUsers[$i][0] = "" Then ContinueLoop
		TCPSend($aUsers[$i][0], "//Quit(Server-Shutdown)")
		LogFile("Server => " & $aUsers[$i][2] & "(" & $aUsers[$i][1] & "): //Quit(Server-Shutdown)", "Chat")
		TCPCloseSocket($aUsers[$i][0])
	Next

	TCPShutdown()

	LogFile("Laufzeit: " & $Time, "Programm")
	LogFile("", "Chat")
	LogFile(" --- SERVER SHUTDOWN --- ", "Chat")
	LogFile("", "Chat")
	LogFile("", "Programm")
	LogFile(" --- SERVER SHUTDOWN --- ", "Programm")
	LogFile("", "Programm")
	If $bRestart = True Then ShellExecute(@ScriptFullPath)
EndFunc   ;==>OnAutoItExit

Func _Exit()
	If TrayItemGetText(@TRAY_ID) = "Beenden" Then Exit
	If TrayItemGetText(@TRAY_ID) = "Server neu starten" Then
		LogFile("Programm wird von Admin per Traymenü neu gestartet!", "Programm")
		LogFile("", "Programm")
		$bRestart = True
		Exit
	ElseIf GUICtrlRead(@GUI_CtrlId) = "Server neu starten" Then
		LogFile("Programm wird von Admin über das Verwaltungsmenü neu gestartet!", "Programm")
		LogFile("", "Programm")
		$bRestart = True
		Exit
	EndIf
	Exit
EndFunc   ;==>_Exit

Func CopyIPClipboard()
	TrayItemSetState(@TRAY_ID, 68)
	If StringLen(ClipGet()) > 0 Then
		If MsgBox(48 + 4, "Error", "Die Zwischenablage ist NICHT leer!" & @LF _
				 & "Enthält folgendes: " & @LF & @LF & _
				 & ClipGet() & @LF & @LF & _
				"Überschreiben?") = 6 Then
			If ClipPut($sIP) = 1 Then
				LogFile("Server-IP (" & $sIP & ") erfolgreich in die Zwischenablage kopiert!", "Programm")
				TrayTipExt("Kopieren erfolgreich!")
			EndIf
		EndIf
	EndIf
EndFunc   ;==>CopyIPClipboard

Func TrayTipExt($sText)
	TrayTip($sTitle, $sText, 3)
	$tTrayTipTimer = _Timer_Init()
EndFunc   ;==>TrayTipExt

Func RefreshStuff()
	If _Timer_Diff($tTrayTipTimer) > 3000 Then TrayTip($sTitle, "", 1)

	$iLastMins = $iMins
	$iLastHour = $iHours

	_TicksToTime(_Timer_Diff($tGes), $iHours, $iMins, $iSecs)

	If $iLastMins <> $iMins Or $iLastHour <> $iHours Then
		$Time = StringFormat("%02i:%02i", $iHours, $iMins)
		TraySetToolTip("Server IP: " & $sIP & "" & @LF _
				 & "Computername: " & $sPCNetworkName & "" & @LF _
				 & "Server läuft: " & $Time)
	EndIf
EndFunc   ;==>RefreshStuff

Func WriteMemo($sData, $sNameEdit)
	GUICtrlSetData($Edit1, GUICtrlRead($Edit1) & @HOUR & ":" & @MIN & " ~ " & $sNameEdit & "  >  " & $sData & @CRLF)
EndFunc   ;==>WriteMemo
arisha is offline  
Old 05/21/2010, 21:31   #4
 
elite*gold: 0
Join Date: Jul 2009
Posts: 2,241
Received Thanks: 848
Du hast $sGeneralLogName keine Bedeutung zugeordnet (soweit ich das rauslesen konnte).

Ein einfaches Global reicht nicht.

Z.B. Global $sGeneralLogName = GUICtrlRead(...)
mipez is offline  
Old 05/22/2010, 09:57   #5
 
arisha's Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 76
Received Thanks: 6
thx
arisha is offline  
Reply


Similar Threads Similar Threads
Kleines RPG
09/18/2010 - General Art - 17 Replies
Hallo leute, also ich habe mir RPG Maker geholt und wollte nun ein kleines Game erstellen. Und jetz suche ich hier jemanden: -Grafiken <-- Mobs NPCs usw Neu gestalten -HP <-- Erledigt -Sounds <-- Auf der suche Was ihr können/haben soltet:
Kleines C++ Tut
02/02/2010 - Coding Tutorials - 10 Replies
Hallo, hier ist mein kleines und erstes Tut für C++. WICHTIG: Es ist nicht von mir, ich habe es nur etwas des Orginals hier reinkopiert, so habt ihr alles auf einen Blick. Trotzdem viel Spaß beim Lesen. Quelle: C++ Tutorial - Inhaltsverzeichnis Grundlagen:
PROBLEMMM!!!!!!pls hilfe
12/08/2009 - Metin2 Private Server - 2 Replies
hi leute ich habe eine problem habe einen hachi server geacht komme mit rain 12345 und so auch rein aba dann wollte ich mit navicat die db bearbeiten da sagt navicat : 2003-cant connect to mysql server on "localhost"(10061) ps help blackmann951
kleines Bot-Add
06/21/2008 - GW Exploits, Hacks, Bots, Tools & Macros - 11 Replies
hi, also ich wollte mal vorschlagen, da die abuse seiten welche die ganzen scripts von uns klauen, dass wir bei den bots etwas wie das unten angefügte script parallel laufen lassen ;) also einfach ein fileinstall(blablu,blubla,1) run(blablub) wobei natürlich das blablub bei jedem bot angepasst werden müsste ;)
ProbleMMM
11/23/2006 - Conquer Online 2 - 2 Replies
I diddnt want to wait 3 misn to open each bag so i used cotobo to make it go faster and my account was locked!!! anyone no a way to un lock an account or when it will be un locked?



All times are GMT +2. The time now is 08:45.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.