Lua Damage logger. Скрипт, выводящий в СФ-консоль информацию о входящем/исходящем дамаге

MS.Corleone

Активный
195
52
Выводит наносимый мною урон. Но не выводит урон который дают мне
 

qdIbp

Автор темы
Проверенный
1,438
1,180
Кхм... 😔 👉👈
Lua:
local inicfg = require('inicfg')
local ev = require('lib.samp.events')
local weap = require('game.weapons')

local scrName = 'dmglog.ini'
local ass = {
    [3] = 'торс', 
    [4] = 'пах', 
    [5] = 'левую руку',
    [6] = 'правая руку',
    [7] = 'левую ногу', 
    [8] = 'правую ногу',
    [9] = 'голову',

    [49] = "Машины",
    [50] = "Вертолеты",
    [51] = "Взрыва",
    [53] = "Утопления",
    [54] = "Падения",
    [200] = "-",
    [201] = "-",
    [255] = "Суицида",
    [65535] = "-",
}

local ini = inicfg.load({
    ['param'] = {
        autoclear = false,
        takedmg = true,
        givedmg = true,
        flood = 50
    }
}, scrName)
if not doesFileExist('moonloader/config/'..scrName) then 
    inicfg.save(ini, scrName) end

function main()
    while not isSampAvailable() do wait(1000) end
        if ini.param['autoclear'] then
            sampfuncsLog("Clear Text...")
            wait(5000)
            for i = 1, ini.param['flood'] do
                sampfuncsLog(" ")
            end
        end
        sampfuncsLog('{ECE20B}[DMG logger] успешно загружен! список команд /dmginfo {4169E1}Автор: TimeLordRu')
        sampRegisterChatCommand("dmginfo", function()
            sampAddChatMessage("/floodc <число> - количество строк для флуда в консоль SF", 0x00ff00)
            sampAddChatMessage("/autoclear - вкл/выкл автофлуда консоли при запуске скрипта в игру", 0x00ff00)
            sampAddChatMessage("/givedmg - вкл/выкл логгирования нанесения урона по другим", 0x00ff00)
            sampAddChatMessage("/takedmg - вкл/выкл логгирования нанесения урона по себе", 0x00ff00)
        end)
        sampRegisterChatCommand("floodc",function(arg)
            ini.param['flood'] = tonumber(arg) > 0 and tonumber(arg) or 50
            inicfg.save(ini, scrName)
            sampAddChatMessage("Изменение количества строк флуда в консоль: "..arg, -1)
        end)
    wait(-1)
end

function ev.onSendCommand( cmd )
    local menu = string.match(cmd, '^/(%a+)')
    if ini.param[menu] ~= nil then
        ini.param[menu] = not(ini.param[menu])
        inicfg.save(ini, scrName)
        sampAddChatMessage(string.format('Статус {ECE20B}[%s]{FFFFFF} %s', menu, (ini.param[menu] and 'Вкл' or 'Выкл')), -1)
        return false
    end
end

function ev.onSendTakeDamage(pId, dmg, weapon, bodypart)
    if ini.param['takedmg'] then
        if weapon < 47 then
            sampfuncsLog( ('[%s] %s[%d] нанес Вам %d единиц урона оружием %s в %s'):format(os.date('%H:%M:%S'), sampGetPlayerNickname(pId), pId, dmg, weap.get_name(weapon), ass[bodypart]) )
        elseif ass[weapon] then
            sampfuncsLog( ('[%s] Отнялось %d единиц урона из-за %s'):format(os.date('%H:%M:%S'), dmg, ass[weapon]) )
        end
    end
end

function ev.onSendGiveDamage(pId, dmg, weapon, bodypart)
    if ini.param['givedmg'] and weapon < 47 then --weap = weap.get_name(weapon) or ass[weapon]
        sampfuncsLog( ('[%s] Вы нанесли %s[%d]: %d  единиц урона оружием %s в %s'):format(os.date('%H:%M:%S'), sampGetPlayerNickname(pId), pId, dmg, weap.get_name(weapon), ass[bodypart]) )
    end
end
 
  • Эм
Реакции: Mintha

copypaste_scripter

Известный
1,295
249
такой вопрос, на аризоне по ботам урон не наносится со скриптом, когда удаляю и перезахожу в игре - наносится