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

SR_team

like pancake
BH Team
4,729
6,389
Код на поиск чекпоинта работает отлично, проверил. При добавлении кода отправки фейк координат в машине происходит неведомая хрень, из-за чего не пойму. В чем косяк?

Тоже была такая хрень, вместо call вставил функцию в код, и все стало норм
 

gcode

нестандартное звание звание звание звание звани...
Друг
789
357
Код:
{$VERSION 3.1.0027}
{$CLEO .cs}
 
thread '228'
 
:228_1
wait 0
if and
0AB0:  key_pressed 49
jf @228_1
 
:228_2
wait 0
0AB1: call @StoreClosestRaceMarkerPos 0 X 30@ Y 29@ Z 28@
wait 1000
0ab1: @send_position 3 30@ 29@ 28@
wait 1000
jump @228_1
 
 
:storeclosestracemarkerpos
12@ = 9999.0
for 0@ = 0 to 31
    wait 0
    0085: 1@ = 0@
    1@ *= 56
    1@ += 0xC7F158
    1@ += 16
    0A8D: 2@ = read_memory 1@ size 4 virtual_protect 0
    1@ += 4
    0A8D: 3@ = read_memory 1@ size 4 virtual_protect 0
    1@ += 4
    0A8D: 4@ = read_memory 1@ size 4 virtual_protect 0
    00A0: store_actor $PLAYER_ACTOR position_to 5@ 6@ 7@
    050A: 8@ = distance_between_XYZ 2@ 3@ 4@ and_XYZ 5@ 6@ 7@
    if
        0025: 12@ > 8@
    then
        0087: 12@ = 8@
        0087: 9@ = 2@
        0087: 10@ = 3@
        0087: 11@ = 4@
    end
end
0AB2: ret 3 9@ 10@ 11@
 
 
:send_position
0B2B: samp 20@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B24: samp 20@ = get_player_ptr 3@
20@ += 177
0AC8: 21@ = allocate_memory_size 63
0C10: memcpy destination 21@ source 20@ size 63
0C0D: struct 21@ offset 24 size 4 = 23@
0C0D: struct 21@ offset 28 size 4 = 24@
0C0D: struct 21@ offset 32 size 4 = 25@
0B3D: raknet 22@ = new_bit_stream
0B40: raknet bit_stream 22@ write 219 type 0 size 1
0B40: raknet bit_stream 22@ write 21@ type 5 size 63
0B8B: raknet send bit_stream 22@
0B3E: raknet delete_bit_stream 22@
0AC9: free_allocated_memory 21@
0AB2: 0
Код на поиск чекпоинта работает отлично, проверил. При добавлении кода отправки фейк координат в машине происходит неведомая хрень, из-за чего не пойму. В чем косяк?
0B2B: samp 20@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B24: samp 20@ = get_player_ptr 3@

Чё за хуйня?
 

gcode

нестандартное звание звание звание звание звани...
Друг
789
357
А я не заметил :)
ma_za_xa_ka, у тебя там ошибка, надо:
PHP:
3@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
3@ = SAMP.GetPlayerStruct(3@)
3@ += 201
Ты тоже дурак. Вот так нужно
PHP:
20@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
20@ = SAMP.GetPlayerStruct(20@)
20@ += 201
 

ma_za_xa_ka

Известный
42
0
Ты тоже дурак. Вот так нужно
PHP:
20@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
20@ = SAMP.GetPlayerStruct(20@)
20@ += 201

Отправка ложных координат заработа ( ну это понятно ), но почему то не может найти чекпоинт ( даже через обычное тп ничего не происходит )
 

gcode

нестандартное звание звание звание звание звани...
Друг
789
357
Отправка ложных координат заработа ( ну это понятно ), но почему то не может найти чекпоинт ( даже через обычное тп ничего не происходит )
Их 2 вида бывает. У тебя именно чекпоинт ищет. А есть ещё для обычных маркеров.
 

gcode

нестандартное звание звание звание звание звани...
Друг
789
357

ma_za_xa_ka

Известный
42
0
ты на его код посмотри сначала. там везде 20@ а не 3@
Координаты начал получать отлично, но как я ни колдовал, уже и в ручную вводил координаты и всеравно не берет он чекпоинт. В чем может быть тут косяк? ( по радару ТП происходит, но вот куда кто бы знал :D )

Код:
:send_position
20@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
20@ = SAMP.GetPlayerStruct(20@)
20@ += 201 
0AC8: 21@ = allocate_memory_size 63 
0C10: memcpy destination 21@ source 20@ size 63 
0C0D: struct 21@ offset 24 size 4 = 23@ 
0C0D: struct 21@ offset 28 size 4 = 24@ 
0C0D: struct 21@ offset 32 size 4 = 25@ 
0B3D: raknet 22@ = new_bit_stream 
0B40: raknet bit_stream 22@ write 219 type 0 size 1 
0B40: raknet bit_stream 22@ write 21@ type 5 size 63 
0B8B: raknet send bit_stream 22@ 
0B3E: raknet delete_bit_stream 22@ 
0AC9: free_allocated_memory 21@ 
0AB2: 0
 

gcode

нестандартное звание звание звание звание звани...
Друг
789
357
Координаты начал получать отлично, но как я ни колдовал, уже и в ручную вводил координаты и всеравно не берет он чекпоинт. В чем может быть тут косяк? ( по радару ТП происходит, но вот куда кто бы знал :D )

Код:
:send_position
20@ = SAMP.GetSAMPPlayerIDByActorHandle($PLAYER_ACTOR)
20@ = SAMP.GetPlayerStruct(20@)
20@ += 201
0AC8: 21@ = allocate_memory_size 63
0C10: memcpy destination 21@ source 20@ size 63
0C0D: struct 21@ offset 24 size 4 = 23@
0C0D: struct 21@ offset 28 size 4 = 24@
0C0D: struct 21@ offset 32 size 4 = 25@
0B3D: raknet 22@ = new_bit_stream
0B40: raknet bit_stream 22@ write 219 type 0 size 1
0B40: raknet bit_stream 22@ write 21@ type 5 size 63
0B8B: raknet send bit_stream 22@
0B3E: raknet delete_bit_stream 22@
0AC9: free_allocated_memory 21@
0AB2: 0
NOP Onfoot Data на время отправки координат включай. И задерживайся там миллисекунд на 200-300
 

ma_za_xa_ka

Известный
42
0
Если NOP Onfoot Data включен то машине пофигу - чекпоинты берет. Я делал похожее на 0.3x и чекпоинты спокойно брались, может сдесь где то чтото не так плюсуется и мы промахиваемся?