Кто знает, как вывести ник из чата?
Делал скрипт, который будет что-то делать, если кто-то напишет "привет", но если выводить строчку через SAMP.GetChatString(99, 23@, 0, 0, 0) ник не пишется. Что делать?
Получилось вывести ИД, спасибо большое что подсказална пару страниц выше пытался выводить ид игрока с чата, получалось выводить только ник игрока с чата 😅
К слову забил. Можешь опробовать тот метод..
Получилось вывести ИД, спасибо большое что подсказал
скинь код с выводом ида если не сложно, законсервирую на будущее, мб пригодиться.
:potock_5
wait 0
alloc 23@ 512
SAMP.GetChatString(99, 23@, 0, 0, 0)
8C29: not 24@ = stristr string1 23@ string2 "Привет"
jf @5_1
jump @potock_5
:5_1
wait 0
0C2C: 22@ = strrchr 23@ char 0x5B
0C11: memset destination 22@ value 0x0 size 1
22@++
0C1A: 10@ = atoi 22@
0B36: samp 22@ = get_player_nickname 10@
пздц я тебе давно ссылку далскинь код с выводом ида если не сложно, законсервирую на будущее, мб пригодиться.
Лучше использовать таймеры (переменные 32@ и 33@ всегда хранят в себе время в мс с момента запуска игры. Либо опкод 01BD, тоже подойдет). Но если wait в мейн цикле не помешает работе твоего скрипта, то можно и так.Как заблокировать отправку данных нажатой клавиши ( Y и N ) на некоторое время?
{$CLEO}
{$INCLUDE SF}
0000:
29@ = 5000
while not SAMP.Available()
wait 0
end
0b34: "cmdd" @cmd
0BE2: raknet setup_outcoming_packet_hook @hook
while true
wait 0
if 1@ == true
then
wait 29@
1@ = false
log "Отправка Y/N разблокирована"
end
end
:cmd
0B12: 1@ = 1@ XOR 1
if 1@ == true
then log "Отправка Y/N заблокирована на %d ms" 29@
else log "Отправка Y/N разблокирована"
end
cmdret
:hook
0BE5: raknet 0@ = get_hook_param PARAM_PACKETID
if 0@ == PACKET_PLAYER_SYNC
then
0BE5: raknet 0@ = get_hook_param PARAM_BITSTREAM
0BF3: raknet 0@ = bit_stream 0@ get_data_ptr
if 1@ == true
then
0C0C: 2@ = struct 0@ offset 37 size 1 // uint8_t byteCurrentWeapon;
if 2@ >= 128 // N
then
2@ -= 128
0C0D: struct 0@ offset 37 size 1 = 2@
end
if 2@ >= 64 // Y
then
2@ -= 64
0C0D: struct 0@ offset 37 size 1 = 2@
end
end
end
0BE0: raknet hook_ret true
теперь компилируется. меняй сам, на что тебе нужноПривет! Файл походу оч сильно защищён автором, но я не собираюсь его вообще куда-либо выкладывать, я просто играю в одиночку и хочу поменять клавиши с Q и E на Z и C. Автор вообще тупо выставил не просто на сами кнопки Q и E, а именно на поворот влево и вправо, от этого игрок постоянно дёргается и пропадает возможность вообще смотреть влево и вправо.
Короче, помогите пожалуйста поменять key_pressed 5 на 67 и key_pressed 7 на 90, если сможете обойти защиту.
Я что-то смотрел как ставить и снимать защиту, но спустя два дня попыток у меня ничего не вышло, там много ошибок выдаёт при компиляции.
Ух ты!теперь компилируется. меняй сам, на что тебе нужно
:UP
0AA2: 31@ = load_library "user32.dll"
0AA4: 30@ = get_proc_address "mouse_event" library 31@
0AA5: call 30@ num_params 5 pop 0 0 0 0 3@ 0
return
перестала работать параша с видео или твоя параша? это разные параши, в них слегка иначе функция используетсяКороче рассказываю, перешел с 7 винды на 10 и перестала работать вот эта параша
( понятия не имею как это связано )
сама функция камеры и мыши перестала давать какой либо результат
Код::UP 0AA2: 31@ = load_library "user32.dll" 0AA4: 30@ = get_proc_address "mouse_event" library 31@ 0AA5: call 30@ num_params 5 pop 0 0 0 0 3@ 0 return
короче нужна аналогичная функция эмулирования поворота мыши или камеры
или совет как чинить говно выше
перестала работать параша с видео или твоя параша? это разные параши, в них слегка иначе функция используется
вообще пишут, что в виндовс 10 не работает MOUSEEVENTF_LEFTDOWN иногда, попробуй up/down
"( понятия не имею как это связано )" - user32.dll - библиотека виндовса, а не игры, вот так и связано
0AB1: @MouseMOVE_DOWN 0
:MouseMOVE_DOWN
0AA2: 31@ = load_library "user32.dll"
0AA4: 30@ = get_proc_address "mouse_event" library 31@
0AA5: call 30@ num_params 5 pop 0 0 0 -1 0 0
0AA3: free_library 31@
0AB2: 0
gosub @UP
:UP
0AA2: 31@ = load_library "user32.dll"
0AA4: 30@ = get_proc_address "mouse_event" library 31@
0AA5: call 30@ num_params 5 pop 0 0 0 0 3@ 0
return
- user32.dll - библиотека виндовса, а не игры, вот так и связано
что в виндовс 10 не работает MOUSEEVENTF_LEFTDOWN иногда, попробуй up/down
а ты вот юзал ту парашу из видео, именно которую кинул в пример? вот именно 0 0 0 -1 0 0да по сути одна и та же параша, я просто gosub юзаю заместо call
Код:0AB1: @MouseMOVE_DOWN 0 :MouseMOVE_DOWN 0AA2: 31@ = load_library "user32.dll" 0AA4: 30@ = get_proc_address "mouse_event" library 31@ 0AA5: call 30@ num_params 5 pop 0 0 0 -1 0 0 0AA3: free_library 31@ 0AB2: 0
Код:gosub @UP :UP 0AA2: 31@ = load_library "user32.dll" 0AA4: 30@ = get_proc_address "mouse_event" library 31@ 0AA5: call 30@ num_params 5 pop 0 0 0 0 3@ 0 return
ну ясно ок
?
там уйма опкодов работы с камерой, но это скорее для съемки
мне её сдвигать над по осям и возвращать на место.