TwMs v267.5 物品過濾(Item Filter)
//TwMs v267.5 物品過濾(Item Filter)Alloc(ItemFilter,512,142C50C3F)
Alloc(FilterSwitch,4,142C50C3F)
Alloc(ItemList,2048,142C50C3F)
Label(Filter_Normal)
Label(Skip_Normal)
Label(End_Normal)
Label(Filter_OnlyKeep)
Label(Filter_OnlyKeep_Loop)
Label(Match_OnlyKeep)
Label(Skip_OnlyKeep)
Label(End_OnlyKeep)
//全局開關,0為物品過濾,若改為1則僅保留列表中的物品
FilterSwitch:
DD 0
//物品列表
ItemList:
DD #4001832 //咒文的痕跡
DD 0//這行務必要保留
ItemFilter:
call 140D17A90
push rsi
mov rsi, ItemList
mov edx, dword ptr ds:
cmp edx, 1
je Filter_OnlyKeep
jmp Filter_Normal
Filter_Normal:
cmp eax, C350
jle End_Normal
cmp dword ptr ds:, 0
je End_Normal
cmp dword ptr ds:, eax
je Skip_Normal
add rsi, 4
jmp Filter_Normal
Skip_Normal:
xor eax, eax
jmp End_Normal
End_Normal:
pop rsi
jmp 142C50C3F+5
Filter_OnlyKeep:
cmp eax, C350
jle End_OnlyKeep
cmp dword ptr ds:, 0
je Skip_OnlyKeep
Filter_OnlyKeep_Loop:
mov edx, dword ptr ds:
cmp edx, 0
je Skip_OnlyKeep
cmp eax, edx
je Match_OnlyKeep
add rsi, 4
jmp Filter_OnlyKeep_Loop
Match_OnlyKeep:
pop rsi
jmp 142C50C3F+5
Skip_OnlyKeep:
xor eax, eax
pop rsi
jmp 142C50C3F+5
End_OnlyKeep:
pop rsi
jmp 142C50C3F+5
142C50C3F:
jmp ItemFilter
142C50C3F:
call 140D17A90
DeAlloc(ItemList)
DeAlloc(FilterSwitch)
DeAlloc(ItemFilter)
頁:
[1]