This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос Получение информации урона PED

void

Новый участник
6 Апр 2025
6
0
3
Друзья, всем привет! Есть кто-то обладает информацией - поясните один момент:

Создаю NPC(sever-side):

Код:
mp.events.addCommand({"sp": (player) => {

        if(player.npc) player.npc.destroy();
        
        const position = getPosOfPlayer(player, 2);
        const npc = mp.peds.new(
            mp.joaat("s_m_y_busboy_01"),
            new mp.Vector3(
                position.x + (Math.random() * 2 - 1),
                position.y + (Math.random() * 2 - 1),
                position.z
            ),
            {
                dynamic: true,
            }
        );
        npc.controller = player;
        player.npc = npc;
    },
});

Отправляю команду(sever-side):

Код:
mp.events.addCommand({"ped": (player, command) => {
    npc.data.command = command; 
}});

Обработка выглядит так(client-side):

Код:
mp.events.addDataHandler({'command': (entity) => {
    // something       
}});

В общем, с одного из мануалов на форуме про синхронных педов, но никак не могу получить информацию о нанесении урона(client-side/server-side):

Код:
mp.events.add("playerWeaponShot", (player, healthLoss, armorLoss, bone, sourceEntity) => {
    mp.gui.chat.push(`Вызов playerWeaponShot`);
});
mp.events.add("outgoingDamage", (player, healthLoss, armorLoss, bone, sourceEntity) => {
    mp.gui.chat.push(`Вызов outgoingDamage`);
});
mp.events.add("ingoingDamage", (player, healthLoss, armorLoss, bone, sourceEntity) => {
    mp.gui.chat.push(`Вызов ingoingDamage`);
});
mp.events.add("playerDamage", (player, healthLoss, armorLoss, bone, sourceEntity) => {
    mp.gui.chat.push(` Вызов playerDamage`);
});


Из всех ивентов вызывается ingoingDamage, но только на ближний бой. Пробовал разные скины и оружия - результата нет. Я что-то не так делаю или это априори невозможно с текущей реализацией рейджа?
 

Dmitry_V

Гений
23 Июн 2023
2,079
344
131
27
Создавать новые аккаунты, чтобы не палить старые, ммм, хуета.
 

Dmitry_V

Гений
23 Июн 2023
2,079
344
131
27
Тот, кто не боится задавать вопросы от своего имени.
Поэтому принципиально не буду давать подсказок. Страдай.
 

void

Новый участник
6 Апр 2025
6
0
3


Броу, я на форуме рейджа пару дней. Давненько разрабатывал сервера в SA:MP, недавно скачал пятую и стало интересно как сервера в текущем времени пилят, сразу с больной темы начал, походу - NPC. Поэтому хз кто тут у вас акки меняет и кто чем занимается
 

Dmitry_V

Гений
23 Июн 2023
2,079
344
131
27
И почему я тебе не верю?
 

void

Новый участник
6 Апр 2025
6
0
3
И почему я тебе не верю?

Не, я тебя вообще не осуждаю))
На форуме pawn-wiki(не реклама) просидел около двух лет и кринжа наловился более чем, поэтому всякое было, но ты меня явно с кем-то попутал)
Просто я ещё не успел опомниться на этом форуме, как ты уже оклеветал
 

ncwdev

Активный участник
20 Фев 2025
13
34
22
Если все эти ивенты не срабатывают, то остается наверное только такой способ:

Код:
if (pedMp.hasBeenDamagedBy(localPlayer.handle, true)) {
    // do something
}

Крутишь это в рендере, и получаешь возможность узнать факт нанесения урона, но не его величину.

Возможно, сообщество все-таки знает более рабочий способ. Попробуй в офф дискорде рейджмп спросить.
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
761
276
128
Через собственную реализация(чит. костыли), стандартные методы обработки урона не срабатывают от нпц
 

void

Новый участник
6 Апр 2025
6
0
3
Да, у меня получилось с клиента взять инфу, но не думаю что это правильный способ, пока ищу ещё варианты. Как до истины докопаюсь - опишусь.
А так всем спасибо, кто на связь адекватно выходит
 

JJIGolem

Старожил
High developer
BackEnd developer
19 Окт 2020
239
288
142
Если я помню правильно, необходимо включить следующий параметр: setEnableLocalOutgoingDamage

Чтобы событие outgoingDamage срабатывал на NPC у контроллера.
 
Реакции: DaVilka и void