Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Aimbot

Sivun loppuun

Sienessä [15.03.2006 16:44:29]

#

Eli oon tekemässä huviksee sellast aimbottii cs:ssään, että hiiri menee tiettyyn väriin eli miten jatkan täst :P

#include <SDL/SDL.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>

#pragma comment( lib, "opengl32.lib" )
#pragma comment( lib, "glu32.lib" )

void GetPixelColor(SDL_Surface *screen, int x, int y, Uint8 *color){
    Uint32 *bufp;
    bufp = (Uint32 *) screen -> pixels + y*screen -> pitch/4 + x;
    SDL_GetRGB(*bufp, screen -> format, &color[0], &color[1], &color[2]);
}
int main(int argc, char *argv[]) {

    if( SDL_Init(SDL_INIT_VIDEO)<0)
    {
        fprintf(stderr, "OHO! Sdl:n alustus meni pieleen: %s\n", SDL_GetError());
        return 0;
    }

    SDL_Surface * screen;

    screen = SDL_SetVideoMode(800, 600, 32, SDL_HWSURFACE|SDL_DOUBLEBUF); //Tämä rivi tekee windows ikkunan ikkunan

    SDL_WM_SetCaption("", NULL); //tällä eliminoidaan kurja "SDL_app" teksti - eli otsikko

    srand((unsigned)time(0));

    int mx, my, mouse;

    Uint8 rgb[2];

    while (1)
    {
        SDL_Event tapahtuma;
        SDL_PollEvent(&tapahtuma);

        Uint8* keyboard;
        keyboard=SDL_GetKeyState(NULL);

        //keybd_event (vbKeySnapshot, screen, 0&, 0&);

        Uint32 color;

        color = SDL_MapRGB (screen->format, 0, 0, 0);
        SDL_FillRect (screen, NULL, color);

        mouse=SDL_GetMouseState(&mx, &my);
        SDL_LockSurface(screen);

        GetPixelColor(screen, 1, 1, rgb);

        SDL_UnlockSurface(screen);

        int r = rgb[0];
        int g = rgb[1];
        int b = rgb[2];

        //keyboard[SDLK_PRINT] = true;

        //if(rgb[0] == 0 && rgb[1] == 0 && rgb[2] == 0) break;

        keybd_event (VK_SNAPSHOT, KEYEVENTF_KEYUP, 0, 0);

        if(keyboard[SDLK_ESCAPE])  break;

        SDL_Delay(1);

        SDL_Flip(screen);

        }

        SDL_Quit();
        return 0;
}

tgunner [15.03.2006 16:57:00]

#

Öh, mitäs jos kokeilisit vaikka itse kokeilla miettiä sitä, että miten jatkat tuota? :)
Ei sitä tänne tarvitse tulla kyselemään. Vastauksia ongelmiisi voit tottakai tulla kysymään, mutta minusta tällainen on jo tyhmää.

Tzaeru [15.03.2006 16:57:25]

#

Sienet eivät sovi kaikkien ruokavalioon... =I

Mutta kuitenkin... En viitti nyt mitää aimbottia lähteä kirjottaa (ja tossa on sekin, että se pitäis saada pysymää päällimmäisenä windowsissa, enkä ole ihan varma että miten. Kai jokin windowsin oma kirjasto tjsp) mutta.. Tarkistetaan jokainen pikseli yksitellen ja jos sen väri on jokin tietty otetaan talteen pikselin kordinaatit.

Sitten jotakin mousestate = pikselinkordinaatit tai jotain muuta yhtä ovelaa ^,^

Heikki [15.03.2006 16:58:05]

#

Etpä voi SDL:ää käyttää koska sinun pitää lukea näytöllä toisessa ikkunassa olevia värejä.

Tarvinnet jotain WinAPI:a.

Sienessä [15.03.2006 17:34:09]

#

ok ja mite tarkastetaa koko näytön pikselit?

Sienessä [15.03.2006 21:00:12]

#

sain selville mitä funktioita siihen pikselin tarkastamiseen tarttee ja nyt tarvin enää parametrit.

Jarkko-C++ [15.03.2006 21:04:54]

#

No.. En usko että toi ainbotti toimisi tuon pikselin haku menetelmän avulla, koska ainakin sorsassa pitäisi "dynaamisen valaistuksen" valoistaa vihollisen päätä aina erinlailla paikasta riippuen ja tilanteesta riippuen. Ja toinen ongelma on, että pixelin etsimen voi olla hidasta.. No tässä on kuitenkin erään lainen pikselin selaus koodi jota kerran ite tarvitsin.

int FindPixel(int *X, int *Y, int Color, int xx, int yy, int xmax, int ymax)
{
      int ColorTemp, x = xx, y = yy;
      int i;
      HDC hdc = GetDC(0); //Otetaa koko näytän DC käyttöö.

      for(i=0; i == 0; i = i) //Alotetaa looppi.
      {
               ColorTemp = GetPixel(hdc, x, y); //Katsotaan näytönpixelinväri kohdasta x,y.
               if (ColorTemp == Color) //Katsotaan jos ColotTemp on sama kuin haettu väri.
               {

                  *X = x;
                  *Y = y;
                  return 1;
                  i = 1;


               }
               if (x > xmax - 1) //X määrä ylitetty, kasvata Ytä yhdellä ja palauta x.
                  {

                       x = xx;
                       y+=1;
                  }
               if (y>ymax - 1) //Ruutu etsitty, väriä ei löytynyt.
               {
                  i=1;
                  return 0;

               }
               x+=1;

      }
}

Toi siis etsii kyseistä väriä (int Color) suorakulmiosta joka määritellään muuttujien xx, yy, xmax, ymax avulla ja mikäeli väri löytyy, kirjoittaa funktio sen koordinaatit x ja y muuttujiin.
Esim. FindPixel(&pixelx, &pixely, 0x0, 100, 100, 200, 200).
Ton pitäs toimia ainakii Devcppl.

Sienessä [15.03.2006 22:21:31]

#

kiitoksia ja eikä siitä välttämättä aimpotti tartte tulla :P


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta