Esempio n. 1
0
        public static mstudiobbox_t GetHitBox(IClientEntity pEntity, string szModelName, int iIndex)
        {
            if (m_ModelHitboxes.ContainsKey(szModelName))
            {
                if (m_ModelHitboxes[szModelName].ContainsKey(iIndex))
                {
                    return(m_ModelHitboxes[szModelName][iIndex]);
                }
                else
                {
                    return(default(mstudiobbox_t));
                }
            }

            IntPtr pStudioHdr = pEntity.GetStudioHdr();

            if (pStudioHdr == IntPtr.Zero)
            {
                return(default(mstudiobbox_t));
            }

            int hitbox_set_index = MemoryAPI.ReadFromProcess <int>(Globals._csgo.ProcessHandle, pStudioHdr + 0xB0);

            int studio_hitbox_set = (int)pStudioHdr + hitbox_set_index;

            int num_hitboxes = MemoryAPI.ReadFromProcess <int>(Globals._csgo.ProcessHandle, new IntPtr(studio_hitbox_set + 0x4));

            int hitbox_index = MemoryAPI.ReadFromProcess <int>(Globals._csgo.ProcessHandle, new IntPtr(studio_hitbox_set + 0x8));

            m_ModelHitboxes.Add(szModelName, new Dictionary <int, mstudiobbox_t>());

            for (int i = 0; i < num_hitboxes; ++i)
            {
                mstudiobbox_t model_hitbox = MemoryAPI.ReadFromProcess <mstudiobbox_t>(Globals._csgo.ProcessHandle, new IntPtr((0x44 * i) + hitbox_index + studio_hitbox_set));
                float         radius       = model_hitbox.m_flRadius;
                if (radius != -1f)
                {
                    model_hitbox.bbmin.x -= radius;
                    model_hitbox.bbmin.y -= radius;
                    model_hitbox.bbmin.z -= radius;

                    model_hitbox.bbmin.x += radius;
                    model_hitbox.bbmin.y += radius;
                    model_hitbox.bbmin.z += radius;
                }
                m_ModelHitboxes[szModelName].Add(i, model_hitbox);
            }

            if (m_ModelHitboxes[szModelName].ContainsKey(iIndex))
            {
                return(m_ModelHitboxes[szModelName][iIndex]);
            }
            else
            {
                return(default(mstudiobbox_t));
            }
        }
 public void RegisterGlowObject(IClientEntity pEntity, Color color, bool bInnerGlow, bool bFullRender = false)
 {
     RegisterGlowObject(pEntity.GetGlowIndex(), color.R, color.G, color.B, color.A, bInnerGlow, bFullRender);
 }