Jump to content

Ayuda Con AdminTag!


Digore

Recommended Posts

Buenas, lo primero gracias por leer este post.

Os comento, he descargado este resource de la comunidad:

https://community.multitheftauto.com/in ... ls&id=2963

Se trata del tag que tienen los admines, moderadores.... cuando hablan.

El problema esque este tag únicamente se produce si escribes por el chat Local (es un modo Dayz) aparece 2 veces en el chat, una en el local y una en el normal (por esto no hay realmente ningún problema).

Mi objetivo es que en vez de pulsar "T" para hablar por el chat local y que luego este mensaje sea leido 1 vez por todos los jugadores y 2 veces por mí (suena algo lioso). En mi servidor todo el mundo usa el GlobalChat con la tecla "X" pero este resource no se adapta y si trato de escribir con el GlobalChat no aparece el tag de Admin.

En fín, si alguien pudiera mirar lo que es el resource y decirme que debo cambiar para que el tag salga en el Global, lo agradecería :D

Un Saludo, Diego

Edited by Guest
Link to comment

No creo que eso se muestre en el archivo server

Te dejo lo poco que viene en el archivo client, que llega a ser algo parecido a lo que decias pero sigo sin saber que hacer

-- Set chatbox layout data.

chatLines = getChatboxLayout()["chat_lines"]

setElementData(localPlayer, 'chatLines', chatLines)

Link to comment

Aquí tienes :)

settings = { 
['enableTeamChat'] = true, 
['adminTag'] = { 
    ['enabled'] = true, 
    ['ACL'] = { -- A bit more advanced. 
        { 'Admin', '#00B7FF[Admin] ' }, 
        { 'SuperModerator', '#F200FF[s.mod] ' }, 
        { 'Moderator', '#A1FF9C[Mod] ' }, 
    } 
}, 
['swearFilter'] = { 
    ['enabled'] = true, 
    ['swearCost'] = 0, 
    ['swears'] = { -- Allows you to set the blocked swear words, syntax is ['WORD'] = 'REPLACEMENT' 
        ['asshole'] = '*******', 
        ['fuck'] = '****', 
        ['slut'] = '****', 
        ['bitch'] = '*****', 
        ['cunt'] = '****', 
        ['whore'] = '*****', 
        ['pussy'] = '*****', 
        ['fag'] = '***', 
        ['perro'] = '*****', 
        ['puta'] = '****', 
        ['joder'] = '*****' 
        } 
}, 
['antiSpamFilter'] = { 
    ['enabled'] = true, 
    ['execeptionGroups'] = 'Admin', -- Groups which can spam, eg. 'Admin,SuperModerator,Moderator' 
    ['chatTimeOut'] = 1.5 -- Set in seconds. 
}, 
['freezeChat'] = { 
    ['enabled'] = true, 
    ['command'] = 'freezechat', -- Command to use when activating frozen chat. 
    ['allowedGroups'] = 'Admin,SuperModerator', -- Groups which have access to this command. 
    ['resetTime'] = 5 -- Time in minutes before it automatically resets. 
}, 
['clearChat'] = { 
    ['enabled'] = true, 
    ['command'] = 'clearchat', 
    ['allowedGroups'] = 'Admin,SuperModerator' 
} 
} 
  
-- Required variables 
spam = { } 
stopChat = false 
  
function chatbox(message, msgtype) 
    if stopChat then cancelEvent() outputChatBox('#FF0000[FREEZECHAT] #FFFFFFAn admin has recently frozen chat.', source, 255, 255, 255, true) return end 
    local account = getAccountName(getPlayerAccount(source)) 
    local name = getPlayerName(source) 
    local serial = getPlayerSerial(source) 
    local r, g, b = getPlayerNametagColor(source) 
    local text = message:gsub("%a", string.upper, 1) 
    local check = 0 
    local spamCheck = false 
    if settings['swearFilter']['enabled'] then 
        for i, v in pairs(settings['swearFilter']['swears']) do 
            while text:lower():find(i:lower(),1,true) do 
                local start, end_ = text:lower():find(i:lower(),1,true) 
                local found = text:sub(start,end_) 
                text = text:gsub(found,v) 
                if settings['swearFilter']['swearCost'] ~= 0 then 
                    takePlayerMoney(source, settings['swearFilter']['swearCost']) 
                end 
            end 
        end 
    end 
    if msgtype == 0 then 
        cancelEvent() 
        if not settings['adminTag']['enabled'] and not spam[serial] then 
            message = RGBToHex(r, g, b) .. name .. ':#FFFFFF ' .. text 
            if 128 <= #message then 
                outputChatBox('#FF0000Error: The message you entered is too big, please lower it!', source, 255, 255, 255, true) 
            else 
                outputChatBox(message, getRootElement(), 255, 255, 255, true) 
                aclgroup = split(settings['antiSpamFilter']['execeptionGroups'], ', ') or settings['antiSpamFilter']['execeptionGroups'] 
                for i, v in ipairs(aclgroup) do if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(source)), aclGetGroup(v)) then spamCheck = true end end 
                if not spamCheck then 
                    if settings['antiSpamFilter']['enabled'] then 
                        spam[serial] = true 
                        setTimer(function() 
                            spam[serial] = false 
                        end, settings['antiSpamFilter']['chatTimeOut']*1000, 1) 
                    end 
                end 
                outputServerLog('CHAT: ' .. name .. ': ' .. text) 
            end 
            return 
        end 
        for _,v in ipairs(settings['adminTag']['ACL']) do 
            if isObjectInACLGroup('user.' .. account, aclGetGroup(v[1])) and check == 0 and not spam[serial] then 
                local message = v[2] .. RGBToHex(r, g, b) .. name .. ":#FFFFFF " .. text 
                if 128 <= #message then 
                    outputChatBox('#FF0000Error: The message you entered is too big, please lower it!', source, 255, 255, 255, true) 
                    check = 1 
                else 
                    check = 1 
                    outputChatBox(message, getRootElement(), 255, 255, 255, true) 
                    if settings['antiSpamFilter']['enabled'] then 
                        aclgroup = split(settings['antiSpamFilter']['execeptionGroups'], ', ') or settings['antiSpamFilter']['execeptionGroups'] 
                        for i, v in ipairs(aclgroup) do if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(source)), aclGetGroup(v)) then spamCheck = true end end 
                        if not spamCheck then 
                            spam[serial] = true 
                            check = 1 
                                setTimer(function() 
                                spam[serial] = false 
                            end, settings['antiSpamFilter']['chatTimeOut']*1000, 1) 
                        end 
                    end 
                    outputServerLog('CHAT: '.. v[2] .. name .. ': ' .. text) 
                end 
            elseif spam[serial] and check == 0 then 
                outputChatBox('#FF0000Error: Please wait '..settings['antiSpamFilter']['chatTimeOut']..' seconds before saying a message!', source, 255, 255, 255, true) 
                check = 1 
            end 
        end 
    elseif msgtype == 1 and not settings['enableTeamChat'] then 
        cancelEvent() 
    end 
end 
addEventHandler("onPlayerChat", getRootElement(), chatbox) 
  
addEventHandler("onPlayerQuit", getRootElement(), 
function() 
    local serial = getPlayerName(source) 
    spam[serial] = false 
end ) 
  
-- Freeze chat 
addCommandHandler(settings['freezeChat']['command'], 
function(player) 
    if not settings['freezeChat']['enabled'] then return end 
    aclgroup = split(settings['freezeChat']['allowedGroups'], ', ') or settings['freezeChat']['allowedGroups'] 
    for i, v in ipairs(aclgroup) do if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(player)), aclGetGroup(v)) then check = true end end 
    if not check then return end 
     
    if not stopChat then 
        outputChatBox('#FF0000[FREEZECHAT] #FFFFFF'..getPlayerName(player)..' has frozen the chat!', getRootElement(), 255, 255, 255, true) 
        stopChat = true 
        frozenTimer = setTimer(function() stopChat = false end, (settings['freezeChat']['resetTime'] * 60000), 1) 
    else 
        outputChatBox('#FF0000[FREEZECHAT] #FFFFFF'..getPlayerName(player)..' has unfrozen the chat!', getRootElement(), 255, 255, 255, true) 
        stopChat = false 
    end 
end 
) 
  
-- Clear chat 
addCommandHandler(settings['clearChat']['command'], 
function(player) 
    if not settings['clearChat']['enabled'] then return end 
    aclgroup = split(settings['clearChat']['allowedGroups'], ',') or settings['clearChat']['allowedGroups'] 
    for i, v in ipairs(aclgroup) do if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(player)), aclGetGroup(v)) then check = true end end 
    if not check then return end 
     
    for i = 2, getElementData(player, 'chatLines') do 
        outputChatBox(' ') 
    end 
    outputChatBox('#FF0000[CLEARCHAT]#FFFFFF '..getPlayerName(player)..'  has cleared the chat', getRootElement(), 255, 255, 255, true) 
end 
) 
  
function RGBToHex(red, green, blue, alpha) 
        return string.format("#%.2X%.2X%.2X", red,green,blue) 
end 

Link to comment
Obviamente estoy usando una versión descompilada en la cual puedo editar TODOS los archivos. ¿Alguien usa un AdminTag el cual funcione para el GlobalChat?

Entonces estás usando una versión pirata de DayZ, lo cuál cuenta como robado...

Link to comment

Versión 0.7.3

Nada es robado, esta versión viene con algunas cosillas que yo he cogido TODAS y las he cambiado, aparte de que he añadido muchísimas mas cosas. Cualquier servidor de Dayz tiene la version descompilada similar a la mía, solo que cada uno la modifica al gusto.

Link to comment

Aunque bueno, ya he encontrado un AdminTag que me funciona. Si quieres algo en este mundo hay que buscar durante mucho tiempo. Gracias de todas maneras a todos por intentar ayudarme (no es de malas ni nada ehh, de verdad que os lo agradezco)

Un Saludo :D

Link to comment
  • Recently Browsing   0 members

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