Werte in einer INI Datei speichern

Stelle Fragen zur Automatisierung von Spielen

Moderator: jNizM

wengarlengar
Posts: 2
Joined: 29 Dec 2017, 11:22

Werte in einer INI Datei speichern

Post by wengarlengar » 03 Jan 2018, 00:46

Hey,
ich habe folgendes anliegen, ich Lese anhand Imagesearch Zahlen in einem Spiel aus, in diesem Falle Gewicht und ich möchte diese gerne Speichern aber ich weiß nicht wie ich das hin kriege.
Jedes Gewicht soll eine eigene Sektion haben also z.b

(Das erste hier bekomme ich Gespeichert aber ich brauche ja mehrere Sektionen)
[Gewicht1]
Gewicht1=1
Gewicht2=3
Gewicht3=1
Gewicht4=4
GesammtGewicht=1,314

dann Gewicht2

[Gewicht2]
Gewicht1=4
Gewicht2=1
Gewicht3=3
Gewicht4=6
GesammtGewicht=4,136

und so weiter...
Ich bedanke mich jetzt schon Herzlich für jede Hilfe :) <3

Hier ein noch Beispiel zu Veranschaulichung

Gewicht1 = 1
Gewicht2 = 3
Gewicht3 = 1
Gewicht3 =4

GewichtGesammt = Gewicht1 , Gewicht2Gewicht3Gewicht3
GewichtGesammt = 1,314 kg

Hier der Code

Code: Select all

GewichtErmittlungFkt()
{
Gewicht1X:=722
Gewicht1Y:=783
Gewicht1X2:=741
Gewicht1Y2:=813
ImageSearch, XPos2, YPos2, Gewicht1X, Gewicht1Y, Gewicht1X2, Gewicht1Y2, *25 D:\Fishing\Null.png
if ErrorLevel = 0
{
Gewicht1:=0
}
ImageSearch, XPos2, YPos2, 722, 783, 741, 813, *25 D:\Fishing\Eins.png
if ErrorLevel = 0
{
Gewicht1:=1
}
ImageSearch, XPos2, YPos2, 722, 783, 741, 813, *25 D:\Fishing\Zwei.png
if ErrorLevel = 0
{
Gewicht1:=2
}
ImageSearch, XPos2, YPos2, 722, 783, 741, 813, *25 D:\Fishing\Drei.png
if ErrorLevel = 0
{
Gewicht1:=3
}
ImageSearch, XPos2, YPos2, 722, 783, 741, 813, *25 D:\Fishing\Vier.png
if ErrorLevel = 0
{
Gewicht1:=4
}
ImageSearch, XPos2, YPos2, 722, 783, 741, 813, *25 D:\Fishing\Fünf.png
if ErrorLevel = 0
{
Gewicht1:=5
}
ImageSearch, XPos2, YPos2, 722, 783, 741, 813, *25 D:\Fishing\Sechs.png
if ErrorLevel = 0
{
Gewicht1:=6
}
ImageSearch, XPos2, YPos2, 722, 783, 741, 813, *25 D:\Fishing\Sieben.png
if ErrorLevel = 0
{
Gewicht1:=7
}
ImageSearch, XPos2, YPos2, 722, 783, 741, 813, *25 D:\Fishing\Acht.png
if ErrorLevel = 0
{
Gewicht1:=8
}
ImageSearch, XPos2, YPos2, 722, 783, 741, 813, *25 D:\Fishing\Neun.png
if ErrorLevel = 0
{
Gewicht1:=9
}


sleep 50


Gewicht2X:=747
Gewicht2Y:=783
Gewicht2X2:=763
Gewicht2Y2:=813
ImageSearch, XPos2, YPos2, Gewicht2X, Gewicht2Y, Gewicht2X2, Gewicht2Y2, *25 D:\Fishing\Null.png
if ErrorLevel = 0
{
Gewicht2:=0
}
ImageSearch, XPos2, YPos2, Gewicht2X, Gewicht2Y, Gewicht2X2, Gewicht2Y2, *25 D:\Fishing\Eins.png
if ErrorLevel = 0
{
Gewicht2:=1
}
ImageSearch, XPos2, YPos2, Gewicht2X, Gewicht2Y, Gewicht2X2, Gewicht2Y2, *25 D:\Fishing\Zwei.png
if ErrorLevel = 0
{
Gewicht2:=2
}
ImageSearch, XPos2, YPos2, Gewicht2X, Gewicht2Y, Gewicht2X2, Gewicht2Y2, *25 D:\Fishing\Drei.png
if ErrorLevel = 0
{
Gewicht2:=3
}
ImageSearch, XPos2, YPos2, Gewicht2X, Gewicht2Y, Gewicht2X2, Gewicht2Y2, *25 D:\Fishing\Vier.png
if ErrorLevel = 0
{
Gewicht2:=4
}
ImageSearch, XPos2, YPos2, Gewicht2X, Gewicht2Y, Gewicht2X2, Gewicht2Y2, *25 D:\Fishing\Fünf.png
if ErrorLevel = 0
{
Gewicht2:=5
}
ImageSearch, XPos2, YPos2, Gewicht2X, Gewicht2Y, Gewicht2X2, Gewicht2Y2, *25 D:\Fishing\Sechs.png
if ErrorLevel = 0
{
Gewicht2:=6
}
ImageSearch, XPos2, YPos2, Gewicht2X, Gewicht2Y, Gewicht2X2, Gewicht2Y2, *25 D:\Fishing\Sieben.png
if ErrorLevel = 0
{
Gewicht2:=7
}
ImageSearch, XPos2, YPos2, Gewicht2X, Gewicht2Y, Gewicht2X2, Gewicht2Y2, *25 D:\Fishing\Acht.png
if ErrorLevel = 0
{
Gewicht2:=8
}
ImageSearch, XPos2, YPos2, Gewicht2X, Gewicht2Y, Gewicht2X2, Gewicht2Y2, *25 D:\Fishing\Neun.png
if ErrorLevel = 0
{
Gewicht2:=9
}

sleep 50

Gewicht3X:=762
Gewicht3Y:=784
Gewicht3X2:=780
Gewicht3Y2:=813
ImageSearch, XPos2, YPos2, Gewicht3X, Gewicht3Y, Gewicht3X2, Gewicht3Y2, *25 D:\Fishing\Null.png
if ErrorLevel = 0
{
Gewicht3:=0
}
ImageSearch, XPos2, YPos2, Gewicht3X, Gewicht3Y, Gewicht3X2, Gewicht3Y2, *25 D:\Fishing\Eins.png
if ErrorLevel = 0
{
Gewicht3:=1
}
ImageSearch, XPos2, YPos2, Gewicht3X, Gewicht3Y, Gewicht3X2, Gewicht3Y2, *25 D:\Fishing\Zwei.png
if ErrorLevel = 0
{
Gewicht3:=2
}
ImageSearch, XPos2, YPos2, Gewicht3X, Gewicht3Y, Gewicht3X2, Gewicht3Y2, *25 D:\Fishing\Drei.png
if ErrorLevel = 0
{
Gewicht3:=3
}
ImageSearch, XPos2, YPos2, Gewicht3X, Gewicht3Y, Gewicht3X2, Gewicht3Y2, *25 D:\Fishing\Vier.png
if ErrorLevel = 0
{
Gewicht3:=4
}
ImageSearch, XPos2, YPos2, Gewicht3X, Gewicht3Y, Gewicht3X2, Gewicht3Y2, *25 D:\Fishing\Fünf.png
if ErrorLevel = 0
{
Gewicht3:=5
}
ImageSearch, XPos2, YPos2, Gewicht3X, Gewicht3Y, Gewicht3X2, Gewicht3Y2, *25 D:\Fishing\Sechs.png
if ErrorLevel = 0
{
Gewicht3:=6
}
ImageSearch, XPos2, YPos2, Gewicht3X, Gewicht3Y, Gewicht3X2, Gewicht3Y2, *25 D:\Fishing\Sieben.png
if ErrorLevel = 0
{
Gewicht3:=7
}
ImageSearch, XPos2, YPos2, Gewicht3X, Gewicht3Y, Gewicht3X2, Gewicht3Y2, *25 D:\Fishing\Acht.png
if ErrorLevel = 0
{
Gewicht3:=8
}
ImageSearch, XPos2, YPos2, Gewicht3X, Gewicht3Y, Gewicht3X2, Gewicht3Y2, *25 D:\Fishing\Neun.png
if ErrorLevel = 0
{
Gewicht3:=9
}

sleep 50

Gewicht4X:=778
Gewicht4Y:=781
Gewicht4X2:=800
Gewicht4Y2:=813
ImageSearch, XPos2, YPos2, Gewicht4X, Gewicht4Y, Gewicht4X2, Gewicht4Y2, *25 D:\Fishing\Null.png
if ErrorLevel = 0
{
Gewicht4:=0
}
ImageSearch, XPos2, YPos2, Gewicht4X, Gewicht4Y, Gewicht4X2, Gewicht4Y2, *25 D:\Fishing\Eins.png
if ErrorLevel = 0
{
Gewicht4:=1
}
ImageSearch, XPos2, YPos2, Gewicht4X, Gewicht4Y, Gewicht4X2, Gewicht4Y2, *25 D:\Fishing\Zwei.png
if ErrorLevel = 0
{
Gewicht4:=2
}
ImageSearch, XPos2, YPos2, Gewicht4X, Gewicht4Y, Gewicht4X2, Gewicht4Y2, *25 D:\Fishing\Drei.png
if ErrorLevel = 0
{
Gewicht4:=3
}
ImageSearch, XPos2, YPos2, Gewicht4X, Gewicht4Y, Gewicht4X2, Gewicht4Y2, *25 D:\Fishing\Vier.png
if ErrorLevel = 0
{
Gewicht4:=4
}
ImageSearch, XPos2, YPos2, Gewicht4X, Gewicht4Y, Gewicht4X2, Gewicht4Y2, *25 D:\Fishing\Fünf.png
if ErrorLevel = 0
{
Gewicht4:=5
}
ImageSearch, XPos2, YPos2, Gewicht4X, Gewicht4Y, Gewicht4X2, Gewicht4Y2, *25 D:\Fishing\Sechs.png
if ErrorLevel = 0
{
Gewicht4:=6
}
ImageSearch, XPos2, YPos2, Gewicht4X, Gewicht4Y, Gewicht4X2, Gewicht4Y2, *25 D:\Fishing\Sieben.png
if ErrorLevel = 0
{
Gewicht4:=7
}
ImageSearch, XPos2, YPos2, Gewicht4X, Gewicht4Y, Gewicht4X2, Gewicht4Y2, *25 D:\Fishing\Acht.png
if ErrorLevel = 0
{
Gewicht4:=8
}
ImageSearch, XPos2, YPos2, Gewicht4X, Gewicht4Y, Gewicht4X2, Gewicht4Y2, *25 D:\Fishing\Neun.png
if ErrorLevel = 0
{
Gewicht4:=9
}

sleep 50

 MsgBox,%Gewicht1%,%Gewicht2%%Gewicht3%%Gewicht4%
 IniWrite, %Gewicht1%, D:\Fishing\GefangeFische.ini, Gewicht, Gewicht1
 IniWrite, %Gewicht2%, D:\Fishing\GefangeFische.ini, Gewicht, Gewicht2
 IniWrite, %Gewicht3%, D:\Fishing\GefangeFische.ini, Gewicht, Gewicht3
 IniWrite, %Gewicht4%, D:\Fishing\GefangeFische.ini, Gewicht, Gewicht4
    
return
}
BoBo
Posts: 2515
Joined: 13 May 2014, 17:15

Re: Werte in einer INI Datei speichern

Post by BoBo » 03 Jan 2018, 04:50

Versuch mal diese unmengen an redundatem code mittels schleife (und ggf array) einzudampfen.
Danach ließe sich dann auch ein variable(n basierende)s INIWrite mit einbinden.

PS. Hier schon mal eine Gesamtgewichtzeile: Gesamtgewicht := Gewicht1 . "," . Gewicht2 . Gewicht3 . Gewicht4 . " kg"
BoBo
Posts: 2515
Joined: 13 May 2014, 17:15

Re: Werte in einer INI Datei speichern

Post by BoBo » 03 Jan 2018, 14:41

Code: Select all

#SingleInstance, Force

INIPath := "D:\Fishing\GefangeFische.ini"

Loop, 4 {
   D1 := GetDigit(722,783,740,813)   ; überprüfe an koordinate 1 auf match mit einem der 10 abbilder von zahlen
   D2 := GetDigit(747,783,760,813)   ; ... an koord 2
   D3 := GetDigit(762,783,780,813)   ; ... an koord 3
   D4 := GetDigit(777,783,800,813)   ; ... an koord 4
   MsgBox % "Gesamtgewicht: " . D1 . "," . D2 . D3 . D4 . " kg" ; anzeige der ermittelten zahlenwerte
   INIWrite,% D1,% INIPath,% "Gewicht" . A_Index,% "Gewicht1"   ; übergabe des 1. 'zahlenwertes'
   INIWrite,% D2,% INIPath,% "Gewicht" . A_Index,% "Gewicht2"   ; 2.
   INIWrite,% D3,% INIPath,% "Gewicht" . A_Index,% "Gewicht3"   ; 3.
   INIWrite,% D4,% INIPath,% "Gewicht" . A_Index,% "Gewicht4"   ; 4.
   }

GetDigit(X, Y, X2, Y2) {
   Loop 10 {
      imgNo := A_Index-1
      ImageSearch, XPos2, YPos2, X, Y, X2, Y2, *25 D:\Fishing\%imgNo%.png   ; hier wird z.b. gegen '9.png' geprüft NICHT 'neun.png' !!!
      If (ErrorLevel = 0)
         Return imgNo
      }
   }

F10::Run,% INIPath   ; drücke F10 zur anzeige der INI-datei
Nicht getestet.
wengarlengargast

Re: Werte in einer INI Datei speichern

Post by wengarlengargast » 03 Jan 2018, 15:20

Hey ,
vielen danke ich werde es später ausprobieren aber was meinst du mit "hier wird gegen 9.png geprüft, nicht gegen neun.png ?
die datei heißt neun.png
BoBo
Posts: 2515
Joined: 13 May 2014, 17:15

Re: Werte in einer INI Datei speichern

Post by BoBo » 03 Jan 2018, 15:32

Zehn dateien umzubenennen ist dir zu kompliziert? Na dann. :yawn:
Spoiler
Post Reply

Return to “Spiele”