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,397
396
131
28
Создавать новые аккаунты, чтобы не палить старые, ммм, хуета.
 

Dmitry_V

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

void

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


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

Dmitry_V

Гений
23 Июн 2023
2,397
396
131
28
И почему я тебе не верю?
 

void

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

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

ncwdev

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

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

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

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

void

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

JJIGolem

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

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