Пишем свой GM от пуль - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Alowir, Sanoxxx  
Форум » Программирование » CLEO Программирование » Пишем свой GM от пуль (Урок по разработке простенького гм от пуль.)
Пишем свой GM от пуль
S0f4aR Дата: Вторник, 17.01.2017, 14:57 | Сообщение # 1
Новичок
Сообщений: 23
Статус: Offline
урок по разработке простенького гм от пуль.
всяких фич типо настроек в .ini файле и прочей магии я не буду показывать, лень smile
для разработки сиего чита вам понадобитсяsunny builder v3.2.2
sb link: https://sannybuilder.com/ru/downloads.html
так же клео библиотека v4.1 и sampfuncs v5.3.3
cleo link: cleo.li
sf link: http://blast.hk/threads/17/
открываем 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 для компиляций и вуаля, скрипт готов smile
если вы сделали всё правильно то в появишемся окошке не должно быть никаких ошибок.
если возникнут какие то вопросы либо проблемы обращайтесь.
Вопросы сюда


Кодер-сатанист
Откуда такой псевдоним?
первая половина SOF - от слова софтер, вторая - 4aR (Чар) это тип данных в программировании, присущий С++


Сообщение отредактировал S0f4aR - Вторник, 17.01.2017, 14:57
Ozzi_Money Дата: Вторник, 17.01.2017, 15:02 | Сообщение # 2
Новичок
Сообщений: 7
Статус: Offline
Годно

Гавно Вопрос
iSlow Дата: Понедельник, 23.01.2017, 12:34 | Сообщение # 3
Медленный
Сообщений: 269
Статус: Offline
Тебе в другой раздел


[Статья/SRP] Быстро апаем ранг
[FPSUP] Повышаем ФПС
[CLEO/SRP] ТП Личка

S0f4aR Дата: Суббота, 06.05.2017, 16:48 | Сообщение # 4
Новичок
Сообщений: 23
Статус: Offline
Up
Цитата S0f4aR ()
урок по разработке простенького гм от пуль.
всяких фич типо настроек в .ini файле и прочей магии я не буду показывать, лень
для разработки сиего чита вам понадобитсяsunny builder v3.2.2
sb link: https://sannybuilder.com/ru/downloads.html
так же клео библиотека v4.1 и sampfuncs v5.3.3
cleo link: cleo.li
sf link: http://blast.hk/threads/17/
открываем 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 для компиляций и вуаля, скрипт готов
если вы сделали всё правильно то в появишемся окошке не должно быть никаких ошибок.
если возникнут какие то вопросы либо проблемы обращайтесь.
Вопросы сюда
Кодер-сатанист
Откуда такой псевдоним?
первая половина SOF - от слова софтер, вторая - 4aR (Чар) это тип данных в программировании, присущий С++

Добавлено (06.05.2017, 16:48)
---------------------------------------------
UP


Кодер-сатанист
Откуда такой псевдоним?
первая половина SOF - от слова софтер, вторая - 4aR (Чар) это тип данных в программировании, присущий С++
pwnedz1337 Дата: Вторник, 09.05.2017, 09:53 | Сообщение # 5
Боец
Сообщений: 94
Статус: Offline
Не в том разделе написал конечно​, но годно

Аккаунт разрешен
AK-47
[CM]MaTaS Дата: Воскресенье, 15.03.2020, 00:14 | Сообщение # 6
Боец
Сообщений: 76
Статус: Offline
сэнкс
Форум » Программирование » CLEO Программирование » Пишем свой GM от пуль (Урок по разработке простенького гм от пуль.)
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7209]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
maryannech4 [23:44]

Anjey228 [21:30]

artemonchik1234 [21:05]

gregoryxy9 [18:42]

SilverHand [18:20]

Anonymous556 [14:49]

yamakai [12:29]

lesleyqn3 [05:56]

Gggyyyyy [23:19]

Cndndndndndjjdjfjffjhf [20:40]

Ddjdjkdksks [20:38]

gluhotaishere [19:05]

le_mon60 [17:20]