Söö, wer den Beitrag von Mr.SaxoI3eat gelesen hat (Wer wird Millionär?), der weiß, dass ich auch noch ein Rätselskript hier rum liegen hab
Das Beispielrätsel ist "hingekritzelt", ich denke, ich werde die Tage da mal was Vernünftiges machen... aber es geht ja um das Skript, nicht um die Fragen...
Von miraus könnt ihr auch eigene Scenarien verfassen und sie hier hochladen!
Sourcecode
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.6.1
Author: chesstiger
Script Function:
---
#ce ----------------------------------------------------------------------------
#include <StaticConstants.au3>
#include <GUIConstants.au3>
#include <Misc.au3>
#include <File.au3>
Dim $FOLDERS
$FOLDERS = _FileListToArray(@ScriptDir & "\scenarios\","*",2)
$COUNTER_ONE = 0
$RETURN_FOLDER = ""
Do
$COUNTER_ONE+=1
$RETURN_FOLDER = $RETURN_FOLDER & '"' & $FOLDERS[$COUNTER_ONE] & '"' & @CR
Until $COUNTER_ONE = $FOLDERS[0]
While 1
$NAMEOFSCENE = InputBox("UniRiddle","Scenarioname:")
If @Error = 1 Then Exit
$SCENARIO = "scenarios\" & $NAMEOFSCENE & "\scene.ini"
If FileExists ($SCENARIO) Then ExitLoop
MsgBox(48,"UniRiddle","Scenario existiert nicht!" & @CR & @CR & "Verfügbare Scenarien:" & @CR & $RETURN_FOLDER)
WEnd
$COUNTER = 0
;MAINGUI
$MAINGUI = GUICreate("UniRiddle",300,300)
$NAME = GUICtrlCreateLabel("",15,0,270,25,$SS_CENTER)
GUICtrlSetFont($NAME,16)
$TITLEIMAGE = GUICtrlCreatePic("",100,50,100,100)
$DESCRIPTION = GUICtrlCreateLabel("",10,175,280,50,$SS_CENTER)
$AUTHOR = GUICtrlCreateLabel("",10,225,280,60,$SS_CENTER)
$GO = GUICtrlCreateButton("Beginnen",0,280,275,20)
$CREDITS = GUICtrlCreateButton("Info",275,280,25,20)
GUISetState()
GUICtrlSetData($NAME,IniRead($SCENARIO,"MAIN","NAME",0))
GUICtrlSetImage($TITLEIMAGE,"scenarios\" & $NAMEOFSCENE & "\pic\" & IniRead($SCENARIO,"MAIN","TITLEIMAGE",0))
GUICtrlSetData($DESCRIPTION,IniRead($SCENARIO,"MAIN","DESCRIPTION",0))
GUICtrlSetData($AUTHOR,"Autor: " & IniRead($SCENARIO,"MAIN","AUTHOR",0) & @CRLF & "Version: " & IniRead($SCENARIO,"MAIN","VERSION",0) & @CRLF & "Datum: " & IniRead($SCENARIO,"MAIN","DATE",0))
While 1
$mainmsg = GUIGetMsg()
Select
Case $mainmsg = $GO
ExitLoop
Case $mainmsg = $GUI_EVENT_CLOSE
Exit
Case $mainmsg = $CREDITS
MsgBox(32,"UniRiddle","UniRiddle ist ein Projekt von: chesstiger" & @CR & "Scenario-Ordner einfach nach 'scenarios' verschieben und den Namen bei der Startsequenz eingeben!" & @CR & @CR & "UniRiddle-Version: 0.2")
EndSelect
WEnd
GUIDelete($MAINGUI)
GUICreate("UniRiddle",300,300)
$QUEST = GUICtrlCreateLabel("QUEST",10,10,280,50)
$A = GUICtrlCreateButton("A",0,180,300,30)
$B = GUICtrlCreateButton("B",0,210,300,30)
$C = GUICtrlCreateButton("C",0,240,300,30)
$D = GUICtrlCreateButton("D",0,270,300,30)
$PIC = GUICtrlCreatePic("",100,50,100,100)
GUISetState()
$COUNT_SECTIONS = IniReadSectionNames($SCENARIO)
Do
$COUNTER+=1
_NewQuest("QUEST_" & $COUNTER)
Until $COUNTER = $COUNT_SECTIONS[0] - 1
MsgBox(0,"UniRiddle",IniRead($SCENARIO,"MAIN","WINTEXT",0))
Func _NewQuest($SECTION)
#cs
If IniRead($SCENARIO,$SECTION,"ENABLE",0) = 3 Then
GUICtrlSetState($D,$GUI_DISABLE)
EndIf
If IniRead($SCENARIO,$SECTION,"ENABLE",0) = 2 Then
GUICtrlSetState($A,$GUI_DISABLE)
GUICtrlSetState($D,$GUI_DISABLE)
EndIf
If IniRead($SCENARIO,$SECTION,"ENABLE",0) = 1 Then
GUICtrlSetState($B,$GUI_DISABLE)
GUICtrlSetState($C,$GUI_DISABLE)
GUICtrlSetState($D,$GUI_DISABLE)
EndIf
#ce
GUICtrlSetState($A,$GUI_DISABLE)
GUICtrlSetState($B,$GUI_DISABLE)
GUICtrlSetState($C,$GUI_DISABLE)
GUICtrlSetState($D,$GUI_DISABLE)
If StringInStr(IniRead($SCENARIO,$SECTION,"ENABLE","0"),"A") <> 0 Then GUICtrlSetState($A,$GUI_ENABLE)
If StringInStr(IniRead($SCENARIO,$SECTION,"ENABLE","0"),"B") <> 0 Then GUICtrlSetState($B,$GUI_ENABLE)
If StringInStr(IniRead($SCENARIO,$SECTION,"ENABLE","0"),"C") <> 0 Then GUICtrlSetState($C,$GUI_ENABLE)
If StringInStr(IniRead($SCENARIO,$SECTION,"ENABLE","0"),"D") <> 0 Then GUICtrlSetState($D,$GUI_ENABLE)
If IniRead($SCENARIO,$SECTION,"ENABLE","0") = "" Or IniRead($SCENARIO,$SECTION,"ENABLE","0") = "0" Then
GUICtrlSetState($A,$GUI_ENABLE)
GUICtrlSetState($B,$GUI_ENABLE)
GUICtrlSetState($C,$GUI_ENABLE)
GUICtrlSetState($D,$GUI_ENABLE)
EndIf
GUICtrlSetData($QUEST,IniRead($SCENARIO,$SECTION,"QUEST",0))
GUICtrlSetData($A,IniRead($SCENARIO,$SECTION,"A",0))
GUICtrlSetData($B,IniRead($SCENARIO,$SECTION,"B",0))
GUICtrlSetData($C,IniRead($SCENARIO,$SECTION,"C",0))
GUICtrlSetData($D,IniRead($SCENARIO,$SECTION,"D",0))
GUICtrlSetImage($PIC,"scenarios\" & $NAMEOFSCENE & "\pic\" & IniRead($SCENARIO,$SECTION,"PIC",0))
While 1
$msg = GUIGetMsg()
If WinActive("UniRiddle") <> 0 Then
If _IsPressed("41") Then
$ANSWER = "A"
Sleep(200)
ExitLoop
EndIf
If _IsPressed("42") Then
$ANSWER = "B"
Sleep(200)
ExitLoop
EndIf
If _IsPressed("43") Then
$ANSWER = "C"
Sleep(200)
ExitLoop
EndIf
If _IsPressed("44") Then
$ANSWER = "D"
Sleep(200)
ExitLoop
EndIf
EndIf
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $A
$ANSWER = "A"
ExitLoop
Case $msg = $B
$ANSWER = "B"
ExitLoop
Case $msg = $C
$ANSWER = "C"
ExitLoop
Case $msg = $D
$ANSWER = "D"
ExitLoop
EndSelect
WEnd
If $ANSWER <> IniRead($SCENARIO,$SECTION,"NEXT",0) Then
If IniRead($SCENARIO,$SECTION,"ENDTEXT","0") = "AUTO" Then
MsgBox(0,"UniRiddle",IniRead($SCENARIO,"MAIN","ENDTEXT_AUTO",0))
ElseIf IniRead($SCENARIO,$SECTION,"ENDTEXT","0") <> "0" THen
MsgBox(0,"UniRiddle",IniRead($SCENARIO,$SECTION,"ENDTEXT",0))
EndIf
If IniRead($SCENARIO,"MAIN","DEBUG","FALSE") <> "TRUE" Then Exit
EndIf
If IniRead($SCENARIO,$SECTION,"NEXTTEXT","0") = "AUTO" Then
MsgBox(0,"UniRiddle",IniRead($SCENARIO,"MAIN","NEXTTEXT_AUTO",0))
ElseIf IniRead($SCENARIO,$SECTION,"NEXTTEXT","0") <> "0" Then
MsgBox(0,"UniRiddle",IniRead($SCENARIO,$SECTION,"NEXTTEXT",0))
EndIf
GUICtrlSetImage($PIC,"")
GUICtrlSetState($A,$GUI_ENABLE)
GUICtrlSetState($B,$GUI_ENABLE)
GUICtrlSetState($C,$GUI_ENABLE)
GUICtrlSetState($D,$GUI_ENABLE)
EndFunc
Edit: Mein Browser will grad nicht, der SC ist verhunzt
Und im Anhang das ganze nochmal als Zipfile, mit Beispiel etc...
lg chess
Update:
Ein klein wenig am Sourcecode verändert und UniRiddleEx.zip hochgeladen.
UniRiddleEx.zip enthält (bis jetzt) nur das Szenario "ctGeschichte", wird aber noch erweitert.
chess