C++ Anwendung inGame benutzen?



  • Genau das ist mein anliegen!
    Falls dies als cheat gilt, bitte ich um Verzeihung und werde nicht weiter nachfragen.
    Es tut mir leid, aber ich bin ein totaler Anfänger auf dem Gebiet des Programmierens und hatte absolut keine böse Absichten.
    Außerdem weiß ich nicht was mit ASM gemeint ist und was ich damit anfangen soll.
    Entschuldigung, falls ich hier zu viele Probleme mache.
    MFG



  • Eigentlich bieten die Spielen immer eine Scriptsprache, weiss jetzt nicht wie das bei BF aussieht. Aber z.B. bei Call of Duty gibts so eine.

    bind X "+gostand; wait; -frag; wait; -gostand; wait"
    

    Womit du eine Granate konstant ab einem bestimmten Punkt wirst und sie so immer am weitesten geworfen wird. Von daher, wofür C++ missbrauchen ? 😞



  • Wie gesagt ich habe keine Ahnung vom Scripten oder Coden...
    Ich möchte auf keinen Fall irgendetwas am Spiel ansich verändern.
    Ich hab mich ein wenig erkundigt über programmiersprachen und die meisten meinten C++ wäre die schnellste und angenehmste weise.
    Naja anscheind werde ichs wohl lassen und weiterhin meinen finger trainieren müssen um schnell zu klicken...
    mfg



  • Ich gebe dir ein Tipp ... Mausrad ... mehr kriegste net ^^



  • Im Ego-Shoter mit Mausrad schießen genau 😃 und was ist wenn er nun eine MG ha?, dann muss er drehn wie ein Bekloppter, find ich gut *grins*

    Versuchs doch mal mit Hooks *hust*

    Gruß Tobi



  • Es war nie die Rede davon, dass er schiessen nur auf dem Mausrad hat 🙂 Man kann ein und die gleiche Funktion auf mehreren Tasten haben.



  • FreakY<3Cpp schrieb:

    Es war nie die Rede davon, dass er schiessen nur auf dem Mausrad hat 🙂 Man kann ein und die gleiche Funktion auf mehreren Tasten haben.

    Hm hast recht 🙂



  • Damit du mal noch einen sinnvollen Tipp zu deinem Programm bekommst und nicht nur Moralapostelgelaber: der Grund warum dein Programm nicht funktioniert kann zwei Ursachen haben:
    a) BF2 hat exklusiven Keyboard/Mouse-Zugriff, das heißt dein Programm bekommt gar nichts mit, wenn du im Spiel irgendwelche Tasten drückst oder die Maus bewegst.
    b) dein Programm bekommt zwar die Events, weil BF2 nett ist und nicht exklusiven Zugriff angefordert hat, aber BF2 benutzt nicht die Windows-Message-Queue für Input-Events.

    Für ein Workaround müsstest du zunächst herausfinden was BF2 nutzt für die Eingaben, zum Beispiel DirectInput. Dann informierst du dich wie man die entsprechende Bibliothek "hooked". Allerdings wird das natürlich einem Anti-Cheat-Tool sofort auffallen.

    Ansonsten gäbe es noch die "einfache" Möglichkeit dich in den I/O-Layer der Eingabe-Treiber einhängen und dort die entsprechenden Events erzeugen, das ist dann völlig transparent. Wie das für Tastatureingaben geht kannst du hier nachschauen, naja zumindest früher gab es davon noch den Source-Code bevor sysinternals von Microsoft übernommen wurde. Schau mal auf archive.org nach einer älteren Version der Website www.sysinternals.com
    Wenn du dir den verlinkten Artikel durchliest wirst du auch ein paar Referenzen zu dem Thema finden (ganz unten).



  • Mein Gott nah, lasst ihn halt im singleplayer cheaten... Kann doch nicht sein dass er deswegen gleich verurteilt wird.



  • @TippGeber mal angenommen BF2 hätte die exclusiven Rechte, könnte man dann nicht einmal via' globalen Kbd-Hook die Nachrichten empfangen? (sofern BF2 die Windows Message Queue nutzt)

    Gruß Tobi



  • MSDN schrieb:

    Windows NT/2000/XP: This function has been superseded. Use SendInput instead.

    Und das hier scheint mir Unsinn zu sein:

    Sleep(10);
       if(GetAsyncKeyState(VK_F11))
       {
        run=true;
        Sleep(10);
        while (run)
        {
          Sleep(10);
          while(GetAsyncKeyState(VK_LBUTTON)==-32768)
          {
           mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
           mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
           mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
           Sleep(10);
          }
          if(GetAsyncKeyState(VK_F12))
          {
           run=false;
          }
        }
       }
    

    Mach's doch lieber so:

    Falls F11 gedrückt wurde:
        Solange nicht F12 gedrückt wurde:
            Maus-Klick senden
            Gewisse Zeit warten
    Sonst (Falls F11 nicht gedrückt wurde):
        Warte gewisse Zeit
    

Anmelden zum Antworten