Jump to content

Pomoc z prefiksami przed nickiem


Recommended Posts

Posted

Witam otóż mam pewien problem. Kiedyś założyłem serwer mta i zrobiłem jakoś że na tabeli była grupa "[Gracz]" i każdy nowy miał przed nickiem (na chacie) to [Gracz] również jakos zrobiłem grupy administracyjne tj. [Admin] , [Moderator] , [Właściciel]. I teraz nie moge tego zrobic nie pamiętam czy był jakis plugin czy nie ale nie wydaje mi sie ze nie. Zgóry dziękuje za pomoc
 

  • 9 months later...
Posted

na domyslnym scoreboardzie (tabeli pod TABem) mozesz dodac jedynie Team. Aby wyswietlac na chacie przed nickiem jakis tag, musisz do tego uzyc skryptu, ktory wyswietla na chacie wiadomosc w taki sposob, jaki chcesz

  • 2 weeks later...
Posted (edited)
local function onPlayerChat(msg, type)
    local accountLogin = getAccountName(getPlayerAccount(source)) -- ściągamy ewentualne konto source (gracza, który coś napisał)
    local support = isObjectInACLGroup("user." ..accountLogin, aclGetGroup("Support")) -- stała sprawdzająca czy source jest dodana do grupy o nazwie Support w ACL
    local admin = isObjectInACLGroup("user." ..accountLogin, aclGetGroup("Admin")) -- stała sprawdzająca czy source jest dodany do grupy o nazwie Admin w ACL

    if not isGuestAccount(getPlayerAccount(source)) then -- jeśli source nie jest gościem (jest zalogowany) to
      if admin then -- jeśli stała wyrzuci true, że source jest administratorem to
            outputChatBox("[Admin] " ..getPlayerName(source).. ": " ..msg, root, 255, 255, 255, true) -- pokaże to na czacie
        elseif support then -- jeśli stała wyrzuci true, że source jest supporterem to
            outputChatBox("[Support] " ..getPlayerName(source).. ": " ..msg, root, 255, 255, 255, true) -- pokaże to na czacie
        else -- w przeciwnym razie
            outputChatBox(getPlayerName(source).. ": " ..msg, root, 255, 255, 255, true) -- pokaże wiadomość gracza bez żadnego prefixu
        end
    end
end
addEventHandler("onPlayerChat", root, onPlayerChat) -- handler zaznaczający, że ma się to wykonać jeśli player napisze coś na czacie

Wyciąłem Ci napisany przeze mnie ułamek kodu. Możesz się nim pobawić. Opisałem Ci wewnątrz krótko jak, dlaczego i po co.

Edited by Paweł
  • 10 months later...
  • 1 year later...
Posted

Dodam również od siebie dla innych.
Napisałem kod w czytelny oraz optymalny sposób, aby nie bałaganić if'ami.

local prefixes = {
    [1] = {"[Wlasciciel]", 255, 0, 0},
    [2] = {"[Administrator]", 255, 0, 0},
    [3] = {"[Supporter]", 0, 255, 0},
    [4] = {"[Gracz]", 255, 255, 0},
}

function onPlayerChatPrefix(message, messageType)
    if messageType == 0 then -- typ 0 oznacza chat, a 1 to konsola
        local playerName = getPlayerName(source)
        local playerPrefix = ""
        for i, prefixData in ipairs(prefixes) do
            if hasObjectPermissionTo(source, "function." .. prefixData[1], false) then -- sprawdzenie, czy gracz ma uprawnienia do danego prefixu(acl)
                playerPrefix = "[" .. prefixData[1] .. "] "
                break
            end
        end
        local r, g, b = getPlayerNametagColor(source) -- pobranie koloru nicku
        local messageWithPrefix = playerPrefix .. playerName .. ": " .. message -- utworzenie nowej wiadomości z prefixem
        outputChatBox(messageWithPrefix, root, r, g, b, true) -- wysłanie nowej wiadomości na czacie
        cancelEvent() -- anulowanie oryginalnej wiadomości, aby nie została wyświetlona
    end
end
addEventHandler("onPlayerChat", root, onPlayerChatPrefix)

 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...