im trying to get positions of localplayer before and after jumping using both GetVecOrigin and GetAbsOrigin (using antario as a base), and theyre displaying inaccurate positions compared to multiple sourcemod plugins that can display it.

https://prnt.sc/rktvn5ⓘ as seen here, only 2 end/land positions using GetVecOrigin are accurate compared to the plugin
Code:
    		if (!(g::pLocalEntity->GetFlags() & FL_ONGROUND) && !isJumping)
    			{
    				Vector vecorigin = g::pLocalEntity->GetVecOrigin();
    				if (vecorigin.x == NULL) return;
    				isJumping = true;
    				VecStartPos = { vecorigin.x, vecorigin.y, vecorigin.z };
     
    				Vector absorigin = g::pLocalEntity->GetAbsOrigin();
    				if (absorigin.x == NULL) return;
    				isJumping = true;
    				AbsStartPos = { absorigin.x, absorigin.y, absorigin.z };
     
    			}
    			if ((g::pLocalEntity->GetFlags() & FL_ONGROUND) && isJumping)
    			{
    				Vector origin2 = g::pLocalEntity->GetVecOrigin();
    				if (vecorigin2.x == NULL) return;
    				VecEndPos = { vecorigin2.x, vecorigin2.y, vecorigin2.z };
     
    				Vector originn2 = g::pLocalEntity->GetAbsOrigin();
    				if (absorigin2.x == NULL) return;
    				AbsEndPos = { originn2.x, originn2.y, originn2.z };
     
    				VecXstart = abs(VecStartPos[0]);
    				VecXend = abs(VecEndPos[0]);
    				VecYstart = abs(VecStartPos[1]);
    				VecYEnd = abs(VecEndPos[1]);
     
    				AbsXstart = abs(AbsStartPos[0]);
    				AbsXend = abs(AbsEndPos[0]);
    				AbsYstart = abs(AbsEndPos[1]);
    				AbsYend = abs(AbsEndPos[1]);
    			}
what might be the problem for this and what's the solution for it?