Triggerbot mit Teamcheck

10/30/2013 05:28 Suicide_92#1
Hallo Leute,

ich habe vor einigen Tagen einen Player ID Triggerbot für Counter-Strike: Source gemacht, funktioniert auch alles soweit. Nun möchte ich aber gerne einen Teamcheck hinzufügen, da der Triggerbot auch auf Teammates schießt.
Ich habe es mitlerweile hinbekommen, mit AutoIt die Team ID's auszulesen. Das Problem ist nun folgendes, er liest zwar die Team ID's aus, aber nicht von dem Spieler auf den ich ziele sondern sagt mir nur, dass mein Team das CT Team ist und mein Gegnerteam das T Team ist.

Hier der Code vom Teamcheck Test Script:

Code:
Func _Scan()
       Global $PID = ProcessExists("hl2.exe")
       Global $ID = _MemoryOpen($PID)
		$OwnOffset = Dec("55DB34")
		_MemoryOpen(ProcessExists("hl2.exe"))
		$OwnClient = _MemoryModuleGetBaseAddress(ProcessExists("hl2.exe"), "client.dll")
		_MemoryClose(ProcessExists("hl2.exe"))
		$OwnStatic = "0x" & Hex($OwnClient + $OwnOffset)
		$OwnEntity = _MemoryRead($OwnStatic, $ID)
		$OwnEntityTeam = _MemoryRead($OwnEntity+0x98, $ID, "dword")
		$OwnAusgabe = $OwnEntityTeam
	GUICtrlSetData($YourCheckInput, $OwnAusgabe)
		For $i = 2 to 2
			Global $Offset = Dec("56B3D4")
			_MemoryOpen(ProcessExists("hl2.exe"))
			$Client = _MemoryModuleGetBaseAddress(ProcessExists("hl2.exe"), "client.dll")
			_MemoryClose(ProcessExists("hl2.exe"))
			$Static = "0x" & Hex($Client + $Offset)
			$Entity = _MemoryRead($Static+$i*0x10, $ID)
			$EntityTeam = _MemoryRead($Entity+0x98, $ID, "dword")
			$Ausgabe = $EntityTeam
			GUICtrlSetData($VicCheckInput, $Ausgabe)
		Next
EndFunc
Ich hoffe es kann mir jemand helfen, schonmal danke im Vorraus!
10/30/2013 12:22 alpines#2
Bitte Code Tags drum machen, das sieht ja furchtbar aus.
Soweit ich weiß ist bei _MemoryClose nicht die PID gesucht sondern das Handle davon oder?
Wird dir wahrscheinlich nicht weiterhelfen aber benutz es trotzdem, in einem längerem Script kann sich das stacken.
Code:
$hMemory = _MemoryOpen()
_MemoryClose($hMemory)
Außerdem, warum verwendest du For $i = 2 To 2? Lass es doch einfach weg.
Desweiteren brauchst du nicht _MemoryOpen und _MemoryClose häufiger zu verwenden.

Einmal zum öffnen und einmal zum schließen reicht im gesamten Script.
10/30/2013 21:00 Suicide_92#3
Es ist ja im Prinzip völlig egal wie ich die Variablen nenne. Und die schleife brauche ich, damit er überhaupt richtig ausliest, eigentlich müsste die Schleife jedoch so lauten:

Code:
For $i = 1 to 64 Step 1
Das funktioniert jedoch leider nicht! Wenn ich

Code:
For $i = 2 To 2
Als Schleife mache, dann spuckt er mir die richtigen Team ID's aus. Nur wie gesagt, das Problem ist, dass er nicht erkennt ob jetzt ein T oder ein CT vor ihm steht.
10/30/2013 22:23 butter123#4
bei For $i = 2 to 2

läuft er genau einmal durch also kannste direkt die schleife weglassen und $i auf 2 setzen.
10/30/2013 22:35 alpines#5
Oder auch $i weglassen und stattdessen 2 nutzen.
10/30/2013 22:37 Suicide_92#6
Ja habt ihr recht, merke ich auch grade. Aber darum geht es ja garnicht, es geht darum, das er erkennen soll ob nun CT oder T vor ihm steht und das bekomme ich einfach nicht hin!