private void LoopTMR_Tick(object sender, EventArgs e) { if (attach) { try { // Step2 Value를 찾아서 모니터링 (현재 값이 무엇인지 계속적으로 확인) int step2SturctAddress = mem.ReadMultiLevelPointer(step2Data.baseAddress, 4, step2Data.multiLevel); int step2value = mem.ReadInt(step2SturctAddress + step2Data.offsets.health); Step2ValueLBL.Text = "Step 2 Value: " + step2value; // Step8 Value를 찾아서 모니터링 int step8SturctAddress = mem.ReadMultiLevelPointer(step8Data.baseAddress, 4, step8Data.multiLevel); int step8value = mem.ReadInt(step8SturctAddress + step8Data.offsets.health); Step8ValueLBL.Text = "Step 8 Value: " + step8value; // Step9의 플레이어 데이터를 모니터링 int p1Base = mem.ReadMultiLevelPointer(step9PlayerData.baseAddress, 4, step9PlayerData.step9P1multiLevel); int p2Base = mem.ReadMultiLevelPointer(step9PlayerData.baseAddress, 4, step9PlayerData.step9P2multiLevel); int p3Base = mem.ReadMultiLevelPointer(step9PlayerData.baseAddress, 4, step9PlayerData.step9P3multiLevel); int p4Base = mem.ReadMultiLevelPointer(step9PlayerData.baseAddress, 4, step9PlayerData.step9P4multiLevel); P1LBL.Text = "P1: [" + mem.ReadInt(p1Base + step9PlayerData.teamOffset) + " 팀]" + mem.ReadString(p1Base + step9PlayerData.nameOffset) + ": " + mem.ReadFloat(p1Base + step9PlayerData.healthOffset); P2LBL.Text = "P2: [" + mem.ReadInt(p2Base + step9PlayerData.teamOffset) + " 팀]" + mem.ReadString(p2Base + step9PlayerData.nameOffset) + ": " + mem.ReadFloat(p2Base + step9PlayerData.healthOffset); P3LBL.Text = "P3: [" + mem.ReadInt(p3Base + step9PlayerData.teamOffset) + " 팀]" + mem.ReadString(p3Base + step9PlayerData.nameOffset) + ": " + mem.ReadFloat(p3Base + step9PlayerData.healthOffset); P4LBL.Text = "P4: [" + mem.ReadInt(p4Base + step9PlayerData.teamOffset) + " 팀]" + mem.ReadString(p4Base + step9PlayerData.nameOffset) + ": " + mem.ReadFloat(p4Base + step9PlayerData.healthOffset); // 크랙을 동작시켰을때, 현재 크랙이 값을 수정하도록 만드는 작업 int hotkey = ProcessMemoryReaderApi.GetKeyState(0x02); // 마우스 오른쪽키에 대한 상태 if ((hotkey & 0x8000) != 0) // 키가 눌렸을 경우 { if (crackState == false) // 크랙이 꺼져있는 경우에는 크랙 켜고 크랙 시도! { crackState = true; CrackStatusLBL.Text = "크랙 상태: On"; } else // 크랙이 켜져있는 경우에는 크랙을 끕니다. { crackState = false; CrackStatusLBL.Text = "크랙 상태: Off"; } } if (crackState) { Step2Solve(step2SturctAddress); // step2 Value를 1000으로 수정 Step8Solve(step8SturctAddress); // step2 Value를 1000으로 수정 } } catch (Exception ex) { crackState = false; MessageBox.Show("읽기 쓰기 오류: " + ex.Message); } } }