Hallo zusammen,
dies ist mein 1. Script dass ich öffentlich stelle.
Es ist für all die die mal einen Matrix (ähnlichen) Code haben wollten.
Er ist einfach zu bearbeiten und wer will kann ihn gerne verbessern, war halt nur eine Arbeit von 20min.
Script :
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $Guisize[2] = [@DesktopWidth, @DesktopHeight]
Global $GuiStyle[2] = [$WS_POPUPWINDOW,$WS_EX_TOOLWINDOW]
Global $GuiBKColor = 0x0
Global $LabelBKColor = 0x0
Global $LabelColor = 0x00FF00
Global $LabelSize[2] = [40,@DesktopHeight]
Global $LabelAmount = 50
Global $LabelFont = "TERMINAL"
Global $randomA[2] = [0,50]
Global $randomb[2] = [12,20]
Global $Words = "a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|1|2|3|4|5|6|7|8|9|0"
Global $Escapekey = "{ESC}"
Global $LabelOutput
Global $Label[$LabelAmount]
Global $Position[$LabelAmount]
Global $Position2[$LabelAmount]
$Words = StringSplit($Words,"|")
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To $LabelAmount - 1
$Position[$i] = 0
$Position2[$i] = Random($randomA[0],$randomA[1])
Next
$Form1 = GUICreate("CodeGen", $Guisize[0], $Guisize[1], 0, 0, $GuiStyle[0], $GuiStyle[1])
GUISetBkColor($GuiBKColor)
For $i = 0 To $LabelAmount - 1
$Label[$i] = GUICtrlCreateLabel("", $i * 40, 0, $LabelSize[0], $LabelSize[1])
GUICtrlSetBkColor($Label[$i],$LabelBKColor)
GUICtrlSetColor($Label[$i],$LabelColor)
GUICtrlSetFont($Label[$i],12,Default,Default,$LabelFont)
Next
GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]AdlibRegister("_aCode",30)
[/autoit] [autoit][/autoit] [autoit]HotKeySet($Escapekey,"_exit")
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep(20)
WEnd
Func _exit()
Exit
EndFunc
Func _aCode()
For $i = 0 To $LabelAmount - 1
$LabelOutput = ""
If $Position2[$i] > 0 Then
For $n = 0 To $Position2[$i]
$LabelOutput &= @CRLF
Next
EndIf
$Position[$i] += 1
If $Position[$i] > Random($randomb[0],$randomb[1]) Then
$Position[$i] = 1
$Position2[$i] = Random($randomA[0],$randomA[1])
EndIf
For $n = 0 To $Position[$i]
If Random(0,1) Then
$LabelOutput &= $Words[Random(1,$Words[0])] & @CRLF
Else
$LabelOutput &= StringUpper($Words[Random(1,$Words[0])]) & @CRLF
EndIf
Next
GUICtrlSetData($Label[$i],$LabelOutput)
Next
EndFunc
API:
Spoiler anzeigen
#include-once
[/autoit] [autoit][/autoit] [autoit]Local $onMatrix = False
Local $Words
Local $LabelOutput
Local $Amount
Local $Words
Local $Time
Local $random1
Local $random2
Local $random3
Local $random4
Func _MatrixCreate($nGUI,$aLeft,$aTop,$aAmount,$aHeight,$aColor = 0x00FF00, $aBKColor = 0x0,$aFont = "TERMINAL",$aWords = "a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|1|2|3|4|5|6|7|8|9|0", $aTime = 30,$arandom1 = 0,$arandom2 = 50, $arandom3 = 12, $arandom4 = 20)
[/autoit] [autoit][/autoit] [autoit]$aWords = StringSplit($aWords,"|")
[/autoit] [autoit][/autoit] [autoit]If Not IsHWnd($nGUI) Then Return SetError(0,0,0)
If Not IsInt($aLeft) Then Return SetError(1,1,1)
If Not IsInt($aTop) Then Return SetError(2,2,2)
If Not IsInt($aAmount) Or $aAmount < 1 Then Return SetError(3,3,3)
If Not IsInt($aHeight) Or $aHeight < 1 Then Return SetError(4,4,4)
If Not IsInt($aColor) Then Return SetError(5,5,5)
If Not IsString($aFont) Then Return SetError(6,6,6)
If Not IsArray($aWords) Or $aWords[0] = 0 Then Return SetError(7,7,7)
If Not (IsFloat($aTime) Or IsInt($aTime)) Then Return SetError(8,8,8)
If Not (IsInt($arandom1) And IsInt($arandom2) And IsInt($arandom3) And IsInt($arandom4)) Then Return SetError(9,9,9)
Global $Label[$aAmount]
Global $Position[$aAmount]
Global $Position2[$aAmount]
For $i = 0 To $aAmount - 1
$Position[$i] = 0
$Position2[$i] = Random($arandom1,$arandom2)
Next
GUISwitch($nGUI)
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To $aAmount - 1
$Label[$i] = GUICtrlCreateLabel("", ($i * 40) + $aLeft, $aTop, 40, $aHeight)
GUICtrlSetBkColor($Label[$i],$aBKColor)
GUICtrlSetColor($Label[$i],$aColor)
GUICtrlSetFont($Label[$i],12,Default,Default,$aFont)
Next
$onMatrix = True
$Words = $aWords
$Amount = $aAmount
$Time = $aTime
$random1 = $arandom1
$random2 = $arandom2
$random3 = $arandom3
$random4 = $arandom4
EndFunc
Func _MatrixStart($aTime = 30)
If $onMatrix Then
AdlibRegister("__aCode",$Time)
Else
Return SetError(0,0,0)
EndIf
EndFunc
Func _MatrixStop()
If $onMatrix Then AdlibUnRegister("__aCode")
EndFunc
Func _MatrixDelete()
For $i = 0 To $Amount - 1
GUICtrlDelete($Label[$i])
Next
$onMatrix = False
EndFunc
Func __aCode()
For $i = 0 To $Amount - 1
$LabelOutput = ""
If $Position2[$i] > 0 Then
For $n = 0 To $Position2[$i]
$LabelOutput &= @CRLF
Next
EndIf
$Position[$i] += 1
If $Position[$i] > Random($random3,$random4) Then
$Position[$i] = 1
$Position2[$i] = Random($random1,$random2)
EndIf
For $n = 0 To $Position[$i]
If Random(0,1) Then
$LabelOutput &= $Words[Random(1,$Words[0])] & @CRLF
Else
$LabelOutput &= StringUpper($Words[Random(1,$Words[0])]) & @CRLF
EndIf
Next
GUICtrlSetData($Label[$i],$LabelOutput)
Next
EndFunc
#edit
Kurzes Font Update
Wer möchte kann sich die neue Font installieren
Fontname mCode15