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

D3.Pheonix

🎹
Модератор
2,867
1,641
Какую проверку можно поставить на прокрутку колесика мыши? wheelup wheeldown если нажаты
Никакую
та нету там я 3 раза пересмотрел все
Информация - Гайд - Работа с DXUT диалогами с помощью SAMPFUNCS(https://blast.hk/threads/17438)
Хз что те надо, почитай
 

01EG

Известный
Проверенный
629
354
почему крашит ? помогите с кодом
Код:
{$CLEO}
{$INCLUDE Sf}

0000:

repeat
wait 0
until Samp.Available()
0B34: samp register_client_command "uv" to_label @un
0B34: samp register_client_command "fskin" to_label @fskin
0B34: samp register_client_command "tpgo" to_label @tpgo
0B34: samp register_client_command "goto" to_label @goto
0B34: samp register_client_command "scar" to_label @scar
0B34: samp register_client_command "cmds" to_label @cmds

   :un
   wait 0
if 10@ == 1
then
samp.IsCommandTyped(0@)
if 0AD4: 5@ = scan_string 0@ format "%d" 10@
then
say "/uninvite %d Выселен" 10@
0AF8: samp add_message_to_chat " {FFFFFF}Игроk был уволен - {10EF1F}Выполнено"   color 10@
end
20@ = 0
end

:unn
10@ = 1
Samp.CmdRet()

while true
wait 0
if 0@ == 1
then
SAMP.IsCommandTyped(1@)
0AD4: 1@ = scan_string 1@ format "%d" 2@
if not 2@ > 311
then
Model.Load(2@)
if Model.Available(2@)
then
09C7: change_player $PLAYER_CHAR model_to 2@
Player.CanMove($PLAYER_CHAR) = True
Model.Destroy(2@)
0@ = 0
end
end
end
end

:fskin
wait 0
0@ = 1
samp.CmdRet()


repeat
wait 0
if
0@ == 1
then
0AB6: store_target_marker_coords_to 1@ 2@ 3@
if
0AB6: store_target_marker_coords_to 1@ 2@ 3@
then
Actor.PutAt($player_actor, 1@ ,2@, 3@)
0@ = 0
else
0AF8: samp add_message_to_chat "Ошибка! Не найдена метка!" color 0x69AA30
0@ = 0
end
end
until false

:tpgo
wait 0
if
0@ == 0
then
0@ = 1
end
Samp.CmdRet()



{
    "bhcmd" - Это ваша команда, запомните туда не нужно указывать /
    to_label @new_cmd - Отправляем к началу скрипта new_cmd
}

while true // Цикл
    wait 0 // Ожидание 0
end // Конец цикла

:goto // Начало метки
0B35: samp 0@ = get_last_command_params // Параметры
if 0AD4: 1@ = scan_string 0@ format "%d" 2@ // Сканируем число которое было введено в параметр
    {
        1@ - Переменная в которой хранится всё это дело
        0@ - Переменная которая сканируется из параметра
        2@ - Это число которое было введено в параметр команды
    }
then // Тогда
    0B20: samp 4@ = actor_handle_by_samp_player_id 2@ // Узнаём хендл игрока по его иду
    if 0B23:  samp is_player_connected 2@ // Если игрок подключен
    {
        2@ = Это ид игрока
    }
    then // Тогда
        if 056D:  actor 4@ defined // Если актёр(игрок) существует
        {
            4@ = Это сам актёр
        }
        then // Тогда
            00A0: store_actor 4@ position_to 5@ 6@ 7@ // Сохраняем позицию актёра(игрока) в переменные 5@ 6@ 7@ (X, Y, Z)
            00A1: put_actor $PLAYER_ACTOR at 5@ 6@ 7@ // Отправляем актёра(игрока) в переменные которые были сохранены с помощью store_actor 5@ 6@ 7@ (X, Y, Z)
            0B36: samp 3@ = get_player_nickname 2@ // Получаем ник жертвы
            {
                3@ = Хранится его ник
                2@ = Хранится его ид
            }
            0AF9: samp say_msg "мда %s[%d] :)" params 3@ 2@ // Когда мы телепортировались к игроку, то отправляем это сообщение в чат
            else 0AF8: samp add_message_to_chat "[error] Игрок не найден" color -1  // Иначе если игрок не существует то уж отправим это сообщение
        end // Конец if 056D:  actor 4@ defined
        else 0AF8: samp add_message_to_chat "[error] Игрок не подключен" color -1 // Иначе отправляем то что игрок не подключен
    end // Конец if 0B23:  samp is_player_connected 2@
    else 0AF8: samp add_message_to_chat "[error] /tp4 [playerid]" color -1 // Если команды была введена без каких либо параметров, то выводим это сообщение
end // Конец самого первого if(если)
0B43: samp cmd_ret // Конец команды


0BE2: raknet setup_outcoming_packet_hook @scar2

While true
repeat
wait 0
until 31@ == 1
    if 00DF:   actor $PLAYER_ACTOR driving
    then
    Actor.StorePos($PLAYER_ACTOR, 15@ 16@ 17@)
    17@ += 2.0
    0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 15@ 16@ 17@
    wait 200
    end
    0B30: samp send_enter_vehicle 1@ as_passenger 0
    wait 350
    036A: put_actor $PLAYER_ACTOR in_car 2@
    31@ = 0
end

:scar2
0BE5: raknet 10@ = get_hook_param PARAM_PACKETID
if and
10@ == 200
31@ == 1
then
0BE0: raknet hook_ret 0
end
0BE0: raknet hook_ret 1

:scar
0B35: samp 20@ = get_last_command_params
0AD4: 20@ = scan_string 20@ format "%d" 1@
0AFF: samp 2@ = car_handle_by_samp_vehicle_id 1@
if 056E:   car 2@ defined
then
31@ = 1
end
Samp.CmdRet()

:cmds
0AC6: 0@ = label @cmds1 offset
0B3B: samp show_dialog id 1447 caption "Cmds By sss" text 3@ button_1 "Ok" button_2 "" style 0
0B43: samp cmd_ret

:cmds1
HEX
"{10EF1F}>>>>>>>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<<<<<<<<>"A            
"{10EF1F}                                                        "
"{10EF1F}                                                       "
"{10EF1F}                                                        "
"{10EF1F}     /Fskin сминить себе скинь визуально" A             "
"{10EF1F}     /uv id - Увал игрока" A                            "
"{10EF1F}     /cs id - /changeskin id" A                         "
"{10EF1F}     /tpgo Телепорт по метке. " A                       "
"{10EF1F}      /goto Телепорт к игроку. " A                      "
"{10EF1F}     /dl и ид машины и /scar (ид тачки) " A             "
"{10EF1F}                                                        "
"{10EF1F}>>>>>>>>>>>>>>>>>>Автор SSS <<<<<<<<<<<<<<<<<<<<<<<<<<<"
END
Может потому что говнокод ?!
1) У тебя после обьявления команд хуй пойми что начинается, стоит метка :un , которая вроде как должна выполнять какую-то функцию, если переменная 10@ = 1 , а ниже метка :unn с кмд.ретом, которая как бы должна вызываться командой в чат, но до нее просто очередь не доходит и команды которая ее вызывает ПО-факту в коде нету.
2) Дальше идёт кучу меток связанных с командой и кмд ретом, а потом кучу циклов в которых выполняется код, но до них не дойдет очередь никогда потому, что после регистрации команд, опять же идёт метка :un , которая всё блочит.
Дальше можно не продолжать, смотря на код могу предположить, что ты вообще не тестил его работу, а всё написал за один раз и потом удивляешься какого хуя он не работает. Если нету опыта в работе с КЛЕО или вообще со скриптингом или программированием, то могу дать СОВЕТ:
1) пиши скрипт постепенно написал одну-две функции и пытайся тестить их в игре
2) Создай один цикл while true и поставь первые N кол-во проверок в зависимости от того сколько у тебя функций в скрипте должно быть и каждой проверке поставь значение на проверку определнной переменной, которую ты будешь менять внутри тел команд путём их вызова.
 
  • Нравится
Реакции: Say Ganstra и D3.Pheonix

01EG

Известный
Проверенный
629
354
Как сделать так что-бы по активаций скрипта, скрипт нажимал на кнопку.
Советую подписаться и посмотреть всё возможное о CLEO, тогда в будущем не будет возникать глупых вопросов.
И да тебе на обозрение вопрос, как думаешь сколько раз данный вопрос задавали в этой теме и его можно найти по поиску на БХ сообщения ?
По какому ищут способы для крашера? ( просто интересен принцеп )
Насколько мне известно все возможные крашеры уже были написаны и вряд ли получиться найти новый способ крашить.
Все крашеры работали путём отправки невалидных синхронизаций. (Я так думаю)
Как находили невалидные синхронизации ? Некоторые методом тыка, основываясь на предположениях. Некоторые полагаясь на информацию данную на форумах по разработке серверов в Сампе, т.е. находили инфу о пределах мира и отправляли синхру за пределы мира, что приводило к крашу
ну это так краткое обьяснение и не совсем правильное, ну похуй
 

IZDATXXX

Известный
Проверенный
172
252
Какую проверку можно поставить на прокрутку колесика мыши? wheelup wheeldown если нажаты
Для этого есть специальный опкод "00E1", имеющий 2 параметра.
Выполняется он так:
00E1: <игрок> <клавиша>
Первый параметр <игрок> всегда равен 0, этого требует SA.
Список клавиш приложу ниже:
-------------------------------------------
- On Foot
-------------------------------------------
- 0 = Left/Right
- 1 = Forward/Fackward
- 2 = Special CTRL Left/Right
- 3 = Special CTRL Up/Down
- 4 = Action
- 5 = Previous Weapon/Target
- 6 = Aim Weapon
- 7 = Next Weapon/Target
- 8 = Group CTRL Forward
- 9 = Group CTRL Back
- 10 = Conversation - No
- 11 = Conversation - Yes
- 12 = (do not exist)
- 13 = Change Camera
- 14 = Jump
- 15 = Enter Vehicle
- 16 = Sprint
- 17 = Fire
- 18 = Crouch
- 19 = Look Behind
-------------------------------------------

~~~~~~~~~~~~~~~~~~~~~~~~~
~ In Car
~~~~~~~~~~~~~~~~~~~~~~~~~
~ 0 = Left/Right
~ 1 = steer Up/Back
~ 2 = Special CTRL Left/Right
~ 3 = Special CTRL Up/Down
~ 4 = Secondary Fire
~ 5 = Look Left
~ 6 = Hand Brake
~ 7 = Look Right
~ 8 = Next Radio Station
~ 9 = Previous Radio Station
~ 10 = Conversation - No
~ 11 = Trip Skip
~ 12 = (do not exist)
~ 13 = Change Camera
~ 14 = Brake/Reserve
~ 15 = Enter+Exit
~ 16 = Accelerate
~ 17 = Fire
~ 18 = Horn
~ 19 = Submission
~~~~~~~~~~~~~~~~~~~~~~~~~
 

Nifailo

Новичок
26
0
Пожалуйста, помогите создать клео!
Я новичёк в программе Sanny Builder, и захотел сделать свой клео, который пишет автоматически в чат, как биндер. Пожалуйста, напишите мне пример скрипта, и если можно объяснение опкодов и т.д.
Буду ооочень благодарен!
 

LaRossa

Потрачен
429
117
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пожалуйста, помогите создать клео!
Я новичёк в программе Sanny Builder, и захотел сделать свой клео, который пишет автоматически в чат, как биндер. Пожалуйста, напишите мне пример скрипта, и если можно объяснение опкодов и т.д.
Буду ооочень благодарен!
CLEO:
{$CLEO}
0000:
while not Samp.Available()
    wait 0
end

while true
    wait 0
  
    if 0C89:  key_just_pressed 49 // 1
        then
        say "Привет"
    end
   
end
 

LinkelnAweil

Участник
122
7
Вопрос, таков, кто-нибудь может скинуть код автоотыгровки оружия? Именно код. А если нет, то подскажите почему не юзается так
CLEO:
0470: 2@ = actor $PLAYER_ACTOR current_weapon
if not 0039:   2@ == 3
then
end
В чем ошибка?
 

Makkoy1708

Новичок
18
4
Вопрос, таков, кто-нибудь может скинуть код автоотыгровки оружия? Именно код. А если нет, то подскажите почему не юзается так
CLEO:
0470: 2@ = actor $PLAYER_ACTOR current_weapon
if not 0039:   2@ == 3
then
end
В чем ошибка?
CLEO:
{$CLEO .cs}
0000: NOP
repeat
wait 0
until samp.Available()
0B34: samp register_client_command "cmd" to_label @cmd

repeat
wait 0
    if 0@ == 1
    then
    0470: 1@ = actor $PLAYER_ACTOR current_weapon
        if 8039:   not 1@ == 3
        then
            {
            code
            }
        else
        chatmsg "Нельзя держать в руках оружие под номером '3'" 0xFFFFFF
        end
    0@ = 0
    end
until false  

:cmd
0@ = 1
samp.CmdRet()