Thema: C++ Ingame-Uhr
-
20. 01. 2010, 17:10 #1
C++ Ingame-Uhr
Hallo Gulli-User,
ich bin derzeit dabei eine "Ingame-Uhr" für Counter-Strike in C++ zu programmieren, aber habe leider ein Problem was ich von selbst nicht lösen kann.
Wie schon oben erwähnt, handelt es sich um eine Uhr die in CS1.6 angezeigt werden soll, aber die Anzeige für die Uhr flackert ziemlich stark und im Vollbildmodus wird garnix angezeigt.
Vielleicht wäre jemand so nett und könnte mir bei den Problem helfen, ich bin jetzt schon seit knapp 3Tagen am Googlen, Foren durchsuchen und verzweifle fast.
Hier der bisherige Code:
Mfg. M3MPHiZPHP-Code:#include <Windows.h>
#include <stdio.h>
#include <time.h>
DWORD WINAPI DrawThread(LPVOID lpParameter)
{
HFONT newFont = CreateFont( 12, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, ANTIALIASED_QUALITY, DEFAULT_PITCH | FF_MODERN, "Arial" );
HWND CSWindow;
CSWindow = FindWindow(NULL, "Counter-Strike");
SetForegroundWindow(CSWindow);
Sleep(1000);
HDC dc = GetDC( CSWindow );
SelectObject( dc, (HGDIOBJ)newFont );
SetTextColor( dc, RGB( 0, 0, 0 ) );
while(true)
{
time_t timer;
struct tm *tblock;
timer = time(NULL);
tblock = localtime(&timer);
char Zeit[30];
sprintf(Zeit,"%02d.%02d.%04d - %02d:%02d:%02d",tblock->tm_mday,tblock->tm_mon+1,tblock->tm_year+1900,tblock->tm_hour,tblock->tm_min,tblock->tm_sec);
if( GetAsyncKeyState( VK_F9 ) )
{
TextOut( dc, 2, 2, Zeit, (int)strlen( Zeit ) );
UpdateWindow( CSWindow );
}
else if( GetAsyncKeyState( VK_F12 ) )
{
return 0;
}
else
Sleep(10);
}
}
int main()
{
HANDLE hDrawThread=CreateThread(NULL, 0, DrawThread, NULL, 0, NULL);
SetThreadPriority(hDrawThread, THREAD_PRIORITY_HIGHEST);
while(true)
{
Sleep(10);
}
return 0;
}
-
20. 01. 2010, 17:39 #2BloodyEpiGast
Re: C++ Ingame-Uhr
glaube so kannste das nich machen, wenn du bissl was von directX und hooking verstehst, könnteste dir das hier mal angucken:
http://www.gamedev.net/community/for...opic_id=359794
der hat ja den code da reingestellt, müsste man also relativ schnell ändern können
-
20. 01. 2010, 18:02 #3
Re: C++ Ingame-Uhr
Bei Spielen wie CS würde ich mir das überlegen. Wenn du Pech hast endet das in einem VAC Bann.
-
20. 01. 2010, 18:23 #4
Re: C++ Ingame-Uhr
VAC macht aber keine Screenshots und am Speicher des Games pfuscht er auch nicht rum. Imho Nullo Problemo.
-
20. 01. 2010, 18:39 #5
-
20. 01. 2010, 19:46 #6
Re: C++ Ingame-Uhr
Hi,
also das mit den D3D-Hooks würde ich lieber gern' sein lassen, da wie schon erwähnt, VAC nicht so gut darauf zu sprechen ist.
Das mit den Speicher wäre kein so großes Problem, da VAC meines Wissenstands nach nicht mehr den Speicher nach Cheats/Hacks scannt, da in der Vergangenheit zu viele Accounts fälschlicherweise gesperrt worden sind.
Mit meinen im Anfangspost geschriebenen Code funktioniert die ganze Geschichte ja, aber ich habe das Problem, das im Vollbildmodus gar nix gedrawt wird, aber im Fenstermodus alles so funktioniert wie es soll(bis auf das flackern, aber das steht auf meiner todo-Liste jetzt erstmal ganz unten)
Mfg. M3MPHiZ
-
20. 01. 2010, 21:07 #7Great Wizzard
- Registriert seit
- Nov 2009
- Ort
- Unseen University
- Beiträge
- 253
Re: C++ Ingame-Uhr
Um im Vollbild die Uhr zu zeichnen kommst du an einem DirectX-Hook nicht vorbei.
-
20. 01. 2010, 21:36 #8
-
20. 01. 2010, 22:26 #9Great Wizzard
- Registriert seit
- Nov 2009
- Ort
- Unseen University
- Beiträge
- 253
Re: C++ Ingame-Uhr
Wusste ich nicht, hatte noch nie mit Steam-Games zu tun. Aber wo du es erwähnst, bei uc-forums.com gibts einige Snippets zum Thema Steam/VAC(²), da dürfte der TS alles nötige finden.
-
21. 01. 2010, 13:06 #10
-
21. 01. 2010, 13:14 #11
Re: C++ Ingame-Uhr
Überzeichnen lässt es sich ja, aber leider nur im Fenstermodus unter Win7, unter Windows XP funktioniert der Code ohne Probleme (bis auf das Flackern).
Hier ein Screenshot:
klick
Ich vermute das getDC oder getWindowDC unter Windows7 im FS-Mode nicht mehr funktioniert, aber eine Lösung habe ich auch noch nicht gefunden.
Gruß M3MPHiZ
-
21. 01. 2010, 13:36 #12
-
21. 01. 2010, 13:40 #13Mitglied
- Registriert seit
- May 2009
- Beiträge
- 110
Re: C++ Ingame-Uhr
Kennt jemand von euch Xfire?
Da kommt auch in CS ein Overlay über das Spiel mit Uhr+FPS+Chat+MusicPlayer+WebBrowers und so. Das funktioniert also. Und VAC merkt nichts.
-
21. 01. 2010, 13:48 #14Mitglied
- Registriert seit
- Mar 2007
- Beiträge
- 2.700
Re: C++ Ingame-Uhr
VAC merkt das schon, aber XFire ist auf der Whitelist, sprich es wird nichts unternommen wenn es erkannt wird.
-
21. 01. 2010, 14:10 #15
Re: C++ Ingame-Uhr
Hmm.. ich will jetzt nicht als Klugscheisser oder so rüberkommen (
), aber ich glaub' VAC/VAC2 interessiert es nicht wenn ein Overlay angezeigt wird, da keine spiel relevanten Dateien manipuliert werden und/oder etwas injected wird.
Ansonsten müsste ja jeder Hobby-Coder bei Valve einen Antrag für sein tool stellen, damit es auf die Whitelist kommt.
ZBsp.:
- Project TINT (Teamspeak overlay)
- TSO (Temaspeak overlay)
- Mumble overlay
- Ventrilo overlay
- Fraps (FPS anzeige)
- Xfire (wurde ja schon erwähnt)
Gruß M3MPHiZ
-
21. 01. 2010, 16:51 #16Great Wizzard
- Registriert seit
- Nov 2009
- Ort
- Unseen University
- Beiträge
- 253
Re: C++ Ingame-Uhr
Das von dir genannte würde ich jetzt nicht als Projekte von Hobbyprogrammierern abtun, PB checkt auch auf Overlays. Um VAC-Proof zu werden kannst du z.B. versuchen Code in X-Fire zu injecten, oder Fraps o.ä., gibt bereits Hacks und auch Source-Code-Beispiele für solche und ähnliche Vorgehensweise.
Also noch mal ein Link zu uc-forum.com
-
21. 01. 2010, 16:54 #17BloodyEpiGast
Re: C++ Ingame-Uhr
das wäre aba ganz schön billig wenn er x-fire nich nochma prüfen würde
-


Zitieren

mehr lesen...







FoWL: Unterstützungserklärung für...
Heute, 12:14 in gulli:news