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

Тема в разделе "CLEO", создана пользователем MogAika, 19 мар 2013.

  1. Sashka

    Sashka Участник

    Регистрация:
    11 апр 2013
    Сообщения:
    12
    Симпатии:
    0
    Можно ли как-то высчитать, на какой именно строчке находится нужный мне текст в диалоге? А потом нажать на эту строчку
     
  2. randazzo

    randazzo не админ какой-то
    Всефорумный модератор

    Регистрация:
    21 май 2014
    Сообщения:
    1.176
    Симпатии:
    625
    перебирай строки, получай текст через 0B48: samp 1@ = get_current_dialog_list_item и ищи нужный.
     
  3. shailkiller

    shailkiller Участник

    Регистрация:
    23 авг 2017
    Сообщения:
    8
    Симпатии:
    0
    wait 228      
    repeat
    wait 0
    until 0AB0: 54
    8B21: not samp is_chat_opened
    0ACD: show_text_highpriority "Anti-freeze OFF" time 1000
    SAMP.WriteSAMPMemory(0x168E0, 1@, 2)
    wait 228
    end
    end
    Получилось частично, скрипт теперь не врубается при вкл чате, НО он выключить его можно, даже когда чат открыт, что надо делать в этой ситуации? Я вписал код так. Нужно туда Until добавить?
     
  4. kewa opcode

    kewa opcode перерывпятьминут

    Регистрация:
    15 апр 2017
    Сообщения:
    569
    Симпатии:
    345
    весь код дай и ваще какого хуя
    это условие бля
     
  5. shailkiller

    shailkiller Участник

    Регистрация:
    23 авг 2017
    Сообщения:
    8
    Симпатии:
    0
    {$CLEO .cs}
    0000:
    
    0662: printstring "Anti-freeze"
    
    repeat
    wait 0
    until SAMP.Available()
    0AF8: samp add_message_to_chat "Anti-Freeze by shailkiller" color 0xFF0000
    
    while true
    wait 0
    if and
    0AB0: 54
    8B21: not samp is_chat_opened
    then
    0ACD: show_text_highpriority "Anti-freeze ON" time 1000
    SAMP.ReadSAMPMemory(1@, 0x168E0, 2)
    SAMP.WriteSAMPMemory(0x168E0, 50064, 2)
    wait 228     
    repeat
    wait 0
    until 0AB0: 54
    8B21: not samp is_chat_opened
    0ACD: show_text_highpriority "Anti-freeze OFF" time 1000
    SAMP.WriteSAMPMemory(0x168E0, 1@, 2)
    wait 228
    end
    end
     
  6. kewa opcode

    kewa opcode перерывпятьминут

    Регистрация:
    15 апр 2017
    Сообщения:
    569
    Симпатии:
    345
    31@ = false
    while true
        wait 0
        if 8B21: not samp is_chat_opened
        then
            if 0ADC:   test_cheat "6"
            then
                if 31@ == false
                then
                SAMP.WriteSAMPMemory(0x168E0, 50064, 2)
                31@ = true
                else
                SAMP.WriteSAMPMemory(0x168E0, 1@, 2)
                31@ = false
                end
            end
        end
    end
     
  7. shailkiller

    shailkiller Участник

    Регистрация:
    23 авг 2017
    Сообщения:
    8
    Симпатии:
    0
    Нормально, всё работает, спасибо
    if 0ADC:   test_cheat "6"
    Через этот опкод можно же и чит-код забабахать, да?.
     
  8. kewa opcode

    kewa opcode перерывпятьминут

    Регистрация:
    15 апр 2017
    Сообщения:
    569
    Симпатии:
    345
  9. Sashka

    Sashka Участник

    Регистрация:
    11 апр 2013
    Сообщения:
    12
    Симпатии:
    0
    0b48 выдает какой номер строки выделен в данный момент, но не ищет текст в ней
     
  10. kewa opcode

    kewa opcode перерывпятьминут

    Регистрация:
    15 апр 2017
    Сообщения:
    569
    Симпатии:
    345
    Напиши в поиске опкодов НАВОДЯЩИЕ слова
    get list text
     
  11. Kristyan

    Kristyan Интересующийся

    Регистрация:
    29 июл 2016
    Сообщения:
    108
    Симпатии:
    4
    Привет ребята, вот у меня есть проблемка.. Не знаю зачем вылетает игра если пишу ID не в зоне стрима.

    
    {$CLEO}
    0000:
    
    
    repeat
    wait 0
    until SAMP.Available()
    
    
    0B34: samp register_client_command "cpe" to_label @cpe
    
    0BDE: pause_thread 0@
    
    
    :cpe
    SAMP.IsCommandTyped(20@)
    if
    0AD4: 20@ = scan_string 20@ format "%d" 21@
    then
     IF 
        samp.IsPlayerConnected(21@)
        then
          0B20: samp 1@ = actor_handle_by_samp_player_id 21@ 
            if   and
            056D:   actor 1@ defined
            0104:   actor $PLAYER_ACTOR near_actor 1@ radius 5.0 5.0 5.0 sphere FALSE
            then
                0AF9: samp say_msg "text %d 10" 21@
                0AF9: samp say_msg "text %d " 21@
                0AF9: samp say_msg "text" 
            else
             chatmsg "near" -1
             end
        else
        chatmsg "connect" -1
        end
    else
    chatmsg "syntax" -1
    end
    SAMP.CmdRet()
    
    Здесь декомпил
    
    // 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 
    
    :Noname_2
    wait 0 
       SAMP.Available
    jf @Noname_2 
    0B34: samp register_client_command "cpe" to_label @Noname_32 
    0BDE: pause_thread 0@ 
    
    :Noname_32
       SAMP.IsCommandTyped(20@)
    if 
    0AD4: 20@ = scan_string 20@ format "%d" 21@ 
    jf @Noname_218 
    if 
       SAMP.IsPlayerConnected(21@)
    jf @Noname_197 
    1@ = SAMP.GetActorHandleByPlayerID(21@)
    if and
    056D:   actor 1@ defined 
    0104:   actor $PLAYER_ACTOR near_actor 1@ radius 5.0 5.0 5.0 sphere 0 
    jf @Noname_179 
    say "text %d 10" 21@ 
    say "text %d " 21@ 
    say "text" 
    goto @Noname_190 
    
    :Noname_179
    chatmsg "near" -1 
    
    :Noname_190
    goto @Noname_211 
    
    :Noname_197
    chatmsg "connect" -1 
    
    :Noname_211
    goto @Noname_231 
    
    :Noname_218
    chatmsg "syntax" -1 
    
    :Noname_231
    SAMP.CmdRet
    
    [/cleo]
     
  12. LaRossa

    Проверенный

    Регистрация:
    4 фев 2017
    Сообщения:
    389
    Симпатии:
    120
    {$CLEO}
    0000:
    while not Samp.Available()
        wait 0
    end
    
    0B34: samp register_client_command "cpe" to_label @cmd
    0BDE: pause_thread 0
    
    :cmd
    SAMP.IsCommandTyped(20@)
    if
    0AD4: 20@ = scan_string 20@ format "%d" 21@
    then
    if samp.IsPlayerConnected(21@)
        then
        0104: actor $PLAYER_ACTOR near_actor 1@ radius 5.0 5.0 5.0 sphere FALSE
        if 056D: actor 1@ defined
            then
            say "text %d 10" 21@
            say "text %d " 21@
            say "text"
            else
             chatmsg "near" -1
             end
        else
        chatmsg "connect" -1
        end
    else
    chatmsg "syntax" -1
    end
    SAMP.CmdRet()
     
  13. Kristyan

    Kristyan Интересующийся

    Регистрация:
    29 июл 2016
    Сообщения:
    108
    Симпатии:
    4
    Забыл handle...
     
  14. Rus1k228

    Rus1k228 Новичок

    Регистрация:
    11 фев 2017
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте, вообщем мне нужно сделать так чтобы была проверка что в определённых координатах есть красный чекпоинт, и если он там есть, то я бежал по этим координатам через другие координаты. Если такое возможно. То хелпаните плеаз.
     
  15. LaRossa

    Проверенный

    Регистрация:
    4 фев 2017
    Сообщения:
    389
    Симпатии:
    120
    Отпиши что ты хочешь. Я не понимаю почему у тебя проверка на игрока не в цикле. Возле тебя может быть не один человек...
     
  16. randazzo

    randazzo не админ какой-то
    Всефорумный модератор

    Регистрация:
    21 май 2014
    Сообщения:
    1.176
    Симпатии:
    625
    Проверяешь наличие пикапа на карте, получаешь его координаты и сравниваешь с нужными, функции есть в теме, ищи по слову checkpoint
     
  17. grandpafromghetto

    grandpafromghetto сверху пидор с мусоркой на голове
    Проверенный

    Регистрация:
    6 янв 2018
    Сообщения:
    403
    Симпатии:
    143
    Здрасте, опытнейшие сенсеи скриптинга. Крч, я тут хочу бота написать (на клео), но вот этот опкод
    AS_actor $PLAYER_ACTOR goto_point 2542.3572 -1295.8500 1044.1250 mode 4 time -1 ms
    у меня работает как-то криво (но скорее всего я кривой), т.к. когда я включаю, то он бежит не на эти координаты а в какую-то залупу. Помогите мне, пожалуйста, этот ли опкод вообще нужен или как его настроить на верный лад. Заранее большое спасибо.
     
  18. LaRossa

    Проверенный

    Регистрация:
    4 фев 2017
    Сообщения:
    389
    Симпатии:
    120
    Привет, опкод не подойдет для написания бота т.к. ты для игроков будешь скользить. Юзай лучше это
            repeat
                wait 0
                0B56: set_game_key 16 state -255
                call @goto 2  X Y |
            until 00ED: actor $PLAYER_ACTOR sphere 0 near_point X Y radius 0.5 0.5 on_foot
    
    :goto
    00A0: store_actor $PLAYER_ACTOR position_to 2@ 3@ 4@
    0063: 0@ -= 2@
    0063: 1@ -= 3@
    0604: get_Z_angle_for_point 0@ 1@ store_to 5@
    0173: set_actor $PLAYER_ACTOR Z_angle_to 5@
    02EB: restore_camera_with_jumpcut
    ret 0
     
  19. grandpafromghetto

    grandpafromghetto сверху пидор с мусоркой на голове
    Проверенный

    Регистрация:
    6 янв 2018
    Сообщения:
    403
    Симпатии:
    143
    можешь разжевать, пожалуйста?
     
  20. LaRossa

    Проверенный

    Регистрация:
    4 фев 2017
    Сообщения:
    389
    Симпатии:
    120
    {$CLEO}
    0000:
    while not Samp.Available()
        wait 0
    end
    cmd "bot" @cmd
    
    while true
        wait 0
        if 0@ == 1
            then 
            msg "Бот отправлен на координаты: X 1500.0 Y 228.0" -1  // Пример
         
            repeat
                wait 0
                0B56: set_game_key 16 state -255
                call @goto 2  1500.0  228.0 |
            until 00ED: actor $PLAYER_ACTOR sphere 0 near_point 1500.0 228.0 radius 0.5 0.5 on_foot 
             
            msg "Бот прибыл на координаты: X 1500.0 Y 228.0" -1
            0@ = 0 
        end
    end 
    
    :goto
    00A0: store_actor $PLAYER_ACTOR position_to 2@ 3@ 4@
    0063: 0@ -= 2@
    0063: 1@ -= 3@
    0604: get_Z_angle_for_point 0@ 1@ store_to 5@
    0173: set_actor $PLAYER_ACTOR Z_angle_to 5@
    02EB: restore_camera_with_jumpcut  
    ret 0 
       
    :cmd
    0B12: 0@ = 0@ XOR 1
    if 0@ == 1
        then
        msg "ON" -1
    else
        msg "OFF" -1
        0A92: create_custom_thread "Название файла.cs"
        0A93: end_custom_thread
    end
    Samp.CmdRet()
    
    
     
    #14300 LaRossa, 12 фев 2018
    Последнее редактирование: 12 фев 2018
  21. Kristyan

    Kristyan Интересующийся

    Регистрация:
    29 июл 2016
    Сообщения:
    108
    Симпатии:
    4
    В опкоде 0AA5 не берёт ID из [%d], может кто-то помочь?
    
    if
                 0C18: 18@ = strstr string1 5@ string2 "Dispatch:"
              then
               0AA5: call 0x8220AD num_params 7 pop 7 21@ 23@ 24@ 26@v 25@ "Dispatch: %s[%d] has commited a crime: %s %s %s" 5@
                    if
                    0C14: strcmp string1 1@ string2 25@
                    then
                            chatmsg  "%s %s %s %s %d" -1 25@ 24@ 23@ 21@ 26@v
    
     
  22. grandpafromghetto

    grandpafromghetto сверху пидор с мусоркой на голове
    Проверенный

    Регистрация:
    6 янв 2018
    Сообщения:
    403
    Симпатии:
    143
    Как можно отправить афк своего персонажа серверу с СБ?
     
  23. DarkP1xel

    DarkP1xel KEEP CALM AND SMOKE SOME WEED
    BH Team

    Регистрация:
    17 июн 2013
    Сообщения:
    2.818
    Симпатии:
    2.797
    Отклонять хук на OnFoot, InCar, Pass.
     
  24. OnixPlay

    OnixPlay Участник

    Регистрация:
    15 окт 2017
    Сообщения:
    5
    Симпатии:
    0
    Как находить офсеты структур и можно ли это делать не через Visual Studio??
     
  25. DarkP1xel

    DarkP1xel KEEP CALM AND SMOKE SOME WEED
    BH Team

    Регистрация:
    17 июн 2013
    Сообщения:
    2.818
    Симпатии:
    2.797
    Посчитать вручную. Основываясь на размерах типов и их последовательности.
     
  26. iPhoneSeven

    iPhoneSeven Участник

    Регистрация:
    30 янв 2018
    Сообщения:
    15
    Симпатии:
    24
    Как получить названия всех клео которые в клео папке
     
  27. DarkP1xel

    DarkP1xel KEEP CALM AND SMOKE SOME WEED
    BH Team

    Регистрация:
    17 июн 2013
    Сообщения:
    2.818
    Симпатии:
    2.797
    0AE6: 0@ = find_first_file "CLEO\*.cs" get_filename_to 1@v // IF and SET
    0AE7: 1@v = find_next_file 0@ // IF and SET
    
     
    Ranto нравится это.
  28. grandpafromghetto

    grandpafromghetto сверху пидор с мусоркой на голове
    Проверенный

    Регистрация:
    6 янв 2018
    Сообщения:
    403
    Симпатии:
    143
    Как сделать так, чтобы актер отправлял афк серверу, если спектит адм?
     
  29. D3.Pheonix

    D3.Pheonix неактив
    Проверенный

    Регистрация:
    21 мар 2013
    Сообщения:
    889
    Симпатии:
    455
    Хорошая попытка, но мы не знаем как узнать, реконят ли тебя. Можешь тут поковырять
     
  30. grandpafromghetto

    grandpafromghetto сверху пидор с мусоркой на голове
    Проверенный

    Регистрация:
    6 янв 2018
    Сообщения:
    403
    Симпатии:
    143
    я там и ковырял, но так ничего и не понял
     
  31. D3.Pheonix

    D3.Pheonix неактив
    Проверенный

    Регистрация:
    21 мар 2013
    Сообщения:
    889
    Симпатии:
    455
    Если на твоём сервере админ может чекать фпс, то вроде как можно выявить слежку, иначе никак
     
    MOR нравится это.
  32. grandpafromghetto

    grandpafromghetto сверху пидор с мусоркой на голове
    Проверенный

    Регистрация:
    6 янв 2018
    Сообщения:
    403
    Симпатии:
    143
    Я короче пишу бота для DRP, где спектейт-детектор работает, крч, осталось только узнать как связать отправку афк и спектейт детектор
     
  33. LaRossa

    Проверенный

    Регистрация:
    4 фев 2017
    Сообщения:
    389
    Симпатии:
    120
    {$CLEO}
    0000:
    while not Samp.Available()
        wait 0
    end
    
    while true
        wait 0
        if and
        0AB0: key_pressed 88 
        8B21: not samp is_chat_opened
            then
            Player.CanMove($PLAYER_CHAR) = True
            Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
            04C4: store_coords_to 0@ 1@ 2@ from_actor $PLAYER_ACTOR with_offset 0 0 -1.0
            Actor.PutAt($PLAYER_ACTOR, 0@, 1@, 2@)
            Actor.LockInCurrentPosition($PLAYER_ACTOR) = False
            wait 1000
        end
    end
     
  34. Kristyan

    Kristyan Интересующийся

    Регистрация:
    29 июл 2016
    Сообщения:
    108
    Симпатии:
    4
    У меня 25@ наверное берёт и %d, может кто-то помочь мне?
    
     if
                 0C18: 18@ = strstr string1 5@ string2 "Dispatch:"
              then
               0AA5: call 0x8220AD num_params 4 pop 4 26@v 25@ "Dispatch: %s[%d] has commited a crime:" 5@
                    if
                    0C14: strcmp string1 1@ string2 25@
                    then
                            chatmsg  25@ -1
    
     
    #14314 Kristyan, 13 фев 2018
    Последнее редактирование: 14 фев 2018
  35. grandpafromghetto

    grandpafromghetto сверху пидор с мусоркой на голове
    Проверенный

    Регистрация:
    6 янв 2018
    Сообщения:
    403
    Симпатии:
    143
    установи сампфункс опкоды