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

MrAntow

Новичок
59
16
Очень странно.Нажатия на другие пункты влияют каким-то образом на остальные.Бредятина какая-то.Кто-нибудь видит ошибку?

Код
CLEO:
0000:NOP

repeat
wait 0
until SAMP.Available()

//0B34: samp register_client_command "bopc" to_label @cmd

free 29@
free 28@
0C6A: 4@ = create_custom_thread_at_label @thread_0
0AC8: 29@ = allocate_memory_size 256  // указатели на потоки наших функций!
0AC8: 28@ = allocate_memory_size 256  // статус работы наших функций!
0C6A: 4@ = create_custom_thread_at_label @thread_1
0C6C: set_thread 4@ local_var 1 = 0
0C0F: array 29@ element 0 = 4@
0C6A: 4@ = create_custom_thread_at_label @thread_2
0C6C: set_thread 4@ local_var 1 = 0
0C0F: array 29@ element 1 = 4@
0C6A: 4@ = create_custom_thread_at_label @thread_3
0C6C: set_thread 4@ local_var 1 = 0
0C0F: array 29@ element 2 = 4@
0C0F: array 28@ element 0 = 0
0C0F: array 28@ element 1 = 0
0C0F: array 28@ element 2 = 0
4@ = 0

repeat
wait 0
if 04A9:   actor $PLAYER_ACTOR driving_heli
then
  if //or
//  30@ == 1
  0ADC:   test_cheat "jk"
  then
//    30@ = 0
    7@ = 0
    0ac8: alloc 1@ size 256                 
    :lylka
    0C0E: 4@ = array 28@ element 0
    chatmsg "%d" 4@                      
    if 4@ == 0
    then                                      
      0ad3: format_stirng 1@ = "{FF0000}Пункт1%c" 0xA
    else
      0ad3: format_stirng 1@ = "{00FF00}Пункт1%c" 0xA
    end
    0C0E: 4@ = array 28@ element 1
    chatmsg "%d" 4@
    if 4@ == 0
    then
      0ad3: format_stirng 1@ = "%s{FF0000}Пункт2%c" 1@ 0xA
    else
      0ad3: format_stirng 1@ = "%s{00FF00}Пункт2%c" 1@ 0xA
    end
    0C0E: 4@ = array 28@ element 2
    chatmsg "%d" 4@
    if 4@ == 0                            
    then
      0ad3: format_stirng 1@ = "%s{FF0000}Пункт3%c" 1@ 0xA
    else
      0ad3: format_stirng 1@ = "%s{00FF00}Пункт3%c" 1@ 0xA
    end
    0B3B: samp show_dialog id 45 caption "" text 1@ button_1 "Вкл/Выкл" button_2 "Закрыть" style 2
    free 1@
    0B49: samp set_current_dialog_list_item 7@
    repeat
    wait 0
      if 0B3C: samp is_dialog_responded id 45 button 6@ list_item 7@ input_text 0 // Логгируем нажатие кнопки диалога с идом 45
      then
        if 6@ == 1             
        then
          chatmsg "%d" 7@
          if 7@ == 0
          then
              0C0E: 4@ = array 28@ element 7@                       
              if 4@ == 0
              then               
                0C0F: array 28@ element 7@ = 1
                0C0E: 25@ = array 29@ element 7@
                0C6C: set_thread 25@ local_var 0 = 1
              else               
                0C0F: array 28@ element 7@ = 0
                0C0E: 25@ = array 29@ element 7@
                0C6C: set_thread 25@ local_var 0 = 0                
              end
          end                      
          if 7@ == 1
          then                                                                                   
              0C0E: 4@ = array 28@ element 7@
              if 4@ == 0    
              then
                0C0F: array 28@ element 7@ = 1
                0C0E: 25@ = array 29@ element 7@
                0C6C: set_thread 25@ local_var 0 = 1
              else               
                0C0F: array 28@ element 7@ = 0
                0C0E: 25@ = array 29@ element 7@
                0C6C: set_thread 25@ local_var 0 = 0
              end
          end
          if 7@ == 2
          then
              0C0E: 4@ = array 28@ element 7@
              if 4@ == 0    
              then
                0C0F: array 28@ element 7@ = 1
                0C0E: 25@ = array 29@ element 7@
                0C6C: set_thread 25@ local_var 0 = 1
              else               
                0C0F: array 28@ element 7@ = 0
                0C0E: 25@ = array 29@ element 7@
                0C6C: set_thread 25@ local_var 0 = 0
              end
          end
          jump @lylka
        else
          break
        end
      end
    until false
    0B47: samp close_current_dialog_with_button 2
  end
end
until false

:thread_0 
wait 0
if 0@ == 1
then
  0AF8: samp add_message_to_chat "0" color //0xFFF235
  wait 1000
end
wait 1000
jump @thread_0

:thread_1 
wait 0
if 0@ == 1
then
    if
    0ADC:   test_cheat "go"
    then
//      0AF8: samp add_message_to_chat "xer" color 0xFFF235//0xFFF235
        0AB6: store_target_marker_coords_to 1@ 2@ 3@ // IF and SET
        03C0: 7@ = actor $PLAYER_ACTOR car
        00AA: store_car 7@ position_to 6@ 5@ 3@
//        if 86BD:   not no_obstacles_between 1@ 2@ 3@ and 6@ 5@ 3@ solid 1 car 0 actor 0 object 1 particle 1
//        then
//          0B56: set_game_key 16 state 255
//          repeat
//          wait 0
//          00AA: store_car 7@ position_to 6@ 5@ 3@   
//          until 86BD:   not no_obstacles_between 1@ 2@ 3@ and 6@ 5@ 3@ solid 1 car 0 actor 0 object 1 particle 1
//          0B56: set_game_key 16 state 0
//        end
        0087: 5@ = 3@ // (float)
        000B: 3@ += 4.0
        04A2: set_heli 7@ fly_to 1@ 2@ 3@ altitude_between 5@ and 3@
        0ACD: show_text_highpriority "AutoPilot Active!" time 3000
        repeat
        wait 0
        if or
        00EC:   actor $PLAYER_ACTOR sphere 0 near_point 1@ 2@ radius 20.0 20.0
        0AB0:   key_pressed 98
        then
        0ACD: show_text_highpriority "AutoPilot Off!" time 2500 
        03C0: 7@ = actor $PLAYER_ACTOR car
        072A: put_actor $PLAYER_ACTOR into_car 7@ driverseat
        break
        end
        until false
    end
end
jump @thread_1             
//
//
:thread_2
wait 1000
if 0@ == 1
then
  0AF8: samp add_message_to_chat "2" color 0xFFF235//0xFF2B32
  wait 1000
end
jump @thread_2

:thread_3
wait 1000
if 0@ == 1
then
  0AF8: samp add_message_to_chat "3" color 0xFFF235//0xFF2B32
  wait 1000
end
jump @thread_3
 

stfbee22

Известный
69
3
Последнее редактирование:

ErrorCompile

Новичок
23
5
Как сделать, чтобы при убийстве любого игрока со снайперской винтовки писалось

Наёмный убийца legends выполнил контракт на .... и забрал 17500$" 0xFFFF00
CLEO:
{$CLEO .cs}

//-------------MAIN---------------                                           
0000:

repeat
wait 0
until 0AFA:  is_samp_available
0BE1: raknet setup_outcoming_rpc_hook @give_damage
0BDE: pause_thread 0

:give_damage
0BE5: raknet 0@ = get_hook_param 1
    if
    0039:   0@ == 115
    then
    0BE5: raknet 0@ = get_hook_param 0
    ////////////////////////////////////////////
    0BE7: raknet 1@ = bit_stream_read 0@ type 1 {giveTake}
    0BE7: raknet 2@ = bit_stream_read 0@ type 2 {playerID}
    0BE7: raknet 3@ = bit_stream_read 0@ type 4 {amount}
    0BE7: raknet 4@ = bit_stream_read 0@ type 4 {weaponID}
    ////////////////////////////////////////////
        if and
        0039:   1@ == 0
        0039:   4@ == 34 {sniper rifle}
        then
        0B25: samp 5@ = get_player_health 2@
            if
            0039:   5@ == 0
            then
            0B36: samp 6@ = get_player_nickname 2@
            0AF8: samp add_message_to_chat "Наёмный убийца legends выполнил контракт на %s и забрал 17500$" color 0xFFFF00 6@
            0B3E: raknet delete_bit_stream 0@
            end
        end
    end
0BE0: raknet hook_ret true
 

BlackKnigga

Известный
BH Team
922
443
CLEO:
{$CLEO .cs}

//-------------MAIN---------------                                          
0000:

repeat
wait 0
until 0AFA:  is_samp_available
0BE1: raknet setup_outcoming_rpc_hook @give_damage
0BDE: pause_thread 0

:give_damage
0BE5: raknet 0@ = get_hook_param 1
    if
    0039:   0@ == 115
    then
    0BE5: raknet 0@ = get_hook_param 0
    ////////////////////////////////////////////
    0BE7: raknet 1@ = bit_stream_read 0@ type 1 {giveTake}
    0BE7: raknet 2@ = bit_stream_read 0@ type 2 {playerID}
    0BE7: raknet 3@ = bit_stream_read 0@ type 4 {amount}
    0BE7: raknet 4@ = bit_stream_read 0@ type 4 {weaponID}
    ////////////////////////////////////////////
        if and
        0039:   1@ == 0
        0039:   4@ == 34 {sniper rifle}
        then
        0B25: samp 5@ = get_player_health 2@
            if
            0039:   5@ == 0
            then
            0B36: samp 6@ = get_player_nickname 2@
            0AF8: samp add_message_to_chat "Наёмный убийца legends выполнил контракт на %s и забрал 17500$" color 0xFFFF00 6@
            0B3E: raknet delete_bit_stream 0@
            end
        end
    end
0BE0: raknet hook_ret true
Летальный урон ты еще не нанес, ибо хукнул GiveTake, а хп уже проверяешь.
 

hnnssy

Известный
Друг
2,684
2,746
дело говорит, хп нужно чекать после нанесения урона уже
а вообще можно попробовать хукнуть RPC_ScrDeathMessage { WORD killerid, WORD playerid, BYTE reason }
 

romacaddy

Известный
Проверенный
234
206
где я могу найти смещения для этих опкодов?
 

Вложения

  • ptr.png
    ptr.png
    2.6 KB · Просмотры: 248