Thread Rating:
  • 8 Vote(s) - 3.88 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[14/08/09] LF2 DLL Framework
#91
Well is that possible to make specific ID disable from TS instead ?

And the code should be
Quote:
cmp edx, 12h
je skip
cmp edx,13h
jnz smoke

smoke:
jmp dword ptr ds:[ts_182]
skip:
jmp dword ptr ds:[ts_181]
Instead i think
Thank you
Reply
Thanks given by:
#92
Code:
cmp edx,12h je skip

That will make state 18 never show smoke, even if timestop is disabled.

Code:
cmp edx, 13h jnz smoke smoke:
doesn't do anything. It will ALWAYS go to smoke, since if the jump isn't taken, it will still go to smoke as that is the next line.

I'm pretty sure my code is right.

If timestop is enabled: don't do smoke.
If state 18 show smoke.
If not state 19, don't show smoke
otherwise show smoke.

That is my code. If timestop is enabled, smoke will never show. If timestop isn't enabled, state 18 and 19 will have smoke(normal mode).

If my code doesn't work, there is a chance that I got ts_182 and ts_181 mixed up.

I think this will disable timestop for a specific ID(replace the original timeloop):

Code:
time_loop proc MOV EDX,DWORD PTR DS:[450B90h] pushad mov eax,0 mov timeStop, FALSE looop: cmp byte ptr ds:[458B00h+eax+4],0 je chk_chk_boom mov ebx, dword ptr ds:[458B00h+eax+194h] mov ebx, dword ptr ds :[ebx+368h] cmp dword ptr ds:[ebx+6f4h], 1337 ;ID goes here je chk_chk_boom mov ebx,dword ptr ds:[memAlloc] lea ebx,dword ptr ds:[ebx+eax*8] cmp byte ptr ds:[ebx],1 jnz skip mov timeStop,TRUE jmp return chk_chk_boom: mov ebx,dword ptr ds:[memAlloc] lea ebx,dword ptr ds:[ebx+eax*8] mov byte ptr ds:[ebx],0 mov dword ptr ds:[ebx+1],0 skip: inc eax cmp eax,190h jl looop return: popad ret time_loop endp

If this doesn't work, then the timestop state must be modified like this:

Code:
timestop: CMP EAX,10000 jl return CMP EAX,20000 jge return sub eax,10000 push ecx push edx push esi mov ecx,dword ptr ds:[memAlloc] lea ecx,dword ptr ds:[ecx+edi*8] mov dword ptr ds:[ecx+1],eax mov byte ptr ds:[ecx],1 xor edx,edx timestop_loop: mov esi, dword ptr ds:[458B00h+edx*4+194h] mov esi, dword ptr ds:[esi+368h] cmp dword ptr ds:[esi+6f4h], 1337 ;ID goes here je timestop_skip mov ecx,dword ptr ds:[memAlloc] lea ecx,dword ptr ds:[ecx+edi*8] mov dword ptr ds:[ecx+1],eax mov byte ptr ds:[ecx],1 timestop_skip: inc edx cmp edx, 400 jl timestop_loop pop esi pop edx pop ecx

Sadly, I don't remember how I coded it, but I think changing the state is more likely to work.
[Image: doty7Xn.gif]

10 ʏᴇᴀʀs sɪɴᴄᴇ ɪʀᴄ ɢᴏᴏᴅ.ɪ ᴡᴀʟᴋ ᴛʜʀᴏᴜɢʜ ᴛʜᴇ ᴇᴍᴘᴛʏ sᴛʀᴇᴇᴛs ᴛʀʏɪɴɢ ᴛᴏ ᴛʜɪɴᴋ ᴏғ sᴏᴍᴇᴛʜɪɴɢ ᴇʟsᴇ ʙᴜᴛ ᴍʏ ᴘᴀᴛʜ ᴀʟᴡᴀʏs ʟᴇᴀᴅs ᴛᴏ ᴛʜᴇ ɪʀᴄ. ɪ sᴛᴀʀᴇ ᴀᴛ ᴛʜᴇ sᴄʀᴇᴇɴ ғᴏʀ ʜᴏᴜʀs ᴀɴᴅ ᴛʀʏ ᴛᴏ sᴜᴍᴍᴏɴ ᴛʜᴇ ɢᴏᴏᴅ ɪʀᴄ. ɪ ᴡᴀᴛᴄʜ ᴏᴛʜᴇʀ ɪʀᴄ ᴄʜᴀɴɴᴇʟs ʙᴜᴛ ɪᴛ ɪs ɴᴏ ɢᴏᴏᴅ. ɪ ᴘᴇsᴛᴇʀ ᴢᴏʀᴛ ᴀɴᴅ ᴛʀʏ ᴛᴏ ʀᴇsɪsᴛ ʜɪs sᴇxɪɴᴇss ʙᴜᴛ ɪᴛ ɪs ᴀʟʟ ᴍᴇᴀɴɪɴɢʟᴇss. ᴛʜᴇ ᴇɴᴅ ɪs ɴᴇᴀʀ.ɪ ᴛʜᴇɴ ᴜsᴜᴀʟʟʏ ʀᴇᴀᴅ sᴏᴍᴇ ᴏʟᴅ ɪʀᴄ ʟᴏɢs ᴀɴᴅ ᴄʀʏ ᴍʏsᴇʟғ ᴛᴏ sʟᴇᴇᴘ.


Reply
Thanks given by:
#93
Indeed , ts_182 and ts_181 mixed up :/

my problem is
When the code in the third quote replaced the timeloop,
the game crashes while loading

When the code in the forth quote replaced the time stop state,
the game crashes while TS activates

When both of them are replacing the old ones,
the game crashes while loading too
Reply
Thanks given by:




Users browsing this thread: 1 Guest(s)