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

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается 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/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


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

itsmylife

Участник портала
25 Янв 2022
33
7
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

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,761
1,580
211
28
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 без нужды дополнительных изменений со стороны разработчика сервера.

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

NightWill

Активный участник
15 Сен 2020
113
35
106
Вместо рендера используй интервал, через f1 можно багать и обходить рендер
 

itsmylife

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

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

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

XDeveluxe

⚡️BackEnd Developer
Команда форума
Moderator
High developer
BackEnd developer
30 Авг 2021
2,761
1,580
211
28
Спасибо, исправлю. Изначально не нашел этой функции, но я полагаю она делает тоже самое (вызывает нативку) только через апишку мультиплеера.
Именно, но как я и сказал, для тебя:
1. Проще понимать что это за участок кода (прочитать название метода или комментарии нативки, что проще - очевидно).
2. Если R* обновят эту нативку, то скорее всего (процентов на 95) её обновят внутри этого метода сами разработчики мультиплеера и тебе не придётся ничего делать, в случае с использованием нативки - тебе придётся её выискивать заново самому в кроссмапе или ждать, пока кто-то найдёт и выложит.
 

UchihaMadara

Старожил
FrontEnd developer
27 Окт 2020
572
212
121
Гайд Как получить High Coder на раз-два:
1. Находите любую нативку
2. Придумываете проблему
3. Нативка решает проблему
4. ??? Profit