Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Пишем свой GM от пуль

  • Автор темы Автор темы Vieria
  • Дата начала Дата начала

Полезно?

  • Да

    Голосов: 3 60.0%
  • Нет(если нет напишите в коментарии почему?)

    Голосов: 2 40.0%

  • Всего проголосовало
    5
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
18 Фев 2017
Сообщения
45
Реакции
16
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Урок по разработке простенького гм от пуль.
Всяких фич типо настроек в .ini файле и прочей магии я не буду показывать, лень http://************.ru/.s/sm/2/smile.gif
Для разработки сиего чита вам понадобитсяsunny builder v3.2.2
Sunnybuilder link:
Пожалуйста, авторизуйтесь для просмотра ссылки.

так же клео библиотека v4.1 и sampfuncs v5.3.3
CLEO link: cleo.li
SF link:
Пожалуйста, авторизуйтесь для просмотра ссылки.

открываем bin архив со скачаным sf и разархивируем папку sb data в такую же по пути //:диск/ваша директория/sunny builder/data/sa/
открываем sunny builder, тыкаем "создать" и в появившемся окне пишем следующее.

Начало:
{$cleo .cs}
{$include sf}
0000: godmode by ebuchiy garry
const // задаем имя нашей переменной чтобы не путатся в её номере
activestatus = 0@
end
repeat // делаем ни(мат) не делающий цикл с условием "долби пока самп не прогрузился"
wait 0 // ждём 0 мс, т.е ни(МАТ) не ждём)00 но циклу же нужно чем то занятся :d
until samp.avaible() // само условие
//
// блок реги команд и хуков
//
while true // общий цикл скрипта который будет работать постоянно
wait 0
// тело цикла
end

Это собственна и будет тело нашего будущего скрипта.
далее ебашим sf хук для перехвата входящих пакетов от сервера.
// пихаем регу хука в блок регистрации
0be4: raknet setup_incoming_packet_hook @packet_sync_hook
// ниже в том же блоке регаем нашу команду активации
0b34: samp register_client_command "pituh228" to_label @cmd_hook // где pituh228 имя вашей команды.

далее спускаемся в унитаз ниже нашего общего цикла и после end`a срём туда следующим говнокодом.
Код
:cmd_hook // метка срабатывающая при вводе нашей команды
if 0b61: samp is_local_player_spawned // если ты заспавнен то ныряем ниже
then
if activestatus == 0
then print "~b~gm ~w~by ~>~~y~ebuchiy garry~<~ - ~g~activated " time 3000
else print "~b~gm ~w~by ~>~~y~ebuchiy garry~<~ - ~r~deactivated" time 3000
end
0b12: activestatus = activestatus xor 1 // операция которая извращает байты наоборот :3
end
0b43: samp cmd_ret // объязательный возврат с команды чтоб не крашило
<img src="/.s/sm/2/tongue.gif" border="0" align="absmiddle" alt="tongue" /> acket_sync_hook // метка которую постоянно будет вызывать наш перехватчик(hook)
0001: wait 0
0be5: raknet 3@ = get_hook_param param_bitstream // получаем указатель на битстрим
0be5: raknet 2@ = get_hook_param param_packetid // получаем указатель на ид пакета
if 10@ == 206 // ловим пакет id_bullet_sync хранящий информацию о пулях
then
if activestatus == 1 // если гм активирован
then
7@ = samp.getsampplayeridbyactorhandle($player_actor) // получаем свой ид
0be9: raknet bit_stream 3@ reset_read_pointer // смещаем указатель чтения на начало
0be7: raknet 4@ = bit_stream_read 3@ type bs_type_short // читаем ид отправителя
0beb: raknet bit_stream 3@ ignore_bits 8 // не читаем ид пакета т.к он нам известен
0be7: raknet 5@ = bit_stream_read 3@ type bs_type_byte // читаем тип пуль
0be7: raknet 6@ = bit_stream_read 3@ type bs_type_short // читаем ид жертвы
// это неполная часть структуры пуль но информация дальше нам не нужна
if and // чекаем что эта пуля не в землю/воздух и она должна попасть именно у вас!
5@ == 1
003b: 6@ == 7@
then 0be0: raknet hook_ret false // блокируем пакет с пулей
end
end
end
0be0: raknet hook_ret true // разрешение на пропуск всех пакетов по умолчанию

жмякаем f6 для компиляций и вуаля, скрипт готов http://************.ru/.s/sm/2/smile.gif
если вы сделали всё правильно то в появишемся окошке не должно быть никаких ошибок.
если возникнут какие то вопросы либо проблемы обращайтесь.
 
Назад
Сверху Снизу