-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfind_vm_2.py
More file actions
25 lines (20 loc) · 957 Bytes
/
Copy pathfind_vm_2.py
File metadata and controls
25 lines (20 loc) · 957 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import json
with open('client_dll.json', 'r') as f:
data = json.load(f)
classes = data['client.dll']['classes']
def find_field(classname, fieldname):
if classname not in classes:
return None
cls = classes[classname]
if fieldname in cls['fields']:
return cls['fields'][fieldname]
if cls['parent']:
return find_field(cls['parent'], fieldname)
return None
# Try Base Player Pawn
print(f"m_pViewModelServices in C_BasePlayerPawn: {find_field('C_BasePlayerPawn', 'm_pViewModelServices')}")
print(f"m_hViewModel in CCSPlayer_ViewModelServices: {find_field('CCSPlayer_ViewModelServices', 'm_hViewModel')}")
print(f"m_hViewModel in CPlayer_ViewModelServices: {find_field('CPlayer_ViewModelServices', 'm_hViewModel')}")
# List all fields in CCSPlayer_ViewModelServices
if 'CCSPlayer_ViewModelServices' in classes:
print("CCSPlayer_ViewModelServices fields:", classes['CCSPlayer_ViewModelServices']['fields'])