| 
  CSGO: Resolver Causing Players to Flicker and Crashes Game Hello. I recently decided to try and create a delta resolver with some more merit to it. Here it is (I can delete it if it is bad): 
 static short si_oldMaxPlayers = Interfaces::Engine->GetMaxClients();float *fl_movingLBY = new float[si_oldMaxPlayers];
 float *fl_brokenLBY = new float[si_oldMaxPlayers];
 float *fl_previousBrokenLBY = new float[si_oldMaxPlayers];
 float *fl_deltaAngle = new float[si_oldMaxPlayers];
 float *fl_previousDelta = new float[si_oldMaxPlayers];
 float *fl_hitAngle = new float[si_oldMaxPlayers];
 float *fl_missedAngle = new float[si_oldMaxPlayers];
 short *si_isMoving = new short[si_oldMaxPlayers]; //0 = Moving, 1 = Fakewalking, 2 = Still
  //These are seperate because it makes them easier to trackbool *b_isMovingHasValue = new bool[si_oldMaxPlayers];
 bool *b_brokenLBYHasValue = new bool[si_oldMaxPlayers];
 bool *b_previousDeltaHasValue = new bool[si_oldMaxPlayers];
 bool *b_previousBrokenLBYHasValue = new bool[si_oldMaxPlayers];
 bool *b_movingLBYHasValue = new bool[si_oldMaxPlayers];
 bool *b_hitAngleHasValue = new bool[si_oldMaxPlayers];
 bool *b_missedAngleHasValue = new bool[si_oldMaxPlayers];
  static bool b_runOnce = false;if (!b_runOnce) {
 for (int i = 0; i < si_oldMaxPlayers; i++) { //You can add other variables in here if you want
  b_isMovingHasValue[i] = false;
  b_brokenLBYHasValue[i] = false;
  b_previousDeltaHasValue[i] = false;
  b_previousBrokenLBYHasValue[i] = false;
  b_movingLBYHasValue[i] = false;
  b_hitAngleHasValue[i] = false;
  b_missedAngleHasValue[i] = false;
 }
 b_runOnce = true;
 }
 if (si_oldMaxPlayers != Interfaces::Engine->GetMaxClients()) {
 ResizeArray(fl_movingLBY, Interfaces::Engine->GetMaxClients());
 ResizeArray(fl_brokenLBY, Interfaces::Engine->GetMaxClients());
 ResizeArray(fl_previousBrokenLBY, Interfaces::Engine->GetMaxClients());
 ResizeArray(fl_deltaAngle, Interfaces::Engine->GetMaxClients());
 ResizeArray(fl_previousDelta, Interfaces::Engine->GetMaxClients());
 ResizeArray(fl_hitAngle, Interfaces::Engine->GetMaxClients());
 ResizeArray(fl_missedAngle, Interfaces::Engine->GetMaxClients());
 ResizeArray(si_isMoving, Interfaces::Engine->GetMaxClients());
  //BooleansResizeArray(b_isMovingHasValue, Interfaces::Engine->GetMaxClients());
 ResizeArray(b_brokenLBYHasValue, Interfaces::Engine->GetMaxClients());
 ResizeArray(b_previousDeltaHasValue, Interfaces::Engine->GetMaxClients());
 ResizeArray(b_previousBrokenLBYHasValue, Interfaces::Engine->GetMaxClients());
 ResizeArray(b_movingLBYHasValue, Interfaces::Engine->GetMaxClients());
 ResizeArray(b_hitAngleHasValue, Interfaces::Engine->GetMaxClients());
 ResizeArray(b_missedAngleHasValue, Interfaces::Engine->GetMaxClients());
  if (si_oldMaxPlayers < Interfaces::Engine->GetMaxClients()) { //The resize function deletes and recreates the array, so we don't need to account for if the oldMaxPlayers is > than current max playersfor (int i = si_oldMaxPlayers; i < Interfaces::Engine->GetMaxClients(); i++) {
 b_isMovingHasValue[i] = false;
 b_brokenLBYHasValue[i] = false;
 b_previousDeltaHasValue[i] = false;
 b_previousBrokenLBYHasValue[i] = false;
 b_movingLBYHasValue[i] = false;
 b_hitAngleHasValue[i] = false;
 b_missedAngleHasValue[i] = false;
 }
 }
  si_oldMaxPlayers = Interfaces::Engine->GetMaxClients();}
  for (int i = 0; i < si_oldMaxPlayers; i++) { //Replace BAIM Velocity with 36 if you want
 if (abs(pEntity->GetVelocity().Length()) > Menu::Window.RageBotTab.BAIMVelocity.GetValue() && pEntity->GetFlags() &FL_ONGROUND) { //Set Variablessi_isMoving[i] = 0;
 b_isMovingHasValue[i] = true;
 }
 else {
 if (abs(pEntity->GetVelocity().Length()) <= Menu::Window.RageBotTab.BAIMVelocity.GetValue() && abs(pEntity->GetVelocity().Length()) > 0.1 && pEntity->GetFlags() &FL_ONGROUND) {
 si_isMoving[i] = 1;
 b_isMovingHasValue[i] = true;
 }
 else {
 if (pEntity->GetFlags() &FL_ONGROUND) {
 si_isMoving[i] = 2;
 b_isMovingHasValue[i] = true;
 }
 else {
 si_isMoving[i] = 3;
 b_isMovingHasValue[i] = true;
 }
 }
 }
  if (si_isMoving[i] == 0) { //Movingb_movingLBYHasValue[i] = true;
 fl_movingLBY[i] = *pEntity->GetLowerBodyYawTarget();
 pEntity->GetEyeAnglesXY()->y = fl_movingLBY[i];
 }
 else {
 if (b_hitAngleHasValue[i]) {
 pEntity->GetEyeAnglesXY()->y = fl_hitAngle[i];
 }
 else {
 if (si_isMoving[i] == 1) { //Fake Walking
 if (b_previousBrokenLBYHasValue[i] && fl_previousBrokenLBY[i] != *pEntity->GetLowerBodyYawTarget()) {
 pEntity->GetEyeAnglesXY()->y = *pEntity->GetLowerBodyYawTarget();
 }
 else {
 b_brokenLBYHasValue[i] = true;
 fl_brokenLBY[i] = *pEntity->GetLowerBodyYawTarget();
 fl_deltaAngle[i] = pEntity->GetEyeAnglesXY()->y + (pEntity->GetEyeAnglesXY()->y - *pEntity->GetLowerBodyYawTarget()); //Credits to Omsium
   if (b_missedAngleHasValue[i]) {if (fl_deltaAngle[i] != fl_missedAngle[i]) {
 pEntity->GetEyeAnglesXY()->y = fl_deltaAngle[i];
 }
 else {
 if (fl_deltaAngle > 0) //Flip
 fl_deltaAngle[i] -= 180;
 else
 fl_deltaAngle[i] += 180;
   pEntity->GetEyeAnglesXY()->y = fl_deltaAngle[i];CRageBot HitscanBAIM; //>tfw ayyware doesn't make ragebot members static or have an extern object (I'm too lazy to make one)
 HitscanBAIM.HitScan(pEntity, true); //The second paramter ensures that only the pelvis is aimed at.
 }
 }
 else {
 pEntity->GetEyeAnglesXY()->y = fl_deltaAngle[i];
 }
 }
 }
 else {
 if (si_isMoving[i] == 2) { //On ground and still
 fl_deltaAngle[i] = pEntity->GetEyeAnglesXY()->y + (pEntity->GetEyeAnglesXY()->y - *pEntity->GetLowerBodyYawTarget()); //Credits to Omsium
 if (b_missedAngleHasValue[i]) {
 if (fl_deltaAngle[i] != fl_missedAngle[i]) {
 pEntity->GetEyeAnglesXY()->y = fl_deltaAngle[i];
 }
 else {
 if (b_movingLBYHasValue[i]) {
 pEntity->GetEyeAnglesXY()->y = fl_movingLBY[i];
 }
 else {
 if (fl_deltaAngle > 0) //Flip
 fl_deltaAngle[i] -= 180;
 else
 fl_deltaAngle[i] += 180;
   pEntity->GetEyeAnglesXY()->y = fl_deltaAngle[i];}
 }
 }
 else {
 pEntity->GetEyeAnglesXY()->y = fl_deltaAngle[i];
 }
 }
 else { //In air
 if (b_missedAngleHasValue[i]) {
 if (b_movingLBYHasValue[i] && fl_movingLBY[i] != fl_missedAngle[i]) {
 pEntity->GetEyeAnglesXY()->y = fl_movingLBY[i];
 }
 else {
 fl_deltaAngle[i] = pEntity->GetEyeAnglesXY()->y + (pEntity->GetEyeAnglesXY()->y - *pEntity->GetLowerBodyYawTarget()); //Credits to Omsium
 pEntity->GetEyeAnglesXY()->y = fl_deltaAngle[i];
 }
 }
 else {
 pEntity->GetEyeAnglesXY()->y = fl_movingLBY[i];
 }
 }
 }
 }
 }
  if (b_isMovingHasValue[i] && si_isMoving[i] == 1)fl_previousBrokenLBY[i] = fl_brokenLBY[i];
  if (didhitHS) {fl_hitAngle[i] = pEntity->GetEyeAnglesXY()->y;
 b_hitAngleHasValue[i] = true;
   if (b_missedAngleHasValue[i] && fl_missedAngle[i] == pEntity->GetEyeAnglesXY()->y)b_missedAngleHasValue[i] = false;
 }
 else {
 if (!didhit) {
 b_missedAngleHasValue[i] = true;
 fl_missedAngle[i] = pEntity->GetEyeAnglesXY()->y;
 }
 }
 }
 I have diagnosed the issue down to the resolver, I just don’t know precisely what it is. Thank you for any assistance you can offer. I am open to any and all feedback. EDIT: Forgot the resize functions: 
 inline void ResizeArray(float *fl_Array, short si_newSize) {float *fl_ArrayClone = fl_Array;
 delete[] fl_Array;
 fl_Array = new float[si_newSize];
  for (int i = 0; i < sizeof(fl_ArrayClone) / sizeof(float); i++)
 fl_Array[i] = fl_ArrayClone[i]; //We want to keep data.
 delete[] fl_ArrayClone;
 }
 inline void ResizeArray(bool *b_Array, short si_newSize) {
 bool *b_ArrayClone = b_Array;
 delete[] b_Array;
 b_Array = new bool[si_newSize];
 for (int i = 0; i < sizeof(b_ArrayClone) / sizeof(bool); i++)
 b_Array[i] = b_ArrayClone[i]; //We want to keep data.
 delete[] b_ArrayClone;
 }
 inline void ResizeArray(short *si_Array, short si_newSize) {
 short *si_ArrayClone = si_Array;
 delete[] si_Array;
 si_Array = new short[si_newSize];
 for (int i = 0; i < sizeof(si_ArrayClone) / sizeof(short); i++)
 si_Array[i] = si_ArrayClone[i]; //We want to keep data.
 delete[] si_ArrayClone;
 }
 
 |