function hookProjectileSpawn(){
var funcAddr = moduleBase.add(0x8D2ED80)
Interceptor.attach(funcAddr, {
onEnter: function(args){
console.log("[+!!+]function sub_8D2ED80 has been called")
console.log("args0:\t"+ args[0])
console.log("args1:\t"+ args[1])
console.log("args2:\t"+ args[2].readFloat(), args[2].add(0x4).readFloat(), args[2].add(0x8).readFloat())
console.log("args3:\t"+ args[3].readFloat(), args[3].add(0x4).readFloat(), args[3].add(0x8).readFloat())
console.log("args4:\t"+ args[4].readFloat(), args[4].add(0x4).readFloat(), args[4].add(0x8).readFloat())
var actorsAddr = getActorsAddr();
var playerLocation = actorsAddr["PlayerController"].add(0x130).readPointer().add(0x1d0);
var PlayerCameraManager = actorsAddr["PlayerCameraManager"]
var CameraCachePrivate = PlayerCameraManager.add(0x1ae0)
var POV = CameraCachePrivate.add(0x10)
console.log("POV: Location: X: " + POV.readFloat() + "\tY:" + POV.add(0x4).readFloat()+ "\tZ:" + POV.add(0x8).readFloat())
console.log("POV: Rotation: P: " + POV.add(0xc).readFloat() + "\tY:" + POV.add(0xc+0x4).readFloat()+ "\tR:" + POV.add(0xc+0x8).readFloat())
Memory.writeFloat(POV.add(0x8), POV.add(0x8).readFloat() + 100.0)
args[2] = POV
args[3] = POV.add(0xc)
},
onLeave: function(retval){
}
})
}