// FXT: COORD X ~1~.~1~ Y ~1~.~1~ Z ~1~.~1~ {$CLEO} 0000: const snTimeInMilliseconds = 0x00885B48 nLastClockTick = 0x009430E4 fTimeStep = 0x008E2CB4 snPreviousTimeInMilliseconds = 0x008F29E4 end { adjusting GT and WT to 0x40000000 } //05DF: write_memory snTimeInMilliseconds size 4 value 0x40000000 virtual_protect 0 //05DF: write_memory nLastClockTick size 4 value 0x40000000 virtual_protect 0 { temp solution 1 : advance the global timer by 32ms each frame } 05DF: write_memory 0x004AD2C0 size 2 value 0x9090 virtual_protect 1 05DF: write_memory 0x004AD2C9 size 1 value 32 virtual_protect 1 { print snTimeInMilliseconds - snPreviousTimeInMilliseconds delta to 10@ } // 10@ ptr //05EC: 10@ = current_thread_pointer //10@ += 0x30 //10@ += 40 // mov edx, offset 10@ // mov [edx], eax //05DF: write_memory 0x004AD2D8 size 1 value 0xBA virtual_protect 1 //05DF: write_memory 0x004AD2D9 size 4 value 10@ virtual_protect 1 //05DF: write_memory 0x004AD2DD size 2 value 0x0289 virtual_protect 1 // cmp eax, 60 //05DF: write_memory 0x004AD2DF size 1 value 0x83 virtual_protect 1 //05DF: write_memory 0x004AD2E0 size 2 value 0x3CF8 virtual_protect 1 // jmp -D6 //05DF: write_memory 0x004AD2E2 size 2 value 0xD6EB virtual_protect 1 // jmp +1F //05DF: write_memory 0x004AD2B7 size 2 value 0x1FEB virtual_protect 1 //05DF: write_memory 0x004AD2B9 size 1 value 0x90 virtual_protect 1 { disable QueryPerformanceCounter() and use timeGetTime() } //05DF: write_memory 0x005F7610 size 4 value 0 virtual_protect 0 while true wait 0 if 0256: player $PLAYER_CHAR defined then { fTimeStep = 0.5 } //05DF: write_memory fTimeStep size 4 value 0.5 virtual_protect 0 { snTimeInMilliseconds ++ } //05E0: 0@ = read_memory snTimeInMilliseconds size 4 virtual_protect 0 //0@++ //05DF: write_memory snTimeInMilliseconds size 4 value 0@ virtual_protect 0 { read snTimeInMilliseconds, snTimeInMilliseconds, nLastClockTick values } 05E0: 0@ = read_memory snTimeInMilliseconds size 4 virtual_protect 0 05E0: 1@ = read_memory snPreviousTimeInMilliseconds size 4 virtual_protect 0 05E0: 3@ = read_memory nLastClockTick size 4 virtual_protect 0 { calculate frame delta time and check for 0 } 0084: 2@ = 0@ 0060: 2@ -= 1@ if 2@ == 0 then 0109: player $PLAYER_CHAR money += 1 end { print fTimeStep as float } 05E0: 5@ = read_memory fTimeStep size 4 virtual_protect 0 05F5: call_scm_func @RealCoordSet params_count 1 5@ store_to 6@ 7@ 0309: text 6numbers 'COORD' 0@ 1@ 2@ 3@ 6@ 7@ 300 ms 5 end end :RealCoordSet if 0@ < 0 then 1@ = -1 else 1@ = 1 end float 0@ float 1@ float 8@ float 9@ 0@ *= 100.0 008C: 0@ = float_to_integer 0@ 0094: 0@ = absolute_integer 0@ float 8@ = 0@ 9@ = 0@ 9@ /= 100 9@ *= 100 8@ -= 9@ 0@ /= 100 0068: 0@ *= 1@ 05F6: ret 2 0@ 8@