OldSchoolHack

Register / Login English

Externer Aimbot mit Hilfe des Radarstructs


icon Externer Aimbot mit Hilfe des Radarstructs #1

Join Date: Jun 2011

Posts: 490

User-Rating:

12 positive
0 negative
Hallo erstmal,
Ich habe mir in den letzten Wochen mit einer Menge Hilfe von SilverFire einen externen Triggerbot und Bhop gecodet. Informationen für EnemyOnly wird aus dem Radarstruct abgelesen. Ich habe mal an einen externen Aimbot gedacht, doch ich weiß nicht sorecht etwas mit den Begriffen pitch, Yaw und Angle anzufangen. Ist ein externer aimbot ala SetCursorPos o.ä. mit Hilfe der Radarstruct Informationen überhaupt möglich und wenn ja, könnte mir einer einen Ansatz nennen? Hier mein Code: Credits: Manta und groooooße Credits zu SilverFire
CPP Code:
  1. #include "stdafx.h"
  2.  
  3. #include <windows.h>
  4. #include <iostream>
  5. #include <conio.h>
  6. #include <tlhelp32.h>
  7. #include <stdlib.h>
  8. #include <stdio.h>
  9. #include <string>
  10. #include <cstdlib>
  11. #include <sstream>
  12. #include <Windows.h>
  13. #include <cmath>
  14. #define DIKEYBOARD_L 0x0426
  15. #pragma comment(lib, "Psapi.lib")
  16. using namespace std;
  17. char Myname[32] = "M a n t a R o c h e n";
  18. DWORD LastShotTime = GetTickCount();
  19. struct player // our playerstruct...
  20. {
  21. BYTE hp; // here the hp will be saved...
  22. char name[32]; // the name in chars...
  23. BYTE team; // the team... 0 = spec, 2 = t, 3 = ct
  24. float x; // x coord
  25. float y; // y...
  26. float z; // z...
  27. float pitch; // pitch
  28. float yaw; // yaw
  29. float angle; // angle
  30. } players[64] = {0}; // struct array to save the readout data - max 64 players
  31. float rechnen(player eins, player zwei) {
  32. float x;
  33. float y;
  34. float z;
  35. float ergebnis;
  36. x = eins.x - zwei.x;
  37. x = x * x;
  38. y = eins.y - zwei.y;
  39. y = y * y;
  40. z = eins.z - zwei.z;
  41. z = z * z;
  42. ergebnis = sqrt(x+y+z);
  43. //Gibt das ergebnis an main zurück
  44. return ergebnis;
  45. }
  46. bool isLow;
  47. int Triggerkey;
  48. int a = 30;
  49. int c = 600;
  50. int focusindex = 64;
  51. int oppositeTeam(int team)
  52. {
  53. if (team == 2)
  54. {
  55. return 3;
  56. }
  57. else if (team == 3)
  58. {
  59. return 2;
  60. }
  61. else
  62. {
  63. return 0;
  64. }
  65. }
  66.  
  67. const int RadarOffset = 0x593334;
  68. int tempAdress, BaseAdress;
  69. BYTE inair;
  70.  
  71. void m_jump()// press l
  72. {
  73. INPUT inp;
  74. memset(&inp,0,sizeof(inp));
  75. inp.type=INPUT_KEYBOARD;
  76. inp.ki.wVk = 0;
  77. inp.ki.wScan = DIKEYBOARD_L; //DIKEYBOARD_SPACE; LMENU
  78. inp.ki.time = 0;
  79. inp.ki.dwExtraInfo = 0;
  80. inp.ki.dwFlags=KEYEVENTF_SCANCODE;
  81. SendInput(1,&inp,sizeof(inp));
  82. Sleep(60);
  83. inp.type=INPUT_KEYBOARD;
  84. inp.ki.wVk = 0;
  85. inp.ki.time = 0;
  86. inp.ki.dwExtraInfo = 0;
  87. inp.ki.wScan = DIKEYBOARD_L; //DIKEYBOARD_SPACE; LMENU
  88. inp.ki.dwFlags=KEYEVENTF_SCANCODE|KEYEVENTF_KEYUP;
  89. SendInput(1,&inp,sizeof(inp));
  90. }
  91. void m_click()
  92. {
  93. if (LastShotTime + a < GetTickCount())
  94. {
  95. INPUT input;
  96. memset(&input,0,sizeof(INPUT));
  97. input.mi.dx = 0;
  98. input.mi.dy = 0;
  99. input.mi.dwFlags = MOUSEEVENTF_LEFTDOWN;
  100. input.mi.dwExtraInfo = 0;
  101. input.mi.mouseData = 0;
  102. input.mi.time = 0;
  103. SendInput(1,&input,sizeof(input));
  104. Sleep(3);
  105. memset(&input,0,sizeof(INPUT));
  106. input.mi.dx = 0;
  107. input.mi.dy = 0;
  108. input.mi.dwExtraInfo = 0;
  109. input.mi.mouseData = 0;
  110. input.mi.time = 0;
  111. input.mi.dwFlags = MOUSEEVENTF_LEFTUP;
  112. SendInput(1,&input,sizeof(input));
  113. LastShotTime = GetTickCount();
  114. }
  115. }
  116.  
  117. DWORD GetModuleBaseExtern(const DWORD dwProcessId, const char *szModuleName)
  118. {
  119. #ifdef _GMBE_CHECK_PARAMS_
  120. if (!dwProcessID) || (!szModuleName) return 0;
  121. #endif
  122.  
  123. HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, dwProcessId);
  124. if (!hSnap) return 0;
  125.  
  126. MODULEENTRY32 me;
  127. me.dwSize = sizeof(MODULEENTRY32);
  128.  
  129. DWORD dwReturn = 0;
  130.  
  131. if (Module32First(hSnap, &me)) {
  132. while (Module32Next(hSnap, &me)) {
  133. if (lstrcmpi(me.szModule, szModuleName) == 0) {
  134. dwReturn = (DWORD)me.modBaseAddr;
  135. break;
  136. }
  137. }
  138. }
  139.  
  140. CloseHandle(hSnap);
  141.  
  142. return dwReturn;
  143. }
  144.  
  145.  
  146. int main(int argc, char *argv[])
  147. {
  148. char TriggerKey[500];
  149. DWORD destSize;
  150. destSize=500;
  151. GetPrivateProfileString("trigger","Myname","NULL",Myname,destSize,"C://settings.ini");
  152. cout << " Auszug deines Namens aus der Settings.ini : " << Myname << endl;
  153. GetPrivateProfileString("trigger","TriggerKey","NULL",TriggerKey,destSize,"C://settings.ini");
  154. Triggerkey = atoi (TriggerKey);
  155. // Wenn die Variablen aus der Ini nicht eingelesen werden können, steht nach dem Aufruf der Default-Wert in Test, EinPfad oder Test (In diesem Beispiel "NULL");
  156. SetConsoleTitle( "Mantas Trigger - Exorbital gut" );
  157. HWND hwnd = NULL;
  158. DWORD pid;
  159. HANDLE hProcess;
  160. DWORD clientbase;
  161. int Gegner;
  162. int InCrosshair;
  163. cout << " Starte jetzt CS:S du Lappen." << endl;
  164. while(hwnd==NULL)
  165. {
  166. hwnd = FindWindow (NULL, "Counter-Strike Source");
  167. cout << " Es ist ja immer noch nicht an ! " << endl;
  168. Sleep(3000);
  169. }
  170. GetWindowThreadProcessId (hwnd, &pid);
  171. hProcess = OpenProcess (PROCESS_VM_READ, FALSE, pid);
  172. cout << " Isch hab ihn gefunden ;) " << endl;
  173. cout << " _____ _____ _ " << endl;
  174. cout << " | __|___ _ _ ___ ___ __ | __|_ _ ___| |_ " << endl;
  175. cout << " |__ | . | | | _| _| -_| | __| | | _| '_|" << endl;
  176. cout << " |_____|___|___|_| |___|___| |__| |___|___|_,_|" << endl;
  177. cout << "" << endl;
  178.  
  179. clientbase = GetModuleBaseExtern(pid, "client.dll");
  180.  
  181. while (true)
  182. {
  183.  
  184.  
  185. ReadProcessMemory (hProcess, (PVOID)(clientbase + 0x56A244), &Gegner, sizeof(Gegner), NULL);
  186. ReadProcessMemory (hProcess, (PVOID)(Gegner + 0x1448), &InCrosshair, sizeof(InCrosshair), NULL);
  187. ReadProcessMemory (hProcess, (PVOID)(clientbase + 0x5C20E0), &inair, sizeof(inair), NULL);
  188. tempAdress = clientbase + RadarOffset;
  189. ReadProcessMemory(hProcess, (LPVOID)tempAdress, &BaseAdress, sizeof(BaseAdress), 0);
  190. tempAdress = BaseAdress + 0x8;
  191. ReadProcessMemory(hProcess, (LPVOID)tempAdress, &BaseAdress, sizeof(BaseAdress), 0);
  192.  
  193. BYTE Playerteam[64] = {0};
  194. BYTE buffer[65*0x140];
  195.  
  196. tempAdress = BaseAdress;
  197. ReadProcessMemory(hProcess, (LPVOID)tempAdress, &buffer, 65*0x140, 0);
  198. for ( int i = 1; i<= 64; i++) // copying the relevant data in our extra structs.
  199. {
  200. memcpy(&players[i].team, &buffer[0x140*i+0x34], sizeof(players[i].team));
  201. memcpy(&players[i].name, &buffer[0x140*i+0x14], sizeof(players[i].name));
  202. memcpy(&players[i].angle, &buffer[0x140*i+0x50], sizeof(players[i].angle));
  203. memcpy(&players[i].x, &buffer[0x140*i+0x3C], sizeof(players[i].x));
  204. memcpy(&players[i].y, &buffer[0x140*i+0x40], sizeof(players[i].y));
  205. memcpy(&players[i].z, &buffer[0x140*i+0x44], sizeof(players[i].z));
  206. }
  207.  
  208. isLow = FALSE; // we havent found right now our name
  209. for (int i = 0; i <= 64; i++) // identifying focusplayer
  210. {
  211. if (strcmp(Myname, players[i].name) == 0) // is that us?
  212. {
  213. if (!isLow) // first player found with that name?
  214. {
  215. isLow = TRUE; // yeeeaaah
  216. focusindex = i; // gotcha!
  217. break; // breaking up with you 
  218. }
  219. }
  220. }
  221. Sleep(1);
  222. if (InCrosshair > 0 && InCrosshair <= 64){
  223. float ergebnis = rechnen(players[InCrosshair], players[focusindex]);
  224. if (ergebnis > 0 && ergebnis <= 75)
  225. {
  226. a = 10;
  227. c = 20;
  228. }
  229. if (ergebnis > 75 && ergebnis <= 200)
  230. {
  231. a = 15;
  232. c = 40;
  233. }
  234. if (ergebnis > 200 && ergebnis <= 400)
  235. {
  236. a = 10;
  237. c = 50;
  238. }
  239. if (ergebnis > 400 && ergebnis <= 600)
  240. {
  241. a = 8;
  242. c = 60;
  243. }
  244. if (ergebnis > 600)
  245. {
  246. a = 5;
  247. c = 70;
  248. }
  249. }
  250. if (GetAsyncKeyState(Triggerkey))
  251. {
  252. Sleep(100);
  253. if (InCrosshair > 0 && InCrosshair <= 64)
  254. {
  255.  
  256. if (oppositeTeam(players[InCrosshair].team) == players[focusindex].team)
  257. {
  258.  
  259. Sleep (a);
  260. m_click();
  261. Sleep(c);
  262. }
  263. }
  264. }
  265. if(GetKeyState(VK_LMENU) & 1<<15)
  266. {
  267. if(inair != 255)
  268. {
  269. m_jump();
  270. Sleep(1);
  271. }
  272. }
  273.  
  274. }
  275. Sleep(3);
  276. }
  277.  
  278.  


__________________

http://www10.pic-upload.de/30.04.12/j9dbc34bxdg.jpg
icon #2

Join Date: Nov 2010

Posts: 181

Für ein Aimbot brauchst du die X  und Y Position auf der Map selber
nicht von der Radarstructur da das andere werte sind.
Man kann mit SetCursorPos und anderen Funktionen die Maus bewegen lassen aber du kannst auch gleich in das Spiel reinschreiben da VAC die Position der Maus nicht prüft was ja schwachsin wär sonst würden einige Pro's ja ständig gebannt werden

Pitch , Yaw = Only registered and activated users can see links.
Angle = Only registered and activated users can see links.

__________________

Ich liebe Kekse

Only registered and activated users can see links.

CHEAT CODING IS NOT A CRIME
icon #3

Join Date: Jun 2011

Posts: 490

User-Rating:

12 positive
0 negative
Danke erstmal, aber ich kann doch über den Radarstruct auch die x,y und z Werte der Spieler und meine eigenen auslesen. Wo besteht denn da der Unterschied?

__________________

http://www10.pic-upload.de/30.04.12/j9dbc34bxdg.jpg
icon #4

Join Date: Mar 2011

Posts: 978

User-Rating:

89 positive
6 negative
c++ freak, das stimmt leider nicht, man braucht ja nur eine richtung.
nen zielvektor bekommst du auch aus den radarkoords.
verhältnis ist vollkommen egal, die echte entfernung ist schließlich nicht interessant.
es sei denn ich habe hier einen logikfehler, aber...
^^

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Quote from xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Quote from f4gsh0t_h4x
VAC ist an,immer,überall
Quote from gibson.w
Ich mag braune Würstchen
Quote from irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Quote from irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Quote from irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Quote from irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Quote from Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #5

Join Date: Nov 2010

Posts: 181

mh stimmt
so nach dem 2. mal nachdenken is es logisch die koords des spielers zu nehmen aber die sind doch auf die größe des radars angepasst un so verändern sich doch die koords oder lieg ich da falsch ?

__________________

Ich liebe Kekse

Only registered and activated users can see links.

CHEAT CODING IS NOT A CRIME
icon #6

Join Date: Mar 2011

Posts: 978

User-Rating:

89 positive
6 negative
jop, aber du brauchst ja nur eine RICHTUNG, die entfernung bzw. ob die koordinaten die richtige größe haben ist vollkommen egal.
das verhältnis zwischen xy und z bestimmt ja die richtung, nicht die konkreten werte.

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Quote from xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Quote from f4gsh0t_h4x
VAC ist an,immer,überall
Quote from gibson.w
Ich mag braune Würstchen
Quote from irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Quote from irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Quote from irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Quote from irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Quote from Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #7

Join Date: Jun 2011

Posts: 490

User-Rating:

12 positive
0 negative
Ich habe mal versuchsweise eine Formel dafür aufgestellt. Doch wenn mein playerstruct so aussieht :
CPP Code:
  1. struct player // our playerstruct...
  2. {
  3. BYTE hp; // here the hp will be saved...
  4. char name[32]; // the name in chars...
  5. BYTE team; // the team... 0 = spec, 2 = t, 3 = ct
  6. float x; // x coord
  7. float y; // y...
  8. float z; // z...
  9. float pitch; // pitch
  10. float yaw; // yaw
  11. float angle; // angle
  12. } players[64] = {0};
wie scan ich denn dauerhaft die Positionen alles Spieler? Ich habs bisher nur hinbekommen, die Position des Spielers zu scannen, der im Fadenkreuz ist.
Edit: Ich habe gerade bemerkt, dass ich bei der Berechnung der Bildschirmkoordinaten was falsch mache. Weiß einer wie ich die 3D Koordinaten der Spieler in 2D Koordinaten für den Bildschirm ausrechne?

__________________

http://www10.pic-upload.de/30.04.12/j9dbc34bxdg.jpg
icon #8

Join Date: Mar 2011

Posts: 978

User-Rating:

89 positive
6 negative
das structarray komplett per rpm in einen buffer auslesen und dann per memcopy einzeln in die struct reinladen, oder direkt auf den buffer zugreifen.

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Quote from xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Quote from f4gsh0t_h4x
VAC ist an,immer,überall
Quote from gibson.w
Ich mag braune Würstchen
Quote from irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Quote from irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Quote from irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Quote from irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Quote from Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #9

Join Date: Mar 2011

Posts: 127

User-Rating:

1 positive
0 negative
So wie das für mich aussiehst suchst du nach einer World2Screen function. Also von 3D zu 2D.
Im Internet gibt es glaub ma viele Beispiele dazu.
icon #10

Join Date: Jun 2011

Posts: 490

User-Rating:

12 positive
0 negative
Ich hab mir auch schon viele Beispiele für diese Funktion angesehen. Hier mal ein Beispiel:
CPP Code:
  1. D3DXVECTOR3 pos_obj = D3DXVECTOR3(0, 2, 0);
  2. D3DXVECTOR3 pos;
  3. D3DXVec3TransformCoord(&pos, &pos_obj, &(world * view)); // world und view sind eben die World bzw. View Matrix des Objekts
  4.  
  5.  
  6. D3DXMATRIX identity;
  7. D3DXMatrixIdentity(&identity);
  8. D3DDevice->SetTransform(D3DTS_VIEW, &identity);
  9.  
Meine Frage ist : Wie kann ich die World - und View Matrix Extern auslesen/bestimmen ?
Edit: Kann mir irgendwer eine brauchbare Gleichung oder World2screen Funktion geben? Ich bekomms ums verrecken nicht hin.

__________________

http://www10.pic-upload.de/30.04.12/j9dbc34bxdg.jpg
icon #11

Join Date: Mar 2011

Posts: 127

User-Rating:

1 positive
0 negative
Also ich glaube du kommst nur via injection an die Drehmatrix von CS:S. Nimm lieber ne komplett externe W2S-Funktion.
Hab da auch ma ne Frage zum Movement der Maus. Ich verwende
CPP Code:
  1.  
  2. INPUT input;
  3. input.type = INPUT_MOUSE;
  4. input.mi.mouseData = 0;
  5. input.mi.dwFlags = MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE;
  6. input.mi.dx = (DWORD)x*(65536/GCvars.max_x);
  7. input.mi.dy = (DWORD)y*(65536/GCvars.max_y);
  8. SendInput(1,&input,sizeof(INPUT));
um die Maus zu bewegen, jedoch geht dies nur außerhalb des Spiels gut. Wenn ich die Koordinaten des Ziels setzte, geht die Maus (mein Aiming) ganz nach oben und nicht auf das Ziel. Die 2D Koordinaten werden richtig errechnet.


PS: Hier die W2S-Funktion von AVitamin:
Spoiler
CPP Code:
  1. extern unsigned int g_iCaptionHeight;
  2. extern unsigned int g_iBorderWidth;
  3. extern unsigned int g_iDisplayCenter[2];
  4.  
  5. // helper functions:
  6. inline float VectorLength(const vec3_t v)
  7. {
  8. return (float)sqrt(v[0]*v[0]+v[1]*v[1]+v[2]*v[2]);
  9. }
  10.  
  11. /* finds angle between two vectors */
  12. inline float VectorAngle(const vec3_t a, const vec3_t b)
  13. {
  14. float length_a = VectorLength(a);
  15. float length_b = VectorLength(b);
  16. float length_ab = length_a*length_b;
  17. if( length_ab==0.0 ){ return 0.0; }
  18. else { return (float) (acos(DotProduct(a,b)/length_ab) * (180.f/M_PI)); }
  19. }
  20.  
  21. /* takes pitch/yaw and makes a vector */
  22. void MakeVector(const vec3_t ain, vec3_t vout)
  23. {
  24. float pitch;
  25. float yaw;
  26. float tmp;
  27.  
  28. pitch = (float) (ain[0] * M_PI/180);
  29. yaw = (float) (ain[1] * M_PI/180);
  30. tmp = (float) cos(pitch);
  31.  
  32. vout[0] = (float) (-tmp * -cos(yaw));
  33. vout[1] = (float) (sin(yaw)*tmp);
  34. vout[2] = (float) -sin(pitch);
  35. }
  36.  
  37. void VectorRotateX(const vec3_t in, float angle, vec3_t out)
  38. {
  39. float a,c,s;
  40.  
  41. a = (float) (angle * M_PI/180);
  42. c = (float) cos(a);
  43. s = (float) sin(a);
  44. out[0] = in[0];
  45. out[1] = c*in[1] - s*in[2];
  46. out[2] = s*in[1] + c*in[2];
  47. }
  48.  
  49. void VectorRotateY(const vec3_t in, float angle, vec3_t out)
  50. {
  51. float a,c,s;
  52.  
  53. a = (float) (angle * M_PI/180);
  54. c = (float) cos(a);
  55. s = (float) sin(a);
  56. out[0] = c*in[0] + s*in[2];
  57. out[1] = in[1];
  58. out[2] = -s*in[0] + c*in[2];
  59. }
  60.  
  61. void VectorRotateZ(const vec3_t in, float angle, vec3_t out)
  62. {
  63. float a,c,s;
  64.  
  65. a = (float) (angle * M_PI/180);
  66. c = (float) cos(a);
  67. s = (float) sin(a);
  68. out[0] = c*in[0] - s*in[1];
  69. out[1] = s*in[0] + c*in[1];
  70. out[2] = in[2];
  71. }
  72.  
  73. bool CalculateScreen(float* in,float* in_local_vieworigin,float* in_local_viewangle,float in_local_fov, int objectwidth, float* out)
  74. {
  75. vec3_t aim;
  76. vec3_t newaim;
  77. vec3_t view;
  78. vec3_t tmp;
  79. float num;
  80.  
  81. if(!in||!out){ return false; }
  82.  
  83. VectorSubtract(in,in_local_vieworigin,aim);
  84. MakeVector(in_local_viewangle,view);
  85.  
  86. //not in fov#!@#!@$#@!$
  87. if (VectorAngle(view,aim) > (in_local_fov/1.8))
  88. {
  89. return false;
  90. }
  91.  
  92. VectorRotateZ(aim,-in_local_viewangle[1],newaim);// yaw
  93. VectorRotateY(newaim,-in_local_viewangle[0],tmp);// pitch
  94. VectorRotateX(tmp,-in_local_viewangle[2],newaim);// roll
  95.  
  96. //they are behind us!@~!#@!$@!$
  97. if (newaim[0] <= 0)
  98. {
  99. return false;
  100. }
  101.  
  102. if(in_local_fov==0.0f){ return false; }
  103. num = (float)((g_iDisplayCenter[0]/newaim[0])*(120.0/in_local_fov - 1.0/3.0));
  104.  
  105. out[0] = g_iDisplayCenter[0] - num*newaim[1];
  106. out[1] = g_iDisplayCenter[1] - num*newaim[2];
  107.  
  108. out[1] += g_iCaptionHeight;
  109.  
  110. return true;
  111. }


icon #12

Join Date: Mar 2011

Posts: 978

User-Rating:

89 positive
6 negative
css interpretiert die maus nicht absolut.
musst du ein bisschen mit der mausempfindlichkeit rumprobieren, kannst aber auch so wie ich einfach die maus mehrmals bewegen:

pseudocode:
TEXT Code:
  1.  
  2. getaim2dcoords();
  3. while !(mouse.x +-5 to target.x && mouse.y +-5 to target.y)
  4. {
  5. getaim2dcoords();
  6. movemouse(target.x, target.y)
  7. }
  8.  

korrigierst also so lange die mausbewegungen bis die maus über den richtigen koordinaten ist.

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Quote from xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Quote from f4gsh0t_h4x
VAC ist an,immer,überall
Quote from gibson.w
Ich mag braune Würstchen
Quote from irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Quote from irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Quote from irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Quote from irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Quote from Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #13

Join Date: Mar 2011

Posts: 127

User-Rating:

1 positive
0 negative
@SilerFire: ahh! Funktioniert Perfekt! Vielen Dank!

Ich schließe mich nun der Suche nach einer "richtig" funktionierenden W2S-Funktion an, die von AVitamin ist nähmlich sehr ungenau (finde ich)

Edit: ahh W2S geht jetzt ;D
icon #14

Join Date: Jun 2011

Posts: 490

User-Rating:

12 positive
0 negative
Wenn deine W2S funktioniert, könntest du mir die vllt zur Verfügung stellen und benutzt du dafür den Playerstruct wie bei mir oder über pBaseEntity o.ä. ?

__________________

http://www10.pic-upload.de/30.04.12/j9dbc34bxdg.jpg
icon #15

Join Date: Mar 2011

Posts: 127

User-Rating:

1 positive
0 negative
Also ich benuzte ebenso Playerstruct... In meinem vorletzten Post, habe ich sie beerits gepostet. Sie ist nicht von mir, sie ist von AVitamin.
icon #16

Join Date: Jun 2011

Posts: 490

User-Rating:

12 positive
0 negative
Ichweiß nicht, wie ich das mit der Radarstruktur umsetzen soll... Ich hab ja einige Werte aus der Playerstructur gar nicht.

__________________

http://www10.pic-upload.de/30.04.12/j9dbc34bxdg.jpg
icon #17

Join Date: Oct 2011

Posts: 48

Wenn ich die w2s funtkion für meinen esp benutze, sind die boxen immer abhängig von meiner position und meinem blickwinkel, wenn ich nach oben gucke, gehen sie runter, das gleiche mit rechts/links usw...
Jemand ne idee was da nicht stimmt?
icon #18

Join Date: Mar 2011

Posts: 127

User-Rating:

1 positive
0 negative
Das wissen wir natürlich, wenn wir weder deine Funktion kenne noch wie du die kästchen zeichnest...
icon #19

Join Date: Mar 2011

Posts: 978

User-Rating:

89 positive
6 negative
jop frisch, kannst du etwa keine gedanken lesen Oo

tipp @ delta auch wenn ich jetzt nicht genau sagen kann was dein fehler ist (tut mir leid, meine gedankenleseskills auf große reichweiten sind noch nicht sehr ausgereift), aber solche rechts/links oben/unten fehler lassen sich meist mit einem simplen *(-1) umdrehen.
damit behebst du zwar nicht das ursprungsproblem, aber gehen tuts trotzdem.

__________________

http://www.abload.de/img/signfj5o.png
Spoiler
Vids:
Zitate:
Spoiler

Quote from xst
Vater KN4CK3R, der du hängst im irc, geheiligt werde dein Botnet, dein P7 v1.337 komme, die Bannwelle geschehe, wie in CS:S als auch in CS:GO, führe uns nicht in Versuchung, sondern erlöse uns von all dem c+p-Shit.
Quote from f4gsh0t_h4x
VAC ist an,immer,überall
Quote from gibson.w
Ich mag braune Würstchen
Quote from irc
<SilverDeath> KN4CK3R bistn nub
<~KN4CK3R> kk
Quote from irc
<OrkSchamane> das prob is das viele dieser eig. recht guten bücher englisch sind ...
<OrkSchamane> da habe ich's ja doppelt schwer
<~KN4CK3R> falsch
<~KN4CK3R> das prob is dass du programmieren willst ohne englisch zu können
Quote from irc
<SilverDeath> Ich schwöre dir Dr_Pepper Ich bumms deine Mutter tot Mann!
<Dr_Pepper> danke.
<SilverDeath> bitte
Quote from irc
<~KN4CK3R> dann liegts wenigstens an mir
<~KN4CK3R> nur noch rausfinden warum -.-
<SilverDeath> ja sicher
<SilverDeath> an wem sonst?
* You were kicked by KN4CK3R (kick)
Quote from Dr_Pepper
ihr seit beide dumm
Tutorials:
Releases:
Gifs:
Spoiler
http://www.abload.de/img/uberesp2sgul2.gif
https://i.imgur.com/Z5VQMrV.gif
http://www.abload.de/img/minesweeperzgaef.gif
icon #20

Join Date: Mar 2011

Posts: 127

User-Rating:

1 positive
0 negative
Meine Gedankelese fähigkeiten habe ich gerade zurück erworben. Er benutzt die Funktion, die ich oben gepostet habe...
Ahh ich empfange noch etwas:
while(alive)
say: "Ich bin ein C&P Kiddy"