CLEO:
{$CLEO .cs}
0000:
repeat
wait 0
until 0AFA:
while true
wait 0
if
0AB0: 2
then
if
0AB1: @GET_TARGET_ACTOR 1 FOV 100.0 store_into_ 30@
then
04C4: store_coords_to 0@ 1@ 2@ from_actor 30@ with_offset 0.0 0.0 0.0
0AB1: @AimAtPosition 3 coords_XYZ 0@ 1@ 2@
end
end
end
:GET_TARGET_ACTOR
0087: 28@ = 0@ // (float)
0A8D: 29@ = read_memory 0xB74490 size 4 virtual_protect 0
000A: 29@ += 0x4
0A8D: 29@ = read_memory 29@ size 4 virtual_protect 0
for 30@ = 0 to 35584 step 0x100
0A8D: 31@ = read_memory 29@ size 1 virtual_protect 0
000A: 29@ += 0x1
if and
0029: 31@ >= 0x00
001B: 0x80 > 31@
then
005A: 31@ += 30@
if
056D: actor 31@ defined
then
if
803C: $PLAYER_ACTOR == 31@ // (int)
then
04C4: store_coords_to 27@ 26@ 25@ from_actor 31@ with_offset 0.0 0.0 0.0
068D: get_camera_position_to 24@ 23@ 22@
0AB1: @GET_BONE_POS 2 FROM_ACTOR 31@ BONE 6 _STORE_TO 5@ 6@ 7@ // HEAD
if and
8118: not_actor 31@ dead
02CB: actor 31@ bounding_sphere_visible
06BD: no_obstacles_between 5@ 6@ 7@ /*27@ 26@ 25@*/ and 24@ 23@ 22@ solid 1 car 1 actor 0 object 1 particle 0
then
0AB1: @getScreenXYFrom3DCoords 3 3D_coords_X 27@ Y 26@ Z 25@ store_screen_X_to 24@ Y_to 23@
0AB1: @GameScreenCoords 0 11@ 12@
0509: 22@ = distance_between_XY 11@ 12@ and_XY 24@ 23@
if
0035: 28@ >= 22@ // (float)
then
0087: 28@ = 22@ // (float)
0087: 15@ = 31@ // (float)
end
end
end
end
end
end
if
056D: actor 15@ defined
then
0485: return_true
else
059A: return_false
end
0AB2: 1 15@
:GET_BONE_POS
0085: 10@ = 0@ // (int)
0085: 15@ = 1@ // (int)
1@ = 0.0 // X offset
2@ = 0.0 // Y offset {THX TO: WESSER}
3@ = 0.0 // Z offset
0A96: 0@ = actor 10@ struct
0AC7: 4@ = var 1@ offset
0AA6: call_method 0x5E01C0 struct 0@ num_params 3 pop 0 bIncludeAnim 1 iBoneID 15@ vOffset 4@ // CPed__getBonePositionWithOffset
0AB2: retn 3 1@ 2@ 3@
:getScreenXYFrom3DCoords
0AC7: 14@ = var 0@ offset
0AC7: 15@ = var 3@ offset
0AC7: 16@ = var 6@ offset
0AC7: 17@ = var 9@ offset
0AA5: call 0x70CE30 num_params 6 pop 6 {18@ 18@} 0 0 17@ 16@ 15@ 14@
0007: 12@ = 640.0
0007: 13@ = 448.0
0A8D: 14@ = read_memory 0xC17044 size 4 virtual_protect 0
0A8D: 15@ = read_memory 0xC17048 size 4 virtual_protect 0
0093: 14@ = integer 14@ to_float
0093: 15@ = integer 15@ to_float
0073: 12@ /= 14@
0073: 13@ /= 15@
006B: 3@ *= 12@
006B: 4@ *= 13@
0AB2: ret 2 3@ 4@
:GameScreenCoords
0470: 31@ = actor $PLAYER_ACTOR current_weapon
if and
31@ >= 22
31@ <= 34
then
10@ = 339.0
11@ = 178.5
else
10@ = 320.0
11@ = 224.5
end
0AB2: ret 2 10@ 11@
:AimAtPosition
// 0AB1: @AimAtPosition 3 coords_XYZ 0@ 1@ 2@
// aim formula code taken & converted from m0d_sa
068D: get_camera_position_to 3@ 4@ 5@
0509: 11@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
0063: 3@ -= 0@ // (float)
0063: 4@ -= 1@ // (float)
0063: 5@ -= 2@ // (float)
0A8D: 6@ = read_memory 0xB6F1A8 size 2 virtual_protect 0 // TheCamera.m_aCams.m_wCamMode
if or
0039: 6@ == 53
0039: 6@ == 55
then // 3rd person mode
// multiplier
0A8D: 7@ = read_memory 0x8D5038 size 4 virtual_protect 0 // FOV
0007: 6@ = 0.5
006B: 7@ *= 6@ // (float)
02F6: 6@ = sine 7@ // (float)
02F7: 8@ = cosine 7@ // (float)
0073: 6@ /= 8@ // (float)
// fx
0A8D: 9@ = read_memory 0xB6EC10 size 4 virtual_protect 0 // crosshairOffset.x
0007: 8@ = 0.5
0063: 8@ -= 9@ // (float)
000B: 8@ += 0.5
0063: 8@ -= 9@ // (float)
0A8D: 9@ = read_memory 0xC3EFA4 size 4 virtual_protect 0 // screenAspectRatio
0007: 7@ = 1.0
0073: 7@ /= 9@ // (float)
006B: 8@ *= 7@ // (float)
006B: 8@ *= 6@ // (float)
0AA5: call 0x4207C0 num_params 2 pop 2 _x 8@ _y 1.0 // atan2
0AE9: pop_float 8@
0007: 7@ = 3.1415926535897932384626433832795// M_PI
0063: 7@ -= 8@ // (float)
// fz
0A8D: 10@ = read_memory 0xB6EC14 size 4 virtual_protect 0 // crosshairOffset.y
0087: 9@ = 10@ // (float)
0007: 8@ = 0.5
0063: 9@ -= 8@ // (float)
005B: 9@ += 10@ // (float)
0063: 9@ -= 8@ // (float)
006B: 9@ *= 6@ // (float)
0AA5: call 0x4207C0 num_params 2 pop 2 _x 9@ _y 1.0 // atan2
0AE9: pop_float 9@
0007: 8@ = 3.1415926535897932384626433832795 // M_PI
0063: 8@ -= 9@ // (float)
else
0007: 7@ = 3.1415926535897932384626433832795 // M_PI
0017: 7@ /= 2.0
0087: 8@ = 7@ // (float)
end
// x angle
0AA5: call 0x4207C0 num_params 2 pop 2 _x 5@ _y 11@ // atan2
0AE9: pop_float 9@
// z angle
0013: 3@ *= -1.0
0AA5: call 0x4207C0 num_params 2 pop 2 _x 3@ _y 4@ // atan2
0AE9: pop_float 10@
0007: 11@ = 3.1415926535897932384626433832795 // M_PI
0017: 11@ /= 2.0
0063: 10@ -= 11@ // (float)
0063: 9@ -= 7@ // (float)
0063: 10@ -= 8@ // (float)
0013: 10@ *= -1.0
0A25: set_camera_on_players_X_angle 9@ Z_angle 10@
0AB2: ret 0
Кто-то может исправить BUG, При съемке
камера подъезжает
Кто-нибудь может это исправить?
Когда снимать
?
Последнее редактирование: