число 0092 trunc ceil floor round 0.6 0 0 1 0 1 0.4 0 0 1 0 0 -1.6 -1 -1 -1 -2 -2 -1.4 -1 -1 -1 -2 -1 -1.0 -1 -1 -1 -1 -1]]>
вот этим опкодом взять
Это тот же опкод - номера совпадают.
floor берёт целую часть от дробного числа.
Лучше сказать "переводит дробное число в целое", т.к. разные типы чисел представляются в памяти по-разному.
]]>0092: 22@ = float 17@ to_integer
вот этим опкодом взять
]]>на экране не может быть дробных координат
На экран можно выводить дробные значения:
07FC: text_draw_1float_position_XY 50.0 50.0 GXT_reference 'BB_05' value 7@ decimal_count 3
Выводит Float число, параметр decimal_count - количество десятичных знаков после запятой (в GXT должно быть ~1~.~1~).
Пример. Выводит на экран расстояние (флоат с 3-мя знаками после запятой) между игроком и актёром в которого целится игрок.
{$cleo} 0000: while true wait 0 if Player.Defined($PLAYER_CHAR) then if 0AD2: 0@ = player 0 targeted_actor //IF and SET then 04C4: store_coords_to 4@ 5@ 6@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 04C4: store_coords_to 1@ 2@ 3@ from_actor 0@ with_offset 0.0 0.0 0.0 050A: 7@ = distance_between_XYZ 1@ 2@ 3@ and_XYZ 4@ 5@ 6@ 03F0: enable_text_draw 1 0343: set_text_draw_linewidth 640.0 07FC: text_draw_1float_position_XY 50.0 50.0 GXT_reference 'BB_05' value 7@ decimal_count 3 end end end]]>
0092: 0@ = floor 2@ 0092: 1@ = floor 3@
что они показывают на экране?
для меня главное положения на экране координаты это 2@ и 3@
можнобылобы
045B: draw_text_2numbers 2@ 3@ GXT 'TIME' numbers 2@ 3@ // ~1~:~1~
xD
]]>bool __cdecl ConvertGlobalXYZToScreenXY(RwV3D *inPoint, RwV3D *camProectOffset, float *pXMult, float *pYMult, bool clipFar, bool clipNear)
{$cleo} 0000: while true wait 0 if 0AD2: 0@ = player 0 targeted_actor //IF and SET then 04C4: store_coords_to 0@ 1@ 2@ from_actor 0@ with_offset 0.0 0.0 1.0 0AA7: call_function 0x70CE30 num_params 6 pop 6 clipNear 1 clipFar 1 yMult 7@v xMult 6@v outVector 2@v inVector 0@v result 5@ if 5@ == 0 then continue end 0092: 0@ = floor 2@ 0092: 1@ = floor 3@ 0073: 2@ /= 6@ 0073: 2@ /= 4@ 0073: 3@ /= 7@ 0073: 3@ /= 4@ 2@ *= 640.0 3@ *= 480.0 03F0: enable_text_draw 1 0343: set_text_draw_linewidth 640.0 0342: enable_text_draw_centered 1 045B: draw_text_2numbers 2@ 3@ GXT 'TIME' numbers 0@ 1@ // ~1~:~1~ end end]]>
0x70CE30 BOOL __cdecl WorldCoords2ScreenCoords(RwV3D *inPoint, RwV3D *outpoint, float *x, float *y, char, char)
[large]↗[/large]
Несколько лет назад я пытался использовать эту функцию, но она выдаёт какие-то неправильные координаты:
{$CLEO} {$I stdconsts.txt} var $Player_Actor: Actor 1@: Actor end wait 2000 :begin while true if and 00E1: player 0 pressed_key 6 not $Player_Actor.Driving then if 856D: not actor 1@ defined then 0AB1: call_scm_func @GetTargetPed 0 1@ end if 056D: actor 1@ defined then 03F0: enable_text_draw 1 081C: draw_text_outline 1 RGBA 0 0 0 255 0342: enable_text_draw_centered 1 04C4: store_coords_to 4@ 5@ 6@ from_actor 1@ with_offset 0.0 0.0 0.0 0226: 2@ = actor 1@ health //0AB1: call_scm_func @WorldCoords2ScreenCoords 3 4@ 5@ 6@ to 7@ 8@ 0AB1: call_scm_func @__VarToOffset 1 varnum 4 store_to 18@ 0AB1: call_scm_func @__VarToOffset 1 varnum 13 store_to 19@ 0AB1: call_scm_func @__VarToOffset 1 varnum 7 store_to 20@ 0AB1: call_scm_func @__VarToOffset 1 varnum 8 store_to 21@ 0AA5: call 0x70CE30 num_params 6 pop 6 1 1 21@ 20@ 19@ 18@ 045A: draw_text_1number 7@ 8@ GXT 'DOLLAR' number 2@ // $~1~ end end wait 0 end :__VarToOffset 0A9F: 1@ = current_thread_pointer 1@ += 0x3C 0@ *= 4 005A: 1@ += 0@ // address of the local variable 0AB2: ret 1 1@ :GetTargetPed{out_HPed} {0@ = 300694 0085: 0@ = &0(0@,1i)} 0A8D: 0@ = read_memory 0xB6F3B8 size 4 virtual_protect 0 inc(0@, 0x79C) 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 if 0@ > 0 then 0A8D: 8@ = read_memory 0x00B74490 size 4 virtual_protect 0 0AA8: call_function_method 0x4442D0 struct 8@ num_params 1 pop 0 0@ 1@ if 056D: actor 1@ defined then 0AB2: ret 1 1@ end end 0AB2: ret 1 -1
А вот этот скрипт, о котором упоминал GTASA вообще не использует эту функцию и работает:
// This file was decompiled using SASCM.INI published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007 {$VERSION 3.1.0027} {$CLEO .cs} //-------------MAIN--------------- 03A4: name_thread 'PHOTO' :PHOTO_11 0001: wait 0 ms 0A96: 0@ = actor $PLAYER_ACTOR struct 000A: 0@ += 1320 0A8D: 0@ = read_memory 0@ size 1 virtual_protect 0 0A8D: 1@ = read_memory 0xB7CB64 size 4 virtual_protect 0 00D6: if and 02D8: actor $PLAYER_ACTOR current_weapon == 43 0256: player $PLAYER_CHAR defined 08B7: test 0@ bit 4 0023: 0.01 > 1@ 004D: jump_if_false @PHOTO_11 00BA: show_text_styled GXT 'DUMMY' time 1000 style 7 068D: get_camera_position_to 18@ 19@ 20@ 068D: get_camera_position_to 21@ 22@ 23@ 068E: get_camera_target_point_to 24@ 25@ 26@ 0801: get_camera_zoom_factor_to 27@ // float 0A8D: 3@ = read_memory 0xC3EFA4 size 4 virtual_protect 0 0013: 3@ *= 0.75 :PHOTO_175 0001: wait 0 ms 0A8D: 2@ = read_memory 0xB7CB64 size 4 virtual_protect 0 00D6: if 0021: 2@ > 0.1 004D: jump_if_false @PHOTO_175 00D6: if 8248: not model #CAMERA available 004D: jump_if_false @PHOTO_257 0247: load_model #CAMERA 038B: load_requested_models :PHOTO_237 0001: wait 0 ms 00D6: if 0248: model #CAMERA available 004D: jump_if_false @PHOTO_237 :PHOTO_257 0A96: 4@ = actor $PLAYER_ACTOR struct 000A: 4@ += 20 0A8D: 4@ = read_memory 4@ size 4 virtual_protect 0 000A: 4@ += 56 0A8D: 17@ = read_memory 4@ size 4 virtual_protect 0 000B: 17@ += -1.5 0A8C: write_memory 4@ size 4 value 17@ virtual_protect 0 000B: 17@ += 1.5 0107: 4@ = create_object #CAMERA at 0.0 0.0 0.0 0382: set_object 4@ collision_detection 0 0550: keep_object 4@ in_memory 1 0750: set_object 4@ visibility 0 015F: set_camera_position 21@ 22@ 23@ rotation 0.0 0.0 0.0 0160: set_camera_point_at 24@ 25@ 26@ mode 2 0922: set_camera_zoom_in_factor 27@ out_factor 27@ timelimit 40 mode 1 0063: 24@ -= 21@ // (float) 0063: 25@ -= 22@ // (float) 0063: 26@ -= 23@ // (float) 050A: 30@ = distance_between_XYZ 24@ 25@ 26@ and_XYZ 0.0 0.0 0.0 0073: 24@ /= 30@ // (float) 0073: 25@ /= 30@ // (float) 0073: 26@ /= 30@ // (float) 0087: 28@ = 24@ // (float) 0087: 29@ = 25@ // (float) 0050: gosub @PHOTO_8974 0087: 23@ = 27@ // (float) 0087: 28@ = 26@ // (float) 0509: 29@ = distance_between_XY 24@ 25@ and_XY 0.0 0.0 0050: gosub @PHOTO_8974 0087: 21@ = 27@ // (float) 0453: set_object 4@ XY_rotation 21@ 23@ angle 0.0 015D: set_gamespeed 0.0 03F0: enable_text_draw 1 0A8D: 1@ = read_memory 0xB610E0 size 4 virtual_protect 0 :PHOTO_623 0001: wait 0 ms 0A8D: 0@ = read_memory 0xB610E0 size 4 virtual_protect 0 0062: 0@ -= 1@ // (int) 0016: 0@ /= 250 00D6: if 001B: 11 > 0@ 004D: jump_if_false @PHOTO_682 0006: 16@ = 0 :PHOTO_682 0871: init_jump_table 0@ total_jumps 12 default_jump 0 @PHOTO_6640 jumps 0 @PHOTO_623 1 @PHOTO_623 2 @PHOTO_5872 3 @PHOTO_5140 4 @PHOTO_2511 5 @PHOTO_1899 6 @PHOTO_1299 0872: jump_table_jumps 7 @PHOTO_810 8 @PHOTO_810 9 @PHOTO_810 10 @PHOTO_810 11 @PHOTO_6640 -1 @PHOTO_5872 -1 @PHOTO_5872 -1 @PHOTO_5872 -1 @PHOTO_5872 :PHOTO_810 0006: 6@ = 0 0006: 0@ = 0xB71F80 0006: 30@ = 0 :PHOTO_834 0A8D: 21@ = read_memory 0@ size 2 virtual_protect 0 00D6: if 0039: 21@ == 20 004D: jump_if_false @PHOTO_878 000A: 0@ += 40 0002: jump @PHOTO_1205 :PHOTO_878 000A: 0@ += 4 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 22@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 23@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 16 0A8D: 5@ = read_memory 0@ size 4 virtual_protect 0 006B: 5@ *= 5@ // (float) 000B: 5@ += 0.5 0092: 5@ = float 5@ to_integer 0012: 5@ *= 5 000A: 0@ += 12 000B: 23@ += 0.1 00D6: if 86BD: not no_obstacles_between 21@ 22@ 23@ and 18@ 19@ 20@ solid 1 car 0 actor 0 object 0 particle 0 004D: jump_if_false @PHOTO_1052 0002: jump @PHOTO_1205 :PHOTO_1052 000B: 23@ += -0.1 0050: gosub @PHOTO_8734 00D6: if or 0023: 0.0 > 24@ 0021: 24@ > 640.0 0023: 0.0 > 25@ 0021: 25@ > 448.0 0023: 0.0 > 26@ 004D: jump_if_false @PHOTO_1137 0002: jump @PHOTO_1205 :PHOTO_1137 0050: gosub @PHOTO_8699 033F: set_text_draw_letter_size 0.275 1.1 0340: set_text_draw_RGBA 255 128 0 255 045A: draw_text_1number 24@ 25@ GXT 'DOLLAR' number 5@ // $~1~ 005A: 16@ += 5@ // (int) 005A: 6@ += 5@ // (int) :PHOTO_1205 000A: 30@ += 1 0019: 30@ > 59 004D: jump_if_false @PHOTO_834 0050: gosub @PHOTO_8699 03E4: enable_text_draw_align_right 1 081C: draw_text_outline 2 RGBA 0 0 0 255 033F: set_text_draw_letter_size 0.55 2.2 0340: set_text_draw_RGBA 255 128 0 255 045A: draw_text_1number 608.0 280.0 GXT 'DOLLAR' number 6@ // $~1~ :PHOTO_1299 0006: 6@ = 0 0006: 0@ = 13092680 0006: 30@ = 0 :PHOTO_1323 000A: 0@ += 24 0A8D: 21@ = read_memory 0@ size 1 virtual_protect 0 00D6: if 0039: 21@ == 0 004D: jump_if_false @PHOTO_1374 000A: 0@ += 20 0002: jump @PHOTO_1805 :PHOTO_1374 000A: 0@ += 4 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 22@ = read_memory 0@ size 4 virtual_protect 0 0A8D: 23@ = read_memory 0xB7CB84 size 4 virtual_protect 0 0085: 5@ = 21@ // (int) 005A: 5@ += 22@ // (int) 00D6: if or 001D: 23@ > 5@ // (int) 001D: 21@ > 23@ // (int) 004D: jump_if_false @PHOTO_1483 000A: 0@ += 12 0002: jump @PHOTO_1805 :PHOTO_1483 0062: 5@ -= 23@ // (int) 0093: 22@ = integer 22@ to_float 0093: 5@ = integer 5@ to_float 0073: 5@ /= 22@ // (float) 0013: 5@ *= 20.0 000B: 5@ += 0.5 0092: 5@ = float 5@ to_integer 0012: 5@ *= 5 000A: 0@ += -20 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 22@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 23@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 24 00D6: if 86BD: not no_obstacles_between 21@ 22@ 23@ and 18@ 19@ 20@ solid 1 car 0 actor 0 object 0 particle 0 004D: jump_if_false @PHOTO_1662 0002: jump @PHOTO_1805 :PHOTO_1662 0050: gosub @PHOTO_8734 00D6: if or 0023: 0.0 > 24@ 0021: 24@ > 640.0 0023: 0.0 > 25@ 0021: 25@ > 448.0 0023: 0.0 > 26@ 004D: jump_if_false @PHOTO_1737 0002: jump @PHOTO_1805 :PHOTO_1737 0050: gosub @PHOTO_8699 033F: set_text_draw_letter_size 0.34375 1.375 0340: set_text_draw_RGBA 255 255 0 255 045A: draw_text_1number 24@ 25@ GXT 'DOLLAR' number 5@ // $~1~ 005A: 16@ += 5@ // (int) 005A: 6@ += 5@ // (int) :PHOTO_1805 000A: 30@ += 1 0019: 30@ > 15 004D: jump_if_false @PHOTO_1323 0050: gosub @PHOTO_8699 03E4: enable_text_draw_align_right 1 081C: draw_text_outline 2 RGBA 0 0 0 255 033F: set_text_draw_letter_size 0.55 2.2 0340: set_text_draw_RGBA 255 255 0 255 045A: draw_text_1number 608.0 252.0 GXT 'DOLLAR' number 6@ // $~1~ :PHOTO_1899 0006: 6@ = 0 0006: 0@ = 13144488 0006: 30@ = 0 :PHOTO_1923 000A: 0@ += 16 0A8D: 21@ = read_memory 0@ size 1 virtual_protect 0 00D6: if 0039: 21@ == 0 004D: jump_if_false @PHOTO_1974 000A: 0@ += 20 0002: jump @PHOTO_2417 :PHOTO_1974 000A: 0@ += 4 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 22@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 23@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += -28 0A8D: 5@ = read_memory 0@ size 4 virtual_protect 0 00D6: if or 0039: 5@ == 16 0039: 5@ == 18 004D: jump_if_false @PHOTO_2083 0006: 5@ = 500 :PHOTO_2083 00D6: if or 0039: 5@ == 17 0039: 5@ == 58 004D: jump_if_false @PHOTO_2116 0006: 5@ = 250 :PHOTO_2116 00D6: if 0039: 5@ == 39 004D: jump_if_false @PHOTO_2142 0006: 5@ = 750 :PHOTO_2142 00D6: if 0039: 5@ == 19 004D: jump_if_false @PHOTO_2168 0006: 5@ = 1000 :PHOTO_2168 00D6: if 0039: 5@ == 20 004D: jump_if_false @PHOTO_2194 0006: 5@ = 1500 :PHOTO_2194 000A: 0@ += 36 00D6: if 001B: 100 > 5@ 004D: jump_if_false @PHOTO_2226 0002: jump @PHOTO_2417 :PHOTO_2226 00D6: if 86BD: not no_obstacles_between 21@ 22@ 23@ and 18@ 19@ 20@ solid 1 car 0 actor 0 object 0 particle 0 004D: jump_if_false @PHOTO_2274 0002: jump @PHOTO_2417 :PHOTO_2274 0050: gosub @PHOTO_8734 00D6: if or 0023: 0.0 > 24@ 0021: 24@ > 640.0 0023: 0.0 > 25@ 0021: 25@ > 448.0 0023: 0.0 > 26@ 004D: jump_if_false @PHOTO_2349 0002: jump @PHOTO_2417 :PHOTO_2349 0050: gosub @PHOTO_8699 033F: set_text_draw_letter_size 0.4125 1.65 0340: set_text_draw_RGBA 0 255 128 255 045A: draw_text_1number 24@ 25@ GXT 'DOLLAR' number 5@ // $~1~ 005A: 16@ += 5@ // (int) 005A: 6@ += 5@ // (int) :PHOTO_2417 000A: 30@ += 1 0019: 30@ > 31 004D: jump_if_false @PHOTO_1923 0050: gosub @PHOTO_8699 03E4: enable_text_draw_align_right 1 081C: draw_text_outline 2 RGBA 0 0 0 255 033F: set_text_draw_letter_size 0.55 2.2 0340: set_text_draw_RGBA 0 255 128 255 045A: draw_text_1number 608.0 224.0 GXT 'DOLLAR' number 6@ // $~1~ :PHOTO_2511 0006: 6@ = 0 0A8D: 0@ = read_memory 0xB74490 size 4 virtual_protect 0 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 0A8D: 31@ = read_memory 0xB74490 size 4 virtual_protect 0 000A: 31@ += 4 0A8D: 31@ = read_memory 31@ size 4 virtual_protect 0 0006: 30@ = 0 :PHOTO_2584 0A8D: 21@ = read_memory 31@ size 1 virtual_protect 0 000A: 31@ += 1 00D6: if or 001B: 0 > 21@ 0019: 21@ > 127 004D: jump_if_false @PHOTO_2643 000A: 0@ += 1988 0002: jump @PHOTO_5045 :PHOTO_2643 0085: 23@ = 30@ // (int) 0012: 23@ *= 256 005A: 23@ += 21@ // (int) 00D6: if 003C: $PLAYER_ACTOR == 23@ // (int) 004D: jump_if_false @PHOTO_2701 000A: 0@ += 1988 0002: jump @PHOTO_5045 :PHOTO_2701 000A: 0@ += 1344 0A8D: 5@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 0073: 5@ /= 21@ // (float) 0013: 5@ *= -1.0 000B: 5@ += 2.0 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 006B: 5@ *= 21@ // (float) 0017: 5@ /= 10.0 000A: 0@ += 468 0A8D: 21@ = read_memory 0@ size 1 virtual_protect 0 0007: 22@ = 0.0 00D6: if or 0039: 21@ == 1 0039: 21@ == 9 0039: 21@ == 10 0039: 21@ == 12 004D: jump_if_false @PHOTO_2877 0007: 22@ = 5.0 :PHOTO_2877 00D6: if 0039: 21@ == 2 004D: jump_if_false @PHOTO_2905 0007: 22@ = 15.0 :PHOTO_2905 00D6: if or 0039: 21@ == 3 0039: 21@ == 4 004D: jump_if_false @PHOTO_2940 0007: 22@ = 20.0 :PHOTO_2940 00D6: if or 0039: 21@ == 5 0039: 21@ == 6 0039: 21@ == 8 004D: jump_if_false @PHOTO_2982 0007: 22@ = 25.0 :PHOTO_2982 00D6: if 0039: 21@ == 7 004D: jump_if_false @PHOTO_3010 0007: 22@ = 75.0 :PHOTO_3010 000A: 0@ += -496 0A8D: 21@ = read_memory 0@ size 1 virtual_protect 0 00D6: if 0019: 21@ > 3 004D: jump_if_false @PHOTO_3058 0013: 22@ *= 2.0 :PHOTO_3058 000A: 0@ += -36 0A8D: 21@ = read_memory 0@ size 2 virtual_protect 0 000A: 0@ += -1216 00D6: if and 0019: 21@ > 0 001B: 10001 > 21@ 004D: jump_if_false @PHOTO_3147 0093: 21@ = integer 21@ to_float 0013: 21@ *= 0.0003 000B: 21@ += 2.0 006B: 22@ *= 21@ // (float) :PHOTO_3147 005B: 5@ += 22@ // (float) 0007: 22@ = 0.0 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 006B: 21@ *= 21@ // (float) 005B: 22@ += 21@ // (float) 000A: 0@ += 4 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 006B: 21@ *= 21@ // (float) 005B: 22@ += 21@ // (float) 000A: 0@ += 4 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 006B: 21@ *= 21@ // (float) 005B: 22@ += 21@ // (float) 000A: 0@ += 1912 0013: 22@ *= 1000.0 005B: 5@ += 22@ // (float) 00D6: if or 0611: actor 23@ performing_animation "BIKE_fallR" 0611: actor 23@ performing_animation "BIKE_fall_off" 0611: actor 23@ performing_animation "CAR_jackedLHS" 0611: actor 23@ performing_animation "CAR_jackedRHS" 0611: actor 23@ performing_animation "CAR_Qjacked" 0611: actor 23@ performing_animation "cower" 0611: actor 23@ performing_animation "DUCK_cower" 0611: actor 23@ performing_animation "EV_step" 0611: actor 23@ performing_animation "gas_cwr" 004D: jump_if_false @PHOTO_3462 000B: 5@ += 25.0 :PHOTO_3462 00D6: if or 0611: actor 23@ performing_animation "abseil" 0611: actor 23@ performing_animation "CAR_pulloutL_LHS" 0611: actor 23@ performing_animation "CAR_pulloutL_RHS" 0611: actor 23@ performing_animation "CAR_pullout_LHS" 0611: actor 23@ performing_animation "CAR_pullout_RHS" 0611: actor 23@ performing_animation "Crouch_Roll_L" 0611: actor 23@ performing_animation "Crouch_Roll_R" 0611: actor 23@ performing_animation "FALL_skyDive" 0611: actor 23@ performing_animation "handscower" 004D: jump_if_false @PHOTO_3662 000B: 5@ += 25.0 :PHOTO_3662 00D6: if or 0611: actor 23@ performing_animation "CAR_crawloutRHS" 0611: actor 23@ performing_animation "CAR_rollout_LHS" 0611: actor 23@ performing_animation "CAR_rollout_RHS" 0611: actor 23@ performing_animation "EV_dive" 0611: actor 23@ performing_animation "FALL_back" 0611: actor 23@ performing_animation "FALL_fall" 0611: actor 23@ performing_animation "FALL_front" 0611: actor 23@ performing_animation "handscower" 0611: actor 23@ performing_animation "handsup" 004D: jump_if_false @PHOTO_3843 000B: 5@ += 50.0 :PHOTO_3843 00D6: if or 0611: actor 23@ performing_animation "CLIMB_jump" 0611: actor 23@ performing_animation "CLIMB_jump_B" 0611: actor 23@ performing_animation "CLIMB_Pull" 0611: actor 23@ performing_animation "CLIMB_Stand" 0611: actor 23@ performing_animation "FALL_glide" 0611: actor 23@ performing_animation "JUMP_glide" 004D: jump_if_false @PHOTO_3969 000B: 5@ += 10.0 :PHOTO_3969 00D6: if or 0611: actor 23@ performing_animation "DAM_armL_frmBK" 0611: actor 23@ performing_animation "DAM_armL_frmFT" 0611: actor 23@ performing_animation "DAM_armL_frmLT" 0611: actor 23@ performing_animation "DAM_armR_frmBK" 0611: actor 23@ performing_animation "DAM_armR_frmFT" 0611: actor 23@ performing_animation "DAM_armR_frmRT" 0611: actor 23@ performing_animation "DAM_LegL_frmBK" 0611: actor 23@ performing_animation "DAM_LegL_frmFT" 0611: actor 23@ performing_animation "DAM_LegL_frmLT" 004D: jump_if_false @PHOTO_4179 000B: 5@ += 50.0 :PHOTO_4179 00D6: if or 0611: actor 23@ performing_animation "DAM_LegR_frmBK" 0611: actor 23@ performing_animation "DAM_LegR_frmFT" 0611: actor 23@ performing_animation "DAM_LegR_frmRT" 0611: actor 23@ performing_animation "DAM_stomach_frmBK" 0611: actor 23@ performing_animation "DAM_stomach_frmFT" 0611: actor 23@ performing_animation "DAM_stomach_frmLT" 0611: actor 23@ performing_animation "DAM_stomach_frmRT" 0611: actor 23@ performing_animation "LRGIRL_IDLE_TO_L0" 0611: actor 23@ performing_animation "LRGIRL_IDLE_TO_L0" 004D: jump_if_false @PHOTO_4407 000B: 5@ += 50.0 :PHOTO_4407 00D6: if or 0611: actor 23@ performing_animation "HitA_1" 0611: actor 23@ performing_animation "HitA_2" 0611: actor 23@ performing_animation "HitA_3" 0611: actor 23@ performing_animation "HIT_back" 0611: actor 23@ performing_animation "HIT_behind" 0611: actor 23@ performing_animation "HIT_front" 0611: actor 23@ performing_animation "HIT_GUN_BUTT" 0611: actor 23@ performing_animation "HIT_L" 0611: actor 23@ performing_animation "HIT_R" 004D: jump_if_false @PHOTO_4558 000B: 5@ += 25.0 :PHOTO_4558 00D6: if or 0611: actor 23@ performing_animation "Drown" 0611: actor 23@ performing_animation "KO_shot_face" 0611: actor 23@ performing_animation "KO_shot_front" 0611: actor 23@ performing_animation "KO_shot_stom" 0611: actor 23@ performing_animation "KO_skid_back" 0611: actor 23@ performing_animation "KO_skid_front" 0611: actor 23@ performing_animation "KO_spin_L" 0611: actor 23@ performing_animation "KO_spin_R" 004D: jump_if_false @PHOTO_4720 000B: 5@ += 75.0 :PHOTO_4720 00D6: if 09A8: actor 23@ headshoted 004D: jump_if_false @PHOTO_4746 000B: 5@ += 75.0 :PHOTO_4746 00D6: if and 8184: not actor 23@ health >= 1 8118: not actor 23@ dead 004D: jump_if_false @PHOTO_4779 000B: 5@ += 100.0 :PHOTO_4779 00D6: if 0118: actor 23@ dead 004D: jump_if_false @PHOTO_4805 000B: 5@ += 50.0 :PHOTO_4805 00A0: store_actor 23@ position_to 21@ 22@ 23@ 00D6: if 86BD: not no_obstacles_between 21@ 22@ 23@ and 18@ 19@ 20@ solid 1 car 0 actor 0 object 0 particle 0 004D: jump_if_false @PHOTO_4867 0002: jump @PHOTO_5045 :PHOTO_4867 0050: gosub @PHOTO_8734 00D6: if or 0023: 0.0 > 24@ 0021: 24@ > 640.0 0023: 0.0 > 25@ 0021: 25@ > 448.0 0023: 0.0 > 26@ 004D: jump_if_false @PHOTO_4942 0002: jump @PHOTO_5045 :PHOTO_4942 0013: 5@ *= 0.2 000B: 5@ += 0.5 0092: 5@ = float 5@ to_integer 0012: 5@ *= 5 0050: gosub @PHOTO_8699 033F: set_text_draw_letter_size 0.4125 1.65 0340: set_text_draw_RGBA 0 128 255 255 045A: draw_text_1number 24@ 25@ GXT 'DOLLAR' number 5@ // $~1~ 005A: 16@ += 5@ // (int) 005A: 6@ += 5@ // (int) :PHOTO_5045 000A: 30@ += 1 0019: 30@ > 139 004D: jump_if_false @PHOTO_2584 0050: gosub @PHOTO_8699 03E4: enable_text_draw_align_right 1 081C: draw_text_outline 2 RGBA 0 0 0 255 033F: set_text_draw_letter_size 0.55 2.2 0340: set_text_draw_RGBA 0 128 255 255 045A: draw_text_1number 608.0 196.0 GXT 'DOLLAR' number 6@ // $~1~ :PHOTO_5140 0006: 6@ = 0 0A8D: 0@ = read_memory 0xB74494 size 4 virtual_protect 0 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 0A8D: 31@ = read_memory 0xB74494 size 4 virtual_protect 0 000A: 31@ += 4 0A8D: 31@ = read_memory 31@ size 4 virtual_protect 0 0006: 30@ = 0 :PHOTO_5213 0A8D: 21@ = read_memory 31@ size 1 virtual_protect 0 000A: 31@ += 1 00D6: if or 001B: 0 > 21@ 0019: 21@ > 127 004D: jump_if_false @PHOTO_5272 000A: 0@ += 2584 0002: jump @PHOTO_5779 :PHOTO_5272 0085: 23@ = 30@ // (int) 0012: 23@ *= 256 005A: 23@ += 21@ // (int) 000A: 0@ += 1216 0A8D: 5@ = read_memory 0@ size 4 virtual_protect 0 0017: 5@ /= 1000.0 0013: 5@ *= -1.0 000B: 5@ += 2.0 0013: 5@ *= 10.0 000A: 0@ += -1148 0007: 22@ = 0.0 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 006B: 21@ *= 21@ // (float) 005B: 22@ += 21@ // (float) 000A: 0@ += 4 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 006B: 21@ *= 21@ // (float) 005B: 22@ += 21@ // (float) 000A: 0@ += 4 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 006B: 21@ *= 21@ // (float) 005B: 22@ += 21@ // (float) 000A: 0@ += 2508 0013: 22@ *= 10.0 005B: 5@ += 22@ // (float) 0441: 22@ = car 23@ model 09E1: get_car_model 22@ price_to 22@ 0093: 22@ = integer 22@ to_float 0017: 22@ /= 2500.0 005B: 5@ += 22@ // (float) 00AA: store_car 23@ position_to 21@ 22@ 23@ 00D6: if 86BD: not no_obstacles_between 21@ 22@ 23@ and 18@ 19@ 20@ solid 1 car 0 actor 0 object 0 particle 0 004D: jump_if_false @PHOTO_5602 0002: jump @PHOTO_5779 :PHOTO_5602 0050: gosub @PHOTO_8734 00D6: if or 0023: 0.0 > 24@ 0021: 24@ > 640.0 0023: 0.0 > 25@ 0021: 25@ > 448.0 0023: 0.0 > 26@ 004D: jump_if_false @PHOTO_5677 0002: jump @PHOTO_5779 :PHOTO_5677 0013: 5@ *= 0.2 000B: 5@ += 0.5 0092: 5@ = float 5@ to_integer 0012: 5@ *= 5 0050: gosub @PHOTO_8699 033F: set_text_draw_letter_size 0.4125 1.65 0340: set_text_draw_RGBA 0 255 0 255 045A: draw_text_1number 24@ 25@ GXT 'DOLLAR' number 5@ // $~1~ 005A: 16@ += 5@ // (int) 005A: 6@ += 5@ // (int) :PHOTO_5779 000A: 30@ += 1 0019: 30@ > 109 004D: jump_if_false @PHOTO_5213 0050: gosub @PHOTO_8699 03E4: enable_text_draw_align_right 1 081C: draw_text_outline 2 RGBA 0 0 0 255 033F: set_text_draw_letter_size 0.55 2.2 0340: set_text_draw_RGBA 0 255 0 255 045A: draw_text_1number 608.0 168.0 GXT 'DOLLAR' number 6@ // $~1~ :PHOTO_5872 0006: 6@ = 0 0006: 0@ = 0xC88950 0006: 30@ = 0 :PHOTO_5896 000A: 0@ += 32 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 12 0A8D: 22@ = read_memory 0@ size 4 virtual_protect 0 0A8D: 23@ = read_memory 0xB7CB84 size 4 virtual_protect 0 0093: 23@ = integer 23@ to_float 00D6: if or 0025: 23@ > 21@ // (float) 0025: 22@ > 23@ // (float) 004D: jump_if_false @PHOTO_5997 000A: 0@ += 80 0002: jump @PHOTO_6540 :PHOTO_5997 0063: 21@ -= 22@ // (float) 0063: 23@ -= 22@ // (float) 0073: 23@ /= 21@ // (float) 000B: 23@ += 1.0 0087: 21@ = 23@ // (float) 000A: 0@ += -44 0A8D: 23@ = read_memory 0@ size 4 virtual_protect 0 00D6: if or 0039: 23@ == 4 0039: 23@ == 5 0039: 23@ == 8 0039: 23@ == 9 0039: 23@ == 12 004D: jump_if_false @PHOTO_6114 0007: 5@ = 1000.0 :PHOTO_6114 00D6: if 0039: 23@ == 1 004D: jump_if_false @PHOTO_6142 0007: 5@ = 1500.0 :PHOTO_6142 00D6: if or 0039: 23@ == 0 0039: 23@ == 2 0039: 23@ == 3 0039: 23@ == 11 004D: jump_if_false @PHOTO_6191 0007: 5@ = 2000.0 :PHOTO_6191 00D6: if or 0039: 23@ == 6 0039: 23@ == 7 0039: 23@ == 10 004D: jump_if_false @PHOTO_6233 0007: 5@ = 2500.0 :PHOTO_6233 006B: 5@ *= 21@ // (float) 0017: 5@ /= 10.0 0092: 5@ = float 5@ to_integer 0012: 5@ *= 5 000A: 0@ += 4 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 22@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 23@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 112 000B: 23@ += 0.1 00D6: if 86BD: not no_obstacles_between 21@ 22@ 23@ and 18@ 19@ 20@ solid 1 car 0 actor 0 object 0 particle 0 004D: jump_if_false @PHOTO_6388 0002: jump @PHOTO_6540 :PHOTO_6388 000B: 23@ += -0.1 0050: gosub @PHOTO_8734 00D6: if or 0023: 0.0 > 24@ 0021: 24@ > 640.0 0023: 0.0 > 25@ 0021: 25@ > 448.0 0023: 0.0 > 26@ 004D: jump_if_false @PHOTO_6473 0002: jump @PHOTO_6540 :PHOTO_6473 0050: gosub @PHOTO_8699 033F: set_text_draw_letter_size 0.55 2.2 0340: set_text_draw_RGBA 255 0 0 255 045A: draw_text_1number 24@ 25@ GXT 'DOLLAR' number 5@ // $~1~ 005A: 16@ += 5@ // (int) 005A: 6@ += 5@ // (int) :PHOTO_6540 000A: 30@ += 1 0019: 30@ > 15 004D: jump_if_false @PHOTO_5896 0050: gosub @PHOTO_8699 03E4: enable_text_draw_align_right 1 081C: draw_text_outline 2 RGBA 0 0 0 255 033F: set_text_draw_letter_size 0.55 2.2 0340: set_text_draw_RGBA 255 0 0 255 045A: draw_text_1number 608.0 140.0 GXT 'DOLLAR' number 6@ // $~1~ 0002: jump @PHOTO_623 :PHOTO_6640 01E3: show_text_1number_styled GXT 'REWARD' number 16@ time 5000 style 7 // REWARD $~1~ 0109: player $PLAYER_CHAR money += 16@ 0006: 6@ = 0 0006: 0@ = 0xB71F80 0006: 30@ = 0 :PHOTO_6691 0A8D: 21@ = read_memory 0@ size 2 virtual_protect 0 00D6: if 0039: 21@ == 20 004D: jump_if_false @PHOTO_6735 000A: 0@ += 40 0002: jump @PHOTO_7003 :PHOTO_6735 000A: 0@ += 4 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 22@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 23@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 28 000B: 23@ += 0.1 00D6: if 86BD: not no_obstacles_between 21@ 22@ 23@ and 18@ 19@ 20@ solid 1 car 0 actor 0 object 0 particle 0 004D: jump_if_false @PHOTO_6857 0002: jump @PHOTO_7003 :PHOTO_6857 000B: 23@ += -0.1 0050: gosub @PHOTO_8734 00D6: if or 0023: 0.0 > 24@ 0021: 24@ > 640.0 0023: 0.0 > 25@ 0021: 25@ > 448.0 0023: 0.0 > 26@ 004D: jump_if_false @PHOTO_6942 0002: jump @PHOTO_7003 :PHOTO_6942 000A: 0@ += -16 0A8D: 5@ = read_memory 0xB7CB84 size 4 virtual_protect 0 0A8C: write_memory 0@ size 4 value 5@ virtual_protect 0 000A: 0@ += 4 0A8C: write_memory 0@ size 4 value 0.0 virtual_protect 0 000A: 0@ += 12 :PHOTO_7003 000A: 30@ += 1 0019: 30@ > 59 004D: jump_if_false @PHOTO_6691 0006: 6@ = 0 0006: 0@ = 0xC7C748 0006: 30@ = 0 :PHOTO_7048 000A: 0@ += 24 0A8D: 21@ = read_memory 0@ size 1 virtual_protect 0 00D6: if 0039: 21@ == 0 004D: jump_if_false @PHOTO_7099 000A: 0@ += 20 0002: jump @PHOTO_7420 :PHOTO_7099 000A: 0@ += 4 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 22@ = read_memory 0@ size 4 virtual_protect 0 0A8D: 23@ = read_memory 0xB7CB84 size 4 virtual_protect 0 0085: 5@ = 21@ // (int) 005A: 5@ += 22@ // (int) 00D6: if or 001D: 23@ > 5@ // (int) 001D: 21@ > 23@ // (int) 004D: jump_if_false @PHOTO_7208 000A: 0@ += 12 0002: jump @PHOTO_7420 :PHOTO_7208 000A: 0@ += -20 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 22@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 23@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 24 00D6: if 86BD: not no_obstacles_between 21@ 22@ 23@ and 18@ 19@ 20@ solid 1 car 0 actor 0 object 0 particle 0 004D: jump_if_false @PHOTO_7320 0002: jump @PHOTO_7420 :PHOTO_7320 0050: gosub @PHOTO_8734 00D6: if or 0023: 0.0 > 24@ 0021: 24@ > 640.0 0023: 0.0 > 25@ 0021: 25@ > 448.0 0023: 0.0 > 26@ 004D: jump_if_false @PHOTO_7395 0002: jump @PHOTO_7420 :PHOTO_7395 000A: 0@ += -12 0A8C: write_memory 0@ size 4 value 0 virtual_protect 0 000A: 0@ += 12 :PHOTO_7420 000A: 30@ += 1 0019: 30@ > 15 004D: jump_if_false @PHOTO_7048 0006: 6@ = 0 0006: 0@ = 0xC891A8 0006: 30@ = 0 :PHOTO_7465 000A: 0@ += 16 0A8D: 21@ = read_memory 0@ size 1 virtual_protect 0 00D6: if 0039: 21@ == 0 004D: jump_if_false @PHOTO_7516 000A: 0@ += 20 0002: jump @PHOTO_7847 :PHOTO_7516 000A: 0@ += 4 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 22@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 23@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += -28 0A8D: 5@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 36 00D6: if and 8039: not 5@ == 16 8039: not 5@ == 17 8039: not 5@ == 18 8039: not 5@ == 19 8039: not 5@ == 20 8039: not 5@ == 39 8039: not 5@ == 58 004D: jump_if_false @PHOTO_7666 0002: jump @PHOTO_7847 :PHOTO_7666 00D6: if 86BD: not no_obstacles_between 21@ 22@ 23@ and 18@ 19@ 20@ solid 1 car 0 actor 0 object 0 particle 0 004D: jump_if_false @PHOTO_7714 0002: jump @PHOTO_7847 :PHOTO_7714 0050: gosub @PHOTO_8734 00D6: if or 0023: 0.0 > 24@ 0021: 24@ > 640.0 0023: 0.0 > 25@ 0021: 25@ > 448.0 0023: 0.0 > 26@ 004D: jump_if_false @PHOTO_7789 0002: jump @PHOTO_7847 :PHOTO_7789 000A: 0@ += -36 0A8C: write_memory 0@ size 4 value 0 virtual_protect 0 000A: 0@ += 12 0A8D: 5@ = read_memory 0xB7CB84 size 4 virtual_protect 0 0A8C: write_memory 0@ size 4 value 5@ virtual_protect 0 000A: 0@ += 24 :PHOTO_7847 000A: 30@ += 1 0019: 30@ > 31 004D: jump_if_false @PHOTO_7465 0006: 6@ = 0 0A8D: 0@ = read_memory 0xB74490 size 4 virtual_protect 0 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0 0A8D: 31@ = read_memory 0xB74490 size 4 virtual_protect 0 000A: 31@ += 4 0A8D: 31@ = read_memory 31@ size 4 virtual_protect 0 0006: 30@ = 0 :PHOTO_7941 0A8D: 21@ = read_memory 31@ size 1 virtual_protect 0 000A: 31@ += 1 000A: 0@ += 1988 00D6: if or 001B: 0 > 21@ 0019: 21@ > 127 004D: jump_if_false @PHOTO_8000 0002: jump @PHOTO_8222 :PHOTO_8000 0085: 23@ = 30@ // (int) 0012: 23@ *= 256 005A: 23@ += 21@ // (int) 00D6: if 003C: $PLAYER_ACTOR == 23@ // (int) 004D: jump_if_false @PHOTO_8050 0002: jump @PHOTO_8222 :PHOTO_8050 005B: 5@ += 22@ // (float) 00A0: store_actor 23@ position_to 21@ 22@ 23@ 00D6: if 86BD: not no_obstacles_between 21@ 22@ 23@ and 18@ 19@ 20@ solid 1 car 0 actor 0 object 0 particle 0 004D: jump_if_false @PHOTO_8120 0002: jump @PHOTO_8222 :PHOTO_8120 0050: gosub @PHOTO_8734 00D6: if or 0023: 0.0 > 24@ 0021: 24@ > 640.0 0023: 0.0 > 25@ 0021: 25@ > 448.0 0023: 0.0 > 26@ 004D: jump_if_false @PHOTO_8195 0002: jump @PHOTO_8222 :PHOTO_8195 000A: 0@ += -704 0A8C: write_memory 0@ size 2 value 0 virtual_protect 0 000A: 0@ += 704 :PHOTO_8222 000A: 30@ += 1 0019: 30@ > 139 004D: jump_if_false @PHOTO_7941 0006: 0@ = 0xC88950 0006: 30@ = 0 :PHOTO_8261 000A: 0@ += 32 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 12 0A8D: 22@ = read_memory 0@ size 4 virtual_protect 0 0A8D: 23@ = read_memory 0xB7CB84 size 4 virtual_protect 0 0093: 23@ = integer 23@ to_float 00D6: if or 0025: 23@ > 21@ // (float) 0025: 22@ > 23@ // (float) 004D: jump_if_false @PHOTO_8362 000A: 0@ += 80 0002: jump @PHOTO_8588 :PHOTO_8362 000A: 0@ += -12 0A8C: write_memory 0@ size 4 value 23@ virtual_protect 0 000A: 0@ += 16 0A8D: 21@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 22@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 4 0A8D: 23@ = read_memory 0@ size 4 virtual_protect 0 000A: 0@ += 112 000B: 23@ += 0.1 00D6: if 86BD: not no_obstacles_between 21@ 22@ 23@ and 18@ 19@ 20@ solid 1 car 0 actor 0 object 0 particle 0 004D: jump_if_false @PHOTO_8503 0002: jump @PHOTO_8588 :PHOTO_8503 000B: 23@ += -0.1 0050: gosub @PHOTO_8734 00D6: if or 0023: 0.0 > 24@ 0021: 24@ > 640.0 0023: 0.0 > 25@ 0021: 25@ > 448.0 0023: 0.0 > 26@ 004D: jump_if_false @PHOTO_8588 0002: jump @PHOTO_8588 :PHOTO_8588 000A: 30@ += 1 0019: 30@ > 15 004D: jump_if_false @PHOTO_8261 0108: destroy_object 4@ 0A96: 4@ = actor $PLAYER_ACTOR struct 000A: 4@ += 20 0A8D: 4@ = read_memory 4@ size 4 virtual_protect 0 000A: 4@ += 56 0A8C: write_memory 4@ size 4 value 17@ virtual_protect 0 0249: release_model #CAMERA 0922: set_camera_zoom_in_factor 70.0 out_factor 70.0 timelimit 80 mode 1 015A: restore_camera 03F0: enable_text_draw 0 015D: set_gamespeed 2@ 0002: jump @PHOTO_11 :PHOTO_8699 0342: enable_text_draw_centered 0 0345: enable_text_draw_background 0 0348: enable_text_draw_proportional 0 03E4: enable_text_draw_align_right 0 0349: set_text_draw_font 3 081C: draw_text_outline 1 RGBA 0 0 0 255 0051: return :PHOTO_8734 068D: get_camera_position_to 24@ 25@ 26@ 0063: 24@ -= 21@ // (float) 0063: 25@ -= 22@ // (float) 0063: 26@ -= 23@ // (float) 0013: 24@ *= -1.0 0013: 25@ *= -1.0 0400: store_coords_to 24@ 25@ 26@ from_object 4@ with_offset 24@ 26@ 25@ 0073: 24@ /= 26@ // (float) 0073: 25@ /= 26@ // (float) 0801: get_camera_zoom_factor_to 23@ // float 0017: 23@ /= 2.0 02F7: 21@ = cosine 23@ // (float) 02F6: 22@ = sine 23@ // (float) 0073: 21@ /= 22@ // (float) 006B: 24@ *= 21@ // (float) 006B: 25@ *= 21@ // (float) 0013: 24@ *= 320.0 0013: 25@ *= 298.66 00D6: if 0023: 0.0 > 26@ 004D: jump_if_false @PHOTO_8944 0013: 24@ *= -1.0 0013: 25@ *= -1.0 :PHOTO_8944 006B: 25@ *= 3@ // (float) 000B: 24@ += 320.5 000B: 25@ += 224.5 0051: return :PHOTO_8974 0509: 27@ = distance_between_XY 28@ 29@ and_XY 0.0 0.0 0073: 28@ /= 27@ // (float) 0073: 29@ /= 27@ // (float) 0509: 27@ = distance_between_XY 28@ 29@ and_XY 0.0 1.0 0006: 0@ = 0 :PHOTO_9039 0017: 27@ /= 2.0 006B: 27@ *= 27@ // (float) 0087: 29@ = 27@ // (float) 0013: 27@ *= -1.0 000B: 27@ += 1.0 01FB: 27@ = square_root 27@ 0013: 27@ *= -1.0 000B: 27@ += 1.0 006B: 27@ *= 27@ // (float) 005B: 27@ += 29@ // (float) 01FB: 27@ = square_root 27@ 000A: 0@ += 1 0019: 0@ > 11 004D: jump_if_false @PHOTO_9039 0013: 27@ *= 4096.0 0017: 27@ /= 3.141529 0013: 27@ *= 180.0 00D6: if 0021: 28@ > 0.0 004D: jump_if_false @PHOTO_9229 0013: 27@ *= -1.0 000B: 27@ += 360.0 :PHOTO_9229 0051: return]]>
Теперь ворос не в тему, а какой опкод или функция или еще чтонибудь может выдать координаты на экране, если известны координаты в пространстве, т.е. как автоприцел в гидре, машина едет а прицел на экране на нее показывает?
где-то на форуме выкладывали функцию перевода, надо искать
]]>УРА! работает))))
Теперь ворос не в тему, а какой опкод или функция или еще чтонибудь может выдать координаты на экране, если известны координаты в пространстве, т.е. как автоприцел в гидре, машина едет а прицел на экране на нее показывает?
не могу понять че не так, вроде начал работать скрипт, но выхожу, захожу обратно в машину и опять одно и тоже значение
]]>