Counter with pictures?

07/17/2013 04:07 newbot#1
Hey guys,

I have an Idea for a game and I need your help. I want to do a Counter, wich counts the kills of the bosses.
An exampe:
After you killed the Boss A, you click on his pictures or when you killed the Boss B, you click on his picture.

And after weeks I can see how often I killed these Bosses.

Can someone help me with that? :) Is it possible with AutoIt or do I need another programm?
07/17/2013 16:26 butter123#2
wie ich hier schon geschrieben habe [Only registered and activated users can see links. Click Here To Register...]
verbesser da evtl noch die guiabfrage.

dann baust du noch ein, dass er beim beenden in eine datei schreibt, was wie oft angeklickt wurde und am anfang wird aus der datei gelesen und die zählervariable entsprechend gesetzt.
07/17/2013 22:35 CantShutMyMouth#3
If you just want to save the number of bosses killed, use IniRead and IniWrite
07/18/2013 03:03 newbot#4
Hab so viel Ahnung von AutoIT, wie vom Ballet! :D

Was muss ich nun machen? Also Bilder müssen es nicht sein, hauptsache man klickt auf den Namen und man hat die Kill-Anzahl neben an stehen.
07/18/2013 09:41 xcyancali#5
Soll auch nach dem Neustart des Programmes die Kill anzahl vorhanden sein?
Wenn dies der Fall ist , dann schreibe den Wert in eine .ini Datei oder benutze Filewrite / Fileread.

Wenn die Kills an den Boss nur in der Zeit sein sollen , in dem das Programm offen ist, dann lege eine Variable an & wenn dann der Boss getötet ist durch ein Klicken , dann erhöst du den Counter um 1.
Mache eben ein Beispiel:
Du hast ja wenn du eine Gui erstellt hast , eine schleife wo du die Case befehle reinschreiben kannst.
da machste dann einfach:

Case $Bild;deine Bild variable einfügen
$kill_counter += 1 ;counter wird um 1 erhöht.

guictrlsetdata($deinLabel,$kill_counter)
Am anfang des Script machst du denn noch die Deklaration der Variable hin.
$kill_counter = 0

Ich habe das jetzt am Handy geschrieben. Ich werde nach wenn du möchtest ein Beispiel mit einem Vollständigen Code hier reinstellen.
07/18/2013 17:10 SwarN#6
AutoIt Code (Kurz runtergeschrieben, funktioniert aber. Sauber ist es evtl. nicht, da wie gesagt nur 5 min Zeit genommen)
Code:
Opt("GuiOnEventMode", 1)

#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 164, 100, 192, 150)
$Button1 = GUICtrlCreateButton("Button1", 8, 8, 75, 33, $WS_GROUP)
$Label1 = GUICtrlCreateLabel("Label1", 96, 25, 36, 26)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit", $Form1)
GuiCtrlSetOnEvent($Button1, "_Hochzaehlen")

Global $IrgendeinerCount = 0

_OptionsLoad()
GUICtrlSetData($Label1, "Counter: " & $IrgendeinerCount)

While 1
	Sleep(100)
WEnd

Func _Exit()
	Exit
EndFunc

Func _Hochzaehlen()
	_OptionsLoad()
	$IrgendeinerCount+=1
	_OptionsSave()
	GUICtrlSetData($Label1, "Counter: " & $IrgendeinerCount)
EndFunc


Func _OptionsLoad()
	$IrgendeinerCount = IniRead(@ScriptDir & "/Options.ini" , "Boss", "Irgendeiner", "Default")
EndFunc   ;==>_LoadOptions

Func _OptionsSave()
	IniWrite(@ScriptDir & "/Options.ini" , "Boss", "Irgendeiner", $IrgendeinerCount)
EndFunc   ;==>_SaveOptions
INI-Datei (Options.ini):
Code:
[Boss]
Irgendeiner=30
07/20/2013 03:43 newbot#7
Oh man,
Ihr gibt euch Mühe und verstehe kaum was! :D

Also ich will, dass man nach dem Neustart immer noch die Werte hat. Sagen wir mal ich habe 8 "Bosse/Dungeons". Wo schreibe ich das denn hin? Oder wo füge ich neue hin zu?
07/20/2013 08:55 FacePalmMan#8
Iniwrite beispiel:
Code:
IniWrite("Dateiname.txt","Section","key","Wert")
wie die datei Dateiname.txt dann aussieht:
Code:
[Section]
key=Wert
Wie es funktioniert: Iniwrite schreibt in einer vorgegebenen section in einen bestimmten key rein (neben dem =).

Iniread Beispiel:

Datei-Inhalt:
Code:
[Section]
key=Wert
Iniread:
Code:
IniRead("Dateiname.txt","Section","key","Rückgabewert falls datei/key nicht vorhanden")
Return Value: Wert
Wenn die datei ,die section oder der key nicht existiert wird "Rückgabewert falls datei/key nicht vorhanden" zurückgegeben.

Wie es funktioniert: iniread liest in der vorgegebenen section den vorgegebenen key aus und gibt den inhalt der key zurück.
07/20/2013 14:05 Shadow992#9
Zuerst das:
[Only registered and activated users can see links. Click Here To Register...]

Dann das:
[Only registered and activated users can see links. Click Here To Register...]

Dann das:
[Only registered and activated users can see links. Click Here To Register...]
09/08/2013 01:13 newbot#10
Hey Leute,

ich habe mir das mal angeguckt, aber verstehe nicht so wirklich, wie ich das mit der IniRead und IniWrite machen soll.
09/08/2013 12:05 lolkop#11
Quote:
Originally Posted by newbot View Post
Hey Leute,

ich habe mir das mal angeguckt, aber verstehe nicht so wirklich, wie ich das mit der IniRead und IniWrite machen soll.
die inifunktionen sind hierfür nicht notwendig... normale filefunktionen erleichtern das ganze noch etwas...

beispiel mit buttons statt bildern:
Code:
Dim $btn[20], $wert=0, $kills = StringRegExp(FileRead("kill.txt"), "<(\d+)>", 3)
GUICreate("GUI", 310, 130, Default, Default, 0x10C80000)

For $x=0 To 4
	For $y=0 To 3
		If UBound($kills)>=UBound($btn) Then $wert = $kills[$x*4+$y]
		$btn[$x*4+$y] = GUICtrlCreateButton($wert, 10+$x*60, 10+$y*30, 50, 20)
	Next
Next

Do
	$msg = GUIGetMsg()
	For $i=0 To UBound($btn)-1
		If $msg=$btn[$i] Then GUICtrlSetData($btn[$i], GUICtrlRead($btn[$i])+1)
	Next
Until $msg=-3

$file = FileOpen("kill.txt", 2)
For $i=0 To UBound($btn)-1
	FileWrite($file, '<'&GUICtrlRead($btn[$i])&'>')
Next
FileClose($file)