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

Thomas_Johnson

Известный
Проверенный
183
21
Каким образом кроме эмуляции клавиш можно выходить из машины? Естественно без ТП, с анимацией.
 

XyJluraH_J

Потрачен
116
26
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
  • Нравится
Реакции: Thomas_Johnson

01EG

Известный
Проверенный
631
345
Каким образом кроме эмуляции клавиш можно выходить из машины? Естественно без ТП, с анимацией.
Я знаю точно, что AS Pack'om ты не зайдешь в машину без кика, т.е. анимация отыграется вся фигня, но тебя кикнет.
Чтоб выйти из машины с анимацией, но без кика через CLEO, тебе нужно:
1) Отправить пакет о выходе из машины
0B31: samp send_exit_vehicle 1@ (1@ - id vehicle[int]
2) Осуществить сам выход из машины, если хочешь с анимацией, то через AS Opcode, можно без анимации(просто убрать актера из машины)
05CD: AS_actor $PLAYER_ACTOR exit_car 22@ (22@ - handle vehicle)
 
  • Нравится
Реакции: Thomas_Johnson

iTz_WEEZY

Известный
298
85
не подскажете как сделать скрипт который ищет игрока в каком то радиусе от меня и если нашел выполняет какоето действие
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,962
CLEO:
{$CLEO}
0000:

WHILE TRUE
0001: WAIT 0 MS
    FOR 0@ = 0 TO 1000 [STEP = 1]
        IF 0B23:  samp is_player_connected 0@
        THEN
            IF 0B20: samp 1@ = actor_handle_by_samp_player_id 0@
            THEN /* Действия*/
            END
        END
    END
END
 

unInstance

Новичок
Проверенный
311
222
Кто-нить может объяснить, что такое "Переход на нулевой оффсет"?
 

RedBoxWhite

Известный
337
27
Подскажите как сделать скрипт, которым при виде 3 сообщений в чат от 1 игрока, то выполняло действие (пример: Pisun[223]: привет.; И так три раза он должен отправить, чтобы скрипт сработал)
 

BlackKnigga

Известный
BH Team
922
445
Подскажите как сделать скрипт, которым при виде 3 сообщений в чат от 1 игрока, то выполняло действие (пример: Pisun[223]: привет.; И так три раза он должен отправить, чтобы скрипт сработал)
Ну считывай каждый раз сообщение, вытаскивай и сравнивай ник и прибавляй к какой нибудь переменной по единице. По достижению значения три в переменной делай нужное действие.
 

Unknown13

Новичок
19
0
Как написать скрипт телепортацию, чтоб не палили АЧ серва?
В этом скрипте как раз-таки не палится чит, но я не могу декриптовать его
 

Вложения

  • fhelp.txt
    82.8 KB · Просмотры: 6

SR_team

like pancake
BH Team
4,720
6,371
Кто-нить может объяснить, что такое "Переход на нулевой оффсет"?
это значит переход в самое начало скрипта (jump 0), но игра так не умеет и из-за этого могут возникнуть ошибки (хз какие, не тестил). Если очень надо прыгнуть в самое начало файла, то вот тебе сниплет
CLEO:
{$CLEO .cs}
:Start

//code
31@ = @start
jump @Jmp

:Jmp               
0A9F: 32@ = current_thread_pointer
32@ += 16 // BaseIP
0A8D: 33@ = read_memory 32@ size 4 virtual_protect 1 //получаем начало скрипта
if 31@ < 0 //т.к. метки это отрицательные числа, а нам нужно положительное, то умножаем на -1
    then 31@ *= -1
end
005A: 33@ += 31@  // Устанавливаем смещение от начала скрипта
32@ += 4 // IP
0A8C: write_memory 32@ size 4 value 33@ virtual_protect 1 //Пишем игре откуда надо выполнять скрипт
//Тут ничего не надо, т.к. скрипт тут уже не будет выполняться
call (0AB1) тут использовать нельзя, т.к. без ret (0AB2) будет переполнение буфера, а ret добавить нельзя, потому что он не выполнится из-за того что скрипт после записи в память (0A8C) станет выполняться в другом месте
 
  • Нравится
Реакции: unInstance

woksonal

Известный
Проверенный
268
154
это значит переход в самое начало скрипта (jump 0), но игра так не умеет и из-за этого могут возникнуть ошибки (хз какие, не тестил). Если очень надо прыгнуть в самое начало файла, то вот тебе сниплет
CLEO:
{$CLEO .cs}
:Start

//code
31@ = @start
jump @Jmp

:Jmp              
0A9F: 32@ = current_thread_pointer
32@ += 16 // BaseIP
0A8D: 33@ = read_memory 32@ size 4 virtual_protect 1 //получаем начало скрипта
if 31@ < 0 //т.к. метки это отрицательные числа, а нам нужно положительное, то умножаем на -1
    then 31@ *= -1
end
005A: 33@ += 31@  // Устанавливаем смещение от начала скрипта
32@ += 4 // IP
0A8C: write_memory 32@ size 4 value 33@ virtual_protect 1 //Пишем игре откуда надо выполнять скрипт
//Тут ничего не надо, т.к. скрипт тут уже не будет выполняться
call (0AB1) тут использовать нельзя, т.к. без ret (0AB2) будет переполнение буфера, а ret добавить нельзя, потому что он не выполнится из-за того что скрипт после записи в память (0A8C) станет выполняться в другом месте
не компилируется без 0000