[Tool] Killzähler

09/18/2011 00:21 Nestos#1
Als Nebenprodukt zu meinem aktuellen Projekt ist dieses kleine Tool entstanden:
Ein Killzähler der auf Basis von Pointern arbeitet.

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

Ich wünsch euch viel Spaß damit.

MfG,
Nestos.
09/18/2011 07:59 Δbraxas#2
Vielen Dank, das Tool sieht gut aus, ich werde es gleich mal testen!
Es ist super, das du Zeit gefunden hast so ein Tool zu machen, denn es würde mich schon mal interessieren wie viele mobs ich so kille^^

So okay hier mein Testbericht:

Der Killzähler funktioniert gut, allerdings gibt es auch ein paar naja "Bugs"
- Wenn ich ein mob anklicke, aber nicht angreife und danach wieder wegklicke, wird es als Kill gezählt.
- Genauso, wenn ich einen Spieler/mob etc. anklicke und die map verlasse, wird auch ein kill gezählt.
- Weiterhin werden Flächenskills nicht berücksichtigt, sondern nur einzelne Kills.

--> Ich denke, das lässt sich nicht vermeiden und der Bot ist völlig ausreichend, wenn man z.B. nur mit Space bei den Dandern jobbt etc.
09/18/2011 14:43 Hydroxyandrost#3
Das stimmt, aber für Botter oder andere Experimente ist es bestimmt
gut zu gebrauchen.
09/18/2011 18:42 Nestos#4
Quote:
Originally Posted by Δbraxas View Post
So okay hier mein Testbericht:

Der Killzähler funktioniert gut, allerdings gibt es auch ein paar naja "Bugs"
- Wenn ich ein mob anklicke, aber nicht angreife und danach wieder wegklicke, wird es als Kill gezählt.
- Genauso, wenn ich einen Spieler/mob etc. anklicke und die map verlasse, wird auch ein kill gezählt.
- Weiterhin werden Flächenskills nicht berücksichtigt, sondern nur einzelne Kills.

--> Ich denke, das lässt sich nicht vermeiden und der Bot ist völlig ausreichend, wenn man z.B. nur mit Space bei den Dandern jobbt etc.
Genau, es lässt sich nicht vermeiden.
Aber um die Kills ungefähr zu analysieren geht es eigentlich ganz gut. ;)

Freut euch auf einen Bot der euch die Kills ausgibt, MultiClients unterstützt und vieles mehr. ;D

MfG,
Nestos.
09/18/2011 19:16 xsasukex97#5
work on 99nos ?
09/18/2011 20:02 Nestos#6
Quote:
Originally Posted by xsasukex97 View Post
work on 99nos ?
Nope, it doesn't.

Greets,
Nestos.
09/18/2011 20:27 Atzenkeeper#7
Hmmm hätte man auch machen können indem man den NCIF Pointer nimmt und jedesmal wenn der sich ändert einen Kill dazu addiert zählt halt im Grunde nur die veränderungen der Ncif adresse :P

Aber nette idee muss ich sagen.
09/18/2011 20:55 Tekuzo#8
klappt, naja hat eben ein paar bugs die schon beschrieben worden sind. ansonsten gute arbeit!
09/18/2011 21:47 SuicideCookie™#9
Das Tool gefällt mir sehr gut. :awesome:

25 Downloads und nur 8 THX's also Leute, das kann nicht sein...
09/18/2011 21:49 Abraxas Ethar#10
Quote:
Originally Posted by Styler334 View Post
Das Tool gefällt mir sehr gut. :awesome:

25 Downloads und nur 8 THX's also Leute, das kann nicht sein...
Wie war das bei Formica?
2000 Downloads 15 thanks..

Hier ist einfach nur'n Haufen dummer Kackleecher unterwegs. o/
09/19/2011 10:13 yoyoboss09#11
What that tool exactly do?
09/19/2011 13:16 xXPanterXx#12
Also so weit funzt alles...
bis auf das was schon geschrieben worden ist...

Aber um noch mal auf den kill counter zu kommen wo kamm die idee eigentlich her die kamm dadurch durch das fee Leveln.

Sprich dander klopen usw.

und dafür reicht dieser vollkommen aus (meine meinung)

Naja oder vielleicht kann man denn noch mal etwas naja verändern.

Also ein vernümpftigen bot mit rein machen.

Sprich einer der space drückt und x dann drückt und was ein start und pause und aus knopf hat bzw. sage ich mal F1 = Start F2 = Pause und Esc Exit oder so.

Weil sonst müsste man ja auch immer 2 sachen laufen lassen einmal den Kill Zähler und einmal ein Bot.


Aber so schlimm finde ich es nun auch nicht.

Ps. Ein Thx haste bekommen und danke für die arbeit das ding hat mir schon voll und ganz geholfen.


Lg
09/19/2011 17:57 suNk1z.#13
Hey, ist echt klasse!
Wäre es möglich, dass du mir den Code zu Übungszwecken anvertraust? :)
09/20/2011 08:08 onlyjohny#14
@xXPanterXx

Hier, falls dir meine bescheidenen Fähigkeiten ausreichen:

Ein Tool welches auf pointern basierend kills zählt, Leertaste und X drückt, sich mit Pause/Untbr pausieren lässt, im Hintergrund läuft, die Joblevel & Leben anzeigt, sowie den aktuellen Status des Bots anzeigt.

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

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

@Barney'

Hier, falls dir mein bescheidener Quellcode ausreicht:

Code:
#include <NomadMemory.au3>
#include <GUIConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("NSBT - Joblevel", 259, 76, 193, 125)
$Label1 = GUICtrlCreateLabel("Status:", 8, 8, 37, 17)
$Label2 = GUICtrlCreateLabel("Leben:", 8, 24, 37, 17)
$label_status = GUICtrlCreateLabel("Inaktiv", 56, 8, 76, 17)
$label_leben = GUICtrlCreateLabel("0", 56, 24, 40, 37)
$Label3 = GUICtrlCreateLabel("Joblvl:", 8, 40, 34, 17)
$label_joblvl = GUICtrlCreateLabel("0", 56, 40, 30, 17)
$Label4 = GUICtrlCreateLabel("Kills:", 8, 56, 25, 17)
$label_kills = GUICtrlCreateLabel("0", 56, 56, 74, 17)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

HotKeySet("{Pause}", "_pause")
HotKeySet("{F2}", "_start")
Global $paused

$pid = WinGetProcess("NosTale")
$memory = _MemoryOpen($pid)

$Read = _MemoryRead(0x02159890 ,$memory, "Dword")
$offsethp =$Read + 0x4c
$tp = _MemoryRead($offsethp ,$memory, "Dword")
GUICtrlSetData($label_leben, $tp)

$Read = _MemoryRead(0x01F536DC ,$memory, "Dword")
$offsethp =$Read + 0x194
$job = _MemoryRead($offsethp ,$memory, "Dword")
GUICtrlSetData($label_joblvl, $job)

$Read = _MemoryRead(0x02159890 ,$memory, "Dword")
$offsethp =$Read + 0x48
Global $maxtp = _MemoryRead($offsethp ,$memory, "Dword")

$percenttp = ($tp*100)/$maxtp
If $percenttp < 90 Then 
	GUICtrlSetColor($label_leben, 0xFF0000)
ElseIf $percenttp > 90 Then
	GUICtrlSetColor($label_leben, 0x006600)
EndIf

If WinExists("NosTale") Then
	MsgBox(64, "Info", "Erfolgreich mit Nostale verbunden! F2 zum starten!")
Else
	MsgBox(16, "Error", "NostaleX.dat wurde nicht gefunden!"&@CRLF&"Bitte starte zuerst Nostale! F2 zum starten!")
EndIf

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd

Func _start()
If WinExists("NosTale") Then
	Sleep(10)
Else
	MsgBox(16, "Error", "NostaleX.dat wurde nicht gefunden!"&@CRLF&"Bitte starte zuerst Nostale! f2 zum starten!")
	Return
EndIf
Local $kills = 0
While 1
	Sleep(30)
	ControlSend("NosTale", "", 0, "x{Space}x{Space}x")
	$Read = _MemoryRead(0x020F0FEC ,$memory, "Dword")
	$offsethp =$Read + 0x18
	$fight = _MemoryRead($offsethp ,$memory, "Dword")
	If $fight = 1 Then
		If GUICtrlRead($label_status) <> "Kämpft" Then 
			GUICtrlSetData($label_status, "Kämpft")
			$kills = $kills + 1
			GUICtrlSetData($label_kills, $kills)
		EndIf
	Else
		GUICtrlSetData($label_status, "Sucht Gegner...")
	EndIf
	$Read = _MemoryRead(0x02159890 ,$memory, "Dword")
	$offsethp =$Read + 0x4c
	$tp = _MemoryRead($offsethp ,$memory, "Dword")
	If $tp <> GUICtrlRead($label_leben) Then GUICtrlSetData($label_leben, $tp)
	$percenttp = ($tp*100)/$maxtp
	If $percenttp < 10 Then 
		GUICtrlSetColor($label_leben, 0xFF0000)
		;Sleep(5000)
		;GUICtrlSetData($label_status, "Sitzt")
		;ControlSend("NosTale", "", 0, "c")
		;$timer_sit = TimerInit()
		;While 1
			;$nMsg = GUIGetMsg()
			;Switch $nMsg
			;Case $GUI_EVENT_CLOSE
				;Exit
			;EndSwitch
			;If TimerDiff($timer_sit) > 20000 Then ExitLoop
			;Sleep(25)
		;WEnd
		;ControlSend("NosTale", "", 0, "c")
		;Sleep(1000)
	ElseIf $percenttp > 90 Then
		GUICtrlSetColor($label_leben, 0x006600)
	Else
		GUICtrlSetColor($label_leben, 0x000000)
	EndIf
	$Read = _MemoryRead(0x01F536DC ,$memory, "Dword")
	$offsethp =$Read + 0x194
	$job = _MemoryRead($offsethp ,$memory, "Dword")
	If $job <> GUICtrlRead($label_joblvl) Then GUICtrlSetData($label_joblvl, $job)
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
	Sleep(200)
	$Read = _MemoryRead(0x020F0FEC ,$memory, "Dword")
	$offsethp =$Read + 0x18
	$fight = _MemoryRead($offsethp ,$memory, "Dword")
	If $fight = 1 Then
		If GUICtrlRead($label_status) <> "Kämpft" Then 
			GUICtrlSetData($label_status, "Kämpft")
			$kills = $kills + 1
			GUICtrlSetData($label_kills, $kills)
		EndIf
	Else
		GUICtrlSetData($label_status, "Sucht Gegner...")
	EndIf
WEnd
EndFunc

Func _pause()
	$paused = Not $paused
	GUICtrlSetData($label_status, "Pause")
	While $paused
		$nMsg = GUIGetMsg()
		Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		EndSwitch
	WEnd
	GUICtrlSetData($label_status, "Kämpft")
EndFunc
Kann auch gerne noch kommentieren wenns unübersichtlich ist.

MfG
Johny
09/20/2011 11:24 xXPanterXx#15
Hallo onlyjohny

Also habe ihn gerade getestet funzt schon mal bei mir nicht.

bzw. Win XP

ich weiß nun nicht ob es auf vista win 7 oder so funzt auf win xp 32 bit leuft es zu mindest nicht.

starten läst er sich der bot greift auch die mobbs an beim bot stehst dann nur suche Gegner mehr aber auch nicht.

Lg.