CombatLog
CombatLog содержит клиентскую историю попаданий локального игрока. API доступен только в main.lua; в Reflex server.lua глобальный объект CombatLog равен nil.
Как заполняется журнал
Заголовок раздела «Как заполняется журнал»Сначала серверная система боя подтверждает попадание и урон. Когда клиент получает обработанный результат, локальный combat-log добавляет запись для исходящего или входящего урона. CombatLog.Entries только читает накопленную историю и не участвует в расчёте попадания.
Для реакции в момент события используйте Agents:OnLocalPlayerDealtDamage() или OnLocalPlayerReceivedDamage(). Журнал удобен для последующего отображения и статистики; изменение его записей не меняет здоровье или серверную историю.
local entries = CombatLog.Entries
for i = 1, entries.Length do local entry = entries[i] local direction = entry.IsOutgoing and "dealt" or "received"
print( direction .. " " .. tostring(entry.Damage) .. " damage at " .. tostring(entry.Distance) .. " meters" )endСписок может быть пустым, пока локальный игрок не нанёс и не получил урон.
Entries
Заголовок раздела «Entries»local entries = CombatLog.Entries| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
Entries |
Array<CombatLogEntry> |
get |
Записи боевого журнала локального игрока. |
Entries доступен только для чтения. Для последней записи используйте entries[entries.Length], предварительно проверив, что Length > 0.
CombatLogEntry
Заголовок раздела «CombatLogEntry»| Свойство | Тип | Доступ | Описание |
|---|---|---|---|
BodyPart |
EHitboxBodyPart |
get |
Часть тела, по которой пришлось попадание. |
Damage |
number |
get |
Количество урона. |
Distance |
number |
get |
Дистанция до цели в момент попадания. |
Instigator |
Agent |
get |
Атакующий агент. |
IsFatal |
bool |
get |
Попадание было смертельным. |
IsOutgoing |
bool |
get |
true для урона, нанесённого локальным игроком. |
ItemId |
int |
get |
ID использованного предмета или оружия. |
Tick |
int |
get |
Тик события. |
Victim |
Agent |
get |
Получивший урон агент. |
WasShieldDestroyed |
bool |
get |
Попадание разрушило Kinetic Shield. |
WasStunned |
bool |
get |
Попадание наложило оглушение. |
Instigator и Victim могут ссылаться на объекты Agent. Не сохраняйте такие ссылки надолго: агент может стать недоступен после выхода игрока или смены состояния матча.