ich habe in meinem script die variablen
$monstername
$monsterlevel
$pic
diese 3 variablen sollen eig, wenn ein monster aufgerufen wird, den variablen des monsters entsprechn.. komischerweise klappt das soweit dass der gui anders aussieht(ausser den bildern :siehe ein post drüber)
aber wenn dieses monster dann bekämpft wird hat es als level nur 1 ,wie am anfang deklariert, soll aber den neuen wert haben
ich weis nicht warum ist wahrscheinlich nur ein kleiner aber bedeutender fehler..
$text="1" $level=1 $pic="C:\Users\Jan\Pictures\abenteuerbilder\goblin_officer.jpg" $monstername="" $monsterlevel=1 $dagob=0 $daspin=0 $daork=0 $damag=0 $dazyk=0 $daskel=0 $datro=0 $dadaem=0 $ende=0 Global $x=0 Global $y=0 Dim $map[3][3] For $y=0 To 2 For $x=0 To 2 $map[$y][$x] = 'Raum'&$y*3+$x+1 Next Next Global $x=0 Global $y=0
GUISetState(@SW_HIDE) #EndRegion ### END Koda GUI section ###
Func SetText($cid, $text) If GUICtrlRead($cid) <> $text Then GUICtrlSetData($cid, $text) EndFunc
Func Disable($cid) If GUICtrlGetState($cid) <> 144 Then GUICtrlSetState($cid, 128) EndFunc
Func Enable($cid) If GUICtrlGetState($cid) = 144 Then GUICtrlSetState($cid, 64) EndFunc
Func SetButtons() If $x=0 Then Disable($left) Else Enable($left) EndIf If $x=2 Then Disable($right) Else Enable($right) EndIf If $y=0 Then Disable($up) Else Enable($up) EndIf If $y=2 Then Disable($down) Else Enable($down) EndIf EndFunc
Func Setpicandtxt($pic, $monsterlevel, $monstername) If $y=0 And $x=0 Then
GUISetState(@SW_SHOW,$gegner) $pic="C:\Users\Jan\Pictures\abenteuerbilder\goblin_officer.jpg" $monsterlevel=1 $monstername="Goblin" If $dagob=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername) If $pic <> GUICtrlRead($Pgegner) Then GUICtrlSetData ( $Pgegner, $pic ) SplashOff() Else SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100) GUICtrlSetData ( $Lmlevel, "") GUICtrlSetData ( $Lname, "") GUICtrlSetData ( $Pgegner,"") GUICtrlSetData($Llevel,"") EndIf EndIf If $y=1 And $x=0 Then
GUISetState(@SW_SHOW,$gegner) $pic="C:\Users\Jan\Pictures\abenteuerbilder\ork.jpg" $monsterlevel=3 $monstername="Ork" If $daork=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername) If $pic <> GUICtrlRead($Pgegner) Then GUICtrlSetData ( $Pgegner, $pic ) SplashOff() Else SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100) GUICtrlSetData ( $Lmlevel, "") GUICtrlSetData ( $Lname, "") GUICtrlSetData ( $Pgegner,"") GUICtrlSetData($Llevel,"") EndIf EndIf
If $y=0 And $x=1 Then
GUISetState(@SW_SHOW,$gegner) $pic="C:\Users\Jan\Pictures\abenteuerbilder\spinne.jpg" $monsterlevel=2 $monstername="Spinne" If $daspin=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername) If $pic <> GUICtrlRead($Pgegner) Then GUICtrlSetData ( $Pgegner, $pic ) SplashOff() Else SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100) GUICtrlSetData ( $Lmlevel, "") GUICtrlSetData ( $Lname, "") GUICtrlSetData ( $Pgegner,"") GUICtrlSetData($Llevel,"") EndIf EndIf If $y=2 And $x=0 Then
GUISetState(@SW_SHOW,$gegner) $pic="C:\Users\Jan\Pictures\abenteuerbilder\troll.jpg" $monsterlevel=5 $monstername="Troll" If $datro=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername) If $pic <> GUICtrlRead($Pgegner) Then GUICtrlSetData ( $Pgegner, $pic ) SplashOff() Else SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100) GUICtrlSetData ( $Lmlevel, "") GUICtrlSetData ( $Lname, "") GUICtrlSetData ( $Pgegner,"") GUICtrlSetData($Llevel,"") EndIf EndIf If $y=2 And $x=1 Then
GUISetState(@SW_SHOW,$gegner) $pic="C:\Users\Jan\Pictures\abenteuerbilder\skelettkrieger.jpg" $monsterlevel=4 $monstername="Skelettkrieger" If $daskel=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername) If $pic <> GUICtrlRead($Pgegner) Then GUICtrlSetData ( $Pgegner, $pic ) SplashOff() Else SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100) GUICtrlSetData ( $Lmlevel, "") GUICtrlSetData ( $Lname, "") GUICtrlSetData ( $Pgegner,"") GUICtrlSetData($Llevel,"") EndIf EndIf If $y=0 And $x=2 Then
GUISetState(@SW_SHOW,$gegner) $pic="C:\Users\Jan\Pictures\abenteuerbilder\mage.jpg" $monsterlevel=6 $monstername="Magier" If $damag=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername) If $pic <> GUICtrlRead($Pgegner) Then GUICtrlSetData ( $Pgegner, $pic ) SplashOff() Else SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100) GUICtrlSetData ( $Lmlevel, "") GUICtrlSetData ( $Lname, "") GUICtrlSetData ( $Pgegner,"") GUICtrlSetData($Llevel,"") EndIf EndIf If $y=1 And $x=1 Then
GUISetState(@SW_SHOW,$gegner) $pic="C:\Users\Jan\Pictures\abenteuerbilder\niederer_daemon.jpg" $monsterlevel=7 $monstername="Dämon" If $dadaem=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername) If $pic <> GUICtrlRead($Pgegner) Then GUICtrlSetData ( $Pgegner, $pic ) SplashOff() Else SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100) GUICtrlSetData ( $Lmlevel, "") GUICtrlSetData ( $Lname, "") GUICtrlSetData ( $Pgegner,"") GUICtrlSetData($Llevel,"") EndIf EndIf If $y=1 And $x=2 Then
GUISetState(@SW_SHOW,$gegner) $pic="C:\Users\Jan\Pictures\abenteuerbilder\zyklop.jpg" $monsterlevel=8 $monstername="Zyklop" If $dazyk=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername) If $pic <> GUICtrlRead($Pgegner) Then GUICtrlSetData ( $Pgegner, $pic ) SplashOff() Else SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100) GUICtrlSetData ( $Lmlevel, "") GUICtrlSetData ( $Lname, "") GUICtrlSetData ( $Pgegner,"") GUICtrlSetData($Llevel,"") EndIf EndIf If $y=2 And $x=2 Then
GUISetState(@SW_SHOW,$gegner) $pic="C:\Users\Jan\Pictures\abenteuerbilder\drache.jpg" $monsterlevel=9 $monstername="Drache" If $ende=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername) If $pic <> GUICtrlRead($Pgegner) Then GUICtrlSetData ( $Pgegner, $pic ) SplashOff() Else MsgBox(1,"Ende","Du hast das Spiel durchgespielt! Es schließt von selbst") Exit EndIf EndIf EndFunc
Global $x=0 Global $y=0
While 1 Switch GUIGetMsg() Case -3 Exit Case $up $y-=1 Case $down $y+=1 Case $right $x+=1 Case $left $x-=1 Case $Bkampf If $level>$monsterlevel Or $level=$monsterlevel Then $level+=1 MsgBox(1,"Geschafft","Du hast das Monster besiegt und bist ein Level up!!") If $y=0 And $x=0 Then $dagob=1 EndIf If $y=0 And $x=1 Then $daspin=1 EndIf If $y=1 And $x=0 Then $daork=1 EndIf If $y=2 And $x=1 Then $daskel=1 EndIf If $y=2 And $x=0 Then $datro=1 EndIf If $y=0 And $x=2 Then $damag=1 EndIf If $y=1 And $x=1 Then $dadaem=1 EndIf If $y=1 And $x=2 Then $dazyk=1 EndIf If $y=2 And $x=2 Then $ende=1
EndIf Else MsgBox(1,"Tot","Du bist tot!Das Spiel endet hier!") Exit EndIf
Case Else SetButtons() SetText($Lraum, 'Du befindest dich im Moment'&@CRLF&' im '&$map[$y][$x]) Setpicandtxt($pic,$monsterlevel,$monstername) ToolTip($level,0,0)
ähhm wtf?? XD
warum hing der ... also bei mir hängt da nix
und wodurch das hervorgerufen wurde weis ich auch net also kann ichs auch net beheben..
aber suche immer noch antworten auf meine beiden fragen!^^
post 30 und 31... biitttee sonst komm ich net weiter.. werde die zweite version natürlich als fertige auch wieder posten^^
€ post 30 frage hat sich erledigt thx omer^^
€2 omer für dich werde ich gleich mal den script übersichtlicher posten aber dauert noch
Die bunten abschnitte sind die wichtigen^^ und @omer ich habe jetzt darin das guictrlcreatepic und eig auch ,das das alte gelöscht wird, aber die bilder überlagern sich immer und flackern weis net wie ich die bilder ersetzte
$dagob=0
$daspin=0
$daork=0
$damag=0
$dazyk=0
$daskel=0
$datro=0
$dadaem=0
$ende=0
Global $x=0
Global $y=0
Dim $map[3][3]
For $y=0 To 2
For $x=0 To 2
$map[$y][$x] = 'Raum'&$y*3+$x+1
Next
Next
Global $x=0
Global $y=0
GUISetState(@SW_HIDE)
#EndRegion ### END Koda GUI section ###
Func SetText($cid, $text)
If GUICtrlRead($cid) <> $text Then GUICtrlSetData($cid, $text)
EndFunc
Func Disable($cid)
If GUICtrlGetState($cid) <> 144 Then GUICtrlSetState($cid, 128)
EndFunc
Func Enable($cid)
If GUICtrlGetState($cid) = 144 Then GUICtrlSetState($cid, 64)
EndFunc
Func SetButtons()
If $x=0 Then
Disable($left)
Else
Enable($left)
EndIf
If $x=2 Then
Disable($right)
Else
Enable($right)
EndIf
If $y=0 Then
Disable($up)
Else
Enable($up)
EndIf
If $y=2 Then
Disable($down)
Else
Enable($down)
EndIf
EndFunc
Func Setpicandtxt( $monsterlevel, $monstername)
If $y=0 And $x=0 Then
GUISetState(@SW_SHOW,$gegner)
$pic = GUICtrlCreatePic("C:\Users\Jan\Pictures\abenteuerb ilder\spider.jpg", 24, 64, 193, 257)
$monsterlevel=2
$monstername="Spinne"
If $daspin=0 Then
If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel )
If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
SplashOff()
Else
SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100)
GUICtrlSetData ( $Lmlevel, "")
GUICtrlSetData ( $Lname, "")
GUICtrlSetData ( $pic,"")
GUICtrlSetData($Llevel,"")
EndIf
EndIf
If $y=2 And $x=0 Then
GUISetState(@SW_SHOW,$gegner)
$pic = GUICtrlCreatePic("C:\Users\Jan\Pictures\abenteuerb ilder\troll.jpg", 24, 64, 193, 257)
$monsterlevel=5
$monstername="Troll"
If $datro=0 Then
If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel )
If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
SplashOff()
Else
SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100)
GUICtrlSetData ( $Lmlevel, "")
GUICtrlSetData ( $Lname, "")
GUICtrlSetData ( $pic,"")
GUICtrlSetData($Llevel,"")
EndIf
EndIf
If $y=2 And $x=1 Then
GUISetState(@SW_SHOW,$gegner)
$pic = GUICtrlCreatePic("C:\Users\Jan\Pictures\abenteuerb ilder\skelettkrieger.jpg", 24, 64, 193, 257)
$monsterlevel=4
$monstername="Skelettkrieger"
If $daskel=0 Then
If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel )
If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
SplashOff()
Else
SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100)
GUICtrlSetData ( $Lmlevel, "")
GUICtrlSetData ( $Lname, "")
GUICtrlSetData ( $pic,"")
GUICtrlSetData($Llevel,"")
EndIf
EndIf
If $y=0 And $x=2 Then
GUISetState(@SW_SHOW,$gegner)
$pic = GUICtrlCreatePic("C:\Users\Jan\Pictures\abenteuerb ilder\mage.jpg", 24, 64, 193, 257)
$monsterlevel=6
$monstername="Magier"
If $damag=0 Then
If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel )
If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
SplashOff()
Else
SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100)
GUICtrlSetData ( $Lmlevel, "")
GUICtrlSetData ( $Lname, "")
GUICtrlSetData ( $pic,"")
GUICtrlSetData($Llevel,"")
EndIf
EndIf
If $y=1 And $x=1 Then
GUISetState(@SW_SHOW,$gegner)
$pic = GUICtrlCreatePic("C:\Users\Jan\Pictures\abenteuerb ilder\niederer_daemon.jpg", 24, 64, 193, 257)
$monsterlevel=7
$monstername="Dämon"
If $dadaem=0 Then
If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel )
If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
SplashOff()
Else
SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100)
GUICtrlSetData ( $Lmlevel, "")
GUICtrlSetData ( $Lname, "")
GUICtrlSetData ( $pic,"")
GUICtrlSetData($Llevel,"")
EndIf
EndIf
If $y=1 And $x=2 Then
GUISetState(@SW_SHOW,$gegner)
$pic = GUICtrlCreatePic("C:\Users\Jan\Pictures\abenteuerb ilder\zyklop.jpg", 24, 64, 193, 257)
$monsterlevel=8
$monstername="Zyklop"
If $dazyk=0 Then
If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel )
If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
SplashOff()
Else
SplashTextOn("Leer","Dieser Raum ist leer",100,100,100,100)
GUICtrlSetData ( $Lmlevel, "")
GUICtrlSetData ( $Lname, "")
GUICtrlSetData ( $pic,"")
GUICtrlSetData($Llevel,"")
EndIf
EndIf
If $y=2 And $x=2 Then
GUISetState(@SW_SHOW,$gegner)
$pic = GUICtrlCreatePic("C:\Users\Jan\Pictures\abenteuerb ilder\drache.jpg", 24, 64, 193, 257)
$monsterlevel=9
$monstername="Drache"
If $ende=0 Then
If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel )
If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
SplashOff()
Else
MsgBox(1,"Ende","Du hast das Spiel durchgespielt! Es schließt von selbst")
Exit
EndIf
EndIf
EndFunc
Global $x=0
Global $y=0
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $up
$y-=1
GUICtrlDelete($pic)
Case $down
$y+=1
GUICtrlDelete($pic)
Case $right
$x+=1
GUICtrlDelete($pic)
Case $left
$x-=1
GUICtrlDelete($pic)
PHP Code:
Case $Bkampf If $level>$monsterlevel Or $level=$monsterlevel Then; hier jedoch wird die am anfang deklarierte 1 für das monsterlevel genommen.. sehr schlecht... $level+=1 MsgBox(1,"Geschafft","Du hast das Monster besiegt und bist ein Level up!!")
If $y=0 And $x=0 Then
$dagob=1
EndIf
If $y=0 And $x=1 Then
$daspin=1
EndIf
If $y=1 And $x=0 Then
$daork=1
EndIf
If $y=2 And $x=1 Then
$daskel=1
EndIf
If $y=2 And $x=0 Then
$datro=1
EndIf
If $y=0 And $x=2 Then
$damag=1
EndIf
If $y=1 And $x=1 Then
$dadaem=1
EndIf
If $y=1 And $x=2 Then
$dazyk=1
EndIf
If $y=2 And $x=2 Then
$ende=1
EndIf
Else
MsgBox(1,"Tot","Du bist tot!Das Spiel endet hier!")
Exit
EndIf
Case Else
SetButtons()
SetText($Lraum, 'Du befindest dich im Moment'&@CRLF&' im '&$map[$y][$x])
Setpicandtxt($monsterlevel,$monstername)
ToolTip($level,0,0)
mh also ich weis nicht, ob du das mit den arrays nicht verstanden hast, aber hier mal ein beispiel mit verschiedenen mobs, und zwei raumtypen (mob-raum und weg-wahl)...
Code:
Global $x=0, $y=0
Dim $mob[3][3], $lvl[3][3], $mob_room = True, $player_lvl = 1
;y = 0
$mob[0][0] = 'einen Goblin'
$lvl[0][0] = 1
$mob[0][1] = 'eine Spinne'
$lvl[0][1] = 2
$mob[0][2] = 'einen Ork'
$lvl[0][2] = 5
;y = 1
$mob[1][0] = 'einen Troll'
$lvl[1][0] = 7
$mob[1][1] = 'eine Fledermaus'
$lvl[1][1] = 3
$mob[1][2] = 'einen Dieb'
$lvl[1][2] = 6
;y = 2
$mob[2][0] = 'einen Zauberer'
$lvl[2][0] = 9
$mob[2][1] = 'einen Vogel'
$lvl[2][1] = 4
$mob[2][2] = 'einen T-Rex'
$lvl[2][2] = 20
GUICreate('Map')
$mob_label = GUICtrlCreateLabel(' Du betrittst einen Raum,'&@CRLF&'in dem du '&$mob[$y][$x]&' (Level '&$lvl[$y][$x]&') findest'&@CRLF&' Was möchtest du nun tun?', 110 , 150, 300)
$room_label = GUICtrlCreateLabel(' Nun wird es spannend.'&@CRLF&'du musst du dich entscheiden,'&@CRLF&' wohin du gehen willst', 128 , 140)
$up = GUICtrlCreateButton('Hoch', 150, 50, 100)
$down = GUICtrlCreateButton('Runter', 150, 260, 100)
$right = GUICtrlCreateButton('Rechts', 280, 150, 100)
$left = GUICtrlCreateButton('Links', 20, 150, 100)
$fight = GUICtrlCreateButton('Kämpfen', 70, 190, 100)
$escape = GUICtrlCreateButton('Fliehen', 230, 190, 100)
$lvl_label = GUICtrlCreateLabel('Dein Level: '&$player_lvl, 320, 370)
GUISetState()
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $up
$y-=1
$mob_room = True
Case $down
$y+=1
$mob_room = True
Case $right
$x+=1
$mob_room = True
Case $left
$x-=1
$mob_room = True
Case $fight
If $lvl[$y][$x] <= $player_lvl Then
$player_lvl += 1
MsgBox(64, 'Geschafft!', 'Dein Gegner ist besiegt und du fühlst dich viel stärker'&@CRLF&'Nun wird es Zeit diesen Raum wieder zu verlassen')
$mob_room = False
Else
Switch MsgBox(52, 'Schlechte Entscheidung', 'Dieser Gegner war wohl zu stark für dich.'&@CRLF&'Möchtest du nocheinmal von Vorne beginnen?')
Case 6
$player_lvl = 1
$x = 0
$y = 0
$mob_room = True
Case 7
Exit
EndSwitch
EndIf
Case $escape
$mob_room = False
Case Else
SetButtons()
RoomDetection()
SetText($lvl_label, 'Dein Level: '&$player_lvl)
SetText($mob_label, ' Du betrittst einen Raum,'&@CRLF&'in dem du '&$mob[$y][$x]&' (Level '&$lvl[$y][$x]&') findest'&@CRLF&' Was möchtest du nun tun?')
EndSwitch
WEnd
Func SetText($cid, $text)
If GUICtrlRead($cid) <> $text Then GUICtrlSetData($cid, $text)
EndFunc
Func Disable($cid)
If Not BitAND(GUICtrlGetState($cid), 128) Then GUICtrlSetState($cid, 128)
EndFunc
Func Enable($cid)
If BitAND(GUICtrlGetState($cid), 128) Then GUICtrlSetState($cid, 64)
EndFunc
Func Show($cid)
If Not BitAND(GUICtrlGetState($cid), 16) Then GUICtrlSetState($cid, 16)
EndFunc
Func Hide($cid)
If BitAND(GUICtrlGetState($cid), 16) Then GUICtrlSetState($cid, 32)
EndFunc
Func SetButtons()
If $x=0 Then
Disable($left)
Else
Enable($left)
EndIf
If $x=2 Then
Disable($right)
Else
Enable($right)
EndIf
If $y=0 Then
Disable($up)
Else
Enable($up)
EndIf
If $y=2 Then
Disable($down)
Else
Enable($down)
EndIf
EndFunc
Func RoomDetection()
If $mob_room Then
Hide($up)
Hide($down)
Hide($right)
Hide($left)
Hide($room_label)
Show($mob_label)
Show($fight)
Show($escape)
Else
Show($up)
Show($down)
Show($right)
Show($left)
Show($room_label)
Hide($mob_label)
Hide($fight)
Hide($escape)
EndIf
EndFunc
für die bilder jetzt halt einfach noch ein drittes array einfügen, und dann nur die bilder anpassen noch im else case...
wenn du das array auf ein 3d array erweiterst, könntest du sogar name, level und bild in einem array speichern. wollte dir das ganze eig nur am beispiel eines 2d arrays zeigen, da ich das so recht übersichtlich finde.
Edit:
übersichtlich war falsch sry :P
einfacher verständlich trifft es wohl bessa
hey^^
ich habs zu guter letzt selbts hinbekommen mit den variablen.. jetzt funzt alles
ich poste en code und die exe als rar mit den bildern
wenn bilder net angezeigt werden ändert in code den pfad ^^
jo viel spaß thx brauch ich nicht aber ne rückmeldung wäre schön^^
PHP Code:
#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_icon=..\..\Downloads\speech-balloon-white-a.ico #AutoIt3Wrapper_outfile=Abenteuerspielarray.exe #AutoIt3Wrapper_UseX64=n #AutoIt3Wrapper_Add_Constants=n #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <StaticConstants.au3>
Global $x=0 Global $y=0 Dim $map[3][3] For $y=0 To 2 For $x=0 To 2 $map[$y][$x] = 'Raum'&$y*3+$x+1 Next Next Global $x=0 Global $y=0 Global $text="1" Global $level=1 Global $monstername="" Global $monsterlevel=1 Global $dagob=0 Global $daspin=0 Global $daork=0 Global $damag=0 Global $dazyk=0 Global $daskel=0 Global $datro=0 Global $dadaem=0 Global $ende=0 #Region ### START Koda GUI section ### Form= $Forientierung = GUICreate("Orientierung", 307, 306, 237, 247) $Pic1 = GUICtrlCreatePic("C:\Users\Jan\Pictures\abenteuerbilder\gitter.jpg", 0, 0, 305, 305, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS)) $Label1 = GUICtrlCreateLabel("X", 40, 32, 18, 28) GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif") GUISetState(@SW_SHOW) $Label2 = GUICtrlCreateLabel("Erforscht", 8, 72, 46, 17) $Label3 = GUICtrlCreateLabel("Erforscht", 112, 72, 46, 17) $Label4 = GUICtrlCreateLabel("Erforscht", 8, 184, 46, 17) $Label5 = GUICtrlCreateLabel("Erforscht", 112, 280, 46, 17) $Label6 = GUICtrlCreateLabel("Erforscht", 8, 280, 46, 17) $Label7 = GUICtrlCreateLabel("Erforscht", 208, 72, 46, 17) $Label8 = GUICtrlCreateLabel("Erforscht", 104, 184, 46, 17) $Label9 = GUICtrlCreateLabel("Erforscht", 208, 184, 46, 17) GUICtrlSetState ( $Label2,$GUI_HIDE ) GUICtrlSetState ( $Label3, $GUI_HIDE ) GUICtrlSetState ( $Label4, $GUI_HIDE ) GUICtrlSetState ( $Label5, $GUI_HIDE ) GUICtrlSetState ( $Label6, $GUI_HIDE ) GUICtrlSetState ( $Label7,$GUI_HIDE ) GUICtrlSetState ( $Label8, $GUI_HIDE ) GUICtrlSetState ( $Label9, $GUI_HIDE )
Func SetText($cid, $text) If GUICtrlRead($cid) <> $text Then GUICtrlSetData($cid, $text) EndFunc
Func Disable($cid) If GUICtrlGetState($cid) <> 144 Then GUICtrlSetState($cid, 128) EndFunc
Func Enable($cid) If GUICtrlGetState($cid) = 144 Then GUICtrlSetState($cid, 64) EndFunc
Func SetButtons() If $x=0 Then Disable($left) Else Enable($left) EndIf If $x=2 Then Disable($right) Else Enable($right) EndIf If $y=0 Then Disable($up) Else Enable($up) EndIf If $y=2 Then Disable($down) Else Enable($down) EndIf EndFunc
Func Setpicandtxt() If $y=0 And $x=0 Then
GUISetState(@SW_SHOW,$gegner)
$monsterlevel=1 $monstername="Goblin" If $dagob=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
GUICtrlSetData($Llevel,"") EndIf EndIf If $y=1 And $x=0 Then
GUISetState(@SW_SHOW,$gegner)
$monsterlevel=3 $monstername="Ork" If $daork=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
$monsterlevel=2 $monstername="Spinne" If $daspin=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
GUICtrlSetData($Llevel,"") EndIf EndIf If $y=2 And $x=0 Then
GUISetState(@SW_SHOW,$gegner)
$monsterlevel=5 $monstername="Troll" If $datro=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
GUICtrlSetData($Llevel,"") EndIf EndIf If $y=2 And $x=1 Then
GUISetState(@SW_SHOW,$gegner)
$monsterlevel=4 $monstername="Skelettkrieger" If $daskel=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
GUICtrlSetData($Llevel,"") EndIf EndIf If $y=0 And $x=2 Then
GUISetState(@SW_SHOW,$gegner)
$monsterlevel=6 $monstername="Magier" If $damag=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
GUICtrlSetData($Llevel,"") EndIf EndIf If $y=1 And $x=1 Then
GUISetState(@SW_SHOW,$gegner)
$monsterlevel=7 $monstername="Dämon" If $dadaem=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
GUICtrlSetData($Llevel,"") EndIf EndIf If $y=1 And $x=2 Then
GUISetState(@SW_SHOW,$gegner)
$monsterlevel=8 $monstername="Zyklop" If $dazyk=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
GUICtrlSetData($Llevel,"") EndIf EndIf If $y=2 And $x=2 Then
GUISetState(@SW_SHOW,$gegner)
$monsterlevel=9 $monstername="Drache" If $ende=0 Then If $monsterlevel <> GUICtrlRead($Lmlevel) Then GUICtrlSetData ( $Lmlevel, $monsterlevel ) If $monstername <> GUICtrlRead($Lname) Then GUICtrlSetData ( $Lname, $monstername)
SplashOff() Else MsgBox(1,"Ende","Du hast das Spiel durchgespielt! Es schließt von selbst") Exit EndIf EndIf EndFunc
Func Raum() If $y=0 And $x=0 Then If $dagob=1 Then
GUICtrlSetState ( $Label2, $GUI_SHOW )
EndIf GUICtrlSetPos ( $Label1, 40, 32 , 18, 28 ) GUICtrlSetState($pic1,$GUI_SHOW) GUICtrlSetState($pic2,$GUI_HIDE) GUICtrlSetState($pic3,$GUI_HIDE) GUICtrlSetState($pic4,$GUI_HIDE) GUICtrlSetState($pic5,$GUI_HIDE) GUICtrlSetState($pic6,$GUI_HIDE) GUICtrlSetState($pic7,$GUI_HIDE) GUICtrlSetState($pic8,$GUI_HIDE) GUICtrlSetState($pic9,$GUI_HIDE) EndIf If $y=0 And $x=1 Then If $daspin=1 Then
GUICtrlSetState ( $Label3, $GUI_SHOW)
EndIf GUICtrlSetPos ( $Label1, 144, 32 , 18, 28 ) GUICtrlSetState($pic1,$GUI_HIDE) GUICtrlSetState($pic2,$GUI_HIDE) GUICtrlSetState($pic3,$GUI_SHOW) GUICtrlSetState($pic4,$GUI_HIDE) GUICtrlSetState($pic5,$GUI_HIDE) GUICtrlSetState($pic6,$GUI_HIDE) GUICtrlSetState($pic7,$GUI_HIDE) GUICtrlSetState($pic8,$GUI_HIDE) GUICtrlSetState($pic9,$GUI_HIDE) EndIf If $y=1 And $x=0 Then If $daork=1 Then
GUICtrlSetState ( $Label4, $GUI_SHOW )
EndIf
GUICtrlSetPos ( $Label1, 40, 136 , 18, 28 ) GUICtrlSetState($pic1,$GUI_HIDE) GUICtrlSetState($pic2,$GUI_SHOW) GUICtrlSetState($pic3,$GUI_HIDE) GUICtrlSetState($pic4,$GUI_HIDE) GUICtrlSetState($pic5,$GUI_HIDE) GUICtrlSetState($pic6,$GUI_HIDE) GUICtrlSetState($pic7,$GUI_HIDE) GUICtrlSetState($pic8,$GUI_HIDE) GUICtrlSetState($pic9,$GUI_HIDE) EndIf If $y=2 And $x=1 Then If $daskel=1 Then
GUICtrlSetState ( $Label5, $GUI_SHOW)
EndIf
GUICtrlSetPos ( $Label1, 144, 240 , 18, 28 ) GUICtrlSetState($pic1,$GUI_HIDE) GUICtrlSetState($pic2,$GUI_HIDE) GUICtrlSetState($pic3,$GUI_HIDE) GUICtrlSetState($pic4,$GUI_HIDE) GUICtrlSetState($pic5,$GUI_SHOW) GUICtrlSetState($pic6,$GUI_HIDE) GUICtrlSetState($pic7,$GUI_HIDE) GUICtrlSetState($pic8,$GUI_HIDE) GUICtrlSetState($pic9,$GUI_HIDE) EndIf If $y=2 And $x=0 Then If $datro=1 Then
GUICtrlSetState ( $Label6,$GUI_SHOW)
EndIf
GUICtrlSetPos ( $Label1, 40, 240 , 18, 28 ) GUICtrlSetState($pic1,$GUI_HIDE) GUICtrlSetState($pic2,$GUI_HIDE) GUICtrlSetState($pic3,$GUI_HIDE) GUICtrlSetState($pic4,$GUI_SHOW) GUICtrlSetState($pic5,$GUI_HIDE) GUICtrlSetState($pic6,$GUI_HIDE) GUICtrlSetState($pic7,$GUI_HIDE) GUICtrlSetState($pic8,$GUI_HIDE) GUICtrlSetState($pic9,$GUI_HIDE) EndIf If $y=0 And $x=2 Then If $damag=1 Then
GUICtrlSetState ( $Label7, $GUI_SHOW )
EndIf
GUICtrlSetPos ( $Label1, 240, 32 , 18, 28 ) GUICtrlSetState($pic1,$GUI_HIDE) GUICtrlSetState($pic2,$GUI_HIDE) GUICtrlSetState($pic3,$GUI_HIDE) GUICtrlSetState($pic4,$GUI_HIDE) GUICtrlSetState($pic5,$GUI_HIDE) GUICtrlSetState($pic6,$GUI_SHOW) GUICtrlSetState($pic7,$GUI_HIDE) GUICtrlSetState($pic8,$GUI_HIDE) GUICtrlSetState($pic9,$GUI_HIDE) EndIf If $y=1 And $x=1 Then If $dadaem=1 Then
GUICtrlSetState ( $Label8, $GUI_SHOW )
EndIf
GUICtrlSetPos ( $Label1, 144, 136 , 18, 28 ) GUICtrlSetState($pic1,$GUI_HIDE) GUICtrlSetState($pic2,$GUI_HIDE) GUICtrlSetState($pic3,$GUI_HIDE) GUICtrlSetState($pic4,$GUI_HIDE) GUICtrlSetState($pic5,$GUI_HIDE) GUICtrlSetState($pic6,$GUI_HIDE) GUICtrlSetState($pic7,$GUI_SHOW) GUICtrlSetState($pic8,$GUI_HIDE) GUICtrlSetState($pic9,$GUI_HIDE) EndIf If $y=1 And $x=2 Then If $dazyk=1 Then
GUICtrlSetState ( $Label9, $GUI_SHOW )
EndIf
GUICtrlSetPos ( $Label1, 248, 136 , 18, 28 ) GUICtrlSetState($pic1,$GUI_HIDE) GUICtrlSetState($pic2,$GUI_HIDE) GUICtrlSetState($pic3,$GUI_HIDE) GUICtrlSetState($pic4,$GUI_HIDE) GUICtrlSetState($pic5,$GUI_HIDE) GUICtrlSetState($pic6,$GUI_HIDE) GUICtrlSetState($pic7,$GUI_HIDE) GUICtrlSetState($pic8,$GUI_SHOW) GUICtrlSetState($pic9,$GUI_HIDE) EndIf If $y=2 And $x=2 Then GUICtrlSetPos ( $Label1, 248, 240 , 18, 28 ) GUICtrlSetState($pic1,$GUI_HIDE) GUICtrlSetState($pic2,$GUI_HIDE) GUICtrlSetState($pic3,$GUI_HIDE) GUICtrlSetState($pic4,$GUI_HIDE) GUICtrlSetState($pic5,$GUI_HIDE) GUICtrlSetState($pic6,$GUI_HIDE) GUICtrlSetState($pic7,$GUI_HIDE) GUICtrlSetState($pic8,$GUI_HIDE) GUICtrlSetState($pic9,$GUI_SHOW) EndIf EndFunc Global $x=0 Global $y=0
While 1 Switch GUIGetMsg() Case -3 Exit Case $up $y-=1
Case $down $y+=1
Case $right $x+=1
Case $left $x-=1
Case $Bkampf If $level>$monsterlevel Or $level=$monsterlevel Then $level+=1 MsgBox(1,"Geschafft","Du hast das Monster besiegt und bist ein Level up!!") If $y=0 And $x=0 Then $dagob=1 EndIf If $y=0 And $x=1 Then $daspin=1 EndIf If $y=1 And $x=0 Then $daork=1 EndIf If $y=2 And $x=1 Then $daskel=1 EndIf If $y=2 And $x=0 Then $datro=1 EndIf If $y=0 And $x=2 Then $damag=1 EndIf If $y=1 And $x=1 Then $dadaem=1 EndIf If $y=1 And $x=2 Then $dazyk=1 EndIf If $y=2 And $x=2 Then $ende=1
EndIf Else MsgBox(1,"Tot","Du bist tot!Das Spiel endet hier!") Exit EndIf
Case Else SetButtons() SetText($Lraum, 'Du befindest dich im Moment'&@CRLF&' im '&$map[$y][$x]) Setpicandtxt() ToolTip($level,0,0) Raum()
Is ganz gut nur das Fenster(Dieser Raum ist leer) flackert immer
ach und die pfade dr bilder könnten aus inis ausgeesen werden
und die versch. guis sollten sich nich überlagern.
Ich hab erst garnich mitbekommen das da noch andere guis waren
okay.. des mit den inis.. weis net wie.. das flackern liegt daran,dass des indirekt in einer endloschleife ist und so immer wieder kommt..wäre umständlich des da rauszuholen
und des mit den guis ist mir erst eingefallen, dass ich des ja noch ändern wollte, als alles upgeloadet und gepostet war^^ habs bisher noch net geändert..^^
mit den inis werd ich mir mal aneignen^^
thx für rückmeldung .. man lernt aus seinen fehlern^^
mit den inis kann ich dir gerne helfen
am besten du macht ein Extra Config script das die Pfade speichert
dann musst du sie in deinem Script nur noch auslesen
hier hab ich die "Config" für dein Script geschrieben hoffe ich hab geholfen
bei Problemen oder so einfach fragen ich helfe gerne
While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit case $Button1 Goblin() case $Button2 Spider() case $Button3 Mage() case $Button4 Ork() case $Button5 Troll() case $Button6 Zyklop() case $Button7 Daemon() case $Button8 Skelletkrieger() case $Button9 Drache() case $Button10 Pfeilhoch() case $Button11 Pfeilunten() case $Button12 Pfeillinks() case $Button13 Pfeilrechts() case $Button14 Gitter() EndSwitch WEnd