[DarkRP] Отображение OOC

Написал код на замену ника на профу в чате.
Не учёл OOC, LOOC и т.д чаты.
Как сделать так, чтобы если человек пишет в OOC чат, то перед ником написано было OOC?

local color1 = Color(255, 255, 255)

hook.Add("OnPlayerChat", "reason.CombineChat", function(ply, text, teamChat, isDead)
    if not IsValid(ply) then return end

    local prefix = ply:Nick()
    local jobColor = color1

    if ply:isMPF() then
        local job = ply:getDarkRPVar("job")
        prefix = job 
    end

    jobColor = team.GetColor(ply:Team())

    chat.AddText(jobColor, prefix, color1, ": " .. text)
    
    return true
end)

Если ты не знаешь как добавить подпись ООС то код явно был написан не тобой.

А вообще

chat.AddText(Color(255,255,255), "[OOC] ", jobColor, prefix, color1, ": " … text)

Господи, ты просто прибавил приписку ООС. Скрипт был написан мною.
Я же написал если человек пишет в OOC чат, то перед ником написано было OOC.

Пример, надеюсь правильно все понял)

local overrideCommands = {
	["ooc"] = function(ply, text)
		local doSay = function()
			local name =
				ply:isMPF() and
				ply:getDarkRPVar("job") or ply:Nick()

			local phrase = DarkRP.getPhrase("ooc")
			local jobColor = team.GetColor(ply:Team())

			local players = player.GetAll()
			for next, v in ipairs(players) do
				DarkRP.talkToPerson(v, jobColor, "(" .. phrase .. ") " .. name, color_white, text, ply)
			end
		end

		return doSay
	end,
}

overrideCommands["/"] = overrideCommands["ooc"]

hook.Add("onChatCommand", "DarkRP.OverrideCommands", function(ply, cmd, args, tbl)
	local overrideCommand = overrideCommands[cmd]
	if overrideCommand then
		return true, overrideCommand(ply, args)
	end
end)

Руки дошли проверить.

Да, это оно. Спасибо!
Но теперь замена ника не работает у игроков, которые являются isMPF()

Можешь предоставить как работает данная функция ply:isMPF() ?

То же самое, что и ply:isCP()

У меня все работает, скинь ошибку если есть

Ошибок в консоли нет.

Уточню, что ply:isMPF() это мета.

hook.Add("PostGamemodeLoaded", "MetaLoad", function()
local player = FindMetaTable("Player")
local tableMPF = {
    [TEAM_CP7] = true,
    [TEAM_CP6] = true,
    [TEAM_CP5] = true,
    [TEAM_CP4] = true,
    [TEAM_CP3] = true,
    [TEAM_CP2] = true,
    [TEAM_CP1] = true,
    [TEAM_CP0] = true,
}

function player:isMPF()
    if not IsValid(self) then return end
    return tableMPF[self:Team()]
end

end)

Скорее всего допустил ошибку в коде, сейчас попробуй

Не-а.
image

А ты стандартный ooc отключил? Ибо у него в коде круглые скобки а на скриншоте квадратные :confused:

Разве у него круглые? Квадратные ведь

P.S: Я понял. сейчас проверю

image
Это уведомление.

тестил на чистом рп, все прекрасно работает

Как так-то? Может, мету не правильно сделал?

По какому пути надо закидывать её?

Просто в addons, может скрипт ломает какой нибудь?

Без понятия. Позже проверю на чистом сервере.

Насчёт addons спрошу, чтобы удостовериться, по какому конкретному пути? addons/название_аддона/lua/autorun/client/cl_chat.lua - cl_meta.lua? Или по другому? У меня по другому.

ply:isMPF sh
[DarkRP] Отображение OOC - #4 от пользователя tehya sv