37x Forum

37x Forum (http://www.37x.de/forum.php)
-   Tutorials (http://www.37x.de/tutorials/)
-   -   [TUT] Removes - Smoke - Flash - Sky - Scope (http://www.37x.de/tutorials/8234-tut-removes-smoke-flash-sky-scope.html)

suxx- 09.06.2004 18:11

[TUT] Removes - Smoke - Flash - Sky - Scope
 
Hi Leute,
heute begrüße ich euch zu einer neuen Ausgabe von "spieletermine Hack-Tutorials". Heutegeht es um Removes.

so nun kommt erstmal die Theorie

Was wollen wir entfernen ?



  • Flashes
  • Smoke
  • Scope
  • Sky
Was brauchen wir dafür ?
  • entweder einen OGL Wrapper
  • einen OGL Hook
  • einfacher ausgedrückt hooked OGL Funktionen
Was müssen wir dafür wissen ?
  • wie HL eine Flash darstellt
  • wie HL das Scope darstellt (cs 1.6)
  • wie HL den Smoke darstellt
  • und wie HL den Sky darstellt

wie HL eine Flash darstellt:

Das ist relative simple denn HL drawed eine Flash indem es einen QUAD mit Fullscreen width und height darstellt der die Farbe weiß hat sprich r=1.0, g=1.0, b=1.0

wie HL das Scope darstellt:
Das ist schon etwas komplizierter da HL hier verschiedene Objekte drawed. Also müssen wir es anhand der Farbe ermitteln ob das Objekt was gerade dargestellt werden soll das Scope ist sprich r==b && b == g und mit Hilfe von glIsEnabled(GL_BLEND) gucken wir ob der Blendmodus deaktive ist will HL ein schwarzes Objekt darstellen und das ist das Scope.

wie HL den Smoke darstellt:
Der Smoke ist wieder sehr einfach und zwar ist er wieder vom Typ QUAD und die Farben sind wie bei einer Flash alle gleich nur sind sie nicht gleich null oder eins.

wie HL den Sky darstellt:
das ist nun wirklich einfach denn wenn HL einen QUAD darstellt und das ganze mit glVertex3fv dann ist es der Sky


Nun kommen wir zur Umsetzung der Theorie

Zuerst brauchen wir Variablen
Code:

int vp[4]; // Enthält Informationen über den Screen
      GLfloat color[4];
      bool bFlash = false;
      bool bScope = false;
 bool bSky = false; // Wenn ihr den Sky Remove benutzen wollt dann müsst ihr den bool entweder auf true setzten oder ein KeyBinding machen
  bool bSmoke = false;
      bool bClearbit = false;
      bool bQuads = false;

nun wäre das geschafft und schon gehen wir zu der Flash über

glBegin:
Code:

if (mode == GL_QUADS)
      {
          bQuads = true;
          glGetFloatv(GL_CURRENT_COLOR, color);
     
          if(color[0]==1.0 && color[1]==1.0 && color[2]==1.0)
                bFlash=true;
          else
                bFlash=false;
      }else
          bQuads = false;

so nun erweitern wir es auch gleich mit der Smoketheorie dann sieht es in etwa so aus
Code:

if (mode == GL_QUADS)
        {
          bQuads = true;
          glGetFloatv(GL_CURRENT_COLOR, color);
     
          if(color[0]==1.0 && color[1]==1.0 && color[2]==1.0)
                  bFlash=true;
          else
                  bFlash=false;
     
          if((color[0]==color[1]) && (color[0] == color[2]) && (color[0] != 0.0) && (color[0] != 1.0))
                  bSmoke = true;
              else
                  bSmoke = false;
        }else
              bQuads = false;

so und nun auch gleich dem der Scopetheorie
Code:

if (mode == GL_QUADS)
        {
            bQuads = true;
            glGetFloatv(GL_CURRENT_COLOR, color);
       
            if(color[0]==1.0 && color[1]==1.0 && color[2]==1.0)
                  bFlash=true;
            else
                  bFlash=false;
       
          if((color[0]==color[1]) && (color[0] == color[2]) && (color[0] != 0.0) && (color[0] != 1.0))
                  bSmoke = true;
                else
                  bSmoke = false;
        }else
                bQuads = false;
      if(bScope)
      {
              bScope = false;
              return;
      }

In glColor4ub wissen wir ja aus der Scopetheorie das wir hier die Farben vergleichen müssen

Code:

if ((red == green) && (green == blue) && (glIsEnabled(GL_BLEND) == false)) {
              bScope = true;
      }

wenn HL bei der Funktion glTexCoord2f angekommen ist müssen wir bFlash wieder auf false setzten.
Code:

if(bFlash) bFlash = false;
mit der Funktion glVertex2f erstellt HL die Flash sprich hier müssen wir eingreifen wir wir nicht geflashed werden wollen.
Code:

if(y == vp[3] && bFlash)
      {
                glGetFloatv(GL_CURRENT_COLOR, color);
          glColor4f(color[0],color[1],color[2],0.01f); // Sehr geringer Alphawert damit die Flash durchsichtig bzw. nicht sichtbar ist
                bFlash = false;
                return;
      }

In glVertex3fv kommen nun Sky und Scope zusammen
Code:

if((bSmoke || bSky ) && bQuads)
      {
              bClearbit = true;
              return;
      }

so nun noch in glClear den bClearbit einbauen und das war es schon für Heute
Code:

if ((mask & GL_DEPTH_BUFFER_BIT) && bClearbit)
      {
                glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
                mask = GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT;
      }


subay 09.06.2004 18:19

super tut auch wenn es keine schönen bilder hat, aber sollte jeder anfänger hinbekommen ist ja copy & paste :D

/€ danke für die rechtschreibhilfe aus dem mirc :freest:

gruß subay

*Pussy Walker* 09.06.2004 19:13

Sauber Suxx ich finde es gut das du die Theorie dazu gemacht hast das klingt erstens sehr Pro. und Zweitens hilft es (denke ich mir mal) anderen auch ihre eigenen Hacks zu coden auch wenn ich davon eigendlich nur bahnhof versetehe (was woll daran liegt das ich mich mit sowas noch nicht beschäftigt habe *gg*) aber das mitm Wrappen wird woll echt jeder hinbekommen (ausser ich weil mein Wraper oder Compiler ja im Ars*h is [siehe VIP-Are !!] ) aber ich besorge mir gerade einen neuen Compiler (Wrapper habe ich ja schon andere ausprobt) und dann werde ich das woll auch einbauen

1337H 09.06.2004 19:14

mhmn
 
mhm und wo bekomme ich son OGL Hook bzw wie kann so ein ding heissen`?

Timberland 09.06.2004 20:26

Gucke mal in die Database. Da gibts einen wrapper V2 heißt er. Nutze ihn auch.

heinz99 09.06.2004 20:38

hm was ist ein scope `? ?^^
erm und wenn ich das mache kann ich von vac servern gebannt werden oder
sehen die das nicht ? oO

Timberland 09.06.2004 22:11

Scope=Zielfernrohr

Das schwarze bei der AWP wenn du sniperst.

ValloV 10.06.2004 10:33

Zitat:

Zitat von heinz99
hm was ist ein scope `? ?^^
erm und wenn ich das mache kann ich von vac servern gebannt werden oder
sehen die das nicht ? oO

theoretisch gesehen solltest du nicht gebannt werden

P3N!$ 17.06.2004 14:35

Gibt es eine möglichkeit das in eine exe zu packen, die es unauffällig in cs hookt?
so wie z.b. GASH (Getto As SPeed Hack?)

dAvE 17.06.2004 15:37

ja ist sicherlich möglich, schnalle das system noch nicht ganz, wäre glücklich wenn einer,der zu viel zeit hat ein tut schreiben würde:P


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:54 Uhr.

Powered by vBulletin