ESP c# (Вопрос)

Начинающий
Статус
Оффлайн
Регистрация
3 Мар 2017
Сообщения
7
Реакции[?]
0
Поинты[?]
0
Не понимаю как устранить эту ошибку "необработанное исключение типа "System.NullReferenceException"


Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
namespace Hack
{
    public partial class Form1 : Form
    {
        private static VAMemory mem;
        private static int bClient;
        private static int A = 210;
        private static int adress;
        private struct GlowLunes
        {
            public float r;
            public float g;
            public float b;
            public float a;
            public bool rwo;
            public bool rwuo;
        }
        public Form1()
        {
            InitializeComponent();
        }
        class Offsets
        {
            public static int oLocalPlayer = 0xA9ADEC;
            public static int oEntityList = 0xA300; //
            public static int oTeamNum = 0xF0;
            public static int oGlowIndex = 0xA310;
            public static int oGlowObject = 0x4F94970; //
            public static int oDormant = 0xE9; //
            public static int oHealth = 0xFC;
            public int ToInt32 { get; }
        }
        private void B_WallHack_Click(object sender, EventArgs e)
        {
            VAMemory mem = new VAMemory("csgo");
            if (GetModuleAddy())
            {
                while (true)
                {
                    WallH();
                }
            }
 
        }
        private static bool GetModuleAddy()
        {
            try
            {
                Process[] p = Process.GetProcessesByName("csgo");
                if (p.Length > 0)
                {
                    foreach (ProcessModule m in p[0].Modules)
                    {
                        if (m.ModuleName == "client.dll")
                        {
                            bClient = (int)m.BaseAddress;
                            return true;
                        }
                    }
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception ex)
            {
                return false;
            }
        }
        private static bool WallH()
        {
            while (true)
            {
                GlowLunes myTeam = new GlowLunes()
                {
                    r = 1,
                    g = 0,
                    b = 0,
                    a = 1,
                    rwo = true,
                    rwuo = true
                };
                GlowLunes enemyTeam = new GlowLunes()
                {
                    r = 0,
                    g = 0,
                    b = 1,
                    a = 1,
                    rwo = true,
                    rwuo = true
                };
                {
                    adress = bClient + Offsets.oLocalPlayer;
                    int LocalPlayer = mem.ReadInt32((IntPtr)adress); // необработанное исключение типа "System.NullReferenceException"
                    adress = LocalPlayer + Offsets.oTeamNum;
                    int PlayerTeam = mem.ReadInt32((IntPtr)adress);
                    adress = LocalPlayer + Offsets.oDormant;
                    if (!mem.ReadBoolean((IntPtr)adress))
                    {
                        for (int i = 1; i <= 64; i++)
                        {
                            adress = bClient + Offsets.oEntityList + (i - 1) * 0x10;
                            int EntityList = mem.ReadInt32((IntPtr)adress);
                            adress = EntityList + Offsets.oTeamNum;
                            int HisTeam = mem.ReadInt32((IntPtr)adress);
                            adress = EntityList + Offsets.oDormant; // oDorman
                            if (!mem.ReadBoolean((IntPtr)adress) && HisTeam != 0)
                            {
                                adress = EntityList + Offsets.oGlowIndex; //oGlowIndex
                                int GlowIndex = mem.ReadInt32((IntPtr)adress);
                                if (PlayerTeam == HisTeam)
                                {
                                    adress = bClient + Offsets.oGlowObject;
                                    int GlowObject = mem.ReadInt32((IntPtr)adress);
                                    int CALC = GlowIndex * 0x38 + 0X4;
                                    int CURRENT = GlowObject + CALC;
                                    mem.WriteFloat((IntPtr)CURRENT, myTeam.r);
                                    CALC = GlowIndex * 0x38 + 0x8;
                                    CURRENT = GlowObject + CALC;
                                    mem.WriteFloat((IntPtr)CURRENT, myTeam.g);
                                    CALC = GlowIndex * 0x38 + 0xC;
                                    CURRENT = GlowObject + CALC;
                                    mem.WriteFloat((IntPtr)CURRENT, myTeam.b);
                                    CALC = GlowIndex * 0x38 + 0x10;
                                    CURRENT = GlowObject + CALC;
                                    mem.WriteFloat((IntPtr)CURRENT, myTeam.a);
                                    CALC = GlowIndex * 0x38 + 0x24;
                                    CURRENT = GlowObject + CALC;
                                    mem.WriteBoolean((IntPtr)CURRENT, myTeam.rwo);
                                    CALC = GlowIndex * 0x38 + 0x25;
                                    CURRENT = GlowObject + CALC;
                                    mem.WriteBoolean((IntPtr)CURRENT, myTeam.rwuo);
                                }
                                else
                                {
                                    adress = bClient = bClient + Offsets.oGlowObject;
                                    int GlowObject = mem.ReadInt32((IntPtr)adress);
                                    int CALC = GlowIndex * 0x38 + 0X4;
                                    int CURRENT = GlowObject + CALC;
                                    mem.WriteFloat((IntPtr)CURRENT, enemyTeam.r);
                                    CALC = GlowIndex * 0x38 + 0x8;
                                    CURRENT = GlowObject + CALC;
                                    mem.WriteFloat((IntPtr)CURRENT, enemyTeam.g);
                                    CALC = GlowIndex * 0x38 + 0xC;
                                    CURRENT = GlowObject + CALC;
                                    mem.WriteFloat((IntPtr)CURRENT, enemyTeam.b);
                                    CALC = GlowIndex * 0x38 + 0x10;
                                    CURRENT = GlowObject + CALC;
                                    mem.WriteFloat((IntPtr)CURRENT, enemyTeam.a);
                                    CALC = GlowIndex * 0x38 + 0x24;
                                    CURRENT = GlowObject + CALC;
                                    mem.WriteBoolean((IntPtr)CURRENT, enemyTeam.rwo);
                                    CALC = GlowIndex * 0x38 + 0x25;
                                    CURRENT = GlowObject + CALC;
                                    mem.WriteBoolean((IntPtr)CURRENT, enemyTeam.rwuo);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
 
В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Скорее всего adress = NULL;
по пробуй в начале сделать
Код:
private static int adress = 0;
 
В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
3 Мар 2017
Сообщения
7
Реакции[?]
0
Поинты[?]
0
Ты пытаешься использовать не инициализированную ссылку.
Теперь ошибок не выдает, но отрисовка не работает.. Может у меня с офссетам что-то не так
Код:
  public static int oLocalPlayer = 0xA9ADEC;
            public static int oEntityList = 0xA300; //
            public static int oTeamNum = 0xF0;
            public static int oGlowIndex = 0xA310;
            public static int oGlowObject = 0x4F94970; //
            public static int oDormant = 0xE9; //
            public static int oHealth = 0xFC;
 
Проблема скорее всего в кривом оффсете. Если нет, то в VAMemory нет хэндла процесса. Рыскай.
1)Это не WallHack и не совсем ESP. Это фича игры, которая позволяет подсветить противников и зовется GlowESP.
2)Что за говнокод. Сделай отдельную структуру для Entity, LocalPlayer и GlowStruct. Пример:
Код:
    public class Entity
    {
        #region Fields
        public int Address, ID;
        public int Health, Armor, TeamNumber;
        public bool Dormant;
        public int GlowIndex, BoneMatrix;
        public Vector3 Position = Vector3.Zero;
        #endregion
        #region Constructors
        public Entity(int playerAddress, int id) { Address = playerAddress; ID = id; }
        #endregion
        #region Methods
        public void Read()
        {
            Address = Engine.Shock[(IntPtr)Engine.DLLClientAddress].Read<int>(Offsets.dwEntityList + (ID + 1) * 0x10);
            if (Address != 0)
            {
                Health = Engine.Shock[(IntPtr)Address].Read<int>(Offsets.oHealth);
                Armor = Engine.Shock[(IntPtr)Address].Read<int>(Offsets.oArmor);
                TeamNumber = Engine.Shock[(IntPtr)Address].Read<int>(Offsets.oTeamNum);
                Dormant = Engine.Shock[(IntPtr)Address].Read<bool>(Offsets.oDormant);
                GlowIndex = Engine.Shock[(IntPtr)Address].Read<int>(Offsets.oGlowIndex) * 0x38;
                BoneMatrix = Engine.Shock[(IntPtr)Address].Read<int>(Offsets.oBoneMatrix);
                Dormant = Engine.Shock[(IntPtr)Address].Read<bool>(Offsets.oDormant);
                Extensions.AsVector3(Engine.Shock[(IntPtr)Address].Read<float>(Offsets.oVecOrigin, 3), ref Position);
            }
        }
        public void SetGlow(GlowESP.Glow glow)
        {
            int glowResult = Engine.Shock[(IntPtr)Offsets.GlowObject].Read<int>() + GlowIndex;
            GlowStruct gStruct = glow.GlowStruct;
            switch (glow.HealthBased)
            {
                case true:
                    float hp = Health / 100f;
                    Engine.Shock[(IntPtr)glowResult].Write(0x4, 1 - hp);
                    Engine.Shock[(IntPtr)glowResult].Write(0x8, hp);
                    Engine.Shock[(IntPtr)glowResult].Write(0xC, 0);
                    break;
                case false:
                    glow.GlowStruct.Color.CountFloats();
                    Engine.Shock[(IntPtr)glowResult].Write(0x4, gStruct.Color.RF);
                    Engine.Shock[(IntPtr)glowResult].Write(0x8, gStruct.Color.GF);
                    Engine.Shock[(IntPtr)glowResult].Write(0xC, gStruct.Color.BF);
                    break;
            }
            Engine.Shock[(IntPtr)glowResult].Write(0x10, gStruct.Color.AF);
            Engine.Shock[(IntPtr)glowResult].Write(0x24, gStruct.RWO);
            Engine.Shock[(IntPtr)glowResult].Write(0x25, gStruct.RWUO);
            Engine.Shock[(IntPtr)glowResult].Write(0x26, gStruct.FBR);
        }
        public void SetSpotted() => Engine.Shock[(IntPtr)Address].Write(Offsets.oSpotted, true);
        public Vector3 GetBone(int bone)
        {
            int boneAddress = bone * 0x30 + BoneMatrix;
            return new Vector3(Engine.Shock[(IntPtr)boneAddress].Read<float>(0xC), Engine.Shock[(IntPtr)boneAddress].Read<float>(0x1C), Engine.Shock[(IntPtr)boneAddress].Read<float>(0x2C));
        }
        #endregion
        #region [PUBLIC]Overrides
        public override int GetHashCode() => Address.GetHashCode();
        public override bool Equals(object obj) => Address == ((Entity)obj).Address;
        #endregion
    }
    public class GlowStruct
    {
        #region Fields
        public FColor Color;
        public bool RWO, RWUO, FBR;
        #endregion
        #region Constructors
        public GlowStruct(FColor color, bool rwo, bool rwuo, bool fbr) { Color = color; RWO = rwo; RWUO = rwuo; FBR = fbr; }
        #endregion
    }
3)Не юзай этот морально поседевший VAMemory. Напиши либо свою либу, либо сделай форк MemorySharp. Будет куда быстрее даже с привидением типов.
Ок. Спасибо за советы !
 
Сверху Снизу