typedef struct trace_t
{
float fraction;
byte Buffer[0x28];
};
void LocationalTrace(trace_t* trace, float* start, float* end)
{
void(*G_LocationalTrace)(trace_t* Trace, float* Start, float* End, int u1, int u2, int u3) = (void(*)(trace_t*, float*, float*, int, int, int))&G_LocationalTrace_t;
G_LocationalTrace(trace, start, end, 0, 0x28060B1, 0);
}
float* G_GetPlayerViewOrigin(int G_Client) {
float Org[3];
void(*GPVO)(int gClient, float* Org) = (void(*)(int, float*))&GetPlayerViewOrigin_t;
GPVO(G_Client, Org);
return Org;
}
float* BulletTrace(unsigned int ClientID){
trace_t trace;
float* Start = G_GetPlayerViewOrigin(ClientID);
float* Angles = ReadFloat(getClient(ClientID, 0x10C),3);
float* End = AnglesToForward(Angles,Start,999999);
LocationalTrace(&trace, Start, End);
float Pos[3];
for(unsigned char i = 0; i < 3; i++) Pos[i] = (((End[i]-Start[i]) * trace.fraction) + Start[i]);
return Pos;
}
typedef struct trace_t
{
float fraction;
byte Buffer[0x28];
};
void LocationalTrace(trace_t* trace, float* start, float* end)
{
void(*G_LocationalTrace)(trace_t* Trace, float* Start, float* End, int u1, int u2, int u3) = (void(*)(trace_t*, float*, float*, int, int, int))&G_LocationalTrace_t;
G_LocationalTrace(trace, start, end, 0, 0x28060B1, 0);
}
float* G_GetPlayerViewOrigin(int G_Client) {
float Org[3];
void(*GPVO)(int gClient, float* Org) = (void(*)(int, float*))&GetPlayerViewOrigin_t;
GPVO(G_Client, Org);
return Org;
}
float* BulletTrace(unsigned int ClientID){
trace_t trace;
float* Start = G_GetPlayerViewOrigin(ClientID);
float* Angles = ReadFloat(getClient(ClientID, 0x10C),3);
float* End = AnglesToForward(Angles,Start,999999);
LocationalTrace(&trace, Start, End);
float Pos[3];
for(unsigned char i = 0; i < 3; i++) Pos[i] = (((End[i]-Start[i]) * trace.fraction) + Start[i]);
return Pos;
}
typedef struct trace_t
{
float fraction;
byte Buffer[0x28];
};
void LocationalTrace(trace_t* trace, float* start, float* end)
{
void(*G_LocationalTrace)(trace_t* Trace, float* Start, float* End, int u1, int u2, int u3) = (void(*)(trace_t*, float*, float*, int, int, int))&G_LocationalTrace_t;
G_LocationalTrace(trace, start, end, 0, 0x28060B1, 0);
}
float* G_GetPlayerViewOrigin(int G_Client) {
float Org[3];
void(*GPVO)(int gClient, float* Org) = (void(*)(int, float*))&GetPlayerViewOrigin_t;
GPVO(G_Client, Org);
return Org;
}
float* BulletTrace(unsigned int ClientID){
trace_t trace;
float* Start = G_GetPlayerViewOrigin(ClientID);
float* Angles = ReadFloat(getClient(ClientID, 0x10C),3);
float* End = AnglesToForward(Angles,Start,999999);
LocationalTrace(&trace, Start, End);
float Pos[3];
for(unsigned char i = 0; i < 3; i++) Pos[i] = (((End[i]-Start[i]) * trace.fraction) + Start[i]);
return Pos;
}
Copyright © 2025, NextGenUpdate.
All Rights Reserved.