Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 11:59

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Problem mit der Logik - Aimbot

Discussion on Problem mit der Logik - Aimbot within the C/C++ forum part of the Coders Den category.

Reply
 
Old   #1

 
snow's Avatar
 
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
Problem mit der Logik - Aimbot

Hallo,

ich versuche mich gerade an meinem ersten Aimbot.
Mir ist erstmal nur wichtig, dass er in die Richtung des Gegners zielt, die Höhe ist dabei (noch) egal.

Ich schaffe es einfach nicht, dass genau auf den Gegner / in seine Richtung gezielt wird.

Mein Code:

Code:
void AimAtEnemy(SPlayer *player, SPlayer *enemy) {

	float fZDistance = std::abs(player->fZ - enemy->fZ);
	float fXDistance = std::abs(player->fX - enemy->fX);

	float fAngle = RAD_TO_DEG(atan2f(fZDistance, fXDistance));

	if (IsSE(player, enemy)) {

		player->fYaw = 180.0f - player->fYaw - fAngle;
	}

	else if (IsSW(player, enemy)) {

		player->fYaw = 180.0f - player->fYaw + fAngle;
	}

	else if (IsNW(player, enemy)) {

		player->fYaw = player->fYaw - fAngle;
	}

	else if (IsNE(player, enemy)) {

		player->fYaw = player->fYaw + fAngle;
	}
}
Die Adressen stimmen alle, ein Fehler durch einen falschen Wert oder so kann ausgeschlossen werden.

Ich weiß einfach nicht, wie ich den endgültigen Winkel berechnen soll / muss. :/
Ich bekomme ja einen absoluten Wert für die Distanzen und daher den selben Wert, egal ob -x oder x und -z oder z. Muss ich evtl. meinen Blickwinkel einbeziehen in die Kalkulation? Wenn ich nach Südwesten schaue und der Gegner Nordöstlich von mir ist, 180° dazu addieren und dann die Addition des Winkels machen?

Gefühlt ist es total einfach, aber mir fehlt einfach der letzte Hinweis..

Wäre über Hilfe echt dankbar, da ansonsten alles funktioniert.

Grüße
snow is offline  
Old 05/06/2013, 00:31   #2
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Möglicherweise hilft dir das:
Shadow992 is offline  
Old 05/06/2013, 15:50   #3
 
Lazeboy's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 451
Received Thanks: 410
wenn du den yaw berechnest bekommst du den winkel welcher unabhängig von deinem jetzigen yaw-winkel ist. Du musst also dein winkel nur setzen und nicht irgendwas drauf addieren. Bastel dir ne skizze und guck doch mal genau wie sich der winkel durch verschiedene positionierungen des Gegners verändert.
Lazeboy is offline  
Old 05/06/2013, 18:49   #4
 
Master674b's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 255
Received Thanks: 110
Ich hätte es irgendwie so gemacht:

Pseudocode:

Code:
vec3 diff = target - camPos
float distance2 = sqrt(pow(diff.x, 2) + pow(diff.y, 2))
float yaw = normalize0to2pi(atan2(diff.y, diff.x))
float pitch = normalize0to2pi(atan2(diff.z, distance2))
Das mit den verschiedenen Positionierungen ist totaler Schwachsinn.
Gegenkathethe durch Ankathethe und fertig.

Bei yaw ist halt einfach X die Ankathethe und Y die Gegenkathethe.
Bei pitch muss folglich der Betrag des Vektors XY (Pythagoras) die Ankathethe sein und Z die Gegenkathethe.
Master674b is offline  
Thanks
1 User
Old 05/06/2013, 21:51   #5
 
Lazeboy's Avatar
 
elite*gold: 0
Join Date: Jun 2008
Posts: 451
Received Thanks: 410
Quote:
Originally Posted by Master674b View Post
Ich hätte es irgendwie so gemacht:

Pseudocode:

Code:
vec3 diff = target - camPos
float distance2 = sqrt(pow(diff.x, 2) + pow(diff.y, 2))
float yaw = normalize0to2pi(atan2(diff.y, diff.x))
float pitch = normalize0to2pi(atan2(diff.z, distance2))
Das mit den verschiedenen Positionierungen ist totaler Schwachsinn.
Gegenkathethe durch Ankathethe und fertig.

Bei yaw ist halt einfach X die Ankathethe und Y die Gegenkathethe.
Bei pitch muss folglich der Betrag des Vektors XY (Pythagoras) die Ankathethe sein und Z die Gegenkathethe.
coole sache als ich mich damit beschäftigt habe, hab ich halt mir da irgendwas zusammen gebastelt mit meiner Formelsammlung und das dann angepasst. Den Weg mit dem normalisieren hatte ich mit noch nicht angeguckt, aber scheint genau das zu machen was ich da mit positionabfragen versucht habe auf Umwegen kreiert habe.

PS: So hab ich das bei cs:s gemacht:
Code:
                        float pitch = 0;
 			float yaw = 0;
 			
 			float dx = (bla->BotClassPtr->playerX-0.116728*bla->BotClassPtr->velocityX) - (cameraX/*-0.116728*pPlayer->velocityX*/);
 			float dy = (bla->BotClassPtr->playerY-0.116728*bla->BotClassPtr->velocityY) - (cameraY/*-0.116728*pPlayer->velocityY*/);
 			float dz = (bla->BotClassPtr->stomachZ) - cameraZ;
 	
 			float distance_2D = ( float )sqrt( ( dx * dx ) + ( dy * dy ) );
 			float distance_3D = ( float )sqrt( ( dx * dx ) + ( dy * dy ) + ( dz * dz ) );
 
 			yaw = asinf(dy/distance_2D) * RTOD;
 			pitch = asinf(dz/distance_3D) * RTOD;
 		
 			if(cameraX > bla->BotClassPtr->playerX)
 			{
 				if(cameraY < bla->BotClassPtr->playerY)
 					yaw = 180-yaw;
 				else
 					yaw = -180+(yaw*-1.0f);//-180+(-yaw) -> -180-yaw
 			}
 								
 			*(float*)(EngineBase+YAW) = yaw;
 			*(float*)(EngineBase+PITCH) = -pitch;
Lazeboy is offline  
Reply


Similar Threads Similar Threads
Wintrading Logik?
11/16/2012 - World of Warcraft - 10 Replies
Huhu, ich hab mir mal was überlegt über das Thema Wintrading aber bevor ich hier rum spame mit dem Zeugs wollte ich fragen ob meine Logik überhaupt aufgeht: Man hat 2 Teams die haben gleich etwa 1.8k Rating z.B. jetzt kann ja auch 2k 2.2k etc. sein nun melden sich beide an sie sind im Ts und beide sagen das sie Procc haben das Team wo loosen soll gehen nicht alle rein sondern nur einer das heisst team A bekommt die kompletten punkte als hätte man gegen 1.8k Team gewonnen aber von Team B...
3d game schreiben.( logik- frage)
05/02/2012 - General Coding - 39 Replies
hallo zusammen. Erstmal : ich habe die Sufu genutz und leider keine Antwort auf meine frage gefunden^^. So, ich schreib jetzt schon seit einiger zeit progs, und da ich immer wissen will wie etwas funktioniert, wenn ich es benutze.... Beispiel: ( ich schreib grad mit nem stift ,Frage : wie funktioniert ein stift.) Und ich spiele 3d Games.(wie funktioniert eine 3d welt ?)
Shiina's bescheuerte Logik
05/18/2008 - Quotes - 29 Replies
Irgendwann heute kam mal das zustande: Na, versteht ihr was sie meint? Also ich jedenfalls nicht... xD



All times are GMT +1. The time now is 12:00.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.