Code:
[Enable]
alloc(DupeX, 256)
alloc(CharESI, 4)
alloc(CharPID, 4)
alloc(PreviousESI, 4)
alloc(DupeXX, 4)
registerSymbol(DupeXX)
label(NoVac)
label(DupeXVac)
label(LoadChar)
label(RefreshPID)
label(EndLoadChar)
label(LoadESI)
label(LoadPID)
label(EndLoadPID)
label(AceDupeX)
label(EndADX)
label(LoadPrevious)
label(NormalDupeX)
label(EndDupeX)
CharESI:
dd 00000000
CharPID:
dd 00000000
PreviousESI:
dd 00000000
DupeXX:
dd 00000000
DupeX:
push eax
xor eax, eax
cmp eax, [DupeXX]
je NoVac
jmp DupeXVac
NoVac:
mov [CharESI], eax
mov [CharPID], eax
mov [PreviousESI], eax
jmp NormalDupeX
DupeXVac:
call LoadChar
call AceDupeX
cmp [CharESI], esi
je NormalDupeX
call LoadPrevious
jmp NormalDupeX
LoadChar:
call LoadESI
cmp eax, [CharPID]
je RefreshPID
cmp [DupeXX], eax
jl RefreshPID
jmp EndLoadChar
RefreshPID:
call LoadPID
EndLoadChar:
ret
LoadESI:
push eax
mov eax,[007D822C]
mov eax,[eax+8]
mov eax, [eax+5A0]
sub eax, C
mov [CharESI], eax
pop eax
ret
LoadPID:
push ebx
mov ebx, [CharESI]
mov ebx, [ebx+110]
cmp eax, ebx
je EndLoadPID
mov [CharPID], ebx
EndLoadPID:
pop ebx
ret
AceDupeX:
push esi
mov esi, [PreviousESI]
test esi, esi
je EndDDX
mov eax, [CharPID]
mov [esi+110],eax
mov [esi+114],eax
EndDDX:
pop esi
ret
LoadPrevious:
mov [PreviousESI], esi
ret
NormalDupeX:
pop eax
mov [esi+114], edi
jmp EndDupeX
006B7EAF:
jmp DupeX
nop
EndDupeX:
[Disable]
dealloc(DupeX)
dealloc(CharESI)
dealloc(CharPID)
dealloc(PreviousESI)
dealloc(DupeXX)
unregisterSymbol(DupeXX)
006B7EAF:
mov [esi+00000114],edi
Add DupeXX and change the value to 2 and tick DupeXX.Thats all.
Credits go to me for making the script and allocation. :p :p :p :p
