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

AWRage

Активный
642
141
Есть у кого адрес памяти отвечающий за дальность прорисовки? Или как вообще можно увеличить прорисовку?
Я видел мод, но там нужно было заменить gtasa.exe. Не хотелось бы заменять стандартный)
 

Vovich

HOT
Проверенный
717
197
Есть у кого адрес памяти отвечающий за дальность прорисовки? Или как вообще можно увеличить прорисовку?
Я видел мод, но там нужно было заменить gtasa.exe. Не хотелось бы заменять стандартный)
Код:
0xBA6788 - [float] Дистанция прорисовки
 

AWRage

Активный
642
141
Код:
0xBA6788 - [float] Дистанция прорисовки
Я хочу, чтобы видно было весь штат, но этот адрес не так работает. У меня ничего не изменяется.
CLEO:
while true

    if 0ADC: "Q"
    then
        0A8D: 0@ = read_memory 0xBA6788 size 4 virtual_protect 0
        0af8: "Áûëî: %f" -1 0@
        000B: 0@ += 10.0
        0A8C: write_memory 0xBA6788 size 4 value 0@ virtual_protect 0
    end
   
    if 0ADC: "E"
    then
        0A8D: 0@ = read_memory 0xBA6788 size 4 virtual_protect 0
        0af8: "Áûëî: %f" -1 0@
        000F: 0@ -= 10.0
        0A8C: write_memory 0xBA6788 size 4 value 0@ virtual_protect 0
    end
    
wait 0
end
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,956
CLEO:
{$CLEO}
{$INCLUDE SF}
IF 0038:   $707 == FALSE
THEN 0A93:
END
0AC6: 0@ = label @HEXEND offset
0B6D: render 1@ = create_font "Arial" height 10 flags 13

REPEAT
0001: WAIT FALSE
UNTIL 0AFA:

WHILE TRUE
0001: WAIT FALSE
    IF 0B61:  samp is_local_player_spawned
    THEN
        FOR 2@ = FALSE TO MAX_PICKUPS [STEP = TRUE]
            IF 0B51: samp 3@ = pickup_handle_by_id 2@
            THEN 0AB1: call_scm_func @GetPickupModelBySAMPID params 1 | id 2@ | model_to 4@ |
                IF 0039:   4@ == 1276
                THEN
                0C1C: 0@ = itoa 4@ radix 10
                065B: store_pickup 3@ position_to 5@ 6@ 7@
                0B55: convert_3D_coords 5@ 6@ 7@ to_screen 5@ 6@
                0B6F: render font 1@ draw_text 0@ pos 5@ 6@ color 0xFFFFFFFF
                END
            END
        END        
    END
END

:HEXEND // 16 + 1
HEX
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0
END

:GetPickupModelBySAMPID
0BB9: samp 25@ = get_pickup_pool_ptr
0A90: 26@ = 0@ * 20
000A: 26@ += 61444
005A: 25@ += 26@
0A8D: 25@ = read_memory 25@ size 4 virtual_protect TRUE // Model
0AB2: RET TRUE | Model 25@ |
 

SR_team

like pancake
BH Team
4,717
6,358
нихуя ты мажор. Там значение от 0.0 до 1.0 изменяется через настройки игры. При 3.6 с белого дома на холме в ЛС хорошо видно все мелкие детали на причале на пляже, и немного деревья у дороги к СФ. А не видешь ты все это из-за тумана, который в Timecyc редактируется - тут либо модефицировать gta_sa.exe, либо юзать SightDistance от 0x688
 
  • Нравится
Реакции: AWRage

AWRage

Активный
642
141
нихуя ты мажор. Там значение от 0.0 до 1.0 изменяется через настройки игры. При 3.6 с белого дома на холме в ЛС хорошо видно все мелкие детали на причале на пляже, и немного деревья у дороги к СФ. А не видешь ты все это из-за тумана, который в Timecyc редактируется - тут либо модефицировать gta_sa.exe, либо юзать SightDistance от 0x688
Понятно.
 

SR_team

like pancake
BH Team
4,717
6,358
я нашел способ проще.
0x0055FCC8 записываешь сюда 0x909090 что бы можно было менять дистанцию через клео, потом по адресу 0x00B7C4F0 пишешь свою дистанцию прорисовки.

Вот пример. Этот код будет выставлять рандомную дистанцию прорисовки
CLEO:
{$CLEO .cs}
wait 1000
memset 0x0055FCC8 0x90 3
while true
    wait 0
    if key 0x52 //R
    then
        repeat
            wait 0
        until not key 0x52
        0208: 0@ = random_float_in_ranges 100.0 3600.0
        0A8C: write_memory 0x00B7C4F0 size 4 value 0@ virtual_protect 1
        log "%f" 0@
    end
end
 
  • Нравится
Реакции: AWRage

SR_team

like pancake
BH Team
4,717
6,358
А нет, не катит вариант с отключением. Надо хукать. Потом залью фикс дистанции, что бы нормально писалась
 
  • Нравится
Реакции: Vovich

:notCoder:

Новичок
19
0
CLEO:
{$CLEO}
{$INCLUDE SF}
IF 0038:   $707 == FALSE
THEN 0A93:
END
0AC6: 0@ = label @HEXEND offset
0B6D: render 1@ = create_font "Arial" height 10 flags 13

REPEAT
0001: WAIT FALSE
UNTIL 0AFA:

WHILE TRUE
0001: WAIT FALSE
    IF 0B61:  samp is_local_player_spawned
    THEN
        FOR 2@ = FALSE TO MAX_PICKUPS [STEP = TRUE]
            IF 0B51: samp 3@ = pickup_handle_by_id 2@
            THEN 0AB1: call_scm_func @GetPickupModelBySAMPID params 1 | id 2@ | model_to 4@ |
                IF 0039:   4@ == 1276
                THEN
                0C1C: 0@ = itoa 4@ radix 10
                065B: store_pickup 3@ position_to 5@ 6@ 7@
                0B55: convert_3D_coords 5@ 6@ 7@ to_screen 5@ 6@
                0B6F: render font 1@ draw_text 0@ pos 5@ 6@ color 0xFFFFFFFF
                END
            END
        END       
    END
END

:HEXEND // 16 + 1
HEX
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0
END

:GetPickupModelBySAMPID
0BB9: samp 25@ = get_pickup_pool_ptr
0A90: 26@ = 0@ * 20
000A: 26@ += 61444
005A: 25@ += 26@
0A8D: 25@ = read_memory 25@ size 4 virtual_protect TRUE // Model
0AB2: RET TRUE | Model 25@ |
Спасибо большое) Извини, что так долго не отвечал
 

01EG

Известный
Проверенный
631
344
1)
Можно ли в цикле repeat until , использовать 2 параметра на until
Например:
CLEO:
repeat
wait 0
if 0ab0: 90
Actor.PutAt($PLAYER_ACTOR 0.0 0.0 .0.0)
Actor.PutAt($PLAYER_ACTOR 999.0 999.0 .999.0)
until Actor.Dead , not Actor.Defined , 8ab0: not 90
Через запятую или как-то так захуярить.
2)
Можно ли считать циклы:
while true end
и
repeat until false
одинаковыми ?
 

01EG

Известный
Проверенный
631
344
Я наверное плохо задал вопрос. Например в цикле "while true end" после первой проверки на переменную хочу выполнить еще одну проверку. Как мне реализовать это ? Если делаю так, то текст выводится, но переменная не меняется или скрипт просто не доходит до самой первой проверки.
CLEO:
while true
wait 0
if 18@ == 1
then
Actor.PutAt($PLAYER_ACTOR 2727.2852 -2451.0808 16.9397)
wait 1500
Actor.PutAt($PLAYER_ACTOR 2622.1875 -2461.1560 3.0000)
if or
0118: actor $PLAYER_ACTOR dead
856D:  not actor $PLAYER_ACTOR defined
then
18@ == 0
0ACD: show_text_highpriority "SCRIPT STOP. DON'T KICK"
end
end
end