Подряд попал пуль

MrRazrab

Известный
Автор темы
293
122
Версия MoonLoader
Другое
Как узнать сколько раз подряд попал игрок, за которым ты в реконе в другого игрока?
 
Решение
Lua:
local sampEvents = require("samp.events")

local hits = {
    id = -1,
    victimId = -1,
    counter = 0
}

function sampEvents.onSpectatePlayer(playerId, camType)
    hits = { id = playerId, victimId = -1, counter = 0 }
end

function sampEvents.onBulletSync(playerId, data)
    if playerId == hits.id then
        if data.targetType == 1 then
            if data.targetId == hits.victimId then
                hits.counter = hits.counter + 1
                --> количество попаданий подряд
            else
                hits.victimId, hits.counter = data.targetId, 1
            end
        else
            hits.counter = 0
        end
    end
end

MrRazrab

Известный
Автор темы
293
122
пакет BulletSync отправляется при каждом выстреле
rpc SendDamage отправляется при попадании по игроку
сложи 2+2 и решение само появится
и как же проверить то, если игрок не попал?
 

why ega

РП игрок
Модератор
2,541
2,234
пакет BulletSync отправляется при каждом выстреле
rpc SendDamage отправляется при попадании по игроку
сложи 2+2 и решение само появится
я так понимаю, надо отслеживать попадания не локального игрока, а того, за кем в реконе
 
  • Нравится
Реакции: MrRazrab

RedHolms

Известный
Проверенный
617
360
я так понимаю, надо отслеживать попадания не локального игрока, а того, за кем в реконе
Тут сложнее, но все же можно чекать хп игрока, либо куда попала пуля (в пакете bullet sync). В целом на клиенте сделать это идеально невозможно, все-же может быть рассинхрон
 
  • Нравится
Реакции: MrRazrab

wojciech?

Известный
210
123
Lua:
local sampEvents = require("samp.events")

local hits = {
    id = -1,
    victimId = -1,
    counter = 0
}

function sampEvents.onSpectatePlayer(playerId, camType)
    hits = { id = playerId, victimId = -1, counter = 0 }
end

function sampEvents.onBulletSync(playerId, data)
    if playerId == hits.id then
        if data.targetType == 1 then
            if data.targetId == hits.victimId then
                hits.counter = hits.counter + 1
                --> количество попаданий подряд
            else
                hits.victimId, hits.counter = data.targetId, 1
            end
        else
            hits.counter = 0
        end
    end
end
 
  • Нравится
  • Влюблен
Реакции: MrRazrab и RedHolms