Ich habe mich rangesetzt ein eigenes Minispiel zu basteln. Um solche Werte wie Gold und so weiter zu verstecken habe ich mir eine eigene RegRead,RegWrite und RegDelete Funktion gebastelt:
PHP Code:
Func _RegRead($vz,$wert0a)
$key1=_StringEncrypt(1,$wert0a,_StringtoHex("EPVP"),1)
$wert0a=REgREad($vz,$key1)
$wet0=_StringExplode($wert0a,"0x30")
$wert0=$wet0[0]
$wert1=_StringEncrypt(0,$wert0,_StringtoHex("EPVP"),1)
$wert2=_StringEncrypt(0,$wert1,_StringtoHex("EPVP"),1)
Return $wert2
EndFunc
Func _RegWrite($vz,$key,$U,$wert0)
$wert1=_StringEncrypt(1,$wert0,_StringtoHex("EPVP"),1)
$wert2=_StringEncrypt(1,$wert1,_StringtoHex("EPVP"),1)
$wert2=$wert2&"0x30"
$key1=_StringEncrypt(1,$key,_StringtoHex("EPVP"),1)
RegWrite($vz,$key1,$U,$wert2)
EndFunc
Func _RegDelete($vz,$key)
RegDelete($vz,_StringEncrypt(0,$key,_StringtoHex("EPVP"),1))
EndFunc
Ich habe auch schon folgendes versucht:
PHP Code:
Func _RegRead($vz,$wert0a)
$key1=_StringEncrypt(1,$wert0a,_StringtoHex("EPVP"),1)
$wert0a=REgREad($vz,$key1)
$wet0=_StringExplode($wert0a,"0x30")
$wert0=$wet0[0]
$wert1=_StringEncrypt(0,$wert0,_StringtoHex("EPVP"),1)
$wert2=_StringEncrypt(0,$wert1,_StringtoHex("EPVP"),1)
if $wert2="k" then $wert2=0
Return $wert2
EndFunc
Danach habe ich zum Test mit folgendem Script mal das Yang auf eine andere Zahl außer 0 gesetzt:
PHP Code:
#include <KM.au3>
$u=Inputbox("Gold","GOldWrite")
_RegWrite("HKEY_CURRENT_USER\Software\KM\game","gold","REG_SZ",$u)
GetGold()
Func GetGold()
MsgBox(0,"Yanginfo","Du hast "&_RegRead("HKEY_CURRENT_USER\Software\KM\game","gold")&" Yang!")
EndFunc
Dann habe ich den Wert mit dem soeben genannten Beispiel wieder auf 0 gesetzt. Siehe da: Es kommt kein "k" sondern wirklich eine 0.
Schlussfolgerung: Es liegt nicht an meinen Reg ... Funktonen, es muss am Ausrüstungshändler liegen. Da konnte ich jedoch keine Fehler entdecken.
Hier man der Ausrüstungshändler: (Wer das Script klaut, viel spaß, ihr braucht meine UDF dazu
PHP Code:
FUnc buy()
GUiDelete($Form1_1)
Global $info[5]
$info[0]=_RegRead("HKEY_CURRENT_USER\Software\KM\game","sword")
$info[1]=_RegRead("HKEY_CURRENT_USER\Software\KM\game","armor")
$info[2]=_RegRead("HKEY_CURRENT_USER\Software\KM\game","off")
$info[3]=_RegRead("HKEY_CURRENT_USER\Software\KM\game","deff")
$info[4]=_RegRead("HKEY_CURRENT_USER\Software\KM\game","gold")
FOr $u=0 to 4 step 1
if $info[$u]="" Then
$info[$u]=""
EndIf
Next
Global $inv[10]
FOr $u=0 to 9 step 1
$inv[$u]=_RegRead("HKEY_CURRENT_USER\Software\KM\inventar",$u)
if $inv[$u]=0 then $inv[$u]="<leer>"
Next
#Region ### START Koda GUI section ### Form=c:\dokumente und einstellungen\nino\eigene dateien\downloads\forms\form1.kxf
$Form1_1 = GUICreate("Ausrüstungshändler", $hoehe, $breite, 0, 0, BitOR($WS_MINIMIZEBOX,$WS_POPUP,$WS_GROUP))
GUICtrlCreatePic(@WindowsDir&"\KM\buy.jpg",0,0,$hoehe,$breite)
GuiCtrlSetState(-1,$GUI_DISABLE)
$Pic1 = GUICtrlCreatePic(@WindowsDir&"\KM\buy.jpg", 0, 0, $hoehe, $breite, 105)
GUICtrlSetState(-1, $GUI_DISABLE)
$Label1 = GUICtrlCreateLabel("Charakterstatistiken:"&@CRLF&"Schwert: "&$info[0]&@CRLF&"Rüstung: "&$info[1]&@CRLF&"Angriffswert: "&CharGetOff()&@CRLF&"Verteidigungswert: "&CharGetDeff()&@CRLF&"Yang (Gold): "&$info[4], 936, 8, 268, 265)
$Label2 = GUICtrlCreateLabel("Willkommen beim Ausrüstungshändler. Hier kannst du Rüstungen und Waffen kaufen und sie einem Inventarplatz zuweisen.", 8, 8, 380, 33)
$Group1 = GUICtrlCreateGroup("Rüstungen", 8, 72, 817, 65)
$Combo1 = GUICtrlCreateCombo("Rüstung", 16, 96, 321, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Mönchsplattenpanzer (1 Yang)|Tigerplattenpanzer (20 Yang)|Schwarzwälderrüstung (50 Yang)|Templerrüstung (100 Yang)|Schwarzstahlpanzer (250 Yang)")
$Combo2 = GUICtrlCreateCombo("Inventarplatz", 352, 96, 337, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Platz 1 ("&$inv[0]&")|Platz 2 ("&$inv[1]&")|Platz 3 ("&$inv[2]&")|Platz 4 ("&$inv[3]&")|Platz 5 ("&$inv[4]&")|Platz 6 ("&$inv[5]&")|Platz 7 ("&$inv[6]&")|Platz 8 ("&$inv[7]&")|Platz 9 ("&$inv[8]&")|Platz 10 ("&$inv[9]&")")
$Button1 = GUICtrlCreateButton("Kaufen", 712, 96, 97, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Waffen", 8, 142, 817, 65)
$Combo3 = GUICtrlCreateCombo("Waffen", 16, 166, 321, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Bambusschwert (1 Yang)|Breitschwert (20 Yang)|Vollmilchschwert (50 Yang)|Nympfenschwert (100 Yang)|Heiliges Schwert (250 Yang)")
$Combo4 = GUICtrlCreateCombo("Inventarplatz", 352, 166, 337, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "Platz 1 ("&$inv[0]&")|Platz 2 ("&$inv[1]&")|Platz 3 ("&$inv[2]&")|Platz 4 ("&$inv[3]&")|Platz 5 ("&$inv[4]&")|Platz 6 ("&$inv[5]&")|Platz 7 ("&$inv[6]&")|Platz 8 ("&$inv[7]&")|Platz 9 ("&$inv[8]&")|Platz 10 ("&$inv[9]&")")
$Button3 = GUICtrlCreateButton("Händler verlassen", 8, 216, 121, 25, 0)
$Button2 = GUICtrlCreateButton("Kaufen", 712, 166, 97, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
case $Button2
$read=GUiCtrlRead($Combo3)
$upped=GetUppLevel($read)
_ArrayDisplay($upped)
Switch $upped[0]
case "Bambusschwert (1 Yang)"
$rBuy="Bambusschwert (1 Yang)"
$price=1
case "Breitschwert (20 Yang)"
$rBuy="Breitschwert (20 Yang)"
$price=20
case "Vollmilchschwert (50 Yang)"
$price=50
$rBuy="Vollmilchschwert (50 Yang)"
case "Nympfenschwert (100 Yang)"
$rBuy="Nympfenschwert (100 Yang)"
$price=100
case "Heiliges Schwert (250 Yang)"
$rBuy="Heiliges Schwert (250 Yang)"
$price=250
case Else
MsgBox(16,"Error","Error, du hast kein gültiges Schwert gewählt!")
Return(0)
EndSwitch
$ask=MsgBox(4,"Kaufen?","Möchtest du wirklich "&$rBuy&" kaufen? Du benötigst "&$price&" Yang!")
if $ask=6 Then
$gRead=_RegRead("HKEY_CURRENT_USER\Software\KM\game","gold")
if $gRead="" or _RegRead("HKEY_CURRENT_USER\Software\KM\game","gold")<$price Then
MsgBox(16,"Fehler","Du kannst "&$rBuy&" nicht kaufen, du benötigst "&$price&" Yang, du hast jedoch nur "&_RegRead("HKEY_CURRENT_USER\Software\KM\game","gold")&" Yang.")
Else
Switch GUiCTrlRead($Combo4)
case "Platz 1 ("&$inv[0]&")"
$place=0
if $inv[0]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 2 ("&$inv[1]&")"
$place=1
if $inv[1]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 3 ("&$inv[2]&")"
$place=2
if $inv[2]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 4 ("&$inv[3]&")"
$place=3
if $inv[3]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 5 ("&$inv[4]&")"
$place=4
if $inv[4]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 6 ("&$inv[5]&")"
$place=5
if $inv[5]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 7 ("&$inv[6]&")"
$place=6
if $inv[6]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 8 ("&$inv[7]&")"
$place=7
if $inv[7]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 9 ("&$inv[8]&")"
$place=8
if $inv[8]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 10 ("&$inv[9]&")"
$place=9
if $inv[9]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case Else
MsgBox(16,"Error","Error, du hast keinen gültigen Inventarplatz gewählt!")
ReBuy()
EndSwitch
_RegWrite("HKEY_CURRENT_USER\Software\KM\inventar",$place,"REG_SZ",$rBuy)
$gRead=_RegRead("HKEY_CURRENT_USER\Software\KM\game","gold")
$gRead=$gRead-$price
_RegWrite("HKEY_CURRENT_USER\Software\KM\game","gold","REG_SZ",$gRead)
_SOundPlay(@WindowsDIr&"\KM\Sounds\buy.wav")
MsgBox(0,"Gekauft","Danke, dass du "&$rBuy&" gekauft hast! Du hast noch "&_RegRead("HKEY_CURRENT_USER\Software\KM\game","gold")&" Yang")
FOr $u=0 to 9 step 1
$inv[$u]=_RegRead("HKEY_CURRENT_USER\Software\KM\inventar",$u)
Next
ReBuy()
EndIf
EndIf
case $Button1
$read=GUiCtrlRead($Combo1)
$upped=GetUppLevel($read)
Switch $upped[0]
case "Mönchsplattenpanzer (1 Yang)"
$rBuy="Mönchsplattenpanzer (1 Yang)"
$price=1
case "Tigerplattenpanzer (20 Yang)"
$rBuy="Tigerplattenpanzer (20 Yang)"
$price=20
case "Schwarzwälderrüstung (50 Yang)"
$rBuy="Schwarzwälderrüstung (50 Yang)"
$price=50
case "Templerrüstung (100 Yang)"
$rBuy="Templerrüstung (100 Yang)"
$price=100
case "Schwarzstahlpanzer (250 Yang)"
$rBuy="Schwarzstahlpanzer (250 Yang)"
$price=250
case Else
MsgBox(16,"Error","Error, du hast keine gültige Rüstung gewählt!")
ReBuy()
EndSwitch
$ask=MsgBox(4,"Kaufen?","Möchtest du wirklich "&$rBuy&" kaufen? Du benötigst "&$price&" Yang!")
if $ask=6 Then
$gRead=_RegRead("HKEY_CURRENT_USER\Software\KM\game","gold")
if $gRead="" or _RegRead("HKEY_CURRENT_USER\Software\KM\game","gold")<$price Then
MsgBox(16,"Fehler","Du kannst "&$rBuy&" nicht kaufen, du benötigst "&$price&" Yang, du hast jedoch nur "&_RegRead("HKEY_CURRENT_USER\Software\KM\game","gold")&" Yang.")
Else
$ghg=GUiCTrlRead($Combo2)
Switch $ghg
case "Platz 1 ("&$inv[0]&")"
$place=0
if $inv[0]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 2 ("&$inv[1]&")"
$place=1
if $inv[1]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 3 ("&$inv[2]&")"
$place=2
if $inv[2]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 4 ("&$inv[3]&")"
$place=3
if $inv[3]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 5 ("&$inv[4]&")"
$place=4
if $inv[4]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 6 ("&$inv[5]&")"
$place=5
if $inv[5]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 7 ("&$inv[6]&")"
$place=6
if $inv[6]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 8 ("&$inv[7]&")"
$place=7
if $inv[7]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 9 ("&$inv[8]&")"
$place=8
if $inv[8]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case "Platz 10 ("&$inv[9]&")"
$place=9
if $inv[9]<>"" Then
$msg=MsgBox(4,"Warnung","Achtung, du hast einen Inventarplatz gewählt der bereits besetzt ist. Das alte Item geht verloren wenn du weitermachst. Möchtest du wirklich weitermachen?")
if $msg=7 Then
Return(0)
EndIf
EndIf
case Else
MsgBox(16,"Error","Error, du hast keinen gültigen Inventarplatz gewählt!")
Return(0)
EndSwitch
_RegWrite("HKEY_CURRENT_USER\Software\KM\inventar",$place,"REG_SZ",$rBuy)
$gRead=_RegRead("HKEY_CURRENT_USER\Software\KM\game","gold")
$gRead=$gRead-$price
_RegWrite("HKEY_CURRENT_USER\Software\KM\game","gold","REG_SZ",$gRead)
_SOundPlay(@WindowsDIr&"\KM\Sounds\buy.wav")
MsgBox(0,"Gekauft","Danke, dass du "&$rBuy&" gekauft hast! Du hast noch "&_RegRead("HKEY_CURRENT_USER\Software\KM\game","gold")&" Yang")
FOr $u=0 to 9 step 1
$inv[$u]=_RegRead("HKEY_CURRENT_USER\Software\KM\inventar",$u)
Next
ReBuy()
EndIf
EndIf
case $Button3
GuiDelete($Form1_1)
Main()
EndSwitch
WEnd
EndFunc
Das Script wird bei euch nicht funktionieren, aber es sollte reichen, um meinen Fehler zu finden!
Hoffe jemand kann helfen, langsam verzweifle ich.
Lg V8II






