Zeichenerkennung in Bildern?



  • Ich denke einige hier könnten das lösen, da das Problem schon stark spezialisiert ist. Aber keiner hat Lust das nur für ein Dankeschön von dir zu machen.

    Kannst du Programmieren? Wenn ja, dann zeige uns Ansätze und guten Willen, dann bekommst du bestimmt Hilfe. Wenn nicht, dann musst du diesen Thread ins Projekte-unterforum verlagern und einen Anreiz bieten.

    Zum groben Vorgehen würde ich sagen:
    1. Mache einen Screenshot vom Ziffernbereich.
    2. Erstelle eine Bitmap, mit den Ziffern 1-9, im GTA-Grafikstil.
    3. Vergleiche die einzelnen Ziffern aus dem Screenshot mit denen in Der Bitmap. Da die Ziffern IMMER an derselben stelle stehen und KEINE abweichung haben könntest du sogar 100%tige Übereinstimmungen erreichen. Das ist aber nicht unbedingt notwendig.
    4. Simuliere Tastenanschläge

    Die Winapi-Funktionen werden einem da schon viel Arbeit abnehmen.



  • Du hast nicht gesagt das es sich dabei um SA:MP handelt. Ich habe es so verstanden, dass du den Zahlenwert auslesen möchtest und ihn irgendwo im Chatfenster posten möchtest. Und doch, den Wert kann man selbst im Multiplayer-Modus abändern. Thema dynamische Datenpaketmanipulation.

    Aber jetzt helfe ich dir erst Recht nicht mehr.



  • Und warum nicht, war ich unfreundlich oder irgendwas?

    @ wie kann ich meinen Thread verschieben?

    Würde natürlich was bieten (Geld, PSC what ever) muss nur halt wissen was verlangt wird. Und nein Programmieren kann ich nicht behersche nur die Scriptsprache Pawn mehr nicht, und die hilft hier eher nicht.



  • Junge, junge... ist es so schwer zu antworten? Ich habe ganz normal gefragt was für eine Zuordnung der Betrag hat. Wie dem auch sei, hier bitte:

    #include <iostream>
    #include <windows.h>
    #include <conio.h>
    
    int main()
    {
    	DWORD WindowProcessID;
    	HWND WindowHandle = FindWindow(NULL, L"GTA: San Andreas");
    
    	unsigned int Money(0);
    
    	if(WindowHandle == NULL)
    		std::cout<<"Spiel nicht gefunden!"<<std::endl;
    	else
    	{   
    		GetWindowThreadProcessId(WindowHandle, &WindowProcessID);
    
    		HANDLE Process = OpenProcess(STANDARD_RIGHTS_REQUIRED | PROCESS_ALL_ACCESS | SYNCHRONIZE | 0xFFF, FALSE, WindowProcessID);
    
    		DWORD address = 0xB7CE50;
    		ReadProcessMemory(Process, (LPCVOID)address, &Money, sizeof(Money), 0);
    
    		for(;;)
    		{
    			if(GetAsyncKeyState(VK_F5))
    			{
    				ReadProcessMemory(Process, (LPCVOID)address, &Money, sizeof(Money), 0);
    
    				std::cout<< Money <<std::endl;
    
    				Sleep(500);
    			}
    		}
    	}
    
    	getch();
    }
    


  • Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • @Kóyaánasqatsi:
    Sorry ich hab das voll verlesen, deswegen kam so eine dumme Antwort von mir.

    Trotzdem Danke für deine schnelle Antwort.

    Achja, ich verstehe die Frage nicht ganz:

    Ich habe ganz normal gefragt was für eine Zuordnung der Betrag hat. Wie dem auch sei, hier bitte:

    Was meinst du damit? Was für ein Betrag, es geht hier nicht um das Geld oder iwas sondern im Multiplayer das dort eine Zahl eingeblendet wird im Script per TextDrawShowForPlayer. Sorry falls ich dich falsch verstehe...

    Könntest du mir das rein theoretisch machen für eine Gegenleistung kommt drauf an was du verlangst..?



  • Inwiefern soll das Geld im Spiel eingeblendet werden?

    Ich würde es an deiner Stelle eher so machen; es gibt ne (wie bereits gesagt) inoffizelle Liste mit den wichtigsten Memory-function-addresses.

    Oder du debuggst (disassemblierst) das Spiel, gibst Text im Spiel ein und suchst nach dem eingegebenem String im Debugger. Mit etwas Bemühung findest du dann auch die passende Funktion zum Text ausgeben. Dann ist das alles gar kein Problem mehr. Mehr werde ich aber nicht dazu sagen, da es schon unter Game-Hacking fällt... 😉



  • Du verstehst mich falsch, es geht hier NICHT um Geld sondern um eine Zahl (4 Stellig) die im Multiplayer vom Server aus eingeblendet wird, man kann das nicht wie das Geld auslesen das ist einfach nur ein Bild was eingeblendet wird mit Zahlen sozusagen. Doch dafür brauch ich die erkennung der Zahlen, sobald ein Prog. diese erkennt soll das Prog in den Spielchat etwas schreiben wie z.B "tDie Heutige Zufallszahl lautet: %d" das t am Anfang um den Chat zu öffnen und %d für den Charackter Wert der Zahl.

    Nochmal, es geht NICHT um das Geld was man oben in GTA sieht.

    Mit Geld meinte ich lediglich, was du oder jemd. verlangen würde mir so ein Programm zu machen 🙂



  • Niemand² schrieb:

    Mit Geld meinte ich lediglich, was du oder jemd. verlangen würde mir so ein Programm zu machen 🙂

    ich würds für 'n appel und 'n ei machen, kann aber leider keine winapi 😃



  • Achso okay, dann haben wir wohl aneinander vorbeigebabbelt. Man müsste mal gucken wie das Programm mit den Datenpaketen umgeht die vom Server kommen. Wie in den meisten Fällen lässt sich aber selbst dies auslesen. Dürfte kein Problem sein, schreib mir mal ne E-Mail.



  • Ich kann mich hier nicht reggen im Forum hab paar AddOns Installiert die das blockieren muss den Fehler ma finden..

    Damit will ich sagen ich seh dein Profil => Deine E-Mail nicht..

    Achja und ist es nicht auch ohne auslesen der Server Daten what ever möglich sondern einfach das, das Programm ein Bild macht und dann überprüft ob eine Zahl an der Position, in Farbe etc. ist und dann den Befehl tDie Zufalls Zahl ist ... im Chat sendet?



  • Klar geht das, aber was macht das für einen Unterschied? 🙂



  • Naja egal, kannst du mir deine E-Mail Adresse hinterlassen hier kann mich nicht registrieren..

    Mir ist eigentlich egal wie es angestellt wird, nur das wichtigste ist mir das es funktioniert und evtl. das ich etwas lerne dafür bleche ich auch gerne Geld. 😋



  • Ahh hab noch eine Sache die alles warscheinlich erleichtert..

    Man kann nun jede Minute /nummer 1234 schreiben lassen, und dann im Ordner Eigene Datein/GTA San Andreas Userfiles/SAMP gehen und die Datei chatlog.txd dort öffnen in der Steht dann etwas so:

    [11:26:52] Sollnummer: 8455

    Das heißt man kann doch daraus den Wert dann nehmen nach Sollnummer: und diese Zahl im Spiel dann wiedergeben per /nummer 8455 oder? Naja wenns anders geht besser aber so ist es leichter und auch gut. 😋



  • Jo klar geht auch... holger.bertel@gmx.de.



  • Hast ne E-Mail..



  • Ich weiß... nur bin ich zu Faul das zu machen und würde ich Geld verlangen, hätte ich dich über den Tisch gezogen.



  • Dann zieh mich über den Tisch oder überwinde deine Faulheit, mir ist dies echt wichtig auch wenn es nur ein Spiel ist und dies wenig Vorteile für mich bringt..



  • Hast Post, damit sollte das Thema hier erledigt sein.


Anmelden zum Antworten