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

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,463
Координаты начал получать отлично, но как я ни колдовал, уже и в ручную вводил координаты и всеравно не берет он чекпоинт. В чем может быть тут косяк? ( по радару ТП происходит, но вот куда кто бы знал :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

Чё за идиотизм?
Переменные 23@, 24@, 25@ пустые, поэтому и не тпшит туда куда нужно.

Код:
{$I SF}
:SendFakePosInCar
0B2B: samp 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B24: samp 3@ = get_player_ptr 3@
3@ += 201
0AC8: 4@ 63
0C10: memcpy def 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_VEHICLE_SYNC type BS_TYPE_BYTE size 1
0B40: raknet bit_stream 5@ write 4@ type BS_TYPE_STRING size 63
0B42: raknet send bit_stream 5@ priority HIGH_PRIORITY reliability UNRELIABLE_SEQUENCED ordering_channel 0
0B3E: raknet delete_bit_stream 5@
0AC9: 4@
0AB2: 0
 

ma_za_xa_ka

Известный
42
0
SbgI6INDkmM.jpg

У меня снова пару вопросов
1. Почему он бывает ТП непонятно куда
2. Почему при ТП в некоторых случаях он телепортируется вокруг чекпоинта ( по кругу )
Код:
{$VERSION 3.1.0027}
{$CLEO .cs}
{$Include includes\RakNetDefines.txt}
 
thread '228'
 
:228_1
wait 0
if and
0AB0:  key_pressed 49
jf @228_1
 
:228_2
wait 0
Car.LockInCurrentPosition(30@) = True
wait 0
0AB1: call @storeclosestracemarkerpos 0 X 30@ Y 29@ Z 28@
wait 100
0AB1: call_scm_func @688 3 30@ 29@ 28@
if and
0AB0: key_pressed 16
0AB0: key_pressed 79
else_jump @228_2
0AF8: samp add_message_to_chat "Áîò Îñòàíîâëåí" color 16711680
wait 0
Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
02CE: 13@ = ground_z_at 0@ 1@ 999.0
Actor.PutAt($PLAYER_ACTOR, 0@, 1@, 13@)
Car.LockInCurrentPosition(30@) = False
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 3@ = get_player_id_by_actor_handle $PLAYER_ACTOR
0B24: samp 3@ = get_player_ptr 3@
3@ += 201
0AC8: 4@ 63
0C10: memcpy def 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 219 type 0 size 1
0B40: raknet bit_stream 5@ write 4@ type BS_TYPE_STRING size 63
0B8B: raknet send bit_stream 5@
0B3E: raknet delete_bit_stream 5@
0AC9: 4@
0AB2: 0
 
:688
  wait 0                     
  Actor.StorePos($PLAYER_ACTOR 3@ 4@ 5@)             
  0509: 11@ = distance_between_XY 0@ 1@ and_XY 3@ 4@
  if                 
                        not 11@ >= 70.0                 
  jf @192
  Actor.PutAt($PLAYER_ACTOR, 0@, 1@, -20.1)
  wait 0
  0AB1: @send_position 3 0@ 1@ 12@
  jump @228_2                 
 
  :192 // ñòàâèì ïîâîðîò â ñòîðîíó òï
  0063: 0@ -= 3@ // (float)                 
  0063: 1@ -= 4@ // (float)                 
  0604: get_Z_angle_for_point 0@ 1@ store_to 6@
  Actor.Angle($PLAYER_ACTOR) = 6@ //                 
  Actor.LockInCurrentPosition($PLAYER_ACTOR) = True
  if
                        Actor.Driving($PLAYER_ACTOR)
  jf @273
  03C0: 30@ = actor $PLAYER_ACTOR car                     
  Car.LockInCurrentPosition(30@) = True
 
  :273
  04C4: store_coords_to 8@ 9@ 10@ from_actor $PLAYER_ACTOR with_offset 0.0 50.1 0.0
  Actor.PutAt($PLAYER_ACTOR, 8@, 9@, -20.1)         
  wait 1200                 
 
  :329
  if
  0ADC: not test_cheat "NO"
  jf @414                 
 
  :342
  wait 0                 
  7@ = 0
  Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
  02CE: 13@ = ground_z_at 0@ 1@ 999.0
  0AB1: @send_position 3 0@ 1@ 13@
  Actor.LockInCurrentPosition($PLAYER_ACTOR) = False
  if                 
  056E:  car 30@ defined
  jf @414                       
  Car.LockInCurrentPosition(30@) = False
  jump @414
 
  :414
  0AB2: ret 0
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,463

Что за перебор вообще? Зачем указывать угол поворота авто?
Выход из scm функции должен быть осуществлен опкодом 0ab2, а не прыжком на метку.
Пожалуйста, используй циклы с наименьшим кол-вом меток. Код становится понятнее, а так - тебе никто не будет помогать.
 

SR_team

like pancake
BH Team
4,729
6,389
Ник либо не меняется, либо крашится игра
PHP:
0B2D: write_samp_memory offset 0x24CEA6 value 0x0000 size 2
0B34: samp register_client_command "rej" to_label @cmd
while true
wait 0
if 2@ == 1
    then
    2@ = 0
    1@ *= 1000
    0B28: samp disconnect_with_reason 1
    wait 1@
    0B27: samp set_gamestate 1
    else
    if 2@ == 2
        then
        2@ = 0
        0B28: samp disconnect_with_reason 1
        wait 400
        0B29: samp set_local_name 1@ 
        wait 14650
        0B27: samp set_gamestate 1
        end
    end
end
:cmd
while true
0B35: samp 0@ = get_last_command_params
if 0AD4: 29@ = scan_string 0@ format "%d" 1@
    then 
    2@ = 1
    else 
    if 0AD4: 29@ = scan_string 0@ format "%s" 1@
        then
        2@ = 2
        else
        2@ = 1
        1@ = 1
        end
    end
0B43: samp cmd_ret
 
  • Нравится
Реакции: Toplivo

gcode

нестандартное звание звание звание звание звани...
Друг
789
357
Ник либо не меняется, либо крашится игра
PHP:
0B2D: write_samp_memory offset 0x24CEA6 value 0x0000 size 2
0B34: samp register_client_command "rej" to_label @cmd
while true
wait 0
if 2@ == 1
    then
    2@ = 0
    1@ *= 1000
    0B28: samp disconnect_with_reason 1
    wait 1@
    0B27: samp set_gamestate 1
    else
    if 2@ == 2
        then
        2@ = 0
        0B28: samp disconnect_with_reason 1
        wait 400
        0B29: samp set_local_name 1@
        wait 14650
        0B27: samp set_gamestate 1
        end
    end
end
:cmd
while true
0B35: samp 0@ = get_last_command_params
if 0AD4: 29@ = scan_string 0@ format "%d" 1@
    then
    2@ = 1
    else
    if 0AD4: 29@ = scan_string 0@ format "%s" 1@
        then
        2@ = 2
        else
        2@ = 1
        1@ = 1
        end
    end
0B43: samp cmd_ret
0AD4: 29@ = scan_string 0@ format "%s"
Дурной чтоли? %s в scan string нельзя использовать. И вообще код какой-то ёбнутый, полюбому он не работает.
 

MelomanCool

Новичок
Проверенный
65
41
Ник либо не меняется, либо крашится игра
PHP:
0B2D: write_samp_memory offset 0x24CEA6 value 0x0000 size 2
0B34: samp register_client_command "rej" to_label @cmd
while true
wait 0
if 2@ == 1
    then
    2@ = 0
    1@ *= 1000
    0B28: samp disconnect_with_reason 1
    wait 1@
    0B27: samp set_gamestate 1
    else
    if 2@ == 2
        then
        2@ = 0
        0B28: samp disconnect_with_reason 1
        wait 400
        0B29: samp set_local_name 1@ 
        wait 14650
        0B27: samp set_gamestate 1
        end
    end
end
:cmd
while true
0B35: samp 0@ = get_last_command_params
if 0AD4: 29@ = scan_string 0@ format "%d" 1@
    then 
    2@ = 1
    else 
    if 0AD4: 29@ = scan_string 0@ format "%s" 1@
        then
        2@ = 2
        else
        2@ = 1
        1@ = 1
        end
    end
0B43: samp cmd_ret
o3s6Ron.gif
 

ma_za_xa_ka

Известный
42
0
Почему MGA_WAT перестал работать? P.S код

Код:
// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}
 
//-------------MAIN---------------
0000: NOP
wait 0
10@ = 0
11@ = 0
12@ = 0
 
:Noname_27
if
8AAB:  not file_exists "cleo\MGA_WAT.ini"
else_jump @Noname_188
0AF1: write_int 1 to_ini_file "cleo\MGA_WAT.ini" section "SETTINGS" key "WorkAllTime"
0AF1: write_int 1 to_ini_file "cleo\MGA_WAT.ini" section "SETTINGS" key "MouseNops"
0AF1: write_int 1 to_ini_file "cleo\MGA_WAT.ini" section "SETTINGS" key "KeysNops"
 
:Noname_188
0AF0: 0@ = get_int_from_ini_file "cleo\MGA_WAT.ini" section "SETTINGS" key "WorkAllTime"
0AF0: 1@ = get_int_from_ini_file "cleo\MGA_WAT.ini" section "SETTINGS" key "MouseNops"
0AF0: 2@ = get_int_from_ini_file "cleo\MGA_WAT.ini" section "SETTINGS" key "KeysNops"
if
803B:  not  0@ == 10@ // (int)
else_jump @Noname_440
0085: 10@ = 0@ // (int)
if
  0@ == 0
else_jump @Noname_380
30@ = 0
jump @Noname_390
 
:Noname_380
30@ = 16843009
 
:Noname_390
0AD0: show_formatted_text_lowpriority "Update WGA_WAT" time 2000 
0A8C: write_memory 7634870 size 1 value 30@ virtual_protect 1
0A8C: write_memory 7635034 size 1 value 30@ virtual_protect 1
 
:Noname_440
if
803B:  not  1@ == 11@ // (int)
else_jump @Noname_568
0085: 11@ = 1@ // (int)
if
  1@ == 0
else_jump @Noname_512
30@ = 1347550997
31@ = 8619264
jump @Noname_532
 
:Noname_512
30@ = -1869574000
31@ = -1869574000
 
:Noname_532
0AD0: show_formatted_text_lowpriority "Update WGA_WAT" time 2000 
0A8C: write_memory 7623723 size 8 value 30@ virtual_protect 1
 
:Noname_568
if
803B:  not  2@ == 12@ // (int)
else_jump @Noname_676
0085: 12@ = 2@ // (int)
if
  2@ == 0
else_jump @Noname_630
30@ = 1448498774
jump @Noname_640
 
:Noname_630
30@ = -1010580541
 
:Noname_640
0AD0: show_formatted_text_lowpriority "Update WGA_WAT" time 2000 
0A8C: write_memory 5512656 size 1 value 30@ virtual_protect 1
 
:Noname_676
wait 5000
jump @Noname_27
 

[Nexus]

Известный
41
2
Всем привет! В общем нужен пример хотя бы одной строки. Скрипт должен делать следующее: Пишу в чат /fdm и ID он автоматический пишет /jail ID(тот который был указан) 60 DM затем тут же пишет /warnu ID(опять же тот который был указан) DM. O:-)
 

SR_team

like pancake
BH Team
4,729
6,389
Всем привет! В общем нужен пример хотя бы одной строки. Скрипт должен делать следующее: Пишу в чат /fdm и ID он автоматический пишет /jail ID(тот который был указан) 60 DM затем тут же пишет /warnu ID(опять же тот который был указан) DM. O:-)

Боюсь одна {$CLEO .cs} тебе не поможет :D

PHP:
{$CLEO .cs}
thread 'JAIL'
0B34: samp register_client_command "fdm" to_label @Id
while true
wait 0
if 30@ == 1
    then
    0af9: "/jail %d 60 DM" 1@
    0af9: "/warum %d DM" 1@
    30@ = 0
    end
end
:Id
0B35: samp 0@ = get_last_command_params
if 0AD4: 0@ = scan_string 0@ format "%d" 1@
    then
    30@ = 1
    end
0B43: samp cmd_ret
 
  • Нравится
Реакции: [Nexus]

MISTER_GONWIK

Всефорумный гонщик
Всефорумный модератор
1,261
1,743
Боюсь одна {$CLEO .cs} тебе не поможет :D

PHP:
{$CLEO .cs}
thread 'JAIL'
0B34: samp register_client_command "fdm" to_label @Id
while true
wait 0
if 30@ == 1
    then
    0af9: "/jail %d 60 DM" 1@
    0af9: "/warum %d DM" 1@
    30@ = 0
    end
end
:Id
0B35: samp 0@ = get_last_command_params
if 0AD4: 0@ = scan_string 0@ format "%d" 1@
    then
    30@ = 1
    end
0B43: samp cmd_ret



нахуя делать такое? я не понимаю, НУ НАХУЯ?!
задержки нету, значит внутри тела функции команды надо:
PHP:
{$CLEO .cs}
thread 'JAIL'
wait 0
 
0B34: samp register_client_command "fdm" to_label @Id
 
while true
wait 0
 
end
 
:Id
0B35: samp 0@ = get_last_command_params
if 0AD4: 0@ = scan_string 0@ format "%d" 1@
then
    0af9: "/jail %d 60 DM" 1@
    0af9: "/warum %d DM" 1@   
end
0B43: samp cmd_ret
 
  • Нравится
Реакции: hnnssy и [Nexus]