2. EDIT: HIER noch ein Upload(als *.exe) auf Megaupload.com für alle, die diese Seite per google.at/de/com whatever gefunden haben und sich nicht AutoIt zum kompeilieren des Scripts installieren wollen
Hi leute,
wenn wer von euch CSS spielt kennt er das sicher:
Man will aufnehmen, weis aber auch die schnelle nicht wohin man es speichern soll bzw wenn man öfter aufnimmt, braucht man ein System hinter dem ganzen.
Ich hab mir ein Skript geschrieben, dass
- sich von selbst die SteamID raussucht (aus der Steam.log)
- in die autoexec.cfg einen Eintrag macht mit Taste zum Aufnehmen
- eine record.cfg erstellt und diese updatet
- für jeden Tag einen eigenen Ordner im Ordner 'cstrike' macht
Funktionsprinzip:
Eine Adlib-Funktion wird alle 60.5 Sekunden aufgrufen und updatet die Record.cfg wie folgt:
"record "OrdnerMitDatum/demo_HH-MM.dem"
In die Autoexec.cfg kommt automatisch folgendes:
"bind "TasteDieIhrGewähltHabt" "exec record.cfg""
nun müsst ihr Ingame nur noch die Taste drücken und ihr nehmt auf
Sourcecode:
Spoiler anzeigen
#include <File.au3>
#include <Array.au3>
#include <String.au3>
#include <Misc.au3>
If @AutoItVersion <= "3.3.1.0" Then
MsgBox(48, "Error", "Das Skript funktioniert ab der AutoIT Version 3.3.1.0!")
Exit
EndIf
Opt("TrayMenuMode", 1)
Opt("TrayAutoPause", 0)
Opt("TrayOnEventMode", 1)
Opt("MustDeclareVars", 1)
TraySetToolTip("CSS-Record-Script")
[/autoit] [autoit][/autoit] [autoit]Dim $aLines[10]
Global $hCheckInstance = GUICreate("Unsichtbar",1,1,0,0)
Global $sBind
Global $aAutoExec
Global $sPathSteamExe = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Valve\Steam", "InstallPath")
Global $sDate = @MDAY & "." & @MON & "." & @YEAR
Global $sSteamID = IniRead(@ScriptDir & "\Record-Script-Lite.ini", "User-Settings", "SteamID", "")
Global $bFirstStart = IniRead(@ScriptDir & "\Record-Script-Lite.ini", "Settings", "FirstStart", "True")
_Singleton("Unsichtbar")
[/autoit] [autoit][/autoit] [autoit]If Execute($bFirstStart) = True Then
_CheckSteamID()
$sBind = InputBox("Bind-Taste eingeben", "Bitte die Taste eingeben mit der anschließend im Spiel die Aufnahme gestartet werden soll! (Ohne """")")
If $sBind = "" Or @error Then
MsgBox(48, "Error", "Taste ist nicht gültig!")
Exit
Else
If Not FileExists("cfg/autoexec.cfg") Then _FileCreate("cfg/autoexec.cfg")
Local $sTempAttrib
Local $sTempWorkingDir = @WorkingDir
FileChangeDir(@WorkingDir & "\cfg")
$sTempAttrib = FileGetAttrib("autoexec.cfg")
If StringInStr($sTempAttrib, "R") Then
If MsgBox(48 + 4, "Error", "Die Datei 'autoexec.cfg' trägt das Attribut 'readonly'!" & @LF _
& "Trotzdem schreiben?" & @LF _
& "Das Attribut wird anschließend wiederhergestellt!") = 6 Then
FileSetAttrib("autoexec.cfg", "-RA")
_FileWriteToLine("autoexec.cfg", _FileCountLines("autoexec.cfg"), "bind """ & $sBind & """ ""exec record.cfg""")
FileSetAttrib("autoexec.cfg", "+R")
Else
Exit
EndIf
EndIf
_FileWriteToLine("autoexec.cfg", _FileCountLines("autoexec.cfg"), "bind """ & $sBind & """ ""exec record.cfg""")
FileChangeDir($sTempWorkingDir)
If @error Then
MsgBox(48, "Error", "Ein Fehler trat auf beim Setzen des Hotkeys auf!")
Exit
EndIf
EndIf
IniWrite(@ScriptDir & "\Record-Script-Lite.ini", "Settings", "FirstStart", "False")
Else
_CheckSteamID()
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]If Not FileExists("cfg/record.cfg") Then _FileCreate("cfg/record.cfg")
[/autoit] [autoit][/autoit] [autoit]TrayCreateItem("Beenden")
TrayItemSetOnEvent(-1, "_Exit")
DirCreate($sDate)
AdlibRegister("_UpdateCFG", 60500)
While 1
Sleep(100)
WEnd
Func OnAutoItExit()
IniWrite(@ScriptDir & "\Record-Script-Lite.ini", "User-Settings", "SteamID", $sSteamID)
EndFunc ;==>OnAutoItExit
Func _CheckSteamID()
Local $aSteamLog
Local $aSplitted
Local $sBetween
Local $sValue = "CreateSession("
If $sSteamID = "" Then
If Not FileExists($sPathSteamExe & "\Steam.log") Then
MsgBox(48, "Error", "Steam.log wurde nicht gefunden!" & @LF & "Bitte Steam mindestens einmal starten und erfolgreich einloggen!")
Exit
EndIf
_FileReadToArray($sPathSteamExe & "\Steam.log", $aSteamLog)
For $i = 1 To $aSteamLog[0]
If StringInStr($aSteamLog[$i], $sValue, 1) Then ExitLoop
Next
$sBetween = _StringBetween($aSteamLog[$i], "(", ")")
If @error Then
MsgBox(48, "Error", "SteamID konnte nicht ausgelesen werden!" & @LF & "Bitte SteamID manuell eingeben!")
$sSteamID = InputBox("SteamID", "Bitte SteamID eingeben!")
If @error Or $sSteamID = "" Then
Exit
EndIf
EndIf
$aSplitted = StringSplit($sBetween[0], ",")
$sSteamID = $aSplitted[1]
If Not @error Then
FileChangeDir($sPathSteamExe & "\SteamApps\" & $aSplitted[1] & "\counter-strike source\cstrike")
Else
MsgBox(48, "Error", "Das Arbeitsverzeichnis konnte nicht geändert werden!")
Exit
EndIf
Else
If FileChangeDir($sPathSteamExe & "\SteamApps\" & $sSteamID & "\counter-strike source\cstrike") = 0 Then
MsgBox(48, "Error", "Das Arbeitsverzeichnis konnte nicht geändert werden!")
Exit
EndIf
EndIf
EndFunc ;==>_CheckSteamID
Func _UpdateCFG()
If WinActive("Counter-Strike Source") Then
Local $sTime = @HOUR & "-" & @MIN
_FileWriteToLine("cfg/record.cfg", 1, "record " & $sDate & "/demo_" & $sTime, 1)
TrayTip("","Config Update!",1)
Sleep(1000)
TrayTip("","",1)
TraySetToolTip("CSS-Record-Script ~ Last config update: " & $sTime)
EndIf
EndFunc ;==>_UpdateCFG
Func _Exit()
Exit
EndFunc ;==>_Exit
Feedback & Kritik gerne gehört.
Viel Spaß damit!
EDIT: HIER noch eine detaillierte Beschreibung für alle, die mit CSS, Scripts und etc nicht vertraut sind (5.Post)