Вопросы по CLEO-скриптингу

Sneyk_Next

Новичок
7
0
Код:
:1
Actor.Storepos($PLAYER_ACTOR, 11@,12@,13@)
0ab1: call_scm_func @23 3 11@ 12@ 13@
 
 
:23
3@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
3@ = SAMP.GetPlayerStruct(3@)
3@ += 209
0AC8: 4@ = allocate_memory_size 63
0C10: memcpy destination 4@ source 3@ size 63
0C0D: struct 4@ offset 24 size 4 = 0@
0C0D: struct 4@ offset 28 size 4 = 1@
0C0D: struct 4@ offset 32 size 4 = 2@
0B3D: raknet 5@ = new_bit_stream
0B40: raknet bit_stream 5@ write PACKET_UNOCCUPIED_SYNC type BS_TYPE_BYTE size 1
0B42: raknet send bit_stream 5@ priority PRIORITY_HIGH reliability UNRELIABLE_SEQUENCED ordering_channel 0
0B3E: raknet delete_bit_stream 5@
0AC9: free_allocated_memory 4@
0AB2: ret 0


В чем проблема? всё сделал по примеру мгмолдовы
 

TheMonstercat

Известный
75
11
Hey i need Help with some calculations...
I've made a ESP-BOX.cs with some help of a friend.
Every thing works fine so far but now i need help withe the calculations that the Boxes go smaller if they get far away.

This is the main Script i hope someone can help me with my problem :)

Код:
{$CLEO .cs}
0000:
0662: NOP "#########################"
0662: NOP "____Made by Monstercat___"
0662: NOP "#########################"
 
const
  WIDTH      = 640.0
  HEIGHT      = 448.0
  HALF_WIDTH  = 320.0
  HALF_HEIGHT = 224.0
end
 
03F0: enable_text_draw 1
 
31@ = 0
WHILE TRUE
WAIT 0
    if
    0ADC:  test_cheat "ESP"
    then
        if
        0@ == 0
        then
            0ACD: show_text_highpriority "BOX on." time 1337
            018C: play_sound 1083 at 0.0 0.0 0.0
            0@ = 1
        else
            0ACD: show_text_highpriority "BOX off." time 1337
            018C: play_sound 1084 at 0.0 0.0 0.0 
            0@ = 0
        end
    end
    if
    0@ == 1
    then   
        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 and
                02CB:  actor 31@ bounding_sphere_visible
                803C:  not  $PLAYER_ACTOR == 31@ // (int)
                then
                03F0: enable_text_draw 1
                04C4: store_coords_to 1@ 2@ 3@ from_actor 31@ with_offset 0.0 0.0 0.0
                04C4: store_coords_to 7@ 8@ 9@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0
                0AB1: call_scm_func @getScreenXYFrom3DCoords 3 coords_XYZ 1@ 2@ 3@ store_to 4@ 5@
                if
                06BD:  no_obstacles_between 7@ 8@ 9@ and 1@ 2@ 3@ solid 1 car 1 actor 0 object 1 particle 0
                then
                    0087: 1@ = 4@ // (float)
                    1@ += 10.0
                    038E: draw_box_position 1@ 5@ size 1.0 50.0 RGBA 55 255 25 255
                    0087: 1@ = 4@ // (float)
                    1@ -= 10.0
                    038E: draw_box_position 1@ 5@ size 1.0 50.0 RGBA 55 255 25 255
                    0087: 1@ = 5@ // (float)
                    1@ += 25.0
                    038E: draw_box_position 4@ 1@ size 20.0 1.0 RGBA 55 255 25 255
                    0087: 1@ = 5@ // (float)
                    1@ -= 25.0
                    038E: draw_box_position 4@ 1@ size 20.0 1.0 RGBA 55 255 25 255
                    else
                    0087: 1@ = 4@ // (float)
                    1@ += 10.0
                    038E: draw_box_position 1@ 5@ size 1.0 50.0 RGBA 255 55 25 255 
                    0087: 1@ = 4@ // (float)
                    1@ -= 10.0
                    038E: draw_box_position 1@ 5@ size 1.0 50.0 RGBA 255 55 25 255 
                    0087: 1@ = 5@ // (float)
                    1@ += 25.0
                    038E: draw_box_position 4@ 1@ size 20.0 1.0 RGBA 255 55 25 255 
                    0087: 1@ = 5@ // (float)
                    1@ -= 25.0
                    038E: draw_box_position 4@ 1@ size 20.0 1.0 RGBA 255 55 25 255
                    end
                end
            end
        end
    end
END
 
:getScreenXYFrom3DCoords
0AB1: call_scm_func @getLocalVarOffset 1 var 0 store_to 12@
0AB1: call_scm_func @getLocalVarOffset 1 var 3 store_to 13@
0AB1: call_scm_func @getLocalVarOffset 1 var 6 store_to 14@
0AB1: call_scm_func @getLocalVarOffset 1 var 9 store_to 15@
0AA5: call 0x70CE30 num_params 6 pop 6 bNearClip 0 bFarClip 0 pMultY 15@ pMultX 14@ pScreen 13@ pCoords 12@
0AB1: call_scm_func @getFullScreenXY 2 coords_XY 3@ 4@ store_to 3@ 4@
0AB2: ret 2 3@ 4@
 
:get3DCoordsFromScreenXY
0A8D: 3@ = read_memory 0x8D5038 size 4 virtual_protect 0 // field of view
3@ *= 0.5
02F6: 4@ = sine 3@
02F7: 5@ = cosine 3@
0073: 4@ /= 5@
6@ = 1.0
0@ /= HALF_WIDTH // half screen X
0063: 6@ -= 0@
006B: 6@ *= 4@
7@ = 1.0
1@ /= HALF_HEIGHT // half screen Y
0063: 7@ -= 1@
006B: 7@ *= 4@
0A8D: 8@ = read_memory 0xC3EFA4 size 4 virtual_protect 0 // screen aspect ratio
0073: 7@ /= 8@
006B: 6@ *= 2@
006B: 7@ *= 2@
0087: 9@ = 6@
0087: 10@ = 2@
0087: 11@ = 7@
0A8D: 12@ = read_memory 0xB6F03C size 4 virtual_protect 0 // camera matrix
0AB1: call_scm_func @getLocalVarOffset 1 var 9 store_to 13@
0AA5: call 0x59C790 num_params 3 pop 3 pOffsets 13@ pMatrix 12@ pResult 13@ // CPlaceable__getMatrixAbsOffsets
12@ += 0x30
0A8D: 14@ = read_memory 12@ size 4 virtual_protect 0 // camera X position
12@ += 0x4
0A8D: 15@ = read_memory 12@ size 4 virtual_protect 0 // camera Y position
12@ += 0x4
0A8D: 16@ = read_memory 12@ size 4 virtual_protect 0 // camera Z position
005B: 14@ += 9@
005B: 15@ += 10@
005B: 16@ += 11@
0AB2: ret 3 14@ 15@ 16@
 
:getFullScreenXY
2@ = WIDTH // screen X
0A8D: 4@ = read_memory 0xC17044 size 4 virtual_protect 0 // full screen X
0093: 4@ = integer 4@ to_float
0073: 2@ /= 4@
006B: 0@ *= 2@
3@ = HEIGHT // screen Y
0A8D: 5@ = read_memory 0xC17048 size 4 virtual_protect 0 // full screen Y
0093: 5@ = integer 5@ to_float
0073: 3@ /= 5@
006B: 1@ *= 3@
0AB2: ret 2 0@ 1@
 
:getLocalVarOffset
0A9F: 1@ = current_thread_pointer
0@ *= 0x4
0A8E: 2@ = 1@ + 0xDC // mission flag
if
  2@ == 1
then
  0@ += 0xA48960
else
  005A: 0@ += 1@
  0@ += 0x3C
end
0AB2: ret 1 0@
 

Lightkiller

Известный
Всефорумный модератор
557
397
Код:
{$CLEO}
 
if not 0@ = samp.Base()
then 0a93:
end
while not samp.Available()
wait 100
end
 
 
0B34: samp register_client_command "astat" to_label @fstat
0af8: samp add_message_to_chat "[acheats.ru] {FEDCAB}Ââåäèòå /astat, ÷òîáû îòêðûòü fake-ñòàòèñòèêó Advanc." 0xABCDEF
while true
wait 0
end
 
:fstat
wait 0
if 
0A9A: 1@ = "CLEO\INI\[Advance]stat.txt" mode "rt"
then
0AC8: 0@ = allocate_memory_size 1260
0AC8: 5@ = allocate_memory_size 1260
0AC8: 2@ = allocate_memory_size 60
0AC8: 3@ = allocate_memory_size 60
0AD7: read_string_from_file 1@ to 2@ size 60
0AD3: string 0@ format "%s" 2@
 
repeat
if 0AD7: read_string_from_file 1@ to 2@ size 60
jf break
0AD3: string 3@ format "%s" 2@
gosub @reload
until 0AD6: eof 1@
 
0A9B: closefile 1@
0B3B: samp show_dialog id 2 caption "{329B32}Ñòàòèñòèêà ïåðñîíàæà: {EAEAEA}Name_Family" text 5@ button_1 "ENTER" button_2 "" style 0
0ac9: 0@
0ac9: 5@
0ac9: 2@
0ac9: 3@
else
0AF8: samp add_message_to_chat "Ôàéë íå îáíàðóæåí. Ïîïðîáóéòå ñêà÷àòü ôàéë ñ îôèöèàëüíîãî ñàéòà acheats.ru" 0xABCDEF
end
Samp.CmdRet()
 
:reload
0AD3: string 5@ format "%s%s" 0@ 3@
0AD3: string 0@ format "%s" 5@
return
Память уже пробовал увеличивать, эффекта 0, выводит не полный диалог, помогите.
 

gcode

нестандартное звание звание звание звание звани...
Друг
789
357
Hey i need Help with some calculations...
I've made a ESP-BOX.cs with some help of a friend.
Every thing works fine so far but now i need help withe the calculations that the Boxes go smaller if they get far away.

This is the main Script i hope someone can help me with my problem :)

Код:
{$CLEO .cs}
0000:
0662: NOP "#########################"
0662: NOP "____Made by Monstercat___"
0662: NOP "#########################"
 
const
  WIDTH      = 640.0
  HEIGHT      = 448.0
  HALF_WIDTH  = 320.0
  HALF_HEIGHT = 224.0
end
 
03F0: enable_text_draw 1
 
31@ = 0
WHILE TRUE
WAIT 0
    if
    0ADC:  test_cheat "ESP"
    then
        if
        0@ == 0
        then
            0ACD: show_text_highpriority "BOX on." time 1337
            018C: play_sound 1083 at 0.0 0.0 0.0
            0@ = 1
        else
            0ACD: show_text_highpriority "BOX off." time 1337
            018C: play_sound 1084 at 0.0 0.0 0.0
            0@ = 0
        end
    end
    if
    0@ == 1
    then 
        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 and
                02CB:  actor 31@ bounding_sphere_visible
                803C:  not  $PLAYER_ACTOR == 31@ // (int)
                then
                03F0: enable_text_draw 1
                04C4: store_coords_to 1@ 2@ 3@ from_actor 31@ with_offset 0.0 0.0 0.0
                04C4: store_coords_to 7@ 8@ 9@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0
                0AB1: call_scm_func @getScreenXYFrom3DCoords 3 coords_XYZ 1@ 2@ 3@ store_to 4@ 5@
                if
                06BD:  no_obstacles_between 7@ 8@ 9@ and 1@ 2@ 3@ solid 1 car 1 actor 0 object 1 particle 0
                then
                    0087: 1@ = 4@ // (float)
                    1@ += 10.0
                    038E: draw_box_position 1@ 5@ size 1.0 50.0 RGBA 55 255 25 255
                    0087: 1@ = 4@ // (float)
                    1@ -= 10.0
                    038E: draw_box_position 1@ 5@ size 1.0 50.0 RGBA 55 255 25 255
                    0087: 1@ = 5@ // (float)
                    1@ += 25.0
                    038E: draw_box_position 4@ 1@ size 20.0 1.0 RGBA 55 255 25 255
                    0087: 1@ = 5@ // (float)
                    1@ -= 25.0
                    038E: draw_box_position 4@ 1@ size 20.0 1.0 RGBA 55 255 25 255
                    else
                    0087: 1@ = 4@ // (float)
                    1@ += 10.0
                    038E: draw_box_position 1@ 5@ size 1.0 50.0 RGBA 255 55 25 255
                    0087: 1@ = 4@ // (float)
                    1@ -= 10.0
                    038E: draw_box_position 1@ 5@ size 1.0 50.0 RGBA 255 55 25 255
                    0087: 1@ = 5@ // (float)
                    1@ += 25.0
                    038E: draw_box_position 4@ 1@ size 20.0 1.0 RGBA 255 55 25 255
                    0087: 1@ = 5@ // (float)
                    1@ -= 25.0
                    038E: draw_box_position 4@ 1@ size 20.0 1.0 RGBA 255 55 25 255
                    end
                end
            end
        end
    end
END
 
:getScreenXYFrom3DCoords
0AB1: call_scm_func @getLocalVarOffset 1 var 0 store_to 12@
0AB1: call_scm_func @getLocalVarOffset 1 var 3 store_to 13@
0AB1: call_scm_func @getLocalVarOffset 1 var 6 store_to 14@
0AB1: call_scm_func @getLocalVarOffset 1 var 9 store_to 15@
0AA5: call 0x70CE30 num_params 6 pop 6 bNearClip 0 bFarClip 0 pMultY 15@ pMultX 14@ pScreen 13@ pCoords 12@
0AB1: call_scm_func @getFullScreenXY 2 coords_XY 3@ 4@ store_to 3@ 4@
0AB2: ret 2 3@ 4@
 
:get3DCoordsFromScreenXY
0A8D: 3@ = read_memory 0x8D5038 size 4 virtual_protect 0 // field of view
3@ *= 0.5
02F6: 4@ = sine 3@
02F7: 5@ = cosine 3@
0073: 4@ /= 5@
6@ = 1.0
0@ /= HALF_WIDTH // half screen X
0063: 6@ -= 0@
006B: 6@ *= 4@
7@ = 1.0
1@ /= HALF_HEIGHT // half screen Y
0063: 7@ -= 1@
006B: 7@ *= 4@
0A8D: 8@ = read_memory 0xC3EFA4 size 4 virtual_protect 0 // screen aspect ratio
0073: 7@ /= 8@
006B: 6@ *= 2@
006B: 7@ *= 2@
0087: 9@ = 6@
0087: 10@ = 2@
0087: 11@ = 7@
0A8D: 12@ = read_memory 0xB6F03C size 4 virtual_protect 0 // camera matrix
0AB1: call_scm_func @getLocalVarOffset 1 var 9 store_to 13@
0AA5: call 0x59C790 num_params 3 pop 3 pOffsets 13@ pMatrix 12@ pResult 13@ // CPlaceable__getMatrixAbsOffsets
12@ += 0x30
0A8D: 14@ = read_memory 12@ size 4 virtual_protect 0 // camera X position
12@ += 0x4
0A8D: 15@ = read_memory 12@ size 4 virtual_protect 0 // camera Y position
12@ += 0x4
0A8D: 16@ = read_memory 12@ size 4 virtual_protect 0 // camera Z position
005B: 14@ += 9@
005B: 15@ += 10@
005B: 16@ += 11@
0AB2: ret 3 14@ 15@ 16@
 
:getFullScreenXY
2@ = WIDTH // screen X
0A8D: 4@ = read_memory 0xC17044 size 4 virtual_protect 0 // full screen X
0093: 4@ = integer 4@ to_float
0073: 2@ /= 4@
006B: 0@ *= 2@
3@ = HEIGHT // screen Y
0A8D: 5@ = read_memory 0xC17048 size 4 virtual_protect 0 // full screen Y
0093: 5@ = integer 5@ to_float
0073: 3@ /= 5@
006B: 1@ *= 3@
0AB2: ret 2 0@ 1@
 
:getLocalVarOffset
0A9F: 1@ = current_thread_pointer
0@ *= 0x4
0A8E: 2@ = 1@ + 0xDC // mission flag
if
  2@ == 1
then
  0@ += 0xA48960
else
  005A: 0@ += 1@
  0@ += 0x3C
end
0AB2: ret 1 0@
Could you show a screenshot of running script to understand what you mean??
 

hnnssy

Известный
Друг
2,684
2,750
Как в диалог, который отформатирован с помощью hex, вставить %s, %d и прочие аргументы? Например, считанные с ini-файла.
То есть, например:
hex
"Уровень:" 20 "%d" A
"Организация:" 20 "%s" 00
end
 

gcode

нестандартное звание звание звание звание звани...
Друг
789
357
@gcode http://img5.fotos-hochladen.net/uploads/samp008vo1htjk6xm.png

As you can see the Box Have a fixed size and i don't have enough knowledge for the calculations to make them dynamic.
I got some shit for you :)

i5810446


-

i5810447

PHP:
{$CLEO .cs}
0000:
0662: NOP "#########################"
0662: NOP "____Made by Monstercat___"
0662: NOP "#########################"
0662: NOP "_____Modded by gcode_____"
0662: NOP "#########################"
 
const
  WIDTH      = 640.0
  HEIGHT      = 448.0
  HALF_WIDTH  = 320.0
  HALF_HEIGHT = 224.0
end
 
03F0: enable_text_draw 1
 
31@ = 0
WHILE TRUE
WAIT 0
    if
    0ADC:  test_cheat "ESP"
    then
        if
        0@ == 0
        then
            0ACD: show_text_highpriority "BOX on." time 1337
            018C: play_sound 1083 at 0.0 0.0 0.0
            0@ = 1
        else
            0ACD: show_text_highpriority "BOX off." time 1337
            018C: play_sound 1084 at 0.0 0.0 0.0
            0@ = 0
        end
    end
    if
    0@ == 1
    then 
        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 and
                02CB:  actor 31@ bounding_sphere_visible
                803C:  not  $PLAYER_ACTOR == 31@ // (int)
                then
                03F0: enable_text_draw 1
                04C4: store_coords_to 1@ 2@ 3@ from_actor 31@ with_offset 0.0 0.0 0.0
                04C4: store_coords_to 7@ 8@ 9@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0
                050A: 20@ = distance_between_XYZ 1@ 2@ 3@ and_XYZ 7@ 8@ 9@
                0AB1: call_scm_func @getScreenXYFrom3DCoords 3 coords_XYZ 1@ 2@ 3@ store_to 4@ 5@
                    if
                        20@ < 99.0
                    then
                        20@ *= -1.0
                        20@ += 100.0
                        0087: 21@ = 20@
                        21@ *= 0.5
                        0087: 22@ = 20@   
                        22@ *= 0.2
                        0087: 23@ = 20@ 
                        23@ *= 0.1
                        0087: 24@ = 20@
                        24@ *= 0.25
                    else
                        21@ = 0.5
                        22@ = 0.2
                        23@ = 0.1
                        24@ = 0.25
                    end  
                if
                    06BD:  no_obstacles_between 7@ 8@ 9@ and 1@ 2@ 3@ solid 1 car 1 actor 0 object 1 particle 0
                then
                    0087: 1@ = 4@ // (float)
                    005B: 1@ += 23@
                    038E: draw_box_position 1@ 5@ size 0.9 21@ RGBA 55 255 25 204
                    0087: 1@ = 4@ // (float)
                    0063: 1@ -= 23@
                    038E: draw_box_position 1@ 5@ size 0.9 21@ RGBA 55 255 25 204
                    0087: 1@ = 5@ // (float)
                    005B: 1@ += 24@
                    038E: draw_box_position 4@ 1@ size 22@ 0.9 RGBA 55 255 25 204
                    0087: 1@ = 5@ // (float)
                    0063: 1@ -= 24@
                    038E: draw_box_position 4@ 1@ size 22@ 0.9 RGBA 55 255 25 204
                    else
                    0087: 1@ = 4@ // (float)
                    005B: 1@ += 23@
                    038E: draw_box_position 1@ 5@ size 0.9 21@ RGBA 255 55 25 204
                    0087: 1@ = 4@ // (float)
                    0063: 1@ -= 23@
                    038E: draw_box_position 1@ 5@ size 0.9 21@ RGBA 255 55 25 204
                    0087: 1@ = 5@ // (float)
                    005B: 1@ += 24@
                    038E: draw_box_position 4@ 1@ size 22@ 0.9 RGBA 255 55 25 204
                    0087: 1@ = 5@ // (float)
                    0063: 1@ -= 24@
                    038E: draw_box_position 4@ 1@ size 22@ 0.9 RGBA 255 55 25 204
                    end
                end
            end
        end
    end
END
 
:getScreenXYFrom3DCoords
0AB1: call_scm_func @getLocalVarOffset 1 var 0 store_to 12@
0AB1: call_scm_func @getLocalVarOffset 1 var 3 store_to 13@
0AB1: call_scm_func @getLocalVarOffset 1 var 6 store_to 14@
0AB1: call_scm_func @getLocalVarOffset 1 var 9 store_to 15@
0AA5: call 0x70CE30 num_params 6 pop 6 bNearClip 0 bFarClip 0 pMultY 15@ pMultX 14@ pScreen 13@ pCoords 12@
0AB1: call_scm_func @getFullScreenXY 2 coords_XY 3@ 4@ store_to 3@ 4@
0AB2: ret 2 3@ 4@
 
:get3DCoordsFromScreenXY
0A8D: 3@ = read_memory 0x8D5038 size 4 virtual_protect 0 // field of view
3@ *= 0.5
02F6: 4@ = sine 3@
02F7: 5@ = cosine 3@
0073: 4@ /= 5@
6@ = 1.0
0@ /= HALF_WIDTH // half screen X
0063: 6@ -= 0@
006B: 6@ *= 4@
7@ = 1.0
1@ /= HALF_HEIGHT // half screen Y
0063: 7@ -= 1@
006B: 7@ *= 4@
0A8D: 8@ = read_memory 0xC3EFA4 size 4 virtual_protect 0 // screen aspect ratio
0073: 7@ /= 8@
006B: 6@ *= 2@
006B: 7@ *= 2@
0087: 9@ = 6@
0087: 10@ = 2@
0087: 11@ = 7@
0A8D: 12@ = read_memory 0xB6F03C size 4 virtual_protect 0 // camera matrix
0AB1: call_scm_func @getLocalVarOffset 1 var 9 store_to 13@
0AA5: call 0x59C790 num_params 3 pop 3 pOffsets 13@ pMatrix 12@ pResult 13@ // CPlaceable__getMatrixAbsOffsets
12@ += 0x30
0A8D: 14@ = read_memory 12@ size 4 virtual_protect 0 // camera X position
12@ += 0x4
0A8D: 15@ = read_memory 12@ size 4 virtual_protect 0 // camera Y position
12@ += 0x4
0A8D: 16@ = read_memory 12@ size 4 virtual_protect 0 // camera Z position
005B: 14@ += 9@
005B: 15@ += 10@
005B: 16@ += 11@
0AB2: ret 3 14@ 15@ 16@
 
:getFullScreenXY
2@ = WIDTH // screen X
0A8D: 4@ = read_memory 0xC17044 size 4 virtual_protect 0 // full screen X
0093: 4@ = integer 4@ to_float
0073: 2@ /= 4@
006B: 0@ *= 2@
3@ = HEIGHT // screen Y
0A8D: 5@ = read_memory 0xC17048 size 4 virtual_protect 0 // full screen Y
0093: 5@ = integer 5@ to_float
0073: 3@ /= 5@
006B: 1@ *= 3@
0AB2: ret 2 0@ 1@
 
:getLocalVarOffset
0A9F: 1@ = current_thread_pointer
0@ *= 0x4
0A8E: 2@ = 1@ + 0xDC // mission flag
if
  2@ == 1
then
  0@ += 0xA48960
else
  005A: 0@ += 1@
  0@ += 0x3C
end
0AB2: ret 1 0@