Сообщение при получении урона

Tomato

Активный
Автор темы
392
89
Версия MoonLoader
.026-beta
Как сделать так чтобы при получении дамага, писалось сообщение в чат?
 

Dmitriy Makarov

25.05.2021
Проверенный
2,500
1,131
Lua:
local sampev = require 'lib.samp.events'

function sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
    if playerId ~= 65535 then
        sampAddChatMessage("В Вас выстрелили.", -1)
        -- playerId - Тот, кто нанёс урон
        -- damage - Нанесённый урон
        -- weapon - С какого оружия нанесли (ID)
        -- bodypart - В какую часть тела выстрелили.
    end
end
 

ARMOR

Модератор по раксампу
Модератор
4,936
6,732
Lua:
local sampev = require 'lib.samp.events'

function sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
    if playerId ~= 65535 then
        sampAddChatMessage("В Вас выстрелили.", -1)
        -- playerId - Тот, кто нанёс урон
        -- damage - Нанесённый урон
        -- weapon - С какого оружия нанесли (ID)
        -- bodypart - В какую часть тела выстрелили.
    end
end
Напишу дополнение к твоему коду

Lua:
local sampev = require 'lib.samp.events'

function sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
    if playerId ~= 65535 then
        nick = sampGetPlayerNickname(playerId)
        sampAddChatMessage("Игрок " .. nick .. [ .. tostring(playerId) .. " Нанес вам " .. tostring(damage) .. " Урона с оружия под ID: " .. weapon , -1
    end
end

Можно ещё создать массив с названием всех оружий и вместо id выводить название. Но это уже както сам
 
  • Нравится
Реакции: zloi734 и Dmitriy Makarov

Rice.

Известный
Модератор
1,755
1,619
Напишу дополнение к твоему коду

Lua:
local sampev = require 'lib.samp.events'

function sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
    if playerId ~= 65535 then
        nick = sampGetPlayerNickname(playerId)
        sampAddChatMessage("Игрок " .. nick .. [ .. tostring(playerId) .. " Нанес вам " .. tostring(damage) .. " Урона с оружия под ID: " .. weapon , -1
    end
end

Можно ещё создать массив с названием всех оружий и вместо id выводить название. Но это уже както сам
Напишу ещё одно дополнение
Lua:
local sampev = require 'lib.samp.events'

function sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
    if playerId ~= 65535 then
         if sampIsPlayerConnected(playerId) then
            nick = sampGetPlayerNickname(playerId)
            sampAddChatMessage("Игрок " .. nick .. [ .. tostring(playerId) .. " Нанес вам " .. tostring(damage) .. " Урона с оружия под ID: " .. weapon , -1
        end
    end
end
 

Tomato

Активный
Автор темы
392
89
Lua:
local sampev = require 'lib.samp.events'

function sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
    if playerId ~= 65535 then
        sampAddChatMessage("В Вас выстрелили.", -1)
        -- playerId - Тот, кто нанёс урон
        -- damage - Нанесённый урон
        -- weapon - С какого оружия нанесли (ID)
        -- bodypart - В какую часть тела выстрелили.
    end
end
как сделать чтобы можно было это отключать включать в игре?
 

ARMOR

Модератор по раксампу
Модератор
4,936
6,732
как сделать чтобы можно было это отключать включать в игре?
Lua:
local sampev = require 'lib.samp.events'
local weapons = require 'game.weapons'

local enable = false

function main()
    if not isSampfuncsLoaded() or not isSampLoaded() then return end
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand("dmginfo", function()
        enable = not enable
        sampAddChatMessage(enable and "Дамагинформер работает!" or "Дамагинформер не работает!")
    end)
end
function  sampev.onSendTakeDamage(playerId, damage, weapon, bodypart)
    if playerId ~= 65535 and enable then
        if sampIsPlayerConnected(playerId) then
            nick = sampGetPlayerNickname(playerId)
            sampAddChatMessage("Игрок " .. nick .. [ .. tostring(playerId) .. " Нанес вам " .. tostring(damage) .. " Урона с оружия: " .. weapons.get_name(weapon) , -1
        end
    end
end

Команда: /dmginfo

Не уверен что будет работать)