- 183
- 21
Каким образом кроме эмуляции клавиш можно выходить из машины? Естественно без ТП, с анимацией.
OSCD: AS_actor $PLAYER_ACTOR exit car 0@Каким образом кроме эмуляции клавиш можно выходить из машины? Естественно без ТП, с анимацией.
Я знаю точно, что AS Pack'om ты не зайдешь в машину без кика, т.е. анимация отыграется вся фигня, но тебя кикнет.Каким образом кроме эмуляции клавиш можно выходить из машины? Естественно без ТП, с анимацией.
0000: в начале не поставил и прыгаешь на первую метку. Клео не умеет прыгать на самое начало скрипта.Кто-нить может объяснить, что такое "Переход на нулевой оффсет"?
не подскажете как сделать скрипт который ищет игрока в каком то радиусе от меня и если нашел выполняет какоето действие
0AE1: $actor = random_actor_near_point 0@ 1@ 2@ in_radius 10.0 find_next 1 pass_deads 1
Ну считывай каждый раз сообщение, вытаскивай и сравнивай ник и прибавляй к какой нибудь переменной по единице. По достижению значения три в переменной делай нужное действие.Подскажите как сделать скрипт, которым при виде 3 сообщений в чат от 1 игрока, то выполняло действие (пример: Pisun[223]: привет.; И так три раза он должен отправить, чтобы скрипт сработал)
Не неси чушь. Этот опкод вообще не работает в SA:MP'e .PHP:0AE1: $actor = random_actor_near_point 0@ 1@ 2@ in_radius 10.0 find_next 1 pass_deads 1
0104: actor $PLAYER_ACTOR near_actor 1@ radius 40.0 40.0 40.0 sphere 0не подскажете как сделать скрипт который ищет игрока в каком то радиусе от меня и если нашел выполняет какоето действие
это значит переход в самое начало скрипта (jump 0), но игра так не умеет и из-за этого могут возникнуть ошибки (хз какие, не тестил). Если очень надо прыгнуть в самое начало файла, то вот тебе сниплетКто-нить может объяснить, что такое "Переход на нулевой оффсет"?
{$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 //Пишем игре откуда надо выполнять скрипт
//Тут ничего не надо, т.к. скрипт тут уже не будет выполняться
не компилируется без 0000это значит переход в самое начало скрипта (jump 0), но игра так не умеет и из-за этого могут возникнуть ошибки (хз какие, не тестил). Если очень надо прыгнуть в самое начало файла, то вот тебе сниплет
call (0AB1) тут использовать нельзя, т.к. без ret (0AB2) будет переполнение буфера, а ret добавить нельзя, потому что он не выполнится из-за того что скрипт после записи в память (0A8C) станет выполняться в другом месте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 //Пишем игре откуда надо выполнять скрипт //Тут ничего не надо, т.к. скрипт тут уже не будет выполняться