And then I realized that the weapon offsets don't always go up by 0x02 then 0x08 so it will crash.
for (DWORD i = 0, offset = 0; i < numOfOffsets; offset += i % 2 == 0 ? 0x02 : 0x08, i++)
*(BYTE*)(*(DWORD*)(*(DWORD*)(WeaponMGR) + offset) + 0x188) = Bulletcount;
What is the perfect for loop?