RU/onPlayerDamage

From Multi Theft Auto: Wiki

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

  • Это событие не срабаывает, когда игрок атакован союзником по команде, если friendly fire(огонь по своим) включен.
  • Отмена этого события не имеет никакого эффекта. Вместо этого используйте onClientPlayerDamage.
  • onPlayerDamage не вызывается, если персонаж умер, используйте onPlayerWasted вместо этого.

Параметры

player attacker, int attackerweapon, int bodypart, float loss
  • attacker: Элемент игрока, который атаковал. Если такового не было, будет false.
  • attackerweapon: Число целого типа, указывающее на attacker weapon или damage type.
  • bodypart: Число целого типа, указывающее на ID части тела, по которой было совершено попадание.
  • 3: Torso
  • 4: Ass
  • 5: Left Arm
  • 6: Right Arm
  • 7: Left Leg
  • 8: Right Leg
  • 9: Head
  • loss: Число с плавающей запятой, указывающее количество жизни, которую потерял игрок в %.

Источник

Источником этого события является player, который получил урон.

Пример

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

-- Добавляем обработчик для события onPlayerDamage.
function playerDamage_text ( attacker, weapon, bodypart, loss ) -- когда игрок получил урон
	if ( bodypart == 9 ) then -- if the body part is 9, i.e. the head
            outputChatBox ( "Хэдшот!", getRootElement (), 255, 170, 0 ) -- вывести "Хэдшот!" в чат
	    killPed ( source, attacker, weapon, bodypart ) -- и убить игрока
	end
end
addEventHandler ( "onPlayerDamage", getRootElement (), playerDamage_text )

Проблемы

Issue ID Description
#6495 [Fixed in 1.3.3-5411] onPlayerDamage имеет неверные параметры, если источник - транспорт.
#8082 Оружия и объекты не полностью работают с событиями, вызванными получением урона ped'ом.

See Also

Player events

Event functions