• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/ru/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

itsmylife

Начинающий специалист
Автор темы
25 Янв 2022
33
9
58
Всех приветствую, это моя первая обучающая статья по разработке в RAGE:MP для этого портала.
Подробно рассмотрим частый вопрос - "Как отключить урон прикладом или нокаут на сервере GTA 5 RP?".

Описание проблемной ситуации:
С помощью специальных клавиш (на клавиатуре Q и R или Ctrl) игрок может вырубить другого игрока с одного удара.
При этом в руках игрока может быть холодное оружие (melee), огнестрельное оружие (weapon) или он вовсе может быть без оружия (unarmed).

Решение проблемы:
С помощью функции - mp.game.controls.disableControlAction мы отключим ненужные нам клавиши в специальном событии - 'render' (которое вызывается достаточно часто).

Необходимый нам код (я положил его в конец клиентского файла index.js, вы можете вставить его в другое подходящее место):

JavaScript:
mp.events.add('render', () => {
    mp.game.controls.disableControlAction(2, 140, true); // отключаем клавишу R (MELEE_ATTACK)
    mp.game.controls.disableControlAction(2, 141, true); // отключаем клавишу Q (MELEE_ATTACK)

    mp.game.controls.disableControlAction(2, 263, true); // отключаем клавишу R (MELEE_ATTACK)
    mp.game.controls.disableControlAction(2, 264, true); // отключаем клавишу Q (MELEE_ATTACK)

    // Если в руках есть оружие
    mp.game.controls.disableControlAction(2, 142, true); // отключаем альтернативную атаку если мы близко с игроком и жмем ЛКМ
});


Небольшое дополнение:
Также при необходимости вы можете отключить критический урон при попаданиях в голову (хедшот) с помощью вызова этой нативной функции:

JavaScript:
mp.players.local.setSuffersCriticalHits(false); // void SET_PED_SUFFERS_CRITICAL_HITS(Ped ped, BOOL toggle);

В этом случае урон будет обычный, как за попадание в любую другую часть тела.


На этом один из коротких уроков закончен, скоро допишу один большой и еще два поменьше :p
Спасибо администрации за создание такого чудесного сайта, информация предоставленная здесь очень сильно помогает новичкам и не только ;)

Мой дискорд для связи и предложений - itsmylife#9411
 
Последнее редактирование модератором:

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,220
1,425
191
27
JavaScript:
mp.game.invoke('0xEBD76F2359F190AC', mp.players.local.handle, false); // void SET_PED_SUFFERS_CRITICAL_HITS(Ped ped, BOOL toggle);
Вот эта часть кода вполне спокойно заменяется на
JavaScript:
mp.players.local.setSuffersCriticalHits(false);

Если есть возможность - я бы советовал придерживаться рабочих функций вместо использования нативок. Под "если есть возможность" я подразумеваю то, что есть рабочий метод, которым можно обойтись без использования нативки, хотя бы просто для того, что это упрощает вашу будущую работу с этим участком кода, к тому же нативка (в теории) может поменяться в будущем при обновлении GTA и тогда её нужно будет искать заново, а внутри методов скорее всего она будет обновлена разработчиками RAGE без нужды дополнительных изменений со стороны разработчика сервера.

А так в любом случае новичкам будет полезно.
 
  • Like
Реакции: itsmylife

NightWill

Гуру
high coder
15 Сен 2020
111
42
106
Вместо рендера используй интервал, через f1 можно багать и обходить рендер
 

itsmylife

Начинающий специалист
Автор темы
25 Янв 2022
33
9
58
Вот эта часть кода вполне спокойно заменяется на
JavaScript:
mp.players.local.setSuffersCriticalHits(false);

Если есть возможность - я бы советовал придерживаться рабочих функций вместо использования нативок. Под "если есть возможность" я подразумеваю то, что есть рабочий метод, которым можно обойтись без использования нативки, хотя бы просто для того, что это упрощает вашу будущую работу с этим участком кода, к тому же нативка (в теории) может поменяться в будущем при обновлении GTA и тогда её нужно будет искать заново, а внутри методов скорее всего она будет обновлена разработчиками RAGE без нужды дополнительных изменений со стороны разработчика сервера.

А так в любом случае новичкам будет полезно.
Спасибо, исправлю. Изначально не нашел этой функции, но я полагаю она делает тоже самое (вызывает нативку) только через апишку мультиплеера.
 

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,220
1,425
191
27
Спасибо, исправлю. Изначально не нашел этой функции, но я полагаю она делает тоже самое (вызывает нативку) только через апишку мультиплеера.
Именно, но как я и сказал, для тебя:
1. Проще понимать что это за участок кода (прочитать название метода или комментарии нативки, что проще - очевидно).
2. Если R* обновят эту нативку, то скорее всего (процентов на 95) её обновят внутри этого метода сами разработчики мультиплеера и тебе не придётся ничего делать, в случае с использованием нативки - тебе придётся её выискивать заново самому в кроссмапе или ждать, пока кто-то найдёт и выложит.
 

UchihaMadara

Гуру
high coder
27 Окт 2020
512
225
101
Гайд Как получить High Coder на раз-два:
1. Находите любую нативку
2. Придумываете проблему
3. Нативка решает проблему
4. ??? Profit