Da ich mal hoffe das das kein bot wird, mit pixelgetcolor
Beiträge von moritz1243
-
-
-
Du kannst dir auch einfach selber die bilder machen und sie dort positionieren
-
Ich bin auch dagegen Bots zu unterstützen
-
also die Bilder und verknüpfungen müssen in den gleichen oderner wie das script und müsen auch den glechen Namen haben, also Crysis.jpg und crysis.lnk. Das mit der exe ist dann wohl mein Fehler, ich habe win7 64bit und habe sie dementsprechend compiled. Musste sie dir eben 32bit compilen
-
Hi @ All,
ich wollte hier ein Programm vorstellen, wleches das Überfüllen des Mointors mit Spielverknüpfungen verhindert. Es ist eine Art Spiele Start Center. Die Bedienung ist sehr einfach gehalten, einfach eine Verknüpfung von dem Spiel und ein Bild, welches den gleichen Namen hat wie die Verknüpfung in dem Ordner und fertig(Die Bilder finden sich gut bei Google, einfach Spiel xyz Cover und schon findet man welche). Um durch die Spiele zu blättern einfach linke Maustaste gedrückt halten und die Maus nach links oder rechts bewegen oder Pfeil links bzw rechts zum druchblättern. Um ein Spiel zu starten einfach eines anklicken oder Enter drücken dann wird das spiel welches gerade in der mitte ist gestartet.
Ich hoffe es gefällt euch, da ich viel Zeit in das Design gesteckt habe
[Blockierte Grafik: http://img262.imageshack.us/img262/2518/bsp1.jpg]
[Blockierte Grafik: http://img262.imageshack.us/img262/1438/bsp2.png]Ich würde mich über feedback freuen
Hier noch der Quelltext:
Spoiler anzeigen
[autoit]#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#Include <Constants.au3>
#include <GuiConstants.au3>
#include <Misc.au3>
#include <IE.au3>
#include <Array.au3>
#include <WinAPI.au3>
#include <GuiConstantsEx.au3>
#include <Color.au3>
#include <IrrlichtPluginUtils.au3>
#NoTrayIconOpt('MouseCoordMode', 0)
[/autoit] [autoit][/autoit] [autoit]HotKeySet('{Esc}', '_Ende')
[/autoit] [autoit][/autoit] [autoit]Global $Titel = "Spiele Center by Moritz1243 ;-)"
[/autoit] [autoit][/autoit] [autoit]Global Const $INI = @ScriptDir & "\Info.ini"
[/autoit] [autoit][/autoit] [autoit]
Global Const $CONFIG = @ScriptDir & "\Config.ini"
Global Const $Bilder_dir = @ScriptDir & "\Bilder\"
Global Const $Spiel_dir = @ScriptDir & "\Verknüpfungen\"Global $datei[1][1], $icon[1], $name[1], $position, $mouse_pos, $mouse_pos_now, $Spiele_Anzahl = 0, $bewegung, $bewegung_letzte
[/autoit] [autoit][/autoit] [autoit]
Global $button_autostart, $button_exit
Local $aktuelles_spiel, $letztes_spiel, $spiel_blinken
Local $Icon_Position[1]
Global $Icon_Distance = 30Global $icolor_red = Number(IniRead(@scriptdir & "\config.ini","Config","Hintergrund Farbe Rot",-1))
[/autoit] [autoit][/autoit] [autoit]
Global $icolor_green = Number(IniRead(@scriptdir & "\config.ini","Config","Hintergrund Farbe Gruen",-1))
Global $icolor_blue = Number(IniRead(@scriptdir & "\config.ini","Config","Hintergrund Farbe Blau",-1))
If $icolor_red = -1 Then
IniWrite($CONFIG,"Config","Hintergrund Farbe Rot",64)
IniWrite($CONFIG,"Config","Hintergrund Farbe Gruen",64)
IniWrite($CONFIG,"Config","Hintergrund Farbe Blau",255)
$icolor_red = 64
$icolor_green = 64
$icolor_blue = 255
EndIfGlobal $switch[4]
[/autoit] [autoit][/autoit] [autoit]Global $Reload
[/autoit] [autoit][/autoit] [autoit]Global $width = 1024
[/autoit] [autoit][/autoit] [autoit]
Global $height = 600Global $Flow_type = IniRead($CONFIG,"Config","Flow Type",-1)
[/autoit] [autoit][/autoit] [autoit]
If $Flow_type = -1 Then
IniWrite($CONFIG,"Config","Flow Type",1)
$Flow_type = 1
EndIfGlobal $Window_type = IniRead($CONFIG,"Config","Window_type",-1)
[/autoit] [autoit][/autoit] [autoit]
If $Window_type = -1 Then
IniWrite($CONFIG,"Config","Window_type",1)
$Window_type = 1
EndIfGlobal $BK_type = IniRead($CONFIG,"Config","BK_type",-1)
[/autoit] [autoit][/autoit] [autoit]
If $BK_type = -1 Then
IniWrite($CONFIG,"Config","BK_type",1)
$BK_type = 1
EndIfIf $Window_type = 0 Then Global $Hwnd = CreateLayeredDevice("SpieleCenter", 0,@DesktopHeight * 1 / 8, @DesktopWidth, @DesktopHeight * 6 / 8,255, 0, 128, 0 )
[/autoit] [autoit][/autoit] [autoit]
If $Window_type = 1 Then Global $Hwnd = CreateDevice($EDT_DIRECT3D9, 1024, 600, 16, 0, 0, 0)
If $Window_type = 2 Then Global $Hwnd = CreateDevice($EDT_DIRECT3D9, @DesktopWidth,@DesktopHeight, 32, True, 0, 0)
SetWindowCaption($Titel)
WinSetOnTop($Hwnd, "", 1 )Global $Timer_aktive = IniRead($CONFIG,"Config","Timer",-1)
[/autoit] [autoit][/autoit] [autoit]
If $Timer_aktive = -1 Then
IniWrite($CONFIG,"Config","Timer",1)
$Timer_aktive = 1
EndIfLocal $compare[2]
[/autoit] [autoit][/autoit] [autoit]Global $Camera = AddCameraSceneNode(0, 0, 0, 250, 0, 0, 0)
[/autoit] [autoit][/autoit] [autoit]Global $Light1 = AddLightSceneNode( 0, -1000, 1000, -1000, 0, 0, 0, 0 )
[/autoit] [autoit][/autoit] [autoit]
Global $SLight = AddNewSLight( 1, 50, 1, 500, 3000, $ELT_POINT)
SetSLightSpecularColor( $SLight, 0.1, 0.1, 0.1 )
SetLightData( $Light1, $SLight )Global $Light2 = AddLightSceneNode( 0, 1000, 1000, 1000, 0, 0, 0, 0 )
[/autoit] [autoit][/autoit] [autoit]
SetLightData( $Light2, $SLight )Global $Bilder[1]
[/autoit] [autoit][/autoit] [autoit]
Global $Node[1]
Global $Node_Back[1]
Global $Bilder_alpha[1]Global $pointer[1]
[/autoit] [autoit][/autoit] [autoit]Global $sortieren_type = 0
[/autoit] [autoit][/autoit] [autoit]Global $search_txt
[/autoit] [autoit][/autoit] [autoit]Global $Info_Text = AddStaticText("", 422, 200, 602, 400); [, Border [, WordWrap [, iParent [, FillBackground ]]]] )
[/autoit] [autoit][/autoit] [autoit]
Global $Button_Einstellungen = AddImage(GetTexture($Bilder_dir & "einstellungen.png"), $width - 58, $height - 58)
Global $Button_Sortieren = AddImage(GetTexture($Bilder_dir & "sortieren.png"), $width - 116, $height - 58)draw(0)
[/autoit] [autoit][/autoit] [autoit]
Global $anzahl_spiele
Spiele_laden()Global $Particle[1][4]
[/autoit] [autoit][/autoit] [autoit]
Global $Node_Particle[1]
Global $Anzahl_Particle = 120
Global $Partikel_onoff = IniRead($CONFIG,"Config","Partikel",-1)
If $Partikel_onoff = -1 Then
IniWrite($CONFIG,"Config","Partikel",1)
$Partikel_onoff = 1
EndIfIf $Partikel_onoff = 1 Then _particle_create()
[/autoit] [autoit][/autoit] [autoit]ReDim $icon[$Spiele_Anzahl + 1]
[/autoit] [autoit][/autoit] [autoit]
ReDim $name[$Spiele_Anzahl + 1]
ReDim $Icon_Position[$Spiele_Anzahl + 1]draw(0)
[/autoit] [autoit][/autoit] [autoit]AdlibEnable("_bus",12)
[/autoit] [autoit][/autoit] [autoit]Local $msg
[/autoit] [autoit][/autoit] [autoit]While True
[/autoit] [autoit][/autoit] [autoit]If WinActive($Titel) Then
[/autoit] [autoit][/autoit] [autoit]If _IsPressed(44) Then Spiele_ordnen(0)
[/autoit] [autoit][/autoit] [autoit]If _IsPressed("0D") Then Spiel_starten($aktuelles_spiel)
[/autoit] [autoit][/autoit] [autoit]; $compare[0] = GUICtrlRead($search)
[/autoit] [autoit][/autoit] [autoit]If $compare[0] <> $compare[1] Then
[/autoit] [autoit][/autoit] [autoit]
$compare[1] = $compare[0]
;If $compare[0] <> "search" And $compare[0] <> "" Then
For $i = 0 To $Spiele_Anzahl Step 1
$search_txt = $compare[0]If StringLeft($datei[$i][2],StringLen($compare[0])) = StringLeft($compare[0],StringLen($compare[0])) Then
[/autoit] [autoit][/autoit] [autoit]
$Bewegung = $Icon_Distance * -$i
$position = $bewegung
;draw($Bewegung)
$aktuelles_spiel = Int((-$bewegung + 15) / $Icon_Distance)
If $aktuelles_spiel > $Spiele_Anzahl - 1 Then $aktuelles_spiel = $Spiele_Anzahl - 1
If $aktuelles_spiel < 0 Then $aktuelles_spiel = 0
; GUICtrlSetData($info_titel, $datei[$aktuelles_spiel][2])
ExitLoop
EndIf
Next
;EndIf
EndIfIf _IsPressed ("01") Then ; Spiele mit Maus bewegen oder Starten
[/autoit] [autoit][/autoit] [autoit]
$mouse_pos_now = MouseGetPos()
If $mouse_pos_now[1] - 25 > $height - 58 And $mouse_pos_now[1] - 25 < $height - 10 Then
If $mouse_pos_now[0] > $width - 58 And $mouse_pos_now[0] < $width - 10 Then
einstellungen()
ElseIf $mouse_pos_now[0] > $width - 116 And $mouse_pos_now[0] < $width - 68 Then
Spiele_ordnen($sortieren_type)
$sortieren_type += 1
If $sortieren_type = 3 Then $sortieren_type = 0
Draw(0)
Do
Sleep(100)
Until Not _IsPressed ("01")
EndIf
EndIf
If Mod($Bewegung,$Icon_Distance) = 0 Then
SetText($info_text,"")
SetRotation($Node[$aktuelles_spiel],0,0,0)
EndIf
$mouse_pos = MouseGetPos(0)
Local $coll = GetSceneNodeFromScreenCoordinatesBB(MouseGetPos(0),MouseGetPos(1))
For $i = 0 To $Spiele_Anzahl Step 1
If $coll = $Node[$i] Or $coll = $Node_Back[$i] Then Spiel_starten($i)
Next
$position = $bewegungDo
[/autoit] [autoit][/autoit] [autoit]
$mouse_pos_now = MouseGetPos(0)$bewegung = ($mouse_pos_now - $mouse_pos) + $position
[/autoit] [autoit][/autoit] [autoit]
If $bewegung > ($Spiele_Anzahl - 1) * $Icon_Distance Then $bewegung = ($Spiele_Anzahl - 1) * $Icon_Distance
If $bewegung < 0 Then $bewegung = 0
ConsoleWrite($bewegung & @CRLF)
$aktuelles_spiel = Int(($bewegung + 15) / $Icon_Distance)
If $aktuelles_spiel > $Spiele_Anzahl - 1 Then $aktuelles_spiel = $Spiele_Anzahl - 1
If $aktuelles_spiel < 0 Then $aktuelles_spiel = 0
If $aktuelles_spiel <> $letztes_spiel Then
$letztes_spiel = $aktuelles_spiel
EndIf
If $bewegung <> $bewegung_letzte Then
$bewegung_letzte = $bewegung
ConsoleWrite($bewegung & @CRLF)
draw($Bewegung)
EndIfSleep(5)
[/autoit] [autoit][/autoit] [autoit]Until Not _IsPressed ("01")
[/autoit] [autoit][/autoit] [autoit]; $position = $bewegung
[/autoit] [autoit][/autoit] [autoit]
EndIf
If _IsPressed ("02") Then ; Eigenschaften abfragen
$mouse_pos = MouseGetPos(0)
Local $coll = GetSceneNodeFromScreenCoordinatesBB(MouseGetPos(0),MouseGetPos(1))_center_aktuelles_Spiel()
[/autoit] [autoit][/autoit] [autoit]
$aktuelles_spiel = Int(($bewegung + 15) / $Icon_Distance)
For $i = 0 To $Spiele_Anzahl Step 1
If $coll = $Node[$i] Then;-329 49 < 70
For $deg = 0 To 180 Step 5
BeginScene(True, True, 0, $icolor_red,$icolor_green,$icolor_blue)
SetRotation($Node[$pointer[$aktuelles_spiel]],0,$deg,0)
SceneDraw()
GuiDraw()
EndScene()
Sleep(5)
Next
Local $process = StringSplit ($datei[$pointer[$aktuelles_spiel]][0], "\")
Local $Spielzeit = IniRead(@ScriptDir & "\info.ini","Log",$process[$process[0]],0)
SetText($info_text,"Spiel: " & $datei[$pointer[$aktuelles_spiel]][2] & @LF _
& @LF _
& "Spielzeit: " & _sec_to_time_string($Spielzeit) & @LF _
& "Gespielt: " & IniRead(@ScriptDir & "\info.ini","Spiele",$datei[$pointer[$aktuelles_spiel]][2],0) - 1 & " mal" & @LF _
& "Dateipfad: " & $datei[$pointer[$aktuelles_spiel]][0])
EndIf
If $coll = $Node_Back[$i] Then
SetText($info_text,"")
For $deg = 180 To 360 Step 5
BeginScene(True, True, 0, $icolor_red,$icolor_green,$icolor_blue)
SetRotation($Node[$pointer[$aktuelles_spiel]],0,$deg,0)
SceneDraw()
GuiDraw()
EndScene()
Sleep(5)
Next
EndIf
Next
EndIf
If _IsPressed("25") then ; Durchblättern links
If Mod($Bewegung,$Icon_Distance) = 0 Then
SetText($info_text,"")
SetRotation($Node[$aktuelles_spiel],0,0,0)
EndIf
_center_aktuelles_Spiel()
ConsoleWrite($bewegung & @CRLF)
If $bewegung = 0 Then
Do
$bewegung +=10
draw($bewegung)
Until $bewegung = ($Spiele_Anzahl - 1) * $Icon_Distance
;draw($bewegung)
Else
For $i = 1 to 10
$bewegung -= $Icon_Distance / 10
Draw($bewegung)
Sleep(10)
Next
EndIfendif
[/autoit] [autoit][/autoit] [autoit]
If _IsPressed("27") then ; Durchblättern links
If Mod($Bewegung,$Icon_Distance) = 0 Then
SetText($info_text,"")
SetRotation($Node[$aktuelles_spiel],0,0,0)
EndIf
_center_aktuelles_Spiel()
ConsoleWrite($bewegung & @CRLF)
If $bewegung = ($Spiele_Anzahl - 1) * $Icon_Distance then
do
$bewegung -=10
draw($bewegung)
until $bewegung = 0
;draw($bewegung)
Else
for $i = 1 to 10
$bewegung += $Icon_Distance / 10
Draw($bewegung)
Sleep(10)
next
EndIfendif
[/autoit] [autoit][/autoit] [autoit]
; draw($Bewegung)EndIf
[/autoit] [autoit][/autoit] [autoit]Sleep(5)
[/autoit] [autoit][/autoit] [autoit]WEnd
[/autoit] [autoit][/autoit] [autoit]Func Spiele_laden()
[/autoit] [autoit][/autoit] [autoit]Local $search, $desti, $compare
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
; $Ordner = FileSelectFolder("Ordner wählen", "",2)
; $Ordner = "C:\Dokumente und Einstellungen\Moritz\Desktop\Spiele"Local $isearch = FileFindFirstFile($Spiel_dir & "*.lnk")
[/autoit] [autoit][/autoit] [autoit]
If $isearch = -1 Then Return 0While True
[/autoit] [autoit][/autoit] [autoit]
Local $type = FileFindNextFile($isearch)
If @error Then ExitLoop
$anzahl_spiele += 1
WEnd
FileClose($search)$search = FileFindFirstFile($Spiel_dir & "*.lnk")
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
ReDim $datei[$Spiele_Anzahl + 1][5]
ReDim $Bilder[$Spiele_Anzahl + 1]
ReDim $Bilder_alpha[$Spiele_Anzahl + 1]
ReDim $node[$Spiele_Anzahl + 1]
ReDim $Node_Back[$Spiele_Anzahl + 1]
ReDim $pointer[$Spiele_Anzahl + 1]
$pointer[$Spiele_Anzahl] = $Spiele_Anzahl
$datei[$Spiele_Anzahl][0] = FileFindNextFile($search)
If @error Then ExitLoop
$datei[$Spiele_Anzahl][1] = $datei[$Spiele_Anzahl][1]
$datei[$Spiele_Anzahl][2] = StringTrimRight ($datei[$Spiele_Anzahl][0], 4)
If IniRead($INI,"Spiele",$datei[$Spiele_Anzahl][2],0) = 0 Then
$Reload = True
IniWrite($INI,"Spiele",$datei[$Spiele_Anzahl][2],1)
EndIf
If StringRight ($datei[$Spiele_Anzahl][0],3) = "lnk" Then
$desti = FileGetShortcut($Spiel_dir & $datei[$Spiele_Anzahl][0])
$datei[$Spiele_Anzahl][0] = $desti[0]
$datei[$Spiele_Anzahl][1] = $desti[1]
$datei[$Spiele_Anzahl][3] = $desti[4]
$datei[$Spiele_Anzahl][4] = $desti[5]
EndIf
$Node[$Spiele_Anzahl] = AddCubeSceneNode(100)
$Node_Back[$Spiele_Anzahl] = AddCubeSceneNode(101,$Node[$Spiele_Anzahl])
SetMaterialTexture($Node_Back[$Spiele_Anzahl], 0, GetTexture($Bilder_dir & "\back.jpg"))
SetPosition($Node_Back[$Spiele_Anzahl],0,0,-5)
SetScale($Node[$Spiele_Anzahl], 1, 1.5, 0.1)
$Bilder[$Spiele_Anzahl] = GetTexture($Bilder_dir & "\" & $datei[$Spiele_Anzahl][2] & ".jpg")
SetMaterialTexture($Node[$Spiele_Anzahl], 0, $Bilder[$Spiele_Anzahl])
SetMaterialFlag($Node[$Spiele_Anzahl], $EMF_LIGHTING, 0 )
SetScale($Node[$Spiele_Anzahl], 1, 1.5, 0.1)
; $Bilder[$Spiele_Anzahl] = _GDIPlus_ImageLoadFromFile($Ordner & "\temp\" & $datei[$Spiele_Anzahl][2] & ".jpg")
; $Bilder_alpha[$Spiele_Anzahl] = _GDIPlus_ImageLoadFromFile($Ordner & "\temp\" & $datei[$Spiele_Anzahl][2] & "_alpha.jpg")
; MsgBox(0,"",$bilder[$Spiele_Anzahl])
$Spiele_Anzahl += 1
ToolTip("Load ... " & Int($Spiele_Anzahl / $anzahl_spiele * 100) & "%")
WEnd
ToolTip("")
; _ArrayDisplay($datei)
FileClose($search)EndFunc
[/autoit] [autoit][/autoit] [autoit]Func Draw($wegi)
[/autoit] [autoit][/autoit] [autoit]BeginScene(True, True, 0, $icolor_red,$icolor_green,$icolor_blue)
[/autoit] [autoit][/autoit] [autoit]
; $icolor_red = Mod($icolor_red + random(0,5,1),255)
; $icolor_green = Mod($icolor_green + random(0,5,1),255)
; $icolor_blue = Mod($icolor_blue + random(0,5,1),255)Local $pi_div_180 = 4 * ATan(1) / 180
[/autoit] [autoit][/autoit] [autoit]
Local $xi, $yiLocal $aktuelles = Int((-$bewegung + 15) / $Icon_Distance)
[/autoit] [autoit][/autoit] [autoit]Switch $flow_type
[/autoit] [autoit][/autoit] [autoit]Case 0
[/autoit] [autoit][/autoit] [autoit]
$Icon_Distance = 30
For $i = 0 To $Spiele_Anzahl Step 1$Icon_Position[$i] = $wegi + $i * $Icon_Distance
[/autoit] [autoit][/autoit] [autoit]
If $Icon_Position[$i] > -90 And $Icon_Position[$i] < 90 Then
SetVisible($Node[$i], 1)
$xi = Sin (-$Icon_Position[$i] * $pi_div_180) * 200
$yi = Cos (-$Icon_Position[$i] * $pi_div_180) * 60SetPosition($Node[$i], $xi / 2 * 8/10,0,$yi)
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]
SetVisible($Node[$i], 0)
EndIfNext
[/autoit] [autoit][/autoit] [autoit]Case 1
[/autoit] [autoit][/autoit] [autoit]
$Icon_Distance = 70
For $i = 0 To $Spiele_Anzahl Step 1
; If $Icon_Position[$i] > -90 And $Icon_Position[$i] < 0 Then $bewegung += 1
$Icon_Position[$i] = $wegi + $i * -$Icon_Distance
; If $i > $aktuelles Then $Icon_Position[$i] += 50
; If $i < $aktuelles Then $Icon_Position[$i] -= 50
; If $Icon_Position[$i] > -45 And $Icon_Position[$i] < 0 Then
; $bewegung += 1
; ElseIf $Icon_Position[$i] < 45 And $Icon_Position[$i] > 0 Then
; $bewegung -= 1
; EndIf
If $Icon_Position[$i] > -90 And $Icon_Position[$i] < 90 Then
SetRotation($Node[$pointer[$i]],0,-$Icon_Position[$i],0)
SetPosition($Node[$pointer[$i]],$Icon_Position[$i],0,(90 - Abs($Icon_Position[$i])) / 2)
ElseIf $Icon_Position[$i] > 0 Then
SetRotation($Node[$pointer[$i]],0,-90,0)
SetPosition($Node[$pointer[$i]],$Icon_Position[$i],0,0)
Else
SetRotation($Node[$pointer[$i]],0,90,0)
SetPosition($Node[$pointer[$i]],$Icon_Position[$i],0,0)
EndIf
Next
EndSwitchSceneDraw( )
[/autoit] [autoit][/autoit] [autoit]
GuiDraw( )EndScene( )
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _Bus()
[/autoit] [autoit][/autoit] [autoit]
BeginScene(True, True, 0, $icolor_red,$icolor_green,$icolor_blue)
If $BK_type = 1 Then _bk_change_color()
If $Partikel_onoff = 1 Then _particle()
SceneDraw()
GuiDraw()EndScene()
[/autoit] [autoit][/autoit] [autoit]
EndFuncFunc Spiel_starten($iSpiel)
[/autoit] [autoit][/autoit] [autoit]
If MsgBox(4,"","Wollen Sie " & $datei[$iSpiel][2] & " wirklich starten?") = 6 Then
IniWrite($INI,"Spiele",$datei[$iSpiel][2],IniRead($INI,"Spiele",$datei[$iSpiel][2],1) + 1)ShellExecute($datei[$iSpiel][0],"",$datei[$iSpiel][1])
[/autoit] [autoit][/autoit] [autoit]
FileDelete(@scriptdir & "\commandline.cl")
If $Timer_aktive = 1 Then
Local $string = StringSplit ($datei[$iSpiel][0], "\")
FileWrite(@scriptdir & "\commandline.cl",$String[$string[0]])
ShellExecute("timer.exe","",@ScriptDir)
EndIf
Exit
EndIf
EndFuncFunc _bk_change_color()
[/autoit] [autoit][/autoit] [autoit]
If $switch[3] = 0 Then
$switch[3] = 5
If $switch[0] = 0 Then
$icolor_red += 1
Else
$icolor_red -= 1
EndIf
If $icolor_red >= 255 Then
$icolor_red = 255
$switch[0] = 1
EndIf
If $icolor_red <= 0 Then
$icolor_red = 0
$switch[0] = 0
EndIf
If $switch[1] = 0 Then
$icolor_green += 2
Else
$icolor_green -= 2
EndIf
If $icolor_green >= 255 Then
$icolor_green = 255
$switch[1] = 1
EndIf
If $icolor_green <= 0 Then
$icolor_green = 0
$switch[1] = 0
EndIf
If $switch[2] = 0 Then
$icolor_blue += 3
Else
$icolor_blue -= 3
EndIf
If $icolor_blue >= 255 Then
$icolor_blue = 255
$switch[2] = 1
EndIf
If $icolor_blue <= 0 Then
$icolor_blue = 0
$switch[2] = 0
EndIf
Else
$switch[3] -= 1
EndIfEndFunc
[/autoit] [autoit][/autoit] [autoit]Func Einstellungen()
[/autoit] [autoit][/autoit] [autoit]AdlibDisable()
[/autoit] [autoit][/autoit] [autoit]Local $Gui_Ein = GUICreate("Einstellungen",280,400)
[/autoit] [autoit][/autoit] [autoit]
Local $check_partikel = GUICtrlCreateCheckbox("Partikel",10,10,200,20)
If IniRead($CONFIG,"Config","Partikel",0) = 1 Then GUICtrlSetState($check_partikel, $GUI_CHECKED)
Local $check_bkchange = GUICtrlCreateCheckbox("Hintergrundfarbenwechsel",10,50,200,20)
If IniRead($CONFIG,"Config","BK_type",0) = 1 Then GUICtrlSetState($check_bkchange, $GUI_CHECKED)
Local $check_timer = GUICtrlCreateCheckbox("Timer",10,90,200,20)
If IniRead($CONFIG,"Config","Timer",0) = 1 Then GUICtrlSetState($check_timer, $GUI_CHECKED)
Local $button_save = GUICtrlCreateButton("Speichern",100,300,80,40)
GUICtrlCreateLabel("BK Farbe",150,135,50,20)
Local $input_c_red = GUICtrlCreateInput($icolor_red,10,130,40,20)
Local $input_c_green = GUICtrlCreateInput($icolor_green,60,130,40,20)
Local $input_c_blue = GUICtrlCreateInput($icolor_blue,110,130,40,20)
Local $set[4]
GUISetState(@SW_SHOW)While True
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $button_save
If GUICtrlRead($check_partikel) = 4 Then
$set[0] = 0
Else
$set[0] = 1
EndIf
IniWrite($CONFIG,"Config","Partikel",$set[0])
If $Partikel_onoff <> $set[0] Then
If $Partikel_onoff = 0 Then
_particle_create()
Else
_particle_delete()
EndIf
$Partikel_onoff = $set[0]
EndIf
If GUICtrlRead($check_bkchange) = 4 Then
$set[1] = 0
Else
$set[1] = 1
EndIf
IniWrite($CONFIG,"Config","BK_type",$set[1])
$BK_type = $set[1]If GUICtrlRead($check_timer) = 4 Then
[/autoit] [autoit][/autoit] [autoit]
$set[2] = 0
Else
$set[2] = 1
EndIf
IniWrite($CONFIG,"Config","Timer",$set[2])
$Timer_aktive = $set[2]
$icolor_red = Number(GUICtrlRead($input_c_red))
$icolor_green = Number(GUICtrlRead($input_c_green))
$icolor_blue = Number(GUICtrlRead($input_c_blue))
IniWrite(@scriptdir & "\config.ini","Config","Hintergrund Farbe Rot",$icolor_red)
IniWrite(@scriptdir & "\config.ini","Config","Hintergrund Farbe Gruen",$icolor_green)
IniWrite(@scriptdir & "\config.ini","Config","Hintergrund Farbe Blau",$icolor_blue)
EndSwitch
WEnd
GUIDelete($Gui_Ein)
AdlibEnable("_bus",12)
EndFuncFunc Spiele_ordnen($imerkmal)
[/autoit] [autoit][/autoit] [autoit]Switch $imerkmal
[/autoit] [autoit][/autoit] [autoit]
Case 0 ; Spiel Zeit
ConsoleWrite("Sortieren Spielzeit" & @CRLF)
Local $list[$Spiele_Anzahl][2]
For $i = 0 To $Spiele_Anzahl - 1 Step 1
Local $process = StringSplit ($datei[$i][0], "\")
$list[$i][0] = Number(IniRead(@ScriptDir & "\info.ini","Log",$process[$process[0]],0))
$list[$i][1] = $i
Next
_ArraySort($list)
For $i = 0 To $Spiele_Anzahl - 1 Step 1
$pointer[$i] = $list[$Spiele_Anzahl - 1 - $i][1]
Next
Case 1 ; Wie oft gespielt
ConsoleWrite("Sortieren Wie oft gespielt" & @CRLF)
Local $list[$Spiele_Anzahl][2]
For $i = 0 To $Spiele_Anzahl - 1 Step 1
$list[$i][0] = Number(IniRead(@ScriptDir & "\info.ini","Spiele",$datei[$i][2],0))
$list[$i][1] = $i
Next
_ArraySort($list)
For $i = 0 To $Spiele_Anzahl - 1 Step 1
$pointer[$i] = $list[$Spiele_Anzahl - 1 - $i][1]
Next
Case 2 ; Alphabetisch
ConsoleWrite("Sortieren Alphabetisch" & @CRLF)
For $i = 0 To $Spiele_Anzahl - 1 Step 1
$pointer[$i] = $i
Next
EndSwitchEndFunc
[/autoit] [autoit][/autoit] [autoit]Func _center_aktuelles_Spiel()
[/autoit] [autoit][/autoit] [autoit]
While Mod(-$Bewegung,$Icon_Distance) <> 0
If Mod($Bewegung,$Icon_Distance) > $Icon_Distance / 2 Then
$Bewegung += 1
Else
$Bewegung -= 1
EndIf
draw($Bewegung)
; ToolTip($Bewegung & " Mod: " & Mod(-$Bewegung,$Icon_Distance) & " < " & $Icon_Distance)
WEnd
EndFuncFunc _particle_create()
[/autoit] [autoit][/autoit] [autoit]ReDim $Node_Particle[$Anzahl_Particle]
[/autoit] [autoit][/autoit] [autoit]
ReDim $Particle[$Anzahl_Particle][4]For $i = 0 To 119 Step 1
[/autoit] [autoit][/autoit] [autoit]
$Node_Particle[$i] = AddCubeSceneNode(Random(1,4,1))
; $Node_Particle[$i] = AddSphereSceneNode(Random(1,2,1), 20)
$particle[$i][0] = Random(-200,200,1)
$particle[$i][1] = Random(-200,200,1)
$particle[$i][2] = Random(-200,300,1)
$particle[$i][3] = Random(1,4,1)
SetPosition($Node_Particle[$i],$particle[$i][0],$particle[$i][1],-$particle[$i][2])
NextEndFunc
[/autoit] [autoit][/autoit] [autoit]Func _particle()
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($particle) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]
If $particle[$i][2] < -300 Then ; Wenn es auf der z-achse kleiner also -200 ist
$particle[$i][0] = Random(-200,200,1)
$particle[$i][1] = Random(-200,200,1)
$particle[$i][2] = Random(200,300,1)
$particle[$i][3] = Random(1,4,1)
Else
$particle[$i][2] -= $particle[$i][3]
EndIf
SetPosition($Node_Particle[$i],$particle[$i][0],$particle[$i][1],-$particle[$i][2])
Next
EndFuncFunc _particle_delete()
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($Node_Particle) - 2 Step 1
Remove($Node_Particle[$i])
Next
SetVisible($Node_Particle[UBound($Node_Particle) - 1],0)
EndFuncFunc _Bild_Suche($iTitel)
[/autoit] [autoit][/autoit] [autoit]_IEErrorHandlerRegister ()
[/autoit] [autoit][/autoit] [autoit]$oIE = _IECreateEmbedded ()
[/autoit] [autoit][/autoit] [autoit]
GUICreate("Embedded Web control Test", 640, 480, _
(@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
$WS_OVERLAPPEDWINDOW + $WS_VISIBLE + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN)
$GUIActiveX = GUICtrlCreateObj($oIE, 10, 40, 600, 360)
$GUI_Button_Back = GUICtrlCreateButton("Back", 10, 420, 100, 30)
$GUI_Button_Forward = GUICtrlCreateButton("Forward", 120, 420, 100, 30)
$GUI_Button_Home = GUICtrlCreateButton("Home", 230, 420, 100, 30)
$GUI_Button_Stop = GUICtrlCreateButton("Stop", 340, 420, 100, 30)GUISetState()
[/autoit] [autoit][/autoit] [autoit]_IENavigate ($oIE, "http://images.google.de/")
[/autoit] [autoit][/autoit] [autoit]
$oForm = _IEFormGetObjByName($oIE, "f")
$oQuery = _IEFormElementGetObjByName($oForm, "q")
_IEFormElementSetValue($oQuery, $iTitel)
_IEFormSubmit($oForm)While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $GUI_Button_Home
_IENavigate ($oIE, "http://images.google.de/")
Case $msg = $GUI_Button_Back
_IEAction ($oIE, "back")
Case $msg = $GUI_Button_Forward
_IEAction ($oIE, "forward")
Case $msg = $GUI_Button_Stop
_IEAction ($oIE, "stop")
EndSelect
WEndGUIDelete()
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _sec_to_time_string($isec)
[/autoit] [autoit][/autoit] [autoit]
Local $string = Int($isec / 3600) & " h " & Int(Mod($isec,3600) / 60) & " min " & Mod(Mod($isec,3600),60) & " sec"
Return $string
EndFuncFunc _Ende()
[/autoit]
Exit
EndFuncEDIT NEUE VERSION - Die Beta Version
autoit.de/wcf/attachment/6712/
autoit.de/wcf/attachment/6713/
-Sortieren ist nun möglich
-Optionen sind jetzt verfügbar
-Mit Rechtsklick auf das Spiel kann man Infos abfragen
-Der Hintergrund ändert jetzt seine Farbe (kann auch in der ini ausgestellt werden) -
Mein Fehler ich wollte im I-explorer zurück gehen und der hing kurz worauf hin ich wohl zweimal auf zurück gegangen bin
-
Abend es war noch gut, wenn du ein Programm dabei macht, was eine liste aller programme anzeigt und das man diese dann löschen kann. Also quasi ein programm was deine udf nutzt :)<br>
-
Abend es war noch gut, wenn du ein Programm dabei macht, was eine liste aller programme anzeigt und das man diese dann löschen kann. Also quasi ein programm was deine udf nutzt
-
Das programm ist so sinnlos, dass man es nicht mehr beschreiben kann und es zeigt einem nicht mal die benötigte Zeit an -.-
-
gut ich schau mal nach ob ich die UDF finde mal gucken was sich da machen lässt
-
ja schon klar war auch ehr nen Joke aber programme wie fraps bekommen das doch auch hin
-
Also bei Crysis funktioniert das nicht:-(
-
Dafür habe ich jetzt knapp zwei Wochen gebraucht.
-
Also erstmal finde ich es gut, dass sich so viele dafür interessieren. Ich habe mir das Wissen dazu selber aus dem I-NEt bzw der Readme zusammengesucht und ja es ist möglich einen richtigen Ego-Shooter damit zu erstellen. - Wenn ihr noch Ideen für das Spiel habt - ich bin für Anregungne immer offen.
Übrigens, ich wollte das Spiel ursprünglich in 2D mit GDIPLUs machen aber das ist leider zu langsam -
-
Guten Tag zusammen,
ich möchte euch stolz die 2 Version meines Jump n' Run Spiels vorstellen. Ich habe am Spiel viel verbessert ,hinzugefügt und berichtig, außerdem habe ich Ton hinzugefügt. Ich hoffe euch gefällte diese Version und ich würde mich über feedback freuen .
[Blockierte Grafik: http://img85.imageshack.us/img85/8563/bsp.jpg]
Changelog:
Spiel:Spoiler anzeigen
-Sound!
-neue Gegner (Shooter,Fly) sowie Verbesserungen der alten Gegener
-Partikel Engine (Version 0.3)
-zerbrechliche Blöcke
-Münzen
-Leben (für 50 Münzen bekommt man ein Leben)
-Platformen wurden verbessert-Leider hat das Spiel ein Memory Leak, da die Partikel nicht vollständig gelöscht
werden können. Dieser Fehler stellt jedoch kein Problem dar, da man vorerst eh nur
einen Level spielen.
Editor:Spoiler anzeigen
Der Editor wurde komplett neu geschrieben und funktioniert jetzt fehlerfrei! Außerdem
ist der Editor nun dynamisch was die Objekte angeht, sie werden aus der objekte.ini
geöffnet, welche sich beliebig erweitern lässt.-Knöpfe wurden hinzugefügt
-speichern auf "s"
-map komplett löschen auf "n"
-map laden "l"
Fortschritt:Spiel: 90%
Editor: 100% Der Editor funktioniert nun perfekt ohne fehlerHier noch der Quellcode:
Spiel:Spoiler anzeigen
[autoit]#include "IrrlichtPluginUtils.au3"
[/autoit] [autoit][/autoit] [autoit]
#include <windowsconstants.au3>
#include <GUIConstantsEx.au3>
#include <Misc.au3>
#include <Array.au3>
#include <Partikel.au3>
#include <Mathe.au3>
#include <Sound.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]
Opt('GuiOnEventMode', 1)
Opt('MouseCoordMode', 1)HotKeySet("{ESC}","beenden")
[/autoit] [autoit][/autoit] [autoit]
;HotKeySet("{F9}","aufloesung") ; funktioniert noch nichtGlobal $width = @DesktopWidth
[/autoit] [autoit][/autoit] [autoit]
Global $height = @DesktopHeight
Global $title = "Model"Global Const $tex_dir = @ScriptDir & "\texturen\"
[/autoit] [autoit][/autoit] [autoit]
Global Const $mdl_dir = @ScriptDir & "\models\"
Global Const $snd_dir = @ScriptDir & "\sounds\"Global Const $CCoin = Binary(1)
[/autoit] [autoit][/autoit] [autoit]Local $aKeyboardState[256], $vergleich, $k_left = 39,$k_right = 37,$k_fore = 38,$k_back = 40,$k_jump = 32, $jump_p = 0, $state[2]
[/autoit] [autoit][/autoit] [autoit]
Local $ccd
Global Const $pi_div_180 = 4 * ATan(1) / 180;,$pi = 3.14159265358979, $radToDeg = 180 / $pi,Opt( "TrayIconHide", 1 )
[/autoit] [autoit][/autoit] [autoit]
Opt( "WinTitleMatchMode", 3 )Global $hwnd = GUICreate($title, $width, $height)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "beenden")CreateDeviceOnWindow($hwnd, $EDT_DIRECT3D9, 0, 0, $width, $height, 32, 0, 1)
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit];CreateDevice($EDT_DIRECT3D9, $width, $height, 32, 1, 1, 1)
[/autoit] [autoit][/autoit] [autoit]Global $textbox = AddStaticText( "", 10, 10, 130, 20, 1 )
[/autoit] [autoit][/autoit] [autoit]
Global $Light = AddLightSceneNode( 0, 0, 500, -200, 1, 1, 1, 10000)Global $camera_x, $camera_y, $camera_z = -300, $camera_y_hight = 100
[/autoit] [autoit][/autoit] [autoit]
Global $Camera = AddCameraSceneNode(0, 0,150,-200,0,0,0 )Local $format = ".jpg"
[/autoit] [autoit][/autoit] [autoit]
Global $sky = AddSkyBoxSceneNode( GetTexture($tex_dir & "sky\UP" & $format), GetTexture($tex_dir & "sky\dn" & $format), GetTexture($tex_dir & "sky\bk" & $format), GetTexture($tex_dir & "sky\ft" & $format), GetTexture($tex_dir & "sky\rt" & $format), GetTexture($tex_dir & "sky\lf" & $format));#### Spieler ###########################################################
[/autoit] [autoit][/autoit] [autoit]Global $spawn_punkt[2]
[/autoit] [autoit][/autoit] [autoit]
Global $ziel_punkt[3]
Global $Player_x, $Player_y, $Player_z
Global $l = False, $r = False ,$o = False ,$u = False
Global $Player_can_jump = 1
Global $Player_standby_timer
Global $Spieler_ani = "stehen"
Global $Player_look_dir, $Player_dir
Global $Player_Mesh = GetMesh($mdl_dir & "player.md2")
Global $Player_Texture = GetTexture($mdl_dir & "player.jpg")Global Const $leben_max = 10
[/autoit] [autoit][/autoit] [autoit]
Global $Leben[2]Global $Player_Node = AddAnimatedMeshSceneNode($Player_Mesh)
[/autoit] [autoit][/autoit] [autoit]
SetMaterialTexture( $Player_Node, 0, $Player_Texture)
SetMD2Animation($Player_Node, $EMAT_STAND)
SetAnimationSpeed( $Player_Node, 10 )
SetLoopMode($Player_Node, 1)
SetPosition($Player_Node, 80,80,0)#Region Models & Texturen laden
[/autoit] [autoit][/autoit] [autoit]Global $Box_Mesh = GetMesh($mdl_dir & "box.md2")
[/autoit] [autoit][/autoit] [autoit]
Global $Block_Texture = GetTexture($mdl_dir & "block.jpg")
Global $Grass_Texture = GetTexture($mdl_dir & "rasen.jpg")
Global $Stein_Texture = GetTexture($mdl_dir & "stein.jpg")
Global $BreakableBlock_Texture = GetTexture($mdl_dir & "breakableblock.jpg")Global $Plattform_Mesh = GetMesh($mdl_dir & "Plattform.md2")
[/autoit] [autoit][/autoit] [autoit]
Global $Plattform_Texture = GetTexture($mdl_dir & "Plattform.jpg")Global $herz_Mesh = GetMesh($mdl_dir & "herz.md2")
[/autoit] [autoit][/autoit] [autoit]
Global $herz_Tex = GetTexture($mdl_dir & "herz.jpg")
Global $Gegner_Mesh = GetMesh($mdl_dir & "gegner.md2")
Global $Gegner_Mesh2 = GetMesh($mdl_dir & "gegner_fly.md2")
Global $Gegner_Mesh3 = GetMesh($mdl_dir & "gegner_kanone.md2")
Global $Gegner_Mesh4 = GetMesh($mdl_dir & "toilet.md2")
Global $Gegner_Tex = GetTexture($mdl_dir & "gegner.pcx")
Global $Gegner_Tex2 = GetTexture($mdl_dir & "gegner_fly.jpg")
Global $Gegner_Tex3 = GetTexture($mdl_dir & "gegner_kanone.jpg")
Global $Gegner_Tex4 = GetTexture($mdl_dir & "toilet.jpg")Global $save_point_mesh = GetMesh($mdl_dir & "save.md2")
[/autoit] [autoit][/autoit] [autoit]
Global $save_point_tex = GetTexture($mdl_dir & "save.jpg")Global $Schalter_mesh1 = GetMesh($mdl_dir & "Schalter_t1.md2")
[/autoit] [autoit][/autoit] [autoit]
Global $Schalter_tex1 = GetTexture($mdl_dir & "Schalter_t1.jpg")
Global $Schalter_mesh2 = GetMesh($mdl_dir & "Schalter_t2.md2")
Global $Schalter_tex2 = GetTexture($mdl_dir & "Schalter_t2.jpg")
Global $Tuer_mesh = GetMesh($mdl_dir & "Tür.md2")
Global $Tuer_tex = GetTexture($mdl_dir & "Tür.jpg")
Global $Coin_Mesh = GetMesh($mdl_dir & "coin.md2")
Global $Coin_Texture = GetTexture($mdl_dir & "coin.jpg")Global $light_save = AddBillboardSceneNode( 0, 128, 128 )
[/autoit] [autoit][/autoit] [autoit]
Global $light_tex = GetTexture($tex_dir & "\particlewhite.bmp")#EndRegion
[/autoit] [autoit][/autoit] [autoit]Global $herz_node[10]
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To 9 Step 1
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
$herz_node[$i] = AddMeshSceneNode($herz_mesh)
SetMaterialTexture($herz_node[$i], 0, $herz_tex)
SetScale($herz_node[$i],0.25,0.25,0.25)
SetPosition($herz_node[$i],320 - $i * 12,80,300)
AddChild($camera, $herz_node[$i])
SetVisible($herz_node[$i],0)
NextGlobal $Box[1][2]
[/autoit] [autoit][/autoit] [autoit]
Global $Box_Node[1]
Global $Box_Coords[1][2]
Global $map_blocks[256][11]Global $map_objekte[256][11]
[/autoit] [autoit][/autoit] [autoit]Global $moving_objects_pos[1][2], $moving_objects_pos_mm[1][4], $moving_objects_speed[1], $moving_objects_vec[1][2], $objekt[1]
[/autoit] [autoit][/autoit] [autoit]Global $gegner_pos[1][2], $gegner_variablen[1][4], $gegner_speed[1], $gegner[1], $gegner_type[1], $gegner_rotation[1], $gegner_status[1]
[/autoit] [autoit][/autoit] [autoit]Global $save_points[1][2], $save_point[1]
[/autoit] [autoit][/autoit] [autoit]Global $Box[1][2]
[/autoit] [autoit][/autoit] [autoit]
Global $Box_reset[1][2]
Global $Box_fallen[1]
Global $Box_nodeGlobal $Tuer[1][2]
[/autoit] [autoit][/autoit] [autoit]
Global $Schalter[1][2]
Global $Tuer_Status[1]
Global $Tuer_node[1]
Global $Tuer_move[1]
Global $Schalter_node[1]
Global $Schalter_node2[1]Global $Coin[1][4]
[/autoit] [autoit][/autoit] [autoit]
Global $Coins_rotation
Global $Coins_collected = 0Global $BreakableBlock[1][3]
[/autoit] [autoit][/autoit] [autoit]Global $snd_break = _SoundOpen($snd_dir & "break.wav" , "break")
[/autoit] [autoit][/autoit] [autoit]
Global $snd_checkpoint = _SoundOpen($snd_dir & "Checkpoint.wav" , "checkpoint")
Global $snd_kill = _SoundOpen($snd_dir & "Kill.wav" , "kill")
Global $snd_lose = _SoundOpen($snd_dir & "Lose.wav" , "lose")
Global $snd_runterfallen = _SoundOpen($snd_dir & "Runterfallen.wav" , "runterfallen")
Global $snd_schalter = _SoundOpen($snd_dir & "Schalter.wav" , "schalter")
Global $snd_springen = _SoundOpen($snd_dir & "Springen.wav" , "springen")Load_Level(InputBox("Map","Welche map möchten sie spielen (map1)") & ".ini")
[/autoit] [autoit][/autoit] [autoit]While IrrRun()
[/autoit] [autoit][/autoit] [autoit];If _IsPressed(01) Then $ccd += 5
[/autoit] [autoit][/autoit] [autoit]
;If _IsPressed(02) Then $ccd -= 5zeichne_particle()
[/autoit] [autoit][/autoit] [autoit]SetText($textbox,"Player Box: " & Int($player_x / 40) & " - " & Int($player_y / 40) & " Münzen: " & $Coins_collected)
[/autoit] [autoit][/autoit] [autoit]Objekte_bewegen()
[/autoit] [autoit][/autoit] [autoit]Gegner_bewegen()
[/autoit] [autoit][/autoit] [autoit]Spieler_bewegen()
[/autoit] [autoit][/autoit] [autoit]
_Camera ()Physik_objekte()
[/autoit] [autoit][/autoit] [autoit]herzen()
[/autoit] [autoit][/autoit] [autoit]Coins()
[/autoit] [autoit][/autoit] [autoit]CheckNextLevel()
[/autoit] [autoit][/autoit] [autoit]CheckPunkt()
[/autoit] [autoit][/autoit] [autoit]Schalter_Tueren()
[/autoit] [autoit][/autoit] [autoit]BeginScene(True,true, 255, 100, 100, 100 )
[/autoit] [autoit][/autoit] [autoit]SceneDraw()
[/autoit] [autoit][/autoit] [autoit]GuiDraw()
[/autoit] [autoit][/autoit] [autoit]EndScene()
[/autoit] [autoit][/autoit] [autoit]Wend
[/autoit] [autoit][/autoit] [autoit]Func Objekte_bewegen()
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($moving_objects_speed) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]If _Punkte_Distance($moving_objects_pos[$i][0], $moving_objects_pos[$i][1], $moving_objects_pos_mm[$i][0],$moving_objects_pos_mm[$i][1]) < 0.9*Abs($moving_objects_speed[$i]) Or _
[/autoit] [autoit][/autoit] [autoit]
_Punkte_Distance($moving_objects_pos[$i][0], $moving_objects_pos[$i][1], $moving_objects_pos_mm[$i][2],$moving_objects_pos_mm[$i][3]) < 0.9*Abs($moving_objects_speed[$i]) Then $moving_objects_speed[$i] = -$moving_objects_speed[$i]$moving_objects_pos[$i][0] += $moving_objects_vec[$i][0] * $moving_objects_speed[$i]
[/autoit] [autoit][/autoit] [autoit]
$moving_objects_pos[$i][1] += $moving_objects_vec[$i][1] * $moving_objects_speed[$i]SetPosition($objekt[$i], $moving_objects_pos[$i][0], $moving_objects_pos[$i][1] + 20, 0)
[/autoit] [autoit][/autoit] [autoit]Next
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func Gegner_bewegen()
[/autoit] [autoit][/autoit] [autoit]Local $gegner_p[4][2]
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($gegner_speed) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]Local $x = GetPosition($gegner[$i], "X")
[/autoit] [autoit][/autoit] [autoit]
Local $y = GetPosition($gegner[$i], "Y")
Local $z = GetPosition($gegner[$i], "Z")If $gegner_status[$i] = "Alive" Then
[/autoit] [autoit][/autoit] [autoit]Switch $gegner_type[$i]
[/autoit] [autoit][/autoit] [autoit]
Case "Pilz"$gegner_p[0][0] = $gegner_pos[$i][0] - 1
[/autoit] [autoit][/autoit] [autoit]
$gegner_p[0][1] = $gegner_pos[$i][1]
$gegner_p[1][0] = $gegner_pos[$i][0] - 1
$gegner_p[1][1] = $gegner_pos[$i][1] + 39
$gegner_p[2][0] = $gegner_pos[$i][0] + 39
$gegner_p[2][1] = $gegner_pos[$i][1] + 39
$gegner_p[3][0] = $gegner_pos[$i][0] + 39
$gegner_p[3][1] = $gegner_pos[$i][1]If $gegner_speed[$i] < 0 Then ; horizontale Gegner Bewegung
[/autoit] [autoit][/autoit] [autoit]If Int(($gegner_p[0][0]+$gegner_speed[$i]) / 40) > 0 And _
[/autoit] [autoit][/autoit] [autoit]
Int(($gegner_p[1][0]+$gegner_speed[$i]) / 40) > 0 And _
Int(($gegner_p[1][1]-2) / 40) > 0 ThenIf $map_blocks[Int(($gegner_p[0][0]+$gegner_speed[$i]) / 40)][Int($gegner_p[0][1] / 40)] = False And _
[/autoit] [autoit][/autoit] [autoit]
$map_blocks[Int(($gegner_p[1][0]+$gegner_speed[$i]) / 40)][Int($gegner_p[1][1] / 40)] = False Then$gegner_pos[$i][0] += $gegner_speed[$i]
[/autoit] [autoit][/autoit] [autoit]
Else
$gegner_speed[$i] = -$gegner_speed[$i]
EndIf
Else
$gegner_speed[$i] = -$gegner_speed[$i]
EndIf
Else
If Int(($gegner_p[2][0]+$gegner_speed[$i]) / 40) < 255 And _
Int(($gegner_p[3][0]+$gegner_speed[$i]) / 40) < 255 And _
Int(($gegner_p[1][1]-2) / 40) > 0 ThenIf $map_blocks[Int(($gegner_p[2][0]+$gegner_speed[$i]) / 40)][Int($gegner_p[2][1] / 40)] = False And _
[/autoit] [autoit][/autoit] [autoit]
$map_blocks[Int(($gegner_p[3][0]+$gegner_speed[$i]) / 40)][Int($gegner_p[3][1] / 40)] = False Then$gegner_pos[$i][0] += $gegner_speed[$i]
[/autoit] [autoit][/autoit] [autoit]
Else
$gegner_speed[$i] = -$gegner_speed[$i]
EndIf
Else
$gegner_speed[$i] = -$gegner_speed[$i]
EndIf
EndIfIf Int(($gegner_p[1][1]-2) / 40) > 0 Then ; vertikale Gegner Bewegung
[/autoit] [autoit][/autoit] [autoit]
If $map_blocks[Int(($gegner_p[0][0]+$gegner_speed[$i]) / 40)][Int(($gegner_p[0][1]-2) / 40)] = False And _
$map_blocks[Int(($gegner_p[3][0]+$gegner_speed[$i]) / 40)][Int(($gegner_p[3][1]-2) / 40)] = False Then
$gegner_pos[$i][1] -= 2
EndIf
ElseIf $gegner_p[1][1] < -100 Then
$gegner_status[$i] = "Dead"
SetVisible($gegner[$i],0)
Else
$gegner_pos[$i][1] -= 4
EndIfSetPosition($gegner[$i], $gegner_pos[$i][0], $gegner_pos[$i][1] + 20, 0)
[/autoit] [autoit][/autoit] [autoit]
SetRotationByAxis($gegner[$i], "Y", $gegner_rotation[$i])Case "Fly"
[/autoit] [autoit][/autoit] [autoit]
$gegner_pos[$i][0] = Sin ($gegner_variablen[$i][2] * $pi_div_180) * 40 + $gegner_variablen[$i][0] ;errechnet x
$gegner_pos[$i][1] = Cos ($gegner_variablen[$i][2] * $pi_div_180) * 40 + $gegner_variablen[$i][1] ;errechnet y
SetPosition($gegner[$i], $gegner_pos[$i][0], $gegner_pos[$i][1] + 15, 0)
$gegner_variablen[$i][2] += $gegner_speed[$i]
Case "Shooter"
;ToolTip(Int(($gegner_variablen[$i][0]+$gegner_speed[$i]) / 40) & @LF & Int($gegner_variablen[$i][1] / 40))
If $gegner_variablen[$i][2] = 0 Then
$gegner_variablen[$i][2] = -1
;SetVisible($gegner[$i],1)
If $player_x < $gegner_variablen[$i][0]+20 Then
$gegner_speed[$i] = -Abs($gegner_speed[$i])
Else
$gegner_speed[$i] = Abs($gegner_speed[$i])
EndIf
$gegner_pos[$i][0] = $gegner_variablen[$i][0]
$gegner_pos[$i][1] = $gegner_variablen[$i][1]
ElseIf $gegner_variablen[$i][2] > 0 Then
$gegner_variablen[$i][2] -= 1
Else
If Int(($gegner_pos[$i][0]+$gegner_speed[$i]) / 40) > 0 And Int(($gegner_pos[$i][0]+$gegner_speed[$i]) / 40) < 255 Then
If $map_blocks[Int(($gegner_pos[$i][0]+$gegner_speed[$i]) / 40)][Int($gegner_pos[$i][1] / 40)] = False And _
$map_blocks[Int(($gegner_pos[$i][0]+$gegner_speed[$i]+40) / 40)][Int($gegner_pos[$i][1] / 40)] = False Then
$gegner_pos[$i][0] += $gegner_speed[$i]
Else
If Int(($gegner_pos[$i][0]+$gegner_speed[$i]) / 40) = $gegner_variablen[$i][0]/40 And Int(($gegner_pos[$i][1]) / 40) = $gegner_variablen[$i][1]/40 Or _
Int(($gegner_pos[$i][0]+$gegner_speed[$i]+40) / 40) = $gegner_variablen[$i][0]/40 And Int(($gegner_pos[$i][1]) / 40) = $gegner_variablen[$i][1]/40 Then
$gegner_pos[$i][0] += $gegner_speed[$i]
Else
$gegner_variablen[$i][2] = 100
particle_add_effect($gegner_pos[$i][0],$gegner_pos[$i][1]+20, 10, 60, 0, 2)
particle_add_effect($gegner_pos[$i][0],$gegner_pos[$i][1]+20, 6, 30, 0, 1)
$gegner_pos[$i][0] = $gegner_variablen[$i][0]
$gegner_pos[$i][1] = $gegner_variablen[$i][1]
EndIf
;SetVisible($gegner[$i],0)
EndIf
Else
$gegner_variablen[$i][2] = 100
particle_add_effect($gegner_pos[$i][0],$gegner_pos[$i][1]+20, 10, 60, 0, 2)
particle_add_effect($gegner_pos[$i][0],$gegner_pos[$i][1]+20, 6, 30, 0, 1)
$gegner_pos[$i][0] = $gegner_variablen[$i][0]
$gegner_pos[$i][1] = $gegner_variablen[$i][1]
;SetVisible($gegner[$i],0)
EndIf
EndIf
SetPosition($gegner[$i],$gegner_pos[$i][0],$gegner_pos[$i][1]+10,0)
SetRotationByAxis($gegner[$i], "Y", GetRotation($gegner[$i], "Y")+2)
EndSwitchIf _kollision($player_x - 5,$player_y + 36,$player_x + 5,$player_y + 1, $gegner_pos[$i][0],$gegner_pos[$i][1],$gegner_pos[$i][0] + 40,$gegner_pos[$i][1] + 40) Then
[/autoit] [autoit][/autoit] [autoit]
If $player_y - 30 > $gegner_pos[$i][1] Then
If $gegner_type[$i] <> "shooter" Then
$gegner_status[$i] = "Dead"$jump_p = 100
[/autoit] [autoit][/autoit] [autoit]particle_add_effect($gegner_pos[$i][0],$gegner_pos[$i][1]+10, 10, 60, 0, 2)
[/autoit] [autoit][/autoit] [autoit]
particle_add_effect($gegner_pos[$i][0],$gegner_pos[$i][1]+10, 6, 30, 0, 1)
SetVisible($gegner[$i],0)_SoundPlay($snd_kill)
[/autoit] [autoit][/autoit] [autoit]
Else
$jump_p = 100$gegner_variablen[$i][2] = 100
[/autoit] [autoit][/autoit] [autoit]
particle_add_effect($gegner_pos[$i][0],$gegner_pos[$i][1]+20, 10, 60, 0, 2)
particle_add_effect($gegner_pos[$i][0],$gegner_pos[$i][1]+20, 6, 30, 0, 1)
$gegner_pos[$i][0] = $gegner_variablen[$i][0]
$gegner_pos[$i][1] = $gegner_variablen[$i][1]_SoundPlay($snd_kill)
[/autoit] [autoit][/autoit] [autoit]
EndIf
Else
reset_game()
EndIf
EndIf
EndIfNext
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func Spieler_bewegen()
[/autoit] [autoit][/autoit] [autoit]If $player_y > 5 Then
[/autoit] [autoit][/autoit] [autoit]Local $bewegung_x, $bewegung_y, $bewegung_x_o, $bewegung_y_o, $l_o = False, $r_o = False,$u_o = False
[/autoit] [autoit][/autoit] [autoit]
Local $player_points_x[4], $player_points_y[4]
Local $map_points_x[4], $map_points_y[4]
Local $objekte_seiten[4];If _IsPressed(41) Then $player_x += 40
[/autoit] [autoit][/autoit] [autoit]
;If _IsPressed(57) Then $player_y += 40
;If _IsPressed(44) Then $player_x -= 40
;If _IsPressed(53) Then $player_y -= 40$aKeyboardState = _WinAPI_GetKeyboardState()
[/autoit] [autoit][/autoit] [autoit]For $i = 30 To 40 Step 1 ; keyboard state bewegung
[/autoit] [autoit][/autoit] [autoit]If BitAND($aKeyboardState[$i], 0xF0) = 128 Then
[/autoit] [autoit][/autoit] [autoit]Switch $i
[/autoit] [autoit][/autoit] [autoit]Case $k_left
[/autoit] [autoit][/autoit] [autoit]
$bewegung_x += 4
Case $k_right
$bewegung_x -= 4
Case $k_fore
If $Player_can_jump = 1 Then
_SoundPlay($snd_springen)
$jump_p = 100
EndIf
Case $k_jump
If $Player_can_jump = 1 Then
_SoundPlay($snd_springen)
$jump_p = 100
EndIf
EndSwitch
EndIf
NextLocal $x_dist = 4, $y_dist = 5
[/autoit] [autoit][/autoit] [autoit]$player_points_x[0] = $Player_x - 5 ; oberer linker Punkt
[/autoit] [autoit][/autoit] [autoit]
$player_points_y[0] = $Player_y + 36; oberer linker Punkt
$player_points_x[1] = $Player_x + 5 ; oberer rechter Punkt
$player_points_y[1] = $Player_y + 36; oberer rechter Punkt
$player_points_x[2] = $Player_x - 5; unterer linker Punkt
$player_points_y[2] = $Player_y + 1; unterer linker Punkt
$player_points_x[3] = $Player_x + 5; unterer rechter Punkt
$player_points_y[3] = $Player_y + 1; unterer rechter PunktLocal $kolli = True
[/autoit] [autoit][/autoit] [autoit]
Local $kolli_pl = True
Local $bewegung_ges[2] = [0,$bewegung_y_o + $jump_p / 20];Kollision mit bewegten Objekten
[/autoit] [autoit][/autoit] [autoit]For $movobj = 0 To UBound($moving_objects_speed) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]
If _Kollision_Punkt($player_points_x[2], $player_points_y[2] + $bewegung_ges[1], _
$moving_objects_pos[$movobj][0], $moving_objects_pos[$movobj][1] ,$moving_objects_pos[$movobj][0], $moving_objects_pos[$movobj][1] + 40) Or _
_Kollision_Punkt($player_points_x[3], $player_points_y[3] + $bewegung_ges[1], _
$moving_objects_pos[$movobj][0], $moving_objects_pos[$movobj][1] ,$moving_objects_pos[$movobj][0] + 40, $moving_objects_pos[$movobj][1] + 40) Then
;$kolli = False
$kolli_pl = False
$bewegung_x_o = $moving_objects_speed[$movobj] * $moving_objects_vec[$movobj][0]
$bewegung_y_o = $moving_objects_speed[$movobj] * $moving_objects_vec[$movobj][1]
EndIf
Next$bewegung_ges[0] = $bewegung_x_o + $bewegung_x
[/autoit] [autoit][/autoit] [autoit]
$bewegung_ges[1] = $bewegung_y_o + $jump_p / 20Local $x_was
[/autoit] [autoit][/autoit] [autoit];Horizontale Kollision
[/autoit] [autoit][/autoit] [autoit]If Abs($bewegung_ges[0]) > 0 Then ; Wenn sich der Spieler überhaupt bewegt
[/autoit] [autoit][/autoit] [autoit]
If ($player_points_x[0] + $bewegung_ges[0]) > 0 And $player_points_y[0] > 0 And ($player_points_x[0] + $bewegung_ges[0]) < 255*40 And $player_points_y[0] < 10*40 And _
($player_points_x[1] + $bewegung_ges[0]) > 0 And $player_points_y[1] > 0 And ($player_points_x[1] + $bewegung_ges[0]) < 255*40 And $player_points_y[1] < 10*40 And _
($player_points_x[2] + $bewegung_ges[0]) > 0 And $player_points_y[2] > 0 And ($player_points_x[2] + $bewegung_ges[0]) < 255*40 And $player_points_y[2] < 10*40 And _
($player_points_x[3] + $bewegung_ges[0]) > 0 And $player_points_y[3] > 0 And ($player_points_x[3] + $bewegung_ges[0]) < 255*40 And $player_points_y[3] < 10*40 ThenIf $map_blocks[Int(($player_points_x[0] + $bewegung_ges[0]) / 40)][Int($player_points_y[0] / 40)] = False And _
[/autoit] [autoit][/autoit] [autoit]
$map_blocks[Int(($player_points_x[1] + $bewegung_ges[0]) / 40)][Int($player_points_y[1] / 40)] = False And _
$map_blocks[Int(($player_points_x[2] + $bewegung_ges[0]) / 40)][Int($player_points_y[2] / 40)] = False And _
$map_blocks[Int(($player_points_x[3] + $bewegung_ges[0]) / 40)][Int($player_points_y[3] / 40)] = False Then
$Player_x += $bewegung_ges[0]
$x_was = $bewegung_ges[0]If $bewegung_ges[0] > 0 Then
[/autoit] [autoit][/autoit] [autoit]
$Player_look_dir = 0
Else
$Player_look_dir = 180
EndIf
If $Spieler_ani <> $EMAT_RUN Then
$Spieler_ani = $EMAT_RUN
SetMD2Animation( $Player_Node, $EMAT_RUN)
EndIf
EndIf
EndIf
Else
If $Spieler_ani <> $EMAT_STAND Then
$Spieler_ani = $EMAT_STAND
SetMD2Animation( $Player_Node, $EMAT_STAND)
EndIf
EndIfIf $Player_look_dir <> $Player_dir Then ; Die Richtung in der der Spieler guckt der Richtugn des Laufens anpassen
[/autoit] [autoit][/autoit] [autoit]
If $Player_dir < $Player_look_dir Then
$Player_dir += 10
Else
$Player_dir -= 10
EndIf
EndIf;Vertikale Kollision
[/autoit] [autoit][/autoit] [autoit]If ($player_points_x[0] + $x_was) > 0 And ($player_points_y[0] + $bewegung_ges[1]) > 0 And ($player_points_x[0] + $x_was) < 255*40 And ($player_points_y[0] + $bewegung_ges[1]) < 10*40 And _
[/autoit] [autoit][/autoit] [autoit]
($player_points_x[1] + $x_was) > 0 And ($player_points_y[1] + $bewegung_ges[1]) > 0 And ($player_points_x[1] + $x_was) < 255*40 And ($player_points_y[1] + $bewegung_ges[1]) < 10*40 And _
($player_points_x[2] + $x_was) > 0 And ($player_points_y[2] + $bewegung_ges[1]) > 0 And ($player_points_x[2] + $x_was) < 255*40 And ($player_points_y[2] + $bewegung_ges[1]) < 10*40 And _
($player_points_x[3] + $x_was) > 0 And ($player_points_y[3] + $bewegung_ges[1]) > 0 And ($player_points_x[3] + $x_was) < 255*40 And ($player_points_y[3] + $bewegung_ges[1]) < 10*40 ThenFor $breakblock = 0 To UBound($BreakableBlock) - 1 Step 1 ; Prüft Kollision von unten mit einem Zerbrechlichem Objekt
[/autoit] [autoit][/autoit] [autoit]If Not $BreakableBlock[$breakblock][3] Then
[/autoit] [autoit][/autoit] [autoit];_Punkte_Distance($x1, $y1, $x2, $y2)
[/autoit] [autoit][/autoit] [autoit]
If _Kollision_Punkt($player_points_x[0] + $x_was, $player_points_y[0] + $bewegung_ges[1]+5, $BreakableBlock[$breakblock][0]*40,$BreakableBlock[$breakblock][1]*40,$BreakableBlock[$breakblock][0]*40+40,$BreakableBlock[$breakblock][1]*40+40) Or _
_Kollision_Punkt($player_points_x[1] + $x_was, $player_points_y[1] + $bewegung_ges[1]+5, $BreakableBlock[$breakblock][0]*40,$BreakableBlock[$breakblock][1]*40,$BreakableBlock[$breakblock][0]*40+40,$BreakableBlock[$breakblock][1]*40+40) Then$map_blocks[$BreakableBlock[$breakblock][0]][$BreakableBlock[$breakblock][1]] = False
[/autoit] [autoit][/autoit] [autoit]
Setvisible($BreakableBlock[$breakblock][2],0)$BreakableBlock[$breakblock][3] = True
[/autoit] [autoit][/autoit] [autoit]
_SoundPlay($snd_break)$jump_p = -4
[/autoit] [autoit][/autoit] [autoit]particle_add_effect($BreakableBlock[$breakblock][0]*40,$BreakableBlock[$breakblock][1]*40+20, 10, 60, 0, 2)
[/autoit] [autoit][/autoit] [autoit]
particle_add_effect($BreakableBlock[$breakblock][0]*40,$BreakableBlock[$breakblock][1]*40+20, 6, 30, 0, 1)
EndIf
EndIf
Next
If $bewegung_ges[1] < 0 Then ; Wenn sich der Spieler nach oben bewegt
If $map_blocks[Int(($player_points_x[2] + $x_was) / 40)][Int(($player_points_y[2] + $bewegung_ges[1]) / 40)] = False And _
$map_blocks[Int(($player_points_x[3] + $x_was) / 40)][Int(($player_points_y[3] + $bewegung_ges[1]) / 40)] = False Then
For $phybox = 0 To UBound($Box) - 1 Step 1
If _Kollision_Punkt($player_points_x[2] + $x_was, $player_points_y[2] + $bewegung_ges[1], $Box[$phybox][0],$Box[$phybox][1]-20,$Box[$phybox][0]+40,$Box[$phybox][1]+20) Or _
_Kollision_Punkt($player_points_x[3] + $x_was, $player_points_y[3] + $bewegung_ges[1], $Box[$phybox][0],$Box[$phybox][1]-20,$Box[$phybox][0]+40,$Box[$phybox][1]+20) Then
$kolli = False
EndIf
NextIf $kolli And $kolli_pl Then
[/autoit] [autoit][/autoit] [autoit]
$jump_p = limit($jump_p-4,-100,100)
$Player_y += $bewegung_ges[1]
$Player_can_jump = 0
ElseIf $kolli_pl = False Then
$Player_y += $bewegung_y_o
$Player_can_jump = 1
$jump_p = -4
Else
$Player_can_jump = 1
$jump_p = -4
EndIf
ElseIf $bewegung_ges[1] < 0 Then
$Player_can_jump = 1
$jump_p = -4
;If $map_blocks[Int(($player_points_x[2] + $x_was) / 40)][Int(($player_points_y[2] + $bewegung_ges[1]) / 40)] = False And _
;$map_blocks[Int(($player_points_x[3] + $x_was) / 40)][Int(($player_points_y[3] + $bewegung_ges[1]) / 40)] = False Then $Player_y -= 10
EndIf
Else ; Wenn sich der Spieler nach unten bewegt
If $map_blocks[Int(($player_points_x[0] + $x_was) / 40)][Int(($player_points_y[0] + $bewegung_ges[1]) / 40)] = False And _
$map_blocks[Int(($player_points_x[1] + $x_was) / 40)][Int(($player_points_y[1] + $bewegung_ges[1]) / 40)] = False Then
If $kolli_pl Then
$jump_p = limit($jump_p-4,-100,100)
$Player_y += $bewegung_ges[1]
$Player_can_jump = 0
Else
$Player_y += $bewegung_y_o
$Player_can_jump = 1
$jump_p = -4
EndIf
Else
$jump_p = limit($jump_p-4,-100,-4)
$Player_can_jump = 0
EndIf
EndIf
EndIfElse
[/autoit] [autoit][/autoit] [autoit]
$Player_y += $jump_p / 20
If $Player_y < -100 Then
_SoundPlay($snd_runterfallen)
reset_game()
EndIf
EndIfReturn 1
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func Physik_objekte()
[/autoit] [autoit][/autoit] [autoit]Local $not = False
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($Box_fallen) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]If $Box[$i][1] - 20 > 0 Then
[/autoit] [autoit][/autoit] [autoit]If $Box[$i][0] < $player_x And $Box[$i][0] + 40 > $player_x Then
[/autoit] [autoit][/autoit] [autoit]
If $Box[$i][1] + 20 > $player_y + $jump_p / 20 And $Box[$i][1] - 20 < $player_y + $jump_p / 20 Then
$u = True
$jump_p = -4
EndIf
EndIfIf _kollision($player_x - 5, $player_y + 1, $player_x + 5, $player_y +36, $Box[$i][0], $Box[$i][1] - 20,$Box[$i][0] + 40,$Box[$i][1] + 20) Then
[/autoit] [autoit][/autoit] [autoit]If $Box[$i][0] + 20 < $player_x Then
[/autoit] [autoit][/autoit] [autoit]
If $map_blocks[Int($Box[$i][0] / 40)][Int(($Box[$i][1] - 20 + 5) / 40)] = False And $map_blocks[Int($Box[$i][0] / 40)][Int(($Box[$i][1] + 20 - 5) / 40)] = False Then
For $e = 0 To UBound($Box_fallen) - 1 Step 1
If $i <> $e Then
If $Box[$i][0] > $Box[$e][0] And $Box[$i][0] < $Box[$e][0] + 40 Then
If $Box[$i][1] + 5 > $Box[$e][1] And $Box[$i][1] + 5 < $Box[$e][1] + 40 Then
If $Box[$i][1] + 35 > $Box[$e][1] And $Box[$i][1] + 35 < $Box[$e][1] + 40 Then
$not = True
EndIf
EndIf
EndIf
EndIf
Next
If $not = False Then $Box[$i][0] -= 4
EndIf
Else
If $map_blocks[Int(($Box[$i][0] + 40) / 40)][Int(($Box[$i][1] - 20 + 5) / 40)] = False And $map_blocks[Int(($Box[$i][0] + 40) / 40)][Int(($Box[$i][1] + 20 - 5) / 40)] = False Then
For $e = 0 To UBound($Box_fallen) - 1 Step 1
If $i <> $e Then
If $Box[$i][0] + 40 > $Box[$e][0] And $Box[$i][0] + 40 < $Box[$e][0] + 40 Then
If $Box[$i][1] + 5 > $Box[$e][1] And $Box[$i][1] + 5 < $Box[$e][1] + 40 Then
If $Box[$i][1] + 35 > $Box[$e][1] And $Box[$i][1] + 35 < $Box[$e][1] + 40 Then
$not = True
EndIf
EndIf
EndIf
EndIf
Next
If $not = False Then $Box[$i][0] += 4
EndIf
EndIf
SetPosition($Box_node[$i], $Box[$i][0], $Box[$i][1], 0)
;SetPosition($light_save, $Box[$i][0], $Box[$i][1], 0)
EndIfIf $map_blocks[Int(($Box[$i][0] + 1) / 40)][Int(($Box[$i][1] - 20 + $Box_fallen[$i] / 5) / 40)] = True Or $map_blocks[Int(($Box[$i][0] + 39) / 40)][Int(($Box[$i][1] - 20 + $Box_fallen[$i] / 5) / 40)] = True Then
[/autoit] [autoit][/autoit] [autoit]
;ToolTip("unten")
$Box_fallen[$i] = -1
Else
$not = False
For $e = 0 To UBound($Box_fallen) - 1 Step 1
If $e <> $i Then
If $Box[$i][1] > $Box[$e][1] And $Box[$i][1] < $Box[$e][1] + 40 Then
If $Box[$i][0] + 5 > $Box[$e][0] And $Box[$i][0] + 5 < $Box[$e][0] + 40 Then
$not = True
ElseIf $Box[$i][0] + 35 > $Box[$e][0] And $Box[$i][0] + 35 < $Box[$e][0] + 40 Then
$not = True
EndIf
EndIf
EndIf
Next
If $not = False Then
$Box_fallen[$i] = limit($Box_fallen[$i] - 1,-25,0)
$Box[$i][1] += $Box_fallen[$i] / 5
SetPosition($Box_node[$i], $Box[$i][0], $Box[$i][1], 0)
;SetPosition($light_save, $Box[$i][0], $Box[$i][1], 0)
EndIf
EndIfElse
[/autoit] [autoit][/autoit] [autoit]
$Box[$i][1] += $Box_fallen[$i] / 5
SetPosition($Box_node[$i], $Box[$i][0], $Box[$i][1], 0)If $Box[$i][1] - 20 < -100 Then
[/autoit] [autoit][/autoit] [autoit]
SetVisible($Box_node[$i],0)
EndIfEndIf
[/autoit] [autoit][/autoit] [autoit]Next
[/autoit] [autoit][/autoit] [autoit]
EndFuncFunc herzen()
[/autoit] [autoit][/autoit] [autoit]If $Leben[0] <> $Leben[1] Then
[/autoit] [autoit][/autoit] [autoit]$Leben[1] = $Leben[0]
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To $Leben[0] Step 1
[/autoit] [autoit][/autoit] [autoit]
SetVisible($herz_node[$i],1)
Next
For $i = $Leben[0] To $leben_max - 1 Step 1
SetVisible($herz_node[$i],0)
Next
EndIfEndFunc
[/autoit] [autoit][/autoit] [autoit]Func Coins()
[/autoit] [autoit][/autoit] [autoit]$Coins_rotation += 2
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($Coin) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]
If Abs($player_x/40-$Coin[$i][1]) < 13 Then
If $Coin[$i][3] = 1 ThenSetRotationbyAxis($Coin[$i][0],"Y",$Coins_rotation)
[/autoit] [autoit][/autoit] [autoit]If _Punkte_Distance($player_x, $player_y, $Coin[$i][1]*40+20, $Coin[$i][2]*40) < 40 Then
[/autoit] [autoit][/autoit] [autoit]$Coin[$i][3] = 2
[/autoit] [autoit][/autoit] [autoit]_SoundPlay($snd_kill)
[/autoit] [autoit][/autoit] [autoit]$Coins_collected += 1
[/autoit] [autoit][/autoit] [autoit]
If $Coins_collected = 50 Then
$Coins_collected = 0
$Leben[0] += 1
EndIfEndIf
[/autoit] [autoit][/autoit] [autoit]
EndIf
If $Coin[$i][3] = 2 And GetPosition($Coin[$i][0], "Y") < 1000 Then
SetPosition($Coin[$i][0], $Coin[$i][1]*40, GetPosition($Coin[$i][0], "Y") + 10,0)
ElseIf $Coin[$i][3] <> 2 And $Coin[$i][3] <> 1 Then
$Coin[$i][3] = 3
SetVisible($Coin[$i][0],0)
EndIf
EndIf
NextEndFunc
[/autoit] [autoit][/autoit] [autoit]Func CheckNextLevel()
[/autoit] [autoit][/autoit] [autoit]If _kollision($player_x - 5, $player_y + 1, $player_x + 5, $player_y +36, $ziel_punkt[0],$ziel_punkt[1],$ziel_punkt[0] + 40,$ziel_punkt[1] + 40) Then
[/autoit] [autoit][/autoit] [autoit]beenden()
[/autoit] [autoit][/autoit] [autoit]
;ClearMap()
;Load_Level($ziel_punkt[2])EndIf
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func CheckPunkt()
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($save_point) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]If _kollision($player_x - 5, $player_y + 1, $player_x + 5, $player_y +36, $save_points[$i][0],$save_points[$i][1],$save_points[$i][0] + 40,$save_points[$i][1] + 40) Then
[/autoit] [autoit][/autoit] [autoit]
If $spawn_punkt[0] <> $save_points[$i][0] + 20 Or $spawn_punkt[1] <> $save_points[$i][1] Then
$spawn_punkt[0] = $save_points[$i][0] + 20
$spawn_punkt[1] = $save_points[$i][1]
SetPosition($light_save,$spawn_punkt[0] - 20,$spawn_punkt[1] + 20,0)_SoundPlay($snd_checkpoint)
[/autoit] [autoit][/autoit] [autoit]
EndIf
EndIfNext
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func ClearMap()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func Schalter_Tueren()
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($Tuer_Status) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]If _kollision($player_x - 5, $player_y + 1, $player_x + 5, $player_y +36, $Schalter[$i][0],$Schalter[$i][1],$Schalter[$i][0] + 40,$Schalter[$i][1] + 40) Then
[/autoit] [autoit][/autoit] [autoit]
If $Tuer_Status[$i] = False Then
SetMD2Animation($Schalter_Node[$i], $EMAT_STAND)
$Tuer_Status[$i] = True
_SoundPlay($snd_schalter)
EndIf
EndIf
If $Tuer_Status[$i] = True Then
If $Tuer_move[$i] < 40 Then
$Tuer_move[$i] += 1
SetPosition($Tuer_Node[$i], $Tuer[$i][0], $Tuer[$i][1] - $Tuer_move[$i], 0)
Else
$map_blocks[$Tuer[$i][0] / 40][$Tuer[$i][1] / 40] = False
SetVisible($Tuer_Node[$i], 0)
EndIf
EndIfNext
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _Kollision($x1,$y1,$x2,$y2, $x3,$y3,$x4,$y4)
[/autoit] [autoit][/autoit] [autoit]Local $points_ob1[4][2], $points_ob2[4][2], $kollision = False
[/autoit] [autoit][/autoit] [autoit]#Region Alle Punkte des Objekts
[/autoit] [autoit][/autoit] [autoit]$points_ob1[0][0] = $x1
[/autoit] [autoit][/autoit] [autoit]
$points_ob1[0][1] = $y1
$points_ob1[1][0] = $x2
$points_ob1[1][1] = $y1
$points_ob1[2][0] = $x2
$points_ob1[2][1] = $y2
$points_ob1[3][0] = $x1
$points_ob1[3][1] = $y2$points_ob2[0][0] = $x3
[/autoit] [autoit][/autoit] [autoit]
$points_ob2[0][1] = $y3
$points_ob2[1][0] = $x4
$points_ob2[1][1] = $y3
$points_ob2[2][0] = $x4
$points_ob2[2][1] = $y4
$points_ob2[3][0] = $x3
$points_ob2[3][1] = $y4#EndRegion
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To 3 Step 1 ; geht alle 4 punkte durch
[/autoit] [autoit][/autoit] [autoit]If $points_ob1[$i][0] > $points_ob2[0][0] And $points_ob1[$i][0] < $points_ob2[2][0] Then
[/autoit] [autoit][/autoit] [autoit]
If $points_ob1[$i][1] > $points_ob2[0][1] And $points_ob1[$i][1] < $points_ob2[2][1] Then
$kollision = True
EndIf
EndIfNext
[/autoit] [autoit][/autoit] [autoit]Return $kollision
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _Kollision_Punkt($xi,$yi, $x1,$y1,$x2,$y2)
[/autoit] [autoit][/autoit] [autoit]If $x1 < $xi And $xi < $x2 Then
[/autoit] [autoit][/autoit] [autoit]
If $y1 < $yi And $yi < $y2 Then
Return True
Else
Return False
EndIf
Else
Return False
EndIfEndFunc
[/autoit] [autoit][/autoit] [autoit]Func _Camera ()
[/autoit] [autoit][/autoit] [autoit]If $player_x > $camera_x + 50 Then
[/autoit] [autoit][/autoit] [autoit]
$camera_x += limit($player_x - $camera_x - 50,-10,10)
ElseIf $player_x < $camera_x - 50 Then
$camera_x -= limit($camera_x - 50 - $player_x,-10,10)
EndIfIf $player_y > $camera_y + 50 Then
[/autoit] [autoit][/autoit] [autoit]
$camera_y += limit($player_y - $camera_y - 50,-10,10)
ElseIf $player_y < $camera_y - 50 Then
$camera_y -= limit($camera_y - 50 - $player_y,-10,10)
EndIfSetPosition($Light ,$Player_x, 500, -200)
[/autoit] [autoit][/autoit] [autoit]
SetPosition($Player_Node, $Player_x - 20, $Player_y + 24, $Player_z)
SetRotationByAxis($Player_Node, "Y", $Player_dir)
SetPosition($Camera, $camera_x, $camera_y + $camera_y_hight + $ccd, $camera_z)
SetTarget($Camera, $camera_x, $camera_y , $Player_z)EndFunc
[/autoit] [autoit][/autoit] [autoit]Func Load_Level($map)
[/autoit] [autoit][/autoit] [autoit]$Leben[0] = 5
[/autoit] [autoit][/autoit] [autoit]Local $ini_map = @scriptdir & "\" & $map
[/autoit] [autoit][/autoit] [autoit]Local $Level_Ini = IniReadSection($ini_map,"Start-Ziel")
[/autoit] [autoit][/autoit] [autoit]If IsArray($Level_Ini) Then
[/autoit] [autoit][/autoit] [autoit]If $Level_Ini[0][0] = 5 Then
[/autoit] [autoit][/autoit] [autoit]$spawn_punkt[0] = Number($Level_Ini[1][1])*40+20
[/autoit] [autoit][/autoit] [autoit]
$spawn_punkt[1] = Number($Level_Ini[2][1])*40
$ziel_punkt[0] = Number($Level_Ini[3][1])*40+20
$ziel_punkt[1] = Number($Level_Ini[4][1])*40+40
$ziel_punkt[2] = $Level_Ini[5][1]EndIf
[/autoit] [autoit][/autoit] [autoit]$Player_x = $spawn_punkt[0]
[/autoit] [autoit][/autoit] [autoit]
$Player_y = $spawn_punkt[1]
$Player_z = 0
$Player_dir = 90
$Player_look_dir = 90EndIf
[/autoit] [autoit][/autoit] [autoit]$Level_Ini = IniReadSection($ini_map,"Rasen")
[/autoit] [autoit][/autoit] [autoit]If IsArray($level_ini) Then
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To ($Level_Ini[0][0] / 3) - 1 Step 1ReDim $Box_Node[$i + 1]
[/autoit] [autoit][/autoit] [autoit]
ReDim $Box_Coords[$i + 1][2]$Box_Coords[$i][0] = $Level_Ini[$i * 3 + 1][1]
[/autoit] [autoit][/autoit] [autoit]
$Box_Coords[$i][1] = $Level_Ini[$i * 3 + 2][1]$map_blocks[$Box_Coords[$i][0]][$Box_Coords[$i][1]] = True
[/autoit] [autoit][/autoit] [autoit]$Box_Node[$i] = AddMeshSceneNode($Box_Mesh)
[/autoit] [autoit][/autoit] [autoit]SetMaterialTexture($Box_Node[$i], 0, $Grass_Texture)
[/autoit] [autoit][/autoit] [autoit]SetPosition($Box_Node[$i], $Box_Coords[$i][0] * 40, $Box_Coords[$i][1] * 40 + 20, 0)
[/autoit] [autoit][/autoit] [autoit]Next
[/autoit] [autoit][/autoit] [autoit]
EndIfLocal $Level_Ini = IniReadSection($ini_map,"Stein")
[/autoit] [autoit][/autoit] [autoit]If Not @error Then
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To ($Level_Ini[0][0] / 3) - 1 Step 1ReDim $Box_Node[$i + 1]
[/autoit] [autoit][/autoit] [autoit]
ReDim $Box_Coords[$i + 1][2]$Box_Coords[$i][0] = $Level_Ini[$i * 3 + 1][1]
[/autoit] [autoit][/autoit] [autoit]
$Box_Coords[$i][1] = $Level_Ini[$i * 3 + 2][1]$map_blocks[$Box_Coords[$i][0]][$Box_Coords[$i][1]] = True
[/autoit] [autoit][/autoit] [autoit]$Box_Node[$i] = AddMeshSceneNode($Box_Mesh)
[/autoit] [autoit][/autoit] [autoit]SetMaterialTexture($Box_Node[$i], 0, $Stein_Texture)
[/autoit] [autoit][/autoit] [autoit]SetPosition($Box_Node[$i], $Box_Coords[$i][0] * 40, $Box_Coords[$i][1] * 40 + 20, 0)
[/autoit] [autoit][/autoit] [autoit]Next
[/autoit] [autoit][/autoit] [autoit]
EndIfLocal $Level_Ini = IniReadSection($ini_map,"Block")
[/autoit] [autoit][/autoit] [autoit]If Not @error Then
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To ($Level_Ini[0][0] / 3) - 1 Step 1ReDim $Box_Node[$i + 1]
[/autoit] [autoit][/autoit] [autoit]
ReDim $Box_Coords[$i + 1][2]$Box_Coords[$i][0] = $Level_Ini[$i * 3 + 1][1]
[/autoit] [autoit][/autoit] [autoit]
$Box_Coords[$i][1] = $Level_Ini[$i * 3 + 2][1]$map_blocks[$Box_Coords[$i][0]][$Box_Coords[$i][1]] = True
[/autoit] [autoit][/autoit] [autoit]$Box_Node[$i] = AddMeshSceneNode($Box_Mesh)
[/autoit] [autoit][/autoit] [autoit]SetMaterialTexture($Box_Node[$i], 0, $Block_Texture)
[/autoit] [autoit][/autoit] [autoit]SetPosition($Box_Node[$i], $Box_Coords[$i][0] * 40, $Box_Coords[$i][1] * 40 + 20, 0)
[/autoit] [autoit][/autoit] [autoit]Next
[/autoit] [autoit][/autoit] [autoit]
EndIf$Level_Ini = IniReadSection($ini_map,"Moving Objects")
[/autoit] [autoit][/autoit] [autoit]Local $vec[2]
[/autoit] [autoit][/autoit] [autoit]If IsArray($Level_Ini) Then
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To ($Level_Ini[0][0] / 5) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]ReDim $moving_objects_pos[$i + 1][2]
[/autoit] [autoit][/autoit] [autoit]
ReDim $moving_objects_pos_mm[$i + 1][4]
ReDim $moving_objects_speed[$i + 1]
ReDim $moving_objects_vec[$i + 1][2]
ReDim $objekt[$i + 1]$objekt[$i] = AddMeshSceneNode($Plattform_Mesh)
[/autoit] [autoit][/autoit] [autoit]
SetMaterialTexture($objekt[$i], 0, $Plattform_Texture)$moving_objects_pos_mm[$i][0] = $Level_Ini[$i * 5 + 1][1] * 40 ; start x-punkt
[/autoit] [autoit][/autoit] [autoit]
$moving_objects_pos_mm[$i][1] = $Level_Ini[$i * 5 + 2][1] * 40 ; start y-punkt
$moving_objects_pos_mm[$i][2] = $Level_Ini[$i * 5 + 3][1] * 40 ; end x-punkt
$moving_objects_pos_mm[$i][3] = $Level_Ini[$i * 5 + 4][1] * 40 ; end y-punkt$vec = _punkte_zu_vektor($moving_objects_pos_mm[$i][0],$moving_objects_pos_mm[$i][1],$moving_objects_pos_mm[$i][2],$moving_objects_pos_mm[$i][3])
[/autoit] [autoit][/autoit] [autoit]$moving_objects_vec[$i][0] = $vec[0]
[/autoit] [autoit][/autoit] [autoit]
$moving_objects_vec[$i][1] = $vec[1]$moving_objects_speed[$i] = $Level_Ini[$i * 5 + 5][1] ; geschwindigkeit
[/autoit] [autoit][/autoit] [autoit]$moving_objects_pos[$i][0] = $Level_Ini[$i * 5 + 1][1] * 40 ; startpunkt der plattform x-punkt
[/autoit] [autoit][/autoit] [autoit]
$moving_objects_pos[$i][1] = $Level_Ini[$i * 5 + 2][1] * 40 ; startpunkt der plattform y-punktNext
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]$Level_Ini = IniReadSection($ini_map,"Gegner")
[/autoit] [autoit][/autoit] [autoit]If IsArray($Level_Ini) Then
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To ($Level_Ini[0][0] / 6) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]ReDim $gegner_pos[$i + 1][2]
[/autoit] [autoit][/autoit] [autoit]
ReDim $gegner_variablen[$i + 1][4]
ReDim $gegner_speed[$i + 1]
ReDim $gegner[$i + 1]
ReDim $gegner_type[$i + 1]
ReDim $gegner_rotation[$i + 1]
ReDim $gegner_status[$i + 1]$gegner_status[$i] = "Alive"
[/autoit] [autoit][/autoit] [autoit]$gegner_type[$i] = $Level_Ini[$i * 6 + 6][1] ; gegner type
[/autoit] [autoit][/autoit] [autoit]$gegner_variablen[$i][0] = $Level_Ini[$i * 6 + 1][1] * 40 ; start x-punkt
[/autoit] [autoit][/autoit] [autoit]
$gegner_variablen[$i][1] = $Level_Ini[$i * 6 + 2][1] * 40 ; start y-punkt
$gegner_variablen[$i][2] = $Level_Ini[$i * 6 + 3][1] * 40 ; end x-punkt
$gegner_variablen[$i][3] = $Level_Ini[$i * 6 + 4][1] * 40 ; end y-punkt$gegner_speed[$i] = $Level_Ini[$i * 6 + 5][1] ; geschwindigkeit
[/autoit] [autoit][/autoit] [autoit]$gegner_pos[$i][0] = $gegner_variablen[$i][0] ; startpunkt der plattform x-punkt
[/autoit] [autoit][/autoit] [autoit]
$gegner_pos[$i][1] = $gegner_variablen[$i][1] ; startpunkt der plattform y-punktSwitch $gegner_type[$i]
[/autoit] [autoit][/autoit] [autoit]
Case "Pilz"
$gegner[$i] = AddAnimatedMeshSceneNode($Gegner_Mesh)
SetMaterialTexture($gegner[$i], 0, $Gegner_Tex)
SetMD2Animation($gegner[$i], $EMAT_RUN)
SetAnimationSpeed($gegner[$i], 10 )
SetLoopMode($gegner[$i], 1)
SetScale($gegner[$i], 0.5, 0.5, 0.5)
Case "Fly"
$gegner[$i] = AddAnimatedMeshSceneNode($Gegner_Mesh2)
SetMaterialTexture($gegner[$i], 0, $Gegner_Tex2)
Case "Shooter"
$gegner[$i] = AddAnimatedMeshSceneNode($Gegner_Mesh4)
SetMaterialTexture($gegner[$i], 0, $Gegner_Tex4)
SetPosition($gegner[$i],$gegner_pos[$i][0],$gegner_pos[$i][1]+10,0)
;SetVisible($gegner_variablen[$i][3],0)
$gegner_variablen[$i][2] = 0
$gegner_variablen[$i][3] = AddAnimatedMeshSceneNode($Gegner_Mesh3)
SetPosition($gegner_variablen[$i][3],$gegner_pos[$i][0],$gegner_pos[$i][1]+20,0)
SetMaterialTexture($gegner_variablen[$i][3], 0, $Gegner_Tex3)
$map_blocks[$gegner_variablen[$i][0]/40][$gegner_variablen[$i][1]/40] = True
EndSwitchNext
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]$Level_Ini = IniReadSection($ini_map,"Save Points")
[/autoit] [autoit][/autoit] [autoit]SetMaterialTexture($light_save, 0, $light_tex)
[/autoit] [autoit][/autoit] [autoit]
SetMaterialType($light_save, $EMT_TRANSPARENT_ADD_COLOR)
SetMaterialFlag($light_save, $EMF_LIGHTING, 0)
SetPosition($light_save,$spawn_punkt[0] - 20,$spawn_punkt[1] + 20,0)If IsArray($Level_Ini) Then
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To ($Level_Ini[0][0] / 2) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]ReDim $save_points[$i + 1][2]
[/autoit] [autoit][/autoit] [autoit]
ReDim $save_point[$i + 1]$save_points[$i][0] = $Level_Ini[$i * 2 + 1][1] * 40
[/autoit] [autoit][/autoit] [autoit]
$save_points[$i][1] = $Level_Ini[$i * 2 + 2][1] * 40$save_point[$i] = AddMeshSceneNode($save_point_mesh)
[/autoit] [autoit][/autoit] [autoit]
SetMaterialTexture($save_point[$i], 0, $save_point_tex)
SetPosition($save_point[$i] , $Level_Ini[$i * 2 + 1][1] * 40, $Level_Ini[$i * 2 + 2][1] * 40,20)Next
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]$Level_Ini = IniReadSection($ini_map,"Physik Box")
[/autoit] [autoit][/autoit] [autoit]Local $physik_box_tex = GetTexture($mdl_dir & "physik box.jpg")
[/autoit] [autoit][/autoit] [autoit]If IsArray($Level_Ini) Then
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To ($Level_Ini[0][0] / 2) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]ReDim $Box[$i + 1][2]
[/autoit] [autoit][/autoit] [autoit]
ReDim $Box_Node[$i + 1]
ReDim $Box_reset[$i + 1][2]
ReDim $Box_fallen[$i + 1]$Box[$i][0] = $Level_Ini[$i * 2 + 1][1] * 40
[/autoit] [autoit][/autoit] [autoit]
$Box[$i][1] = $Level_Ini[$i * 2 + 2][1] * 40 + 20
$Box_reset[$i][0] = $Level_Ini[$i * 2 + 1][1] * 40
$Box_reset[$i][1] = $Level_Ini[$i * 2 + 2][1] * 40 + 20$Box_node[$i] = AddMeshSceneNode($Box_Mesh)
[/autoit] [autoit][/autoit] [autoit]
SetMaterialTexture($Box_node[$i], 0, $physik_box_tex)
SetPosition($Box_node[$i] , $Level_Ini[$i * 2 + 1][1] * 40, $Level_Ini[$i * 2 + 2][1] * 40 + 20,0)Next
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]$Level_Ini = IniReadSection($ini_map,"Tueren Schalter")
[/autoit] [autoit][/autoit] [autoit]If IsArray($Level_Ini) Then
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To ($Level_Ini[0][0] / 4) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]ReDim $Tuer[$i + 1][2]
[/autoit] [autoit][/autoit] [autoit]
ReDim $Schalter[$i + 1][2]
ReDim $Tuer_Status[$i + 1]
ReDim $Tuer_node[$i + 1]
ReDim $Tuer_move[$i + 1]
ReDim $Schalter_node[$i + 1]
ReDim $Schalter_node2[$i + 1]$Tuer[$i][0] = $Level_Ini[$i * 4 + 1][1] * 40
[/autoit] [autoit][/autoit] [autoit]
$Tuer[$i][1] = $Level_Ini[$i * 4 + 2][1] * 40
$Schalter[$i][0] = $Level_Ini[$i * 4 + 3][1] * 40
$Schalter[$i][1] = $Level_Ini[$i * 4 + 4][1] * 40$Tuer_Status[$i] = False
[/autoit] [autoit][/autoit] [autoit]$map_blocks[$Tuer[$i][0] / 40][$Tuer[$i][1] / 40] = True
[/autoit] [autoit][/autoit] [autoit]$Tuer_node[$i] = AddMeshSceneNode($Tuer_mesh)
[/autoit] [autoit][/autoit] [autoit]
SetPosition($Tuer_node[$i] , $Tuer[$i][0], $Tuer[$i][1] + 1,0)
SetMaterialTexture($Tuer_node[$i], 0, $Tuer_tex)$Schalter_node[$i] = AddAnimatedMeshSceneNode($Schalter_mesh1)
[/autoit] [autoit][/autoit] [autoit]
SetLoopMode($Schalter_node[$i], 0)
SetMaterialTexture($Schalter_node[$i], 0, $Schalter_tex1)
SetPosition($Schalter_node[$i] , $Schalter[$i][0], $Schalter[$i][1] + 0,0)$Schalter_node2[$i] = AddAnimatedMeshSceneNode($Schalter_mesh2)
[/autoit] [autoit][/autoit] [autoit]
SetLoopMode($Schalter_node2[$i], 0)
SetMaterialTexture($Schalter_node2[$i], 0, $Schalter_tex2)
SetMaterialFlag($Schalter_node2[$i], $EMF_LIGHTING, 0)
;SetMaterialType($Schalter_node2[$i], $EMT_TRANSPARENT_ADD_COLOR)
SetPosition($Schalter_node2[$i] , $Schalter[$i][0], $Schalter[$i][1] + 0,0)Next
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Local $Level_Ini = IniReadSection($ini_map,"BreakableBlock")
[/autoit] [autoit][/autoit] [autoit]If Not @error Then
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To ($Level_Ini[0][0] / 3) - 1 Step 1ReDim $Box_Coords[$i + 1][2]
[/autoit] [autoit][/autoit] [autoit]
ReDim $BreakableBlock[$i + 1][4]$Box_Coords[$i][0] = $Level_Ini[$i * 3 + 1][1]
[/autoit] [autoit][/autoit] [autoit]
$Box_Coords[$i][1] = $Level_Ini[$i * 3 + 2][1]$BreakableBlock[$i][0] = $Level_Ini[$i * 3 + 1][1]
[/autoit] [autoit][/autoit] [autoit]
$BreakableBlock[$i][1] = $Level_Ini[$i * 3 + 2][1]$map_blocks[$Box_Coords[$i][0]][$Box_Coords[$i][1]] = True
[/autoit] [autoit][/autoit] [autoit]$BreakableBlock[$i][2] = AddMeshSceneNode($Box_Mesh)
[/autoit] [autoit][/autoit] [autoit]SetMaterialTexture($BreakableBlock[$i][2], 0, $BreakableBlock_Texture)
[/autoit] [autoit][/autoit] [autoit]
SetPosition($BreakableBlock[$i][2], $Box_Coords[$i][0] * 40, $Box_Coords[$i][1] * 40 + 20, 0)Next
[/autoit] [autoit][/autoit] [autoit]
EndIfLocal $Level_Ini = IniReadSection($ini_map,"Coin")
[/autoit] [autoit][/autoit] [autoit]If IsArray($level_ini) Then
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To ($Level_Ini[0][0] / 2) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]ReDim $Coin[$i + 1][4]
[/autoit] [autoit][/autoit] [autoit]$Coin[$i][1] = $Level_Ini[$i * 2 + 1][1]
[/autoit] [autoit][/autoit] [autoit]
$Coin[$i][2] = $Level_Ini[$i * 2 + 2][1]
$Coin[$i][3] = 1$map_objekte[$Coin[$i][1]][$Coin[$i][2]] = $CCoin
[/autoit] [autoit][/autoit] [autoit]$Coin[$i][0] = AddMeshSceneNode($Coin_Mesh)
[/autoit] [autoit][/autoit] [autoit]SetMaterialTexture($Coin[$i][0], 0, $Coin_Texture)
[/autoit] [autoit][/autoit] [autoit]
SetPosition($Coin[$i][0], $Coin[$i][1] * 40, $Coin[$i][2] * 40 + 20, 0)Next
[/autoit] [autoit][/autoit] [autoit]
EndIfEndFunc
[/autoit] [autoit][/autoit] [autoit]Func reset_game()
[/autoit] [autoit][/autoit] [autoit]$Leben[0] -= 1
[/autoit] [autoit][/autoit] [autoit]
If $Leben[0] = -1 Then beenden()For $i = 0 To UBound($moving_objects_speed) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]$moving_objects_pos[$i][0] = $moving_objects_pos_mm[$i][0]
[/autoit] [autoit][/autoit] [autoit]
$moving_objects_pos[$i][1] = $moving_objects_pos_mm[$i][1]$moving_objects_speed[$i] = Abs($moving_objects_speed[$i])
[/autoit] [autoit][/autoit] [autoit]Next
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($gegner_speed) - 1 Step 1$gegner_pos[$i][0] = $gegner_variablen[$i][0]
[/autoit] [autoit][/autoit] [autoit]
$gegner_pos[$i][1] = $gegner_variablen[$i][1]
SetVisible($gegner[$i],1)
$gegner_status[$i] = "Alive"
Next
For $i = 0 To UBound($Box_fallen) - 1 Step 1$Box[$i][0] = $Box_reset[$i][0]
[/autoit] [autoit][/autoit] [autoit]
$Box[$i][1] = $Box_reset[$i][1]SetVisible($Box_node[$i],1)
[/autoit] [autoit][/autoit] [autoit]
SetPosition($Box_node[$i], $Box[$i][0], $Box[$i][1], 0)Next
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($Tuer_move) - 1 Step 1$Tuer_Status[$i] = False
[/autoit] [autoit][/autoit] [autoit]
$Tuer_move[$i] = 0
SetVisible($Tuer_Node[$i],1)
SetPosition($Tuer_Node[$i], $Tuer[$i][0], $Tuer[$i][1] - $Tuer_move[$i], 0)
$map_blocks[$Tuer[$i][0] / 40][$Tuer[$i][1] / 40] = TrueNext
[/autoit] [autoit][/autoit] [autoit]$Player_x = $spawn_punkt[0]
[/autoit] [autoit][/autoit] [autoit]
$Player_y = $spawn_punkt[1]
$Player_z = 0
$Player_dir = 90
$Player_look_dir = 90EndFunc
[/autoit] [autoit][/autoit] [autoit]Func aufloesung()
[/autoit] [autoit][/autoit] [autoit]If $width = 640 Then
[/autoit] [autoit][/autoit] [autoit]
$width = @DesktopWidth
$height = @DesktopHeightGUIDelete($hwnd)
[/autoit] [autoit][/autoit] [autoit]CreateDevice($EDT_DIRECT3D9, $width, $height, 32, 1, 1, 1)
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]$hwnd = GUICreate($title, $width, $height)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "beenden")CreateDeviceOnWindow($hwnd, $EDT_DIRECT3D9, 0, 0, $width, $height, 32, 0, 1)
[/autoit] [autoit][/autoit] [autoit]GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]$width = 640
[/autoit] [autoit][/autoit] [autoit]
$width = 400
EndIfEndFunc
[/autoit] [autoit][/autoit] [autoit]Func limit($var, $min, $max)
[/autoit] [autoit][/autoit] [autoit]
If $var < $min Then
Return $min
ElseIf $var > $max Then
Return $max
Else
Return $var
EndIf
EndFuncFunc _WinAPI_GetKeyboardState($iFlag = 0)
[/autoit] [autoit][/autoit] [autoit]Local $aDllRet, $lpKeyState = DllStructCreate("byte[256]")
[/autoit] [autoit][/autoit] [autoit]$aDllRet = DllCall("User32.dll", "int", "GetKeyboardState", "ptr", DllStructGetPtr($lpKeyState))
[/autoit] [autoit][/autoit] [autoit]If @error Then Return SetError(@error, 0, 0)
[/autoit] [autoit][/autoit] [autoit]
If $aDllRet[0] = 0 Then
Return SetError(1, 0, 0)
Else
Switch $iFlag
Case 0
Local $aReturn[256]
For $i = 1 To 256
$aReturn[$i - 1] = DllStructGetData($lpKeyState, 1, $i)
Next
Return $aReturn
Case Else
Return DllStructGetData($lpKeyState, 1)
EndSwitch
EndIfEndFunc ;==>_WinAPI_GetKeyboardState
[/autoit] [autoit][/autoit] [autoit]Func beenden()
[/autoit] [autoit][/autoit] [autoit]_SoundClose($snd_break)
[/autoit] [autoit][/autoit] [autoit]
_SoundClose($snd_checkpoint)
_SoundClose($snd_kill)
_SoundClose($snd_lose)
_SoundClose($snd_runterfallen)
_SoundClose($snd_schalter)
_SoundClose($snd_springen)Exit
[/autoit]
EndFunc
Editor:Spoiler anzeigen
[autoit]#include <GuiConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GDIPlus.au3>
#include <WindowsConstants.au3>
#include <Sound.au3>
#include <Misc.au3>
#include <Array.au3>Opt('MustDeclareVars', 1)
[/autoit] [autoit][/autoit] [autoit]
Opt('GuiOnEventMode', 1)
Opt('MouseCoordMode', 0)Global Const $felder_x = 255, $felder_y = 10
[/autoit] [autoit][/autoit] [autoit]
Global Const $width = 1280, $height = 100
Global Const $feld_x = $width / $felder_x, $feld_y = $height / $felder_y
Local $hindernisse[$felder_x][$felder_y];
Local $obj[$felder_x][$felder_y];Global $file
[/autoit] [autoit][/autoit] [autoit]Global $aktuellesobjekt[2] = [1,0]
[/autoit] [autoit][/autoit] [autoit]Global Const $devmode = False
[/autoit] [autoit][/autoit] [autoit]_create_Workspace()
[/autoit] [autoit][/autoit] [autoit]Global $draw_lines
[/autoit] [autoit][/autoit] [autoit]Global Const $hDwmApiDll = DllOpen("dwmapi.dll")
[/autoit] [autoit][/autoit] [autoit];If @OSVersion = "WIN_VISTA" Or @OSVersion = "WIN_7" Then
[/autoit] [autoit][/autoit] [autoit]
;If _IsAeroEnable() = 0 Then _EnableDisableAero(False) ; Aero Deaktivierung
;EndIfLocal $mouse_pos[2], $mouse_pos_a[2]
[/autoit] [autoit][/autoit] [autoit]Global $hGUI = GUICreate("Editor", $width, $height+40)
[/autoit] [autoit][/autoit] [autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "_beenden")Global $hWnd = WinGetHandle("Editor")
[/autoit] [autoit][/autoit] [autoit]Global $GUI_Buttons[UBound($Objekte)]
[/autoit] [autoit][/autoit] [autoit]For $i = 1 To UBound($Objekte)-1 Step 1
[/autoit] [autoit][/autoit] [autoit]$GUI_Buttons[$i] = GUICtrlCreateButton(BinaryToString($Objekte[$i]),10+($i-1)*100,110,90,20)
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetOnEvent ($GUI_Buttons[$i], "SetItem")
NextGUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_Startup ()
[/autoit] [autoit][/autoit] [autoit]Global $hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hWnd) ;create graphic
[/autoit] [autoit][/autoit] [autoit]
Global $Bitmap = _GDIPlus_BitmapCreateFromGraphics($width, $height, $hGraphic) ;create bitmap
Global $Buffer = _GDIPlus_ImageGetGraphicsContext($Bitmap) ;create buffer
_GDIPlus_GraphicsSetSmoothingMode($Buffer, 4) ;Antialiasing
_GDIPlus_GraphicsClear($Buffer,0xFFFFFFFF) ;clear bufferGlobal $Brush = _GDIPlus_BrushCreateSolid(0xFFABCDEF)
[/autoit] [autoit][/autoit] [autoit]Local $msg
[/autoit] [autoit][/autoit] [autoit]While True
[/autoit] [autoit][/autoit] [autoit]If WinActive("Editor") Then
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsClear($Buffer,0xFFFFFFFF)
[/autoit] [autoit][/autoit] [autoit]If _IsPressed(53) Then save_map()
[/autoit] [autoit][/autoit] [autoit]
If _IsPressed("4C") Then load_map()
If _IsPressed("4E") Then erease_map()If _IsPressed(01) Then
[/autoit] [autoit][/autoit] [autoit]$mouse_pos = _mouse_feld_pos()
[/autoit] [autoit][/autoit] [autoit]If Not @error Then
[/autoit] [autoit][/autoit] [autoit]If $mouse_pos[0] <> $mouse_pos_a[0] Or $mouse_pos[1] <> $mouse_pos_a[1] Then
[/autoit] [autoit][/autoit] [autoit]If $hindernisse[$mouse_pos[0]][$mouse_pos[1]] = 1 And $aktuellesobjekt[1] = 0 Then
[/autoit] [autoit][/autoit] [autoit]_ArrayDelete($Objekte_CurValves,$obj[$mouse_pos[0]][$mouse_pos[1]])
[/autoit] [autoit][/autoit] [autoit]
_ArrayDelete($Draw_Lines,$obj[$mouse_pos[0]][$mouse_pos[1]])Local $comp = $obj[$mouse_pos[0]][$mouse_pos[1]]
[/autoit] [autoit][/autoit] [autoit]For $x = 0 To $felder_x - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]
For $y = 0 To $felder_y - 1 Step 1
If $obj[$x][$y] = $comp Then
$obj[$x][$y] = ""
$hindernisse[$x][$y] = 0
EndIf
If $obj[$x][$y] > $comp Then
$obj[$x][$y] -= 1
EndIf
Next
NextElseIf $hindernisse[$mouse_pos[0]][$mouse_pos[1]] = 0 Then
[/autoit] [autoit][/autoit] [autoit]$hindernisse[$mouse_pos[0]][$mouse_pos[1]] = 1
[/autoit] [autoit][/autoit] [autoit];Erweiterung des Objekte Arrays
[/autoit] [autoit][/autoit] [autoit]If $aktuellesobjekt[1] = 0 Then
[/autoit] [autoit][/autoit] [autoit]
If IsArray($Objekte_CurValves) Then
ReDim $Objekte_CurValves[UBound($Objekte_CurValves)+1][$Objekte_MaxParameter+1]
Else
Dim $Objekte_CurValves[UBound($Objekte_CurValves)+1][$Objekte_MaxParameter+1]
EndIf
If IsArray($draw_lines) Then
ReDim $draw_lines[UBound($Objekte_CurValves)][$Objekte_MaxTeile*2]
Else
Dim $draw_lines[UBound($Objekte_CurValves)][$Objekte_MaxTeile*2]
EndIf
EndIf$obj[$mouse_pos[0]][$mouse_pos[1]] = UBound($Objekte_CurValves)-1
[/autoit] [autoit][/autoit] [autoit]$Objekte_CurValves[UBound($Objekte_CurValves)-1][0] = $aktuellesobjekt[0]
[/autoit] [autoit][/autoit] [autoit]For $i = 1 To $Objekte_Parameter[$aktuellesobjekt[0]-1][0] Step 1 ; Geht alle Parameter des Objektes durch
[/autoit] [autoit][/autoit] [autoit]If $Objekte_UsesTeile[$aktuellesobjekt[0]-1][$i] = Binary($aktuellesobjekt[1]+1) Then ; Wenn der Parameter zu dem teil gehört
[/autoit] [autoit][/autoit] [autoit]Switch $Objekte_SetValves[$aktuellesobjekt[0]-1][$i-1]
[/autoit] [autoit][/autoit] [autoit]
Case $setvalve_x
$Objekte_CurValves[UBound($Objekte_CurValves)-1][$i] = $mouse_pos[0]
$draw_lines[UBound($Objekte_CurValves)-1][$aktuellesobjekt[1]*2] = $mouse_pos[0]
Case $setvalve_y
$Objekte_CurValves[UBound($Objekte_CurValves)-1][$i] = $mouse_pos[1]
$draw_lines[UBound($Objekte_CurValves)-1][$aktuellesobjekt[1]*2+1] = $mouse_pos[1]
Case $setvalve_zahl
$Objekte_CurValves[UBound($Objekte_CurValves)-1][$i] = InputBox("",$Objekte_TextInfos[$aktuellesobjekt[0]-1][$i-1])
Case Else
$Objekte_CurValves[UBound($Objekte_CurValves)-1][$i] = $Objekte_SetValves[$aktuellesobjekt[0]-1][$i-1]
EndSwitchEndIf
[/autoit] [autoit][/autoit] [autoit]Next
[/autoit] [autoit][/autoit] [autoit]$aktuellesobjekt[1] += 1
[/autoit] [autoit][/autoit] [autoit]
If $aktuellesobjekt[1] = $Objekte_UsesTeile[$aktuellesobjekt[0]-1][0] Then $aktuellesobjekt[1] = 0EndIf
[/autoit] [autoit][/autoit] [autoit]$mouse_pos_a = $mouse_pos
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]EndIf
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]$mouse_pos_a[0] = -1
[/autoit] [autoit][/autoit] [autoit]
$mouse_pos_a[1] = -1EndIf
[/autoit] [autoit][/autoit] [autoit]_zeichnen()
[/autoit] [autoit][/autoit] [autoit]_GDIPlus_GraphicsDrawImageRect($hGraphic, $Bitmap,0,0, $width, $height)
[/autoit] [autoit][/autoit] [autoit]
;Do
;Until _IsPressed(27);Sleep(200)
[/autoit] [autoit][/autoit] [autoit]Else
[/autoit] [autoit][/autoit] [autoit]
Sleep(100)
EndIfWEnd
[/autoit] [autoit][/autoit] [autoit]Func SetItem()
[/autoit] [autoit][/autoit] [autoit]
For $i = 0 To UBound($objekte) - 1 Step 1If @GUI_CtrlId = $gui_buttons[$i] Then $aktuellesobjekt[0] = $i
[/autoit] [autoit][/autoit] [autoit]Next
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _Create_Workspace()
[/autoit] [autoit][/autoit] [autoit]Global $Objekte = IniReadSectionNames("objekte.ini")
[/autoit] [autoit][/autoit] [autoit]
If @error Then MsgBox(4096, "", "Es ist ein Fehler aufgetreten. Wahrscheinlich keine INI Datei vorhanden.")Global $Objekte_Parameter[1][1]
[/autoit] [autoit][/autoit] [autoit]
Global $Objekte_SetValves[1][1]
Global $Objekte_CurValves
Global $Objekte_UsesTeile[1][1]
Global $Objekte_HowtoDraw[$Objekte[0]][2] ; Wie die Objekt in Editor dargestellt werden sollen
Global $Objekte_TextInfos[1][1]Global $Objekte_MaxParameter
[/autoit] [autoit][/autoit] [autoit]
Global $Objekte_MaxTeileGlobal Const $setvalve_x = Binary(1), $setvalve_y = Binary(2), $setvalve_zahl = Binary(3)
[/autoit] [autoit][/autoit] [autoit]Local $num_para
[/autoit] [autoit][/autoit] [autoit]For $i = 1 To $Objekte[0] Step 1
[/autoit] [autoit][/autoit] [autoit]$num_para = IniRead("objekte.ini",$Objekte[$i],"Parameter",1)
[/autoit] [autoit][/autoit] [autoit]If $Objekte_MaxParameter < $num_para Then $Objekte_MaxParameter = $num_para
[/autoit] [autoit][/autoit] [autoit]$Objekte_HowtoDraw[$i-1][0] = IniRead("objekte.ini",$Objekte[$i],"color",1)
[/autoit] [autoit][/autoit] [autoit]
$Objekte_HowtoDraw[$i-1][1] = IniRead("objekte.ini",$Objekte[$i],"verbunden",1)ReDim $Objekte_Parameter[$i][$Objekte_MaxParameter+1]
[/autoit] [autoit][/autoit] [autoit]
ReDim $Objekte_SetValves[$i][$Objekte_MaxParameter]
ReDim $Objekte_UsesTeile[$i][$Objekte_MaxParameter+1]
ReDim $Objekte_TextInfos[$i][$Objekte_MaxParameter]$Objekte_Parameter[$i-1][0] = $num_para
[/autoit] [autoit][/autoit] [autoit]For $j = 0 To $num_para - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]$Objekte_Parameter[$i-1][$j+1] = IniRead("objekte.ini",$Objekte[$i],$j+1,1) ; Speicher Namen der Eigenschaften
[/autoit] [autoit][/autoit] [autoit]Switch IniRead("objekte.ini",$Objekte[$i],$Objekte_Parameter[$i-1][$j+1],1) ; Welche Werte sollen die Paremeter zugewiesen bekommen?
[/autoit] [autoit][/autoit] [autoit]Case "mausx"
[/autoit] [autoit][/autoit] [autoit]
$Objekte_SetValves[$i-1][$j] = $setvalve_x
Case "mausy"
$Objekte_SetValves[$i-1][$j] = $setvalve_y
Case "input"
$Objekte_SetValves[$i-1][$j] = $setvalve_zahl
$Objekte_TextInfos[$i-1][$j] = IniRead("objekte.ini",$Objekte[$i],"text"& $j+1,1)
Case Else
$Objekte_SetValves[$i-1][$j] = IniRead("objekte.ini",$Objekte[$i],$Objekte_Parameter[$i-1][$j+1],1)EndSwitch
[/autoit] [autoit][/autoit] [autoit]$Objekte_UsesTeile[$i-1][$j+1] = Binary(Number(IniRead("objekte.ini",$Objekte[$i],$Objekte_Parameter[$i-1][$j+1] & "_gehoert_zu_objekt",1)))
[/autoit] [autoit][/autoit] [autoit]Next
[/autoit] [autoit][/autoit] [autoit]$Objekte_UsesTeile[$i-1][0] = Number(IniRead("objekte.ini",$Objekte[$i],"Teile",1))
[/autoit] [autoit][/autoit] [autoit]
If $Objekte_MaxTeile < $Objekte_UsesTeile[$i-1][0] Then $Objekte_MaxTeile = $Objekte_UsesTeile[$i-1][0]$Objekte[$i] = StringToBinary($Objekte[$i]) ; Binary für schnellere Zugriffszeiten
[/autoit] [autoit][/autoit] [autoit]
NextIF $devmode Then
[/autoit] [autoit][/autoit] [autoit]_ArrayDisplay($Objekte)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDisplay($objekte_parameter)
_ArrayDisplay($Objekte_SetValves)
_ArrayDisplay($Objekte_CurValves)
_ArrayDisplay($Objekte_UsesTeile)
_ArrayDisplay($Objekte_HowtoDraw)EndIf
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _mouse_feld_pos()
[/autoit] [autoit][/autoit] [autoit];ToolTip("Doing2")
[/autoit] [autoit][/autoit] [autoit]Local $pos[2]
[/autoit] [autoit][/autoit] [autoit]$pos[0] = Int((MouseGetPos(0) - $feld_x/2) / $feld_x)
[/autoit] [autoit][/autoit] [autoit]
$pos[1] = $felder_y - 1 - Int((MouseGetPos(1) -25) / $feld_y)If $pos[0] >= 0 And $pos[1] >= 0 And $pos[0] < $felder_x And $pos[1] < $felder_y Then
[/autoit] [autoit][/autoit] [autoit]
Return $pos
Else
SetError(1)
EndIfEndFunc
[/autoit] [autoit][/autoit] [autoit]Func _zeichnen()
[/autoit] [autoit][/autoit] [autoit]For $x = 0 To $felder_x - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]
For $y = 0 To $felder_y - 1 Step 1
If $hindernisse[$x][$y] = 1 Then
_GDIPlus_BrushSetSolidColor($Brush,$Objekte_HowtoDraw[$Objekte_CurValves[$obj[$x][$y]][0]-1][0])
_GDIPlus_GraphicsFillRect($Buffer,$x * $feld_x, ($felder_y - 1 - $y) * $feld_y, $feld_x, $feld_y, $brush)
EndIf
Next
NextFor $i = 0 To UBound($draw_lines) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]
If $Objekte_HowtoDraw[$Objekte_CurValves[$i][0]-1][1] = 1 Then
_GDIPlus_GraphicsDrawLine($Buffer,$draw_lines[$i][0] * $feld_x + $feld_x, ($felder_y - 1 - $draw_lines[$i][1]) * $feld_y + $feld_y / 2, $draw_lines[$i][2] * $feld_x, ($felder_y - 1 - $draw_lines[$i][3]) * $feld_y + $feld_y / 2)
EndIf
NextEndFunc
[/autoit] [autoit][/autoit] [autoit]Func save_map()
[/autoit] [autoit][/autoit] [autoit]Local $k, $m , $h, $save_name
[/autoit] [autoit][/autoit] [autoit]If $file = "" Then $file = InputBox("Map","unter welchem namen möchten sie die Map speichern? (map1)") & ".ini"
[/autoit] [autoit][/autoit] [autoit]$save_name = @ScriptDir & "\" & $file
[/autoit] [autoit][/autoit] [autoit]If FileExists($save_name) Then
[/autoit] [autoit][/autoit] [autoit]SwitchMsgBox(3,"Speichern","Die Map: Map1 existiert bereits wollen sie diese ersetzen")
[/autoit] [autoit][/autoit] [autoit]
Case 2
Return 0
Case 7
$save_name = FileSaveDialog("Speichern",@ScriptDir,"Maps (*.ini)") & ".ini"
EndSwitchEndIf
[/autoit] [autoit][/autoit] [autoit];-- Ini löschen und für neues Schreiben vorbereiten ------------------------------------
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($objekte) - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]
IniDelete($save_name,BinaryToString($objekte[$i]))
NextLocal $zaehler[UBound($objekte)]
[/autoit] [autoit][/autoit] [autoit];_ArrayDisplay($Objekte_parameter)
[/autoit] [autoit][/autoit] [autoit]For $objekt = 0 To UBound($Objekte_CurValves) - 1 Step 1 ; Geht alle Objekte durch
[/autoit] [autoit][/autoit] [autoit]
;MsgBox(0,"",UBound($Objekte_CurValves) - 1)
;MsgBox (0,"",$Objekte_parameter[$Objekte_CurValves[$objekt][0]][0])
;_ArrayDisplay($Objekte_parameter)Local $Type = $Objekte_CurValves[$objekt][0]
[/autoit] [autoit][/autoit] [autoit]$zaehler[$type] += 1
[/autoit] [autoit][/autoit] [autoit]For $parameter = 1 To $Objekte_parameter[$Type-1][0] Step 1 ; Geht alle Parameter des jeweiligen Objektes durch
[/autoit] [autoit][/autoit] [autoit];ToolTip("Klasse: " & BinaryToString($objekte[$objekt]) & @LF & _
[/autoit] [autoit][/autoit] [autoit]
;"Wert: " & $Objekte_parameter[$Objekte_CurValves[$objekt][0]][$parameter] & @LF & _
;"Variable: " & $Objekte_CurValves[$objekt][$parameter])
;MsgBox(0,"",$Objekte_CurValves[$objekt][$parameter])
IniWrite($save_name,BinaryToString($objekte[$Type]),$Objekte_parameter[$Type-1][$parameter] & $zaehler[$type],$Objekte_CurValves[$objekt][$parameter])
;IniWrite($save_name,BinaryToString($objekte[$objekt]),$Objekte_parameter[$Objekte_CurValves[$objekt][0]][$parameter],$Objekte_CurValves[$objekt][$parameter])Next
[/autoit] [autoit][/autoit] [autoit]
NextMsgBox(0,"","Die Map wurde erfolgreich gespeichert!")
[/autoit] [autoit][/autoit] [autoit]Return 1
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func load_map()
[/autoit] [autoit][/autoit] [autoit]If IsArray($Objekte_CurValves) Then erease_map()
[/autoit] [autoit][/autoit] [autoit]$file = InputBox("Map","Welche map möchten sie öffnen (map1)") & ".ini"
[/autoit] [autoit][/autoit] [autoit]Local $Level, $var
[/autoit] [autoit][/autoit] [autoit]For $objekt = 1 To $Objekte[0] Step 1
[/autoit] [autoit][/autoit] [autoit]Local $Sektion = IniReadSection(@scriptdir & "\" & $file,BinaryToString($Objekte[$objekt]))
[/autoit] [autoit][/autoit] [autoit]If IsArray($Sektion) Then ; Wenn die Sektion existiert
[/autoit] [autoit][/autoit] [autoit]
For $i = 1 To $Sektion[0][0] Step $objekte_parameter[$objekt-1][0]If IsArray($Objekte_CurValves) Then
[/autoit] [autoit][/autoit] [autoit]
ReDim $Objekte_CurValves[UBound($Objekte_CurValves)+1][$Objekte_MaxParameter+1]
Else
Dim $Objekte_CurValves[1][$Objekte_MaxParameter+1]
EndIf$Objekte_CurValves[UBound($Objekte_CurValves)-1][0] = $objekt
[/autoit] [autoit][/autoit] [autoit]For $parameter = 0 To $objekte_parameter[$objekt-1][0] - 1 Step 1 ; Gebt alle Parameter eines Objektes durch
[/autoit] [autoit][/autoit] [autoit]$Objekte_CurValves[UBound($Objekte_CurValves)-1][$parameter + 1] = $Sektion[$i+$parameter][1]
[/autoit] [autoit][/autoit] [autoit]
If $Objekte_SetValves[$objekt-1][$parameter] = $setvalve_x Then $var = $Sektion[$i+$parameter][1]
If $Objekte_SetValves[$objekt-1][$parameter] = $setvalve_y Then
$obj[$var][$Sektion[$i+$parameter][1]]= UBound($Objekte_CurValves)-1
$hindernisse[$var][$Sektion[$i+$parameter][1]] = 1
EndIf
Next
Next
EndIf
NextIf $devmode Then _ArrayDisplay($Objekte_CurValves)
[/autoit] [autoit][/autoit] [autoit]MsgBox(0,"","Die Map wurde erfolgreich geladen")
[/autoit] [autoit][/autoit] [autoit]Return 1
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func erease_map()
[/autoit] [autoit][/autoit] [autoit]SwitchMsgBox(3,"Löschen","Wollen sie wirklich die gesamte Map löschen?")
[/autoit] [autoit][/autoit] [autoit]
Case 2
Return 0
Case 7
Return 0
Case 6For $x = 0 To $felder_x - 1 Step 1
[/autoit] [autoit][/autoit] [autoit]
For $y = 0 To $felder_y - 1 Step 1
$hindernisse[$x][$y] = 0
$obj[$x][$y] = ""
Next
NextDim $draw_lines[1][1]
[/autoit] [autoit][/autoit] [autoit]
Dim $Objekte_CurValves[1][1]_ArrayDelete($Objekte_CurValves,0)
[/autoit] [autoit][/autoit] [autoit]
_ArrayDelete($draw_lines,0)EndSwitch
[/autoit] [autoit][/autoit] [autoit]EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _WinAPI_GetKeyboardState($iFlag = 0)
[/autoit] [autoit][/autoit] [autoit]
Local $aDllRet, $lpKeyState = DllStructCreate("byte[256]")
$aDllRet = DllCall("User32.dll", "int", "GetKeyboardState", "ptr", DllStructGetPtr($lpKeyState))
If @error Then Return SetError(@error, 0, 0)
If $aDllRet[0] = 0 Then
Return SetError(1, 0, 0)
Else
Switch $iFlag
Case 0
Local $aReturn[256]
For $i = 1 To 256
$aReturn[$i - 1] = DllStructGetData($lpKeyState, 1, $i)
Next
Return $aReturn
Case Else
Return DllStructGetData($lpKeyState, 1)
EndSwitch
EndIf
EndFunc ;==>_WinAPI_GetKeyboardStateFunc _GDIPlus_BrushSetSolidColor($hBrush, $iARGB = 0xFF000000)
[/autoit] [autoit][/autoit] [autoit]
Local $aResult$aResult = DllCall($ghGDIPDll, "int", "GdipSetSolidFillColor", "hwnd", $hBrush, "int", $iARGB)
[/autoit] [autoit][/autoit] [autoit]
If @error Then Return SetError(@error, @extended, 0)
Return SetError($aResult[0], 0, $aResult[0] = 0)
EndFunc ;==>_GDIPlus_BrushSetSolidColorFunc _GDIPlus_GraphicsDrawStringColor($hGraphics, $sString, $nX, $nY, $sFont = "Arial", $nSize = 10, $iFormat = 0, $iBrush = 0xFF000000)
[/autoit] [autoit][/autoit] [autoit]
Local $hBrush, $iError, $hFamily, $hFont, $hFormat, $aInfo, $tLayout, $bResult$hBrush = _GDIPlus_BrushCreateSolid($iBrush)
[/autoit] [autoit][/autoit] [autoit]
$hFormat = _GDIPlus_StringFormatCreate($iFormat)
$hFamily = _GDIPlus_FontFamilyCreate($sFont)
$hFont = _GDIPlus_FontCreate($hFamily, $nSize)
$tLayout = _GDIPlus_RectFCreate($nX, $nY, 0, 0)
$aInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $sString, $hFont, $tLayout, $hFormat)
$bResult = _GDIPlus_GraphicsDrawStringEx($hGraphics, $sString, $hFont, $aInfo[0], $hFormat, $hBrush)
$iError = @error
_GDIPlus_FontDispose($hFont)
_GDIPlus_FontFamilyDispose($hFamily)
_GDIPlus_StringFormatDispose($hFormat)
_GDIPlus_BrushDispose($hBrush)
Return SetError($iError, 0, $bResult)
EndFunc ; ==> String in Farbe zeichnenFunc _EnableDisableAero($bEnable = True) ;True/False
[/autoit] [autoit][/autoit] [autoit]
Local $aDll = DllCall($hDwmApiDll, "int", "DwmEnableComposition", "int", $bEnable)
If @error Then Return SetError(@error, 0, 0)
Return $aDll[0]
EndFunc ;==>_EnableDisableAeroFunc _IsAeroEnable()
[/autoit] [autoit][/autoit] [autoit]
Local $asDll = DllCall($hDwmApiDll, "int", "DwmIsCompositionEnabled", "str", "")
If @error Then Return SetError(@error, 0, 0)
Return StringReplace(StringReplace(Asc($asDll[1]), "1", True), "0", False)
EndFunc ;==>_IsAeroEnableFunc _beenden()
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDispose ($hGraphic)
_GDIPlus_BitmapDispose($Bitmap)
_GDIPlus_GraphicsDispose($Buffer)
;_GDIPlus_BrushDispose($hBrush)
_GDIPlus_Shutdown ();DllClose ($dll)
[/autoit] [autoit][/autoit] [autoit]DllClose($hDwmApiDll)
[/autoit] [autoit][/autoit] [autoit]Exit
[/autoit]
EndFunc; ==> beenden und speicher wieder frei gebenIch hoffe euch gefällt das Spiel
Hier noch die Downloades:
autoit.de/wcf/attachment/7121/
autoit.de/wcf/attachment/7122/
autoit.de/wcf/attachment/7123/
autoit.de/wcf/attachment/7124/
Hier noch die EXE da es bei einigen zu fehlern kommt:
autoit.de/wcf/attachment/7140/ -
was hast du schon selber hinbekommen schick doch mal dein script.
-
Den gleichen Fehler habe ich bei Windows 7 da komm nur ein weißer Hintergrund. Liegt das vielleicht an Aero?
-
Hallo zusammen,
ich habe hier ein Programm mit dem man den Pc sperren kann.
Spoiler anzeigen
[autoit]#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
[/autoit] [autoit][/autoit] [autoit]
#AutoIt3Wrapper_icon=Icon.ico
#AutoIt3Wrapper_outfile=Pc Lock.exe
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Description=Security Programm
#AutoIt3Wrapper_Res_Fileversion=0.6
#AutoIt3Wrapper_Res_LegalCopyright=Moritz
#AutoIt3Wrapper_Res_Field=Author|Moritz
#AutoIt3Wrapper_Res_Field=Orginaldateiname|Pc Lock.exe
#AutoIt3Wrapper_Res_Field=Produktname|Pc Lock
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****#include <WindowsConstants.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <GuiConstantsEx.au3>
#include <GDIPlus.au3>
#include <ButtonConstants.au3>
#include <ScreenCapture.au3>
#include <Misc.au3>
#include <Sound.au3>AutoItSetOption ( "TrayMenuMode",1 )
[/autoit] [autoit][/autoit] [autoit]
Opt("TrayMenuMode",1)$tray_optionen = TrayCreateItem("Einstellungen")
[/autoit] [autoit][/autoit] [autoit]
TrayCreateItem("")
$tray_exit = TrayCreateItem("Beenden")
TrayCreateItem("")TraySetState()
[/autoit] [autoit][/autoit] [autoit]Const $Width = 1280
[/autoit] [autoit][/autoit] [autoit]
Const $Height = 800
Const $version = "v0.6"
Global $text = "# Bitte Code eingeben #"
Global $fehler = 0
Global $fehler_sd = -1
Global $buffer
Global $screen
Global $pic1,$pic2,$pic3,$pic4,$pic5,$pic6
Global $hgraphic
Global $bitmap
Global $state
Global $text
Global $pin,$s,$taskkill,$doors,$shutdown,$alarm,$alarm_num,$hotkey
Global $richtig, $falsch, $door ,$alarm_s$richtig = ""
[/autoit] [autoit][/autoit] [autoit]
$falsch = ""
$door = ""
$dll = DllOpen("user32.dll")If Not FileExists ("bin\not.not") Then _optionen ()
[/autoit] [autoit][/autoit] [autoit]Func _optionen ()
[/autoit] [autoit][/autoit] [autoit]GUICreate ("Pc Lock " & $version,320,110)
[/autoit] [autoit][/autoit] [autoit]
GuiSetIcon("shell32.dll",48)
GUISetBkColor (0x444444)$ok = GUICtrlCreateButton ("OK",270,10,40,20)
[/autoit] [autoit][/autoit] [autoit]
$tab = GUICtrlCreateTab(10, 10, 300, 90)
$tab0 = GUICtrlCreateTabItem("Main")
GUICtrlCreateLabel ("PW:",20,45,20,20)
$PW = GUICtrlCreateInput ("",50,40,80,20)
$do = GUICtrlCreateCheckbox ("Tür",20,70)
$ast = GUICtrlCreateCheckbox ("Autostart",200,70)
GUICtrlCreateLabel ("Hotkey:",80,75)
$hk = GUICtrlCreateCombo ("F1", 120,70,60,20)
GUICtrlSetData(-1,"F2|F3|F4|F5|F6|F7|F8|F9|F10|F11","F1")
$tab1 = GUICtrlCreateTabItem("Sound")
$sound = GUICtrlCreateCheckbox ("Sound",20,40)
$al = GUICtrlCreateCheckbox ("Alarm",80,40)
$an = GUICtrlCreateCombo ("Alarm1", 130,40,60,20)
GUICtrlSetData(-1,"Alarm2|Alarm3","Alarm1")
$test_al = GUICtrlCreateButton ("Test",200,40,20,20,$BS_ICON)
GUICtrlSetImage (-1, "shell32.dll",277,0)
$tab2 = GUICtrlCreateTabItem("Aktionen")
$tk = GUICtrlCreateCheckbox ("Taskkill",20,40)
$sd = GUICtrlCreateCheckbox ("Shutdown",80,40)
GUICtrlCreateLabel ("Versuche: ",210,45)
$tries = GUICtrlCreateInput ("",265,40,35,20)
GuiCtrlCreateUpDown(-1)
GUICtrlCreateTabItem("")
GUISetState ()GUICtrlSetState ($sound,IniRead ("bin\config.ini","Buttons","ton",""))
[/autoit] [autoit][/autoit] [autoit]
GUICtrlSetState ($tk,IniRead ("bin\config.ini","Buttons","taskkill",""))
GUICtrlSetState ($do,IniRead ("bin\config.ini","Buttons","türen",""))
GUICtrlSetState ($ast,IniRead ("bin\config.ini","Buttons","autostart",""))
GUICtrlSetState ($sd,IniRead ("bin\config.ini","Buttons","Ausschalten",""))
GUICtrlSetState ($al,IniRead ("bin\config.ini","Buttons","alarm",""))
GUICtrlSetData ($hk,IniRead ("bin\config.ini","Buttons","hotkey","F1"))
GUICtrlSetData ($pw,BinaryToString (IniRead ("bin\config.ini","Buttons","pw","")))
GUICtrlSetData ($an,"","")
GUICtrlSetData ($an,"Alarm1|Alarm2|Alarm3",IniRead ("bin\config.ini","Buttons","alarm ton",""))
GUICtrlSetData ($tries,IniRead ("bin\config.ini","Buttons","versuche",""))While 1
[/autoit] [autoit][/autoit] [autoit]
$msg = GUIGetMsg()
If $msg = $GUI_EVENT_CLOSE Then Exit
If $msg = $ok Then ExitLoop
If $msg = $test_al Then SoundPlay ("sound\" & GUICtrlRead ($an) & ".wav",0)
If _IsPressed ("0D",$dll) Then ExitLoop
WEnd$pin = GUICtrlRead ($PW)
[/autoit] [autoit][/autoit] [autoit]
$s = GUICtrlRead ($sound)
$taskkill = GUICtrlRead ($tk)
$doors = GUICtrlRead ($do)
$autostart = GUICtrlRead ($ast)
$shutdown = GUICtrlRead ($sd)
$alarm = GUICtrlRead ($al)
$alarm_num = GUICtrlRead ($an)
$hotkey = GUICtrlRead ($hk)
If GUICtrlRead ($tries) <> "" Then $fehler_sd = GUICtrlRead ($tries)IniWrite ("bin\config.ini","Buttons","Ton",$s)
[/autoit] [autoit][/autoit] [autoit]
IniWrite ("bin\config.ini","Buttons","Hotkey",$hotkey)
IniWrite ("bin\config.ini","Buttons","Taskkill",$taskkill)
IniWrite ("bin\config.ini","Buttons","Türen",$doors)
IniWrite ("bin\config.ini","Buttons","autostart",$autostart)
IniWrite ("bin\config.ini","Buttons","Ausschalten",$shutdown)
IniWrite ("bin\config.ini","Buttons","Alarm",$alarm)
IniWrite ("bin\config.ini","Buttons","Alarm Ton",$alarm_num)
IniWrite ("bin\config.ini","Buttons","Versuche",$fehler_sd)
IniWrite ("bin\config.ini","Buttons","PW",Binary($pin))GUIDelete ()
[/autoit] [autoit][/autoit] [autoit]If $autostart = 1 Then
[/autoit] [autoit][/autoit] [autoit]
FileCreateShortcut(FileGetShortName("pc lock.exe",1),@StartupDir & "\pc lock.lnk",@WindowsDir,"/e,c:\", "Dies ist ein Explorerlink")
FileWrite ("bin\not.not","Not")
EndIf
If $autostart <> 1 Then
FileDelete (@StartupDir & "\pc lock.lnk")
FileDelete ("bin\not.not")
EndIf
_hotkey_set ($hotkey)EndFunc
[/autoit] [autoit][/autoit] [autoit]Func _hotkey_set ($hotkey)
[/autoit] [autoit][/autoit] [autoit]
HotKeySet ("{F1}")
HotKeySet ("{F2}")
HotKeySet ("{F3}")
HotKeySet ("{F4}")
HotKeySet ("{F5}")
HotKeySet ("{F6}")
HotKeySet ("{F7}")
HotKeySet ("{F8}")
HotKeySet ("{F9}")
HotKeySet ("{F10}")
HotKeySet ("{F11}")
If $hotkey = "F1" Then HotKeySet ("{F1}","_lock")
If $hotkey = "F2" Then HotKeySet ("{F2}","_lock")
If $hotkey = "F3" Then HotKeySet ("{F3}","_lock")
If $hotkey = "F4" Then HotKeySet ("{F4}","_lock")
If $hotkey = "F5" Then HotKeySet ("{F5}","_lock")
If $hotkey = "F6" Then HotKeySet ("{F6}","_lock")
If $hotkey = "F7" Then HotKeySet ("{F7}","_lock")
If $hotkey = "F8" Then HotKeySet ("{F8}","_lock")
If $hotkey = "F9" Then HotKeySet ("{F9}","_lock")
If $hotkey = "F10" Then HotKeySet ("{F10}","_lock")
If $hotkey = "F11" Then HotKeySet ("{F11}","_lock")
EndFuncIf $s = 1 Then
[/autoit] [autoit][/autoit] [autoit]
$richtig = _SoundOpen("sound\richtig.wav")
$falsch = _SoundOpen("sound\falsch.wav")
$door = _SoundOpen("sound\door_move.wav")
EndIf
If $alarm = 1 Then $alarm_s = _SoundOpen("sound\" & $alarm_num & ".wav")Sleep (100)
[/autoit] [autoit][/autoit] [autoit]While 1
[/autoit] [autoit][/autoit] [autoit]
Sleep (20)
$tray = TrayGetMsg()
If $tray = $tray_optionen Then _optionen ()
If $tray = $tray_exit Then _beenden ()
WEndFunc _lock ()
[/autoit] [autoit][/autoit] [autoit]
HotKeySet("{Enter}", "_pw_compaire")
HotKeySet ("{Left}", "_nichts" )
HotKeySet ("{Right}", "_nichts" )
HotKeySet ("{Up}", "_nichts" )
HotKeySet ("{Down}", "_nichts" )
HotKeySet ("{Space}", "_nichts" )
HotKeySet ("{Delete}", "_nichts" )
HotKeySet ("{Backspace}", "_pw_del_let" )
HotKeySet ("{F1}")
HotKeySet ("{F2}")
HotKeySet ("{F3}")
HotKeySet ("{F4}")
HotKeySet ("{F5}")
HotKeySet ("{F6}")
HotKeySet ("{F7}")
HotKeySet ("{F8}")
HotKeySet ("{F9}")
HotKeySet ("{F10}")
HotKeySet ("{F11}")
$hBitmap = _ScreenCapture_Capture ("",0,0,-1,-1,False)
$hGUI = GUICreate("Locker", $Width, $Height,0,0, $WS_POPUP, $WS_EX_TOPMOST)
$hWnd = WinGetHandle("Locker")GUISetState ()
[/autoit] [autoit][/autoit] [autoit];Resourcen laden
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_Startup ()$hGraphic = _GDIPlus_GraphicsCreateFromHWND ($hWnd) ;create graphic
[/autoit] [autoit][/autoit] [autoit]
$Bitmap = _GDIPlus_BitmapCreateFromGraphics($Width, $Height, $hGraphic) ;create bitmap
$Buffer = _GDIPlus_ImageGetGraphicsContext($Bitmap) ;create buffer
_GDIPlus_GraphicsSetSmoothingMode($Buffer, 4) ;Antialiasing
_GDIPlus_GraphicsClear($Buffer,0xFFFFFFFF) ;clear buffer$pic1 = _GDIPlus_BitmapCreateFromFile("texturen\door_oben.gif")
[/autoit] [autoit][/autoit] [autoit]
$pic2 = _GDIPlus_BitmapCreateFromFile("texturen\door_unten.gif")
$pic3 = _GDIPlus_BitmapCreateFromFile("texturen\door.gif")
$pic4 = _GDIPlus_BitmapCreateFromFile("texturen\door2_links.gif")
$pic5 = _GDIPlus_BitmapCreateFromFile("texturen\door2_rechts.gif")
$pic6 = _GDIPlus_BitmapCreateFromFile("texturen\door2.gif")
$screen = _GDIPlus_BitmapCreateFromHBITMAP ($hBitmap)
If $doors = 1 Then _close ()
While $state <> 2
$tray = TrayGetMsg()
If $tray = $tray_optionen Then _optionen ()
If $tray = $tray_exit Then _beenden ()
_tastature ()
If WinExists ("Windows Task-Manager") Then WinKill ("Windows Task-Manager")
WinSetOnTop("Locker", "", 1)
If $alarm = 2 Then _SoundPlay ($alarm_s)
_GDIPlus_GraphicsClear($Buffer,0xFF00FF00)
If $doors = 1 Then _GDIPlus_GraphicsDrawImageRectRect($Buffer, $pic3,0,0,1280,800,0,0, $Width, $Height)
If $doors = 4 Then _GDIPlus_GraphicsDrawImageRectRect($Buffer, $screen,0,0,1280,800,0,0, $Width, $Height)
_GDIPlus_GraphicsDrawString ($Buffer,$text,500,470,"Arial",18)
_GDIPlus_GraphicsDrawImageRect($hGraphic, $Bitmap, 0, 0, $Width, $Height)
WEnd
GUIDelete ()
$state = 0
$text = "# Bitte Code eingeben #"
$fehler = 0
HotKeySet("{Enter}")
HotKeySet ("{Left}")
HotKeySet ("{Right}")
HotKeySet ("{Up}")
HotKeySet ("{Down}")
HotKeySet ("{Space}")
HotKeySet ("{Delete}")
HotKeySet ("{Backspace}")
EndFuncFunc _open ()
[/autoit] [autoit][/autoit] [autoit]
_SoundPlay($door, 0)
Local $i = 0While $i < $Height * 2 / 3
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsClear($Buffer,0xFF00FF00)_GDIPlus_GraphicsDrawImageRectRect($Buffer, $screen,0,0,1280,800,0,0, $Width, $Height)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDrawImageRectRect($Buffer, $pic1,0,0,1280,800,0,$i * -1, $Width, $Height)
_GDIPlus_GraphicsDrawImageRectRect($Buffer, $pic2,0,0,1280,800,0,$i, $Width, $Height)
_GDIPlus_GraphicsDrawImageRect($hGraphic, $Bitmap, 0, 0, $Width, $Height)
$i = $i + 4
Sleep (10)
WEnd
EndFuncFunc _close ()
[/autoit] [autoit][/autoit] [autoit]
_SoundPlay($door, 0)
Local $i = 0While $i < $Height * 2/3
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsClear($Buffer,0xFF00FF00)_GDIPlus_GraphicsDrawImageRectRect($Buffer, $screen,0,0,1280,800,0,0, $Width, $Height)
[/autoit] [autoit][/autoit] [autoit]
_GDIPlus_GraphicsDrawImageRectRect($Buffer, $pic1,0,0,1280,800,0,$Height * 2/3 * -1 + $i, $Width, $Height)
_GDIPlus_GraphicsDrawImageRectRect($Buffer, $pic2,0,0,1280,800,0,$Height * 2/3 - $i, $Width, $Height)
_GDIPlus_GraphicsDrawImageRect($hGraphic, $Bitmap, 0, 0, $Width, $Height)
$i = $i + 4
Sleep (10)
WEnd
EndFuncFunc _tastature ()
[/autoit] [autoit][/autoit] [autoit]
For $a = 48 To 90
If _IsPressed(Hex($a),$dll) Then
Do
Until Not _IsPressed(Hex($a),$dll)
If $text = "# Bitte Code eingeben #" Or $text = "# Falsches Passwort #" Then $text = ""
$text = $text & StringLower(Chr($a))
EndIf
Next
EndFuncFunc _pw_compaire ()
[/autoit] [autoit][/autoit] [autoit]
If $text = $pin Then
_SoundPlay($richtig, 1)
If $doors = 1 Then _open ()
_hotkey_set ($hotkey)
$state = 2
EndIf
If $pin = "" Then
_SoundPlay($richtig, 1)
_hotkey_set ($hotkey)
If $doors = 1 Then _open ()
$state = 2
EndIf
If $text <> $pin Then
_SoundPlay($falsch, 0)
$text = "# Falsches Passwort #"
$fehler = $fehler + 1
EndIf
If $fehler = $fehler_sd And $taskkill = 1 Then _taskkill_all ()
If $fehler = $fehler_sd And $shutdown = 1 Then Shutdown (4)
If $fehler = $fehler_sd And $alarm = 1 Then $alarm = 2
EndFuncFunc _pw_del_let ()
[/autoit] [autoit][/autoit] [autoit]
$text = StringTrimRight ($text,1)
EndFuncFunc _taskkill_all ()
[/autoit] [autoit][/autoit] [autoit]
Local $var = WinList()For $i = 1 to $var[0][0]
[/autoit] [autoit][/autoit] [autoit]
If $var[$i][0] <> "" AND IsVisible($var[$i][1]) Then
If $var[$i][0] <> "Program Manager" Then WinKill ($var[$i][0])
EndIf
Next
EndFuncFunc IsVisible($handle)
[/autoit] [autoit][/autoit] [autoit]
If BitAnd( WinGetState($handle), 2 ) Then
Return 1
Else
Return 0
EndIfEndFunc
[/autoit] [autoit][/autoit] [autoit]Func _nichts ()
[/autoit]
Return
EndFunc
Func _beenden ()
_GDIPlus_ImageDispose ($pic1)
_GDIPlus_ImageDispose ($pic2)
_GDIPlus_ImageDispose ($pic3)
_GDIPlus_ImageDispose ($pic4)
_GDIPlus_ImageDispose ($pic5)
_GDIPlus_ImageDispose ($pic6)
_GDIPlus_ImageDispose ($screen)
_GDIPlus_GraphicsDispose ($hGraphic)
_GDIPlus_BitmapDispose($Bitmap)
_GDIPlus_GraphicsDispose($Buffer)
_GDIPlus_Shutdown ()
_SoundClose($alarm_s)
_SoundClose($richtig)
_SoundClose($falsch)
_SoundClose($door)
Exit
EndFunc