HelpProper Skin Changer [EXTERNAL]

Posts 1–6 of 6 · Page 1 of 1
Proper Skin Changer [EXTERNAL]
Hi, forceupdate is buggy af i tried everything i could find and still only one method works and it works like trash


The Method
Code:
	for (int i = 1; i <= 3; i++) {

			int tempIndex = Mem->Read<int>(LocalPlayer_Base + m_hMyWeapons + ((i - 1) * 0x4)) & 0xFFF;
			DWORD tempEntity = Mem->Read<DWORD>(Mem->ClientDLL_Base + m_dwEntityList + (tempIndex - 1) * 0x10);
			int id = Mem->Read<DWORD>(tempEntity + m_iItemDefinitionIndex);
			cout << id << endl;
			if (applySkin(tempEntity));
		}
      if (GetAsyncKeyState(VK_F6)) {
		forceUpdate();
	}
idk if there is another method to refresh to make it work everytime without a key. This works 40%. And i say it works 90% when fps is around 265.
I would appreciate a hint or a solution. Anything that helps! Thanks!
Quote Originally Posted by DeivisMac View Post
Hi, forceupdate is buggy af i tried everything i could find and still only one method works and it works like trash


The Method
Code:
	for (int i = 1; i <= 3; i++) {

			int tempIndex = Mem->Read<int>(LocalPlayer_Base + m_hMyWeapons + ((i - 1) * 0x4)) & 0xFFF;
			DWORD tempEntity = Mem->Read<DWORD>(Mem->ClientDLL_Base + m_dwEntityList + (tempIndex - 1) * 0x10);
			int id = Mem->Read<DWORD>(tempEntity + m_iItemDefinitionIndex);
			cout << id << endl;
			if (applySkin(tempEntity));
		}
      if (GetAsyncKeyState(VK_F6)) {
		forceUpdate();
	}
idk if there is another method to refresh to make it work everytime without a key. This works 40%. And i say it works 90% when fps is around 265.
I would appreciate a hint or a solution. Anything that helps! Thanks!
Code:
//Inside for loop
int curPaint = mem.ReadMemory<DWORD>(currentWeaponID + offsets.m_nFallbackPaintKit);
if (fallbackPaint != curPaint)
    var.toggle.ForceUpdate = true;
Code:
//Outside for loop
if (var.toggle.ForceUpdate)
    ForceUpdate();
var.toggle.ForceUpdate = false;
Let me know if you have any questions.
So i cant do what you said. Because im changing all the weapon skins, and forceupdate (after each skin change) deletes other weapon skins.

This is what i did (and it dosnt work still)
Code:
for (int i = 1; i <= 3; i++) {

			int tempIndex = Mem->Read<int>(LocalPlayer_Base + m_hMyWeapons + ((i - 1) * 0x4)) & 0xFFF;
			DWORD tempEntity = Mem->Read<DWORD>(Mem->ClientDLL_Base + m_dwEntityList + (tempIndex - 1) * 0x10);
			int id = Mem->Read<DWORD>(tempEntity + m_iItemDefinitionIndex);
			cout << id << endl;

			applySkin(tempEntity);
			
		}
		update = true;
Code:
if (update) {
		forceUpdate();
		update = false;
	}
Quote Originally Posted by Sandwich View Post
Code:
//Inside for loop
int curPaint = mem.ReadMemory<DWORD>(currentWeaponID + offsets.m_nFallbackPaintKit);
if (fallbackPaint != curPaint)
    var.toggle.ForceUpdate = true;
Code:
//Outside for loop
if (var.toggle.ForceUpdate)
    ForceUpdate();
var.toggle.ForceUpdate = false;
Let me know if you have any questions.
Ok i already said it dosnt work atleast how i understand you said it would. But i tried aplying skin with my client and updating with yours and it works perfectly.
could you tell me how did you write your update method in detail?
Quote Originally Posted by DeivisMac View Post
Ok i already said it dosnt work atleast how i understand you said it would. But i tried aplying skin with my client and updating with yours and it works perfectly.
could you tell me how did you write your update method in detail?
Check the active weapon and the weapon slots. Once the current paint is different from the paint kit, force update. I am doing it the same way you are.
HUD weapon list's skin-name dont update along with forceUpdate() after panorama UI update.

Here is how to do it:
template<class T>

static T* FindHudElement(const char* name)

{

static auto pThis = *reinterpret_cast<DWORD**>(PatternScan(GetModuleHa ndleW(L"client_panorama.dll"), "B9 ? ? ? ? E8 ? ? ? ? 8B 5D 08") + 1);



static auto find_hud_element = reinterpret_cast<DWORD(__thiscall*)(void*, const char*)>(PatternScan(GetModuleHandleW(L"client_pano rama.dll"), "55 8B EC 53 8B 5D 08 56 57 8B F9 33 F6 39 77 28"));

return (T*)find_hud_element(pThis, name);

}



struct hud_weapons_t {

std::int32_t* get_weapon_count() {

return reinterpret_cast<std::int32_t*>(std::uintptr_t(thi s) + 0x80);

}

};
static auto clear_fn = reinterpret_cast<int(__thiscall*)(void*, int)>(PatternScan(GetModuleHandleW(L"client_panora ma.dll"), "55 8B EC 51 53 56 8B 75 08 8B D9 57 6B FE 2C 89 5D FC"));

auto dwHudWeaponSelection = FindHudElement<uintptr_t*>("CCSGO_HudWeaponSelecti on");

if (dwHudWeaponSelection && clear_fn) {

auto pHudWeapons = (int*)(uintptr_t(dwHudWeaponSelection) - 0x20);

if (pHudWeapons && (void*)(uintptr_t(dwHudWeaponSelection) - 0xA0)) {

for (auto i = 0; i < *pHudWeapons; i++) i = clear_fn((void*)(uintptr_t(dwHudWeaponSelection) - 0xA0), i);

*pHudWeapons = 0;

}

}
Posts 1–6 of 6 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us