Valens wrote: ↑Thu Sep 19, 2019 9:34 am
I'm interested in FloatProperty OakGame.ZoneMapGlobalsData.PlayerUnfogRadius
Can someone help me with some advice in order to be able to change the value?
Interesting
Will give it a run-down.
EDIT #1:
The Property offset is at 0x44 in the UObject. That leads to 0x1F0 offset, which is the location in another UObject (perhaps OakGame), where you would find that Float. Will investigate more.
EDIT #2: Think I got it; should apply to this object, I believe:
"[00202430] ZoneMapGlobalsData ZoneMapGlobals.ZoneMapGlobals 0x00000000704BB5C0"
Time to test
EDIT #3: Aaaand.. it works
I doubled it (3000->6000).
Note that you have to leave to main menu and re-enter map (or travel to another map and back) for this to work. It's not applied in real-time, just at init-time. The locations where the Float is used in ASM are these; maybe someone wants to script them out
Code: Select all
[1]:
Borderlands3.exe+16CC51C0 - 40 53 - push rbx
Borderlands3.exe+16CC51C2 - 48 83 EC 20 - sub rsp,20
Borderlands3.exe+16CC51C6 - 48 8B 05 0B4495EF - mov rax,[Borderlands3.exe+66195D8] { (28111000) }
Borderlands3.exe+16CC51CD - 48 89 CB - mov rbx,rcx
Borderlands3.exe+16CC51D0 - 48 85 C0 - test rax,rax
Borderlands3.exe+16CC51D3 - 75 0C - jne Borderlands3.exe+16CC51E1
Borderlands3.exe+16CC51D5 - E8 46FEDBEB - call Borderlands3.exe+2A85020
Borderlands3.exe+16CC51DA - 48 8B 05 F74395EF - mov rax,[Borderlands3.exe+66195D8] { (28111000) }
Borderlands3.exe+16CC51E1 - 48 8B 40 58 - mov rax,[rax+58]
Borderlands3.exe+16CC51E5 - 48 85 C0 - test rax,rax
Borderlands3.exe+16CC51E8 - 74 07 - je Borderlands3.exe+16CC51F1
Borderlands3.exe+16CC51EA - 48 8B 80 70050000 - mov rax,[rax+00000570]
Borderlands3.exe+16CC51F1 - 48 85 C0 - test rax,rax
Borderlands3.exe+16CC51F4 - 74 16 - je Borderlands3.exe+16CC520C
Borderlands3.exe+16CC51F6 - F3 0F10 80 F0010000 - movss xmm0,[rax+000001F0] <-- Float here
Borderlands3.exe+16CC51FE - F3 0F11 83 A8010000 - movss [rbx+000001A8],xmm0
Borderlands3.exe+16CC5206 - 48 83 C4 20 - add rsp,20
Borderlands3.exe+16CC520A - 5B - pop rbx
Borderlands3.exe+16CC520B - C3 - ret
Borderlands3.exe+16CC520C - 0F57 C0 - xorps xmm0,xmm0
Borderlands3.exe+16CC520F - F3 0F11 83 A8010000 - movss [rbx+000001A8],xmm0
Borderlands3.exe+16CC5217 - 48 83 C4 20 - add rsp,20
Borderlands3.exe+16CC521B - 5B - pop rbx
Borderlands3.exe+16CC521C - C3 - ret
[2]:
..
..
Borderlands3.exe+16C9B89D - 48 8B 05 34DD97EF - mov rax,[Borderlands3.exe+66195D8] { (28111000) }
Borderlands3.exe+16C9B8A4 - 48 8B 48 58 - mov rcx,[rax+58]
Borderlands3.exe+16C9B8A8 - 48 85 C9 - test rcx,rcx
Borderlands3.exe+16C9B8AB - 74 07 - je Borderlands3.exe+16C9B8B4
Borderlands3.exe+16C9B8AD - 48 8B B9 70050000 - mov rdi,[rcx+00000570]
Borderlands3.exe+16C9B8B4 - 48 85 FF - test rdi,rdi
Borderlands3.exe+16C9B8B7 - 74 0A - je Borderlands3.exe+16C9B8C3
Borderlands3.exe+16C9B8B9 - F3 0F10 87 F0010000 - movss xmm0,[rdi+000001F0] <-- Float
Borderlands3.exe+16C9B8C1 - EB 03 - jmp Borderlands3.exe+16C9B8C6
Borderlands3.exe+16C9B8C3 - 0F57 C0 - xorps xmm0,xmm0
Borderlands3.exe+16C9B8C6 - 48 89 D9 - mov rcx,rbx
Borderlands3.exe+16C9B8C9 - F3 0F11 83 A8010000 - movss [rbx+000001A8],xmm0
Borderlands3.exe+16C9B8D1 - E8 4AC23EEA - call Borderlands3.exe+1087B20
Borderlands3.exe+16C9B8D6 - F3 0F11 83 A4010000 - movss [rbx+000001A4],xmm0
Borderlands3.exe+16C9B8DE - 4C 8B 7C 24 70 - mov r15,[rsp+70]
Borderlands3.exe+16C9B8E3 - 48 8B 5C 24 78 - mov rbx,[rsp+78]
Borderlands3.exe+16C9B8E8 - 48 83 C4 40 - add rsp,40
Borderlands3.exe+16C9B8EC - 41 5E - pop r14
Borderlands3.exe+16C9B8EE - 5F - pop rdi
Borderlands3.exe+16C9B8EF - 5E - pop rsi
Borderlands3.exe+16C9B8F0 - C3 - ret
I'll check if that [rbx+1A8] is something that is read in real-time. Maybe we don't need a re-run of the map after all
To anyone else reading this: the adjustment done here INCREASES your Unfog radius (unfogging the map/mini-map).
EDIT #4: Yeah, that RBX is this UObject:
"[00713375] FogOfDiscoveryComponent Sacrifice_P.Sacrifice_P.PersistentLevel.BPCont_Player_C_1.FoDComponent 0x0000000028F32400"
Add 28F32400+1A8 to your table, as Float, and play with it
(note: 0x28F32400 will be different on your end). From what I can tell, it's read in real-time and you can adjust the unfog radius by changing the value of the Float. Easy peasy
Here's an example, I'm using 1 here
If I use 500, I get this:
If I use 1000, I get this:
For 3000:
And lastly, 6000:
BR,
Sun
P.S.: Watch the trainers now having an "Increase Unfog Radius" option T_T... I can expect anything from them.