I have been developing an EXTERNAL skin changer. I have set up the gui and everything but can't set up the skin changer part. I've been looking for a solution in several threads but can't really find any help. I'm sure that my offsets are up-to-date.
Code:
int main()
{
	val.process = mem.getProcess("csgo.exe");
	val.gameModule = mem.getModule(val.process, "client_panorama.dll");
	val.engine = mem.getModule(val.process, "engine.dll");

	val.localPlayer = mem.readMem<DWORD>(val.gameModule + offset.dwLocalPlayer);

	if (val.localPlayer == NULL)
		while (val.localPlayer == NULL)
			val.localPlayer = mem.readMem<DWORD>(val.gameModule + offset.dwLocalPlayer);

	int PaintKit = 0;
	int Seed = 0;

	const int entityQuality = 3;
	const float fallbackWear = 0.0001f;
	const int StatTrack = 1337;

	for (int i = 0; i < 8; i++) {
		int Weapon = mem.readMem<int>(val.localPlayer + netvar.m_hMyWeapons + i * 0x4) & 0xFFF;
		Weapon = mem.readMem<int>(val.gameModule + offset.dwEntityList + (Weapon - 1) * 0x10);
		short WeaponID = mem.readMem<short>(Weapon + netvar.m_iItemDefinitionIndex);
		if (WeaponID == 0) { continue; }
		std::cout << WeaponID << std::endl;

		switch (WeaponID)
		{
		case 1: //Deagle
			std::cout << "Deagle";
			PaintKit = 37;
			break;
		case 4: //Glock
			std::cout << "Glock";
			PaintKit = 48;
			break;
		case 7: //AK47
			std::cout << "AK";
			PaintKit = 180;
			Seed = 321;
			break;
		case 9: //AWP
			std::cout << "AWP";
			PaintKit = 446;
			break;
		case 16: //M4A4
			std::cout << "M4A4";
			PaintKit = 449;
			break;
		}
		if (mem.readMem<int>(netvar.m_iItemIDHigh) == -1) { continue; }

		mem.writeMem<int>(netvar.m_iItemIDHigh, -1);
		mem.writeMem<int>(Weapon + netvar.m_nFallbackPaintKit, PaintKit);
		mem.writeMem<int>(Weapon + netvar.m_nFallbackSeed, Seed);
		mem.writeMem<int>(Weapon + netvar.m_nFallbackStatTrak, StatTrack);
		mem.writeMem<float>(Weapon + netvar.m_flFallbackWear, fallbackWear);
		
		if (StatTrack >= 0) {
			mem.writeMem<int>(Weapon + netvar.m_iEntityQuality, 9);
		}
		else {
			mem.writeMem<int>(Weapon + netvar.m_iEntityQuality, 0);
		}
		int ClientState = mem.readMem<int>(val.engine + offset.dwClientState);
		mem.writeMem<int>(ClientState + offset.clientstate_delta_ticks, -1);
	}
	return 0;
}