⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 directx9hook.pas.svn-base

📁 这是一段游戏修改工具的源代码.ring3功能由dephi开发,驱动是C开发.希望对大家有帮助
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
                tempsingle:=(mousespeedx[20]-mousespeedx[10])/10;                for i:=11 to 19 do                  mousespeedx[i]:=mousespeedx[10]+(i-10)*tempsingle;                tempsingle:=(mousespeedx[40]-mousespeedx[20])/20;                for i:=21 to 39 do                  mousespeedx[i]:=mousespeedx[20]+(i-20)*tempsingle;                //y                mousespeedy[1]:=abs(mousecallibrationvertical1point);                mousespeedy[2]:=abs(mousecallibrationvertical2point);                mousespeedy[5]:=abs(mousecallibrationvertical5point);                mousespeedy[10]:=abs(mousecallibrationvertical10point);                mousespeedy[20]:=abs(mousecallibrationvertical20point);                mousespeedy[40]:=abs(mousecallibrationvertical40point);                mousespeedy[3]:=mousespeedy[1]+mousespeedy[2];                mousespeedy[4]:=mousespeedy[3]+((mousespeedy[5]-mousespeedy[2]) / 3);                tempsingle:=(mousespeedy[10]-mousespeedy[5])/5;                for i:=6 to 9 do                  mousespeedy[i]:=mousespeedy[5]+(i-5)*tempsingle;                tempsingle:=(mousespeedy[20]-mousespeedy[10])/10;                for i:=11 to 19 do                  mousespeedy[i]:=mousespeedy[10]+(i-10)*tempsingle;                tempsingle:=(mousespeedy[40]-mousespeedy[20])/20;                for i:=21 to 39 do                  mousespeedy[i]:=mousespeedy[20]+(i-20)*tempsingle;                mousecallibrationactive:=false;                //tell ce the callibration results                keys.mousecallibrationhorizontal1point:=mousespeedx[1];                keys.mousecallibrationhorizontal2point:=mousespeedx[2];                keys.mousecallibrationhorizontal5point:=mousespeedx[5];                keys.mousecallibrationhorizontal10point:=mousespeedx[10];                keys.mousecallibrationhorizontal20point:=mousespeedx[20];                keys.mousecallibrationhorizontal40point:=mousespeedx[40];                keys.mousecallibrationvertical1point:=mousespeedy[1];                keys.mousecallibrationvertical2point:=mousespeedy[2];                keys.mousecallibrationvertical5point:=mousespeedy[5];                keys.mousecallibrationvertical10point:=mousespeedy[10];                keys.mousecallibrationvertical20point:=mousespeedy[20];                keys.mousecallibrationvertical40point:=mousespeedy[40];                if keys.cewindow<>0 then                  postmessage(keys.cewindow,wm_user+1,0,0); //the callibration values have been changed              end;              25:              begin                r.left:=trunc(vp.Width/2)+10;                r.Top:=trunc(vp.Height/2)-16;                r.Right:=r.left+800;                r.Bottom:=r.top+16;                tempstring:=format('mousespeedx[1]=%.2f',[mousespeedx[1]]);                cefont.DrawTextA(nil,pchar(tempstring),length(tempstring),r,0,D3DCOLOR_ARGB(255,0,255,0));                r.Top:=r.top+16;                r.Bottom:=r.Bottom+16;                tempstring:=format('mousespeedx[2]=%.2f',[mousespeedx[2]]);                cefont.DrawTextA(nil,pchar(tempstring),length(tempstring),r,0,D3DCOLOR_ARGB(255,0,255,0));                r.Top:=r.top+16;                r.Bottom:=r.Bottom+16;                tempstring:=format('mousespeedx[5]=%.2f',[mousespeedx[5]]);                cefont.DrawTextA(nil,pchar(tempstring),length(tempstring),r,0,D3DCOLOR_ARGB(255,0,255,0));                r.Top:=r.top+16;                r.Bottom:=r.Bottom+16;                tempstring:=format('mousespeedx[10]=%.2f',[mousespeedx[10]]);                cefont.DrawTextA(nil,pchar(tempstring),length(tempstring),r,0,D3DCOLOR_ARGB(255,0,255,0));                r.Top:=r.top+16;                r.Bottom:=r.Bottom+16;                tempstring:=format('mousespeedx[20]=%.2f',[mousespeedx[20]]);                cefont.DrawTextA(nil,pchar(tempstring),length(tempstring),r,0,D3DCOLOR_ARGB(255,0,255,0));                r.Top:=r.top+16;                r.Bottom:=r.Bottom+16;                tempstring:=format('mousespeedx[40]=%.2f',[mousespeedx[40]]);                cefont.DrawTextA(nil,pchar(tempstring),length(tempstring),r,0,D3DCOLOR_ARGB(255,0,255,0));                mousecallibrationactive:=false;                inc(mousecallibrationmode);              end;              else mousecallibrationactive:=false;            end;          end;        end;              finally        mysprite._End;      end;      curtime:=gettickcount;      if curtime<(autoaimtimer+2000) then      begin        r.left:=0;        r.Top:=20;        r.Right:=400;        r.Bottom:=70;        if autoaim then          cefont.DrawTextA(nil,'Autoaim enabled',15,r,0,D3DCOLOR_ARGB(255,255,255,255))        else          cefont.DrawTextA(nil,'Autoaim disabled',16,r,0,D3DCOLOR_ARGB(255,255,255,255));      end;      if curtime<(lagtimer+2000) then      begin        r.left:=0;        r.Top:=20;        r.Right:=500;        r.Bottom:=70;        if usefpslag then          tempstring:='UserLag='+IntToStr(lag)+' Computedlag='+IntToStr(lagfrommemory)+' FPSlag='+format('%.2f',[fpslag])+' Totallag='+format('%.2f',[lag+lagfrommemory+fpslag])        else          tempstring:='UserLag='+IntToStr(lag)+' Computedlag='+IntToStr(lagfrommemory)+'Totallag='+IntToStr(lag+lagfrommemory);        cefont.DrawTextA(nil,pchar(tempstring),length(tempstring),r,0,D3DCOLOR_ARGB(255,255,0,0));      end;      if showloading then      begin        r.left:=0;        r.Top:=36;        r.Right:=500;        r.Bottom:=86;        tempstring:='Loading aimsettings file '+aimsettings+' (stage:'+IntToStr(LoadPhase)+'/2 pos:'+IntToStr(currentposition)+'/'+inttostr(maxposition);        cefont.DrawTextA(nil,pchar(tempstring),length(tempstring),r,0,D3DCOLOR_ARGB(255,255,0,255));      end      else if curtime<(loadedtimer+2000) then      begin        r.left:=0;        r.Top:=36;        r.Right:=400;        r.Bottom:=86;        tempstring:='Loaded aimsettings '+aimsettings;        cefont.DrawTextA(nil,pchar(tempstring),length(tempstring),r,0,D3DCOLOR_ARGB(255,255,0,255));      end;      if showsaving then      begin        r.left:=0;        r.Top:=36;        r.Right:=400;        r.Bottom:=86;        tempstring:='Saving aimsettings file '+aimsettings;        cefont.DrawTextA(nil,pchar(tempstring),length(tempstring),r,0,D3DCOLOR_ARGB(255,255,0,255));      end      else if curtime<(savedtimer+2000) then      begin        r.left:=0;        r.Top:=36;        r.Right:=400;        r.Bottom:=86;        tempstring:='Saved aimsettings '+aimsettings;        cefont.DrawTextA(nil,pchar(tempstring),length(tempstring),r,0,D3DCOLOR_ARGB(255,255,0,255));      end;      if curtime<(aimsettingstimer+2000) then      begin        r.left:=0;        r.Top:=200;        r.Right:=400;        r.Bottom:=216;        tempstring:='Current aimsettingfile='+aimsettings;        cefont.DrawTextA(nil,pchar(tempstring),length(tempstring),r,0,D3DCOLOR_ARGB(255,255,0,0));      end;      if showkeylist then DrawHotkeylist9(self,vp);    finally      dontsetlastworldmatrix:=false;      dontsetlastprojectionmatrix:=false;      dontsetlastviewmatrix:=false;    end;    fixhook(self);    if worldmatrixset then self.SetTransform(D3DTS_WORLD,lastworldmatrix);    if projectionmatrixset then self.SetTransform(D3DTS_Projection,lastprojectionmatrix);    if viewmatrixset then self.SetTransform(D3DTS_VIEW,lastviewmatrix);  except  end;  imdrawing:=false;  result:=TIDirect3DDevice9_EndScene_Original(IDirect3DDevice9_EndScene.location)(self);end;function IDirect3DDevice9_SetTransform_Hook(const self: IDirect3DDevice9; State : TD3DTransformStateType; const Matrix : TD3DMatrix) : HResult; stdcall;var Matrix2,Matrix3,Matrix4: TD3DMatrix;    i: integer;    tempf1,tempf2,tempf3,tempf4: single;begin  //same math as in directx8 (look it up there...)  matrix2:=Matrix;  if (zoom<>1) and (state=D3DTS_PROJECTION) then  //zoom stuff  begin    if (Matrix2._23=1) then    begin      Matrix3:=Matrix;      tempf1:=arccot(Matrix2._11)*2; //=fov      tempf2:=Matrix2._11/Matrix2._00; //=aspect      //zn (near)      tempf3:=Matrix2._32;      tempf3:=tempf3 / Matrix2._22;      tempf3:=-tempf3; //tempf3= zn      tempf3:=tempf3;//*0.1;  //increase tempf3 to look through nearby objects      tempf4:=Matrix2._22;      tempf4:=tempf4*tempf3;      tempf4:=-tempf4;      tempf4:=tempf4/tempf3+1;      //Matrix2._22:=0.1;//500000/(500000-tempf3);      //Matrix2._32:=-0.1;//-tempf3*500000/(500000-tempf3);      Matrix2._11:=cot(tempf1/2/zoom);  //devide this with a higher value to zoom in      Matrix2._00:=Matrix2._11/tempf2;    end;  end;  result:=TIDirect3DDevice9_SetTransform_original(IDirect3DDevice9_SetTransform.location)(self,State,Matrix2);  if state=D3DTS_VIEW then  begin    if not dontsetlastviewmatrix then    begin      lastviewmatrix:=Matrix;      viewmatrixset:=true;    end;  end;  if state=D3DTS_WORLD then  begin    if not dontsetlastworldmatrix then    begin      lastworldmatrix:=Matrix;      worldmatrixset:=true;    end;  end;  if state=D3dts_projection then  begin    lastprojectionmatrix2:=Matrix2;    if not dontsetlastprojectionmatrix then    begin      lastprojectionmatrix:=Matrix;      projectionmatrixset:=true;    end;  end;end;function IDirect3DDevice9_GetTransform_Hook(const self: IDirect3DDevice9; State : TD3DTransformStateType; out Matrix : TD3DMatrix) : HResult; stdcall;begin  result:=D3D_OK;  if state=D3DTS_VIEW then  begin    if not dontsetlastviewmatrix then    begin      Matrix:=lastviewmatrix;      exit;    end;  end;  if state=D3DTS_WORLD then  begin    if not dontsetlastworldmatrix then    begin      Matrix:=lastworldmatrix;      exit;    end;  end;  if state=D3dts_projection then  begin    if not dontsetlastprojectionmatrix then    begin      Matrix:=lastprojectionmatrix;      exit;    end;  end;  result:=TIDirect3DDevice9_GetTransform_original(IDirect3DDevice9_GetTransform.location)(self,State,Matrix);end;function IDirect3DDevice9_SetRenderState_Hook(const self: IDirect3DDevice9; State : TD3DRenderStateType; const Value : LongWord) : HResult; stdcall;begin  result:=tIDirect3DDevice9_SetRenderState_original(IDirect3DDevice9_SetRenderState.location)(self,State,Value);  if fog<>2 then self.SetRenderState(D3DRS_FOGENABLE,fog);  if lighting<>2 then self.SetRenderState(D3DRS_lighting,lighting);  if zbuffer<>2 then self.SetRenderState(D3DRS_ZENABLE,zbuffer);  if wireframe=1 then self.SetRenderState(D3DRS_fillmode,D3DFILL_WIREFRAME);  if wireframe=0 then self.SetRenderState(D3DRS_Fillmode,D3DFILL_SOLID);end;function IDirect3DDevice9_SetTexture_Hook(const self: IDirect3DDevice9; const Stage : LongWord; Texture : IDirect3DBaseTexture9) : HResult; stdcall;var i: integer;    stop: boolean;begin  try  if (not imdrawing) and (not watchfornextdraw) then  for i:=0 to length(lockedtexturelist)-1 do  begin    if (dword(Texture)=dword(lockedtexturelist[i].texturehandle)) then    begin      if (lockedtexturelist[i].locked) then  //always.....      begin        currenttexture:=i;        watchfornextdraw:=true;        nextdrawstage:=stage;      end;      break;    end;  end;  except    //not the end of the world if this fails, so I wont bother with critical sections and stuff.  end;  result:=tIDirect3DDevice9_SetTexture_original(IDirect3DDevice9_SetTexture.location)(self,stage,texture);end;function IDirect3DDevice9_DrawPrimitive_Hook(const self: IDirect3DD

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -