....
if(ProcHandle != 0){
int ADDR1, ADDR2;
int setValue = 1;
DWORD dwFh1 = 0x140C124 ;
DWORD dwFh2 = 0x140C148;
ReadProcessMemory (ProcHandle,(LPCVOID)dwFh1,&ADDR1,sizeof(ADDR1),NULL);
ReadProcessMemory (ProcHandle,(LPCVOID)dwFh2,&ADDR2,sizeof(ADDR2),NULL);
ADDR1 += 0xC;
ADDR2 += 0xC;
while(1){
WriteProcessMemory(ProcHandle,(LPVOID)ADDR1,&setValue,sizeof(setValue),NULL);
WriteProcessMemory(ProcHandle,(LPVOID)ADDR2,&setValue,sizeof(setValue),NULL);
Sleep(1000);
}
...


....
if(ProcHandle != 0){
int ADDR1, ADDR2;
int setValue = 1;
DWORD dwFh1 = 0x140C124 ;
DWORD dwFh2 = 0x140C148;
ReadProcessMemory (ProcHandle,(DWORD)dwFh1,&ADDR1,sizeof(ADDR1),NULL);
ReadProcessMemory (ProcHandle,(DWORD)dwFh2,&ADDR2,sizeof(ADDR2),NULL);
ADDR1 += 0xC;
ADDR2 += 0xC;
while(1){
WriteProcessMemory(ProcHandle,(DWORD)ADDR1,&setValue,sizeof(setValue),NULL);
WriteProcessMemory(ProcHandle,(DWORD)ADDR2,&setValue,sizeof(setValue),NULL);
Sleep(1000);
}
...




WriteInteger(ReadInteger(0x0140C124) + 0xC, 1);
He's using a pointer to find the address. The address you have might change upon game restart or don't work at all for other people. The pointer (0x0140C124) holds the address of the right offset every time, read it, add 0xC (cause its a pointer) and you'll have the right one 
