Jump to content

Recommended Posts

Olá, gostaria de uma ajuda, tenho um GM, mas ele é compilado, eu gostaria de adicionar um sistema de TAGS DE ADMIN nele, mas ele fica repetindo a mensagem no chat, sem tag e uma com tag, só que o gm é compilado como ja disse, e não tem a parte de bloq delay chat, sera que teria como adicionar essa função para bloquear ?

Link to comment
  • Other Languages Moderators
3 hours ago, OverKILL said:

Eu tirei a pasta [GAMEMODES] mas mesmo assim fica duplicando ;((((((((( 

O Freeroam não fica na pasta [gamemodes], ele fica no [gameplay].

Ele é o painel F1.

Link to comment
3 hours ago, Lord Henry said:

O Freeroam não fica na pasta [gamemodes], ele fica no [gameplay].

Ele é o painel F1.

Na minha pasta gameplay só tem reload, parachute e defaultstat não tem freeroam, no game o f1 abre o menu de administrador do gamemode tactics que eu uso.

Link to comment
  • Other Languages Moderators

Então seu script de TAGs foi feito errado. Ele deveria cancelar o chat normal antes e mandar o chat com TAG depois.

Exemplo:

function tagChatbox (text, msgtype)
    local account = getAccountName (getPlayerAccount (source))
    local name = getPlayerName (source)
    if msgtype == 0 then -- Se a mensagem for pelo /say (tecla T)
        if isObjectInACLGroup ("user."..account, aclGetGroup ("Console")) then -- Se o jogador estiver na ACL Console, faz o seguinte:
            cancelEvent (true) -- Cancela o chat normal.
            outputChatBox ("#494949║#1b1b1b✖ #FFFF00DONO #1b1b1b✖#494949║#ffffff - "..name.."#ffffff: "..text, root, 255, 255, 255, true) -- Manda o chat com TAG.
            outputServerLog ("CHAT: [Console] "..name..": "..text) -- Registra o chat no serverlog.
        elseif isObjectInACLGroup ("user."..account, aclGetGroup ("Admin")) then -- Mesma coisa se estiver na ACL Admin.
            cancelEvent (true)
            outputChatBox ("#494949║#ffffff✖ #FF0000ADMIN #ffffff✖#494949║#ffffff - "..name.."#ffffff: "..text, root, 255, 255, 255, true)
            outputServerLog ("CHAT: [Admin] "..name..": "..text)
        else -- Se for um jogador comum, então:
            cancelEvent (true)
            outputChatBox ("#003CFF║#ffffff✘ #00A513JO#ffff00GA#003CFFDOR #ffffff✘#003CFF║#ffffff - "..name.."#ffffff: "..text, root, 255, 255, 255, true)
            outputServerLog ("CHAT: [Jogador] "..name..": "..text)
        end
    end
end
addEventHandler ("onPlayerChat", getRootElement(), tagChatbox)

 

Edited by Lord Henry
  • Like 1
Link to comment
2 hours ago, Lord Henry said:

Então seu script de TAGs foi feito errado. Ele deveria cancelar o chat normal antes e mandar o chat com TAG depois.

Exemplo:


function tagChatbox (text, msgtype)
    local account = getAccountName (getPlayerAccount (source))
    local name = getPlayerName (source)
    if msgtype == 0 then -- Se a mensagem for pelo /say (tecla T)
        if isObjectInACLGroup ("user."..account, aclGetGroup ("Console")) then -- Se o jogador estiver na ACL Console, faz o seguinte:
            cancelEvent (true) -- Cancela o chat normal.
            outputChatBox ("#494949║#1b1b1b✖ #FFFF00DONO #1b1b1b✖#494949║#ffffff - "..name.."#ffffff: "..text, root, 255, 255, 255, true) -- Manda o chat com TAG.
            outputServerLog ("CHAT: [Console] "..name..": "..text) -- Registra o chat no serverlog.
        elseif isObjectInACLGroup ("user."..account, aclGetGroup ("Admin")) then -- Mesma coisa se estiver na ACL Admin.
            cancelEvent (true)
            outputChatBox ("#494949║#ffffff✖ #FF0000ADMIN #ffffff✖#494949║#ffffff - "..name.."#ffffff: "..text, root, 255, 255, 255, true)
            outputServerLog ("CHAT: [Admin] "..name..": "..text)
        else -- Se for um jogador comum, então:
            cancelEvent (true)
            outputChatBox ("#003CFF║#ffffff✘ #00A513JO#ffff00GA#003CFFDOR #ffffff✘#003CFF║#ffffff - "..name.."#ffffff: "..text, root, 255, 255, 255, true)
            outputServerLog ("CHAT: [Jogador] "..name..": "..text)
        end
    end
end
addEventHandler ("onPlayerChat", getRootElement(), tagChatbox)

 

Bom dia henry, bom eu usei o seu codigo, e mesmo assim ele continua duplicando a mensagem  print : http://prntscr.com/je39xg

2 minutes ago, OverKILL said:

Bom dia henry, bom eu usei o seu codigo, e mesmo assim ele continua duplicando a mensagem  print : http://prntscr.com/je39xg

Meu chat tag é esse 

words = {}
SQLS3D = { qury = executeSQLQuery }
chatTime = {}
lastChatMessage = {}
addEventHandler("onPlayerChat", getRootElement(),
	function(text, msgtype, thePlayer)
    local account = getAccountName(getPlayerAccount(source))
    local name = getPlayerName(source)
    local root = getRootElement()
    local name = getPlayerName(source)
    local r,g,b = getPlayerNametagColor(source)
	local Account1 = getPlayerAccount ( source )
		local new = ""
		local iter = 0
		msg = string.gsub(text,"?","")
		for word in msg:gmatch("%S+") do
			iter = iter + 1
--			for i,swr in ipairs(words) do
--				local src = word:lower():gsub("%s","")
--				local src = src:gsub("#%x%x%x%x%x%x","")
--				local src = src:gsub("%c","")
--				local src = src:gsub("%p","")
--				local pat = swr:lower():gsub("%s","")
--				if src:find(pat) then
--					local replaceString = ""
--					for x=1,word:gsub("#%x%x%x%x%x%x",""):len() do
--						replaceString = replaceString.."*"
--					end
--					word = word:gsub(word,replaceString)
--				end
--			end
			if iter == 1 and word:len() > 0 then
				word = word:gsub("%a",string.upper,1)
			end
			new = new..word.." "
		end
		if new ~= "" then msg = new end
		text = msg
		if chatTime[source] and chatTime[source] + tonumber(1000) > getTickCount() then
			cancelEvent()
			outputChatBox("Espere 1 segundo para poder digitar novamente!", source, 255, 0, 0)
			return
		else
				chatTime[source] = getTickCount()
		end
		lastChatMessage[source] = text
		local r, g, b = getPlayerNametagColor(source)
		cancelEvent()
      if isObjectInACLGroup("user." .. account, aclGetGroup("Console")) then
	 cancelEvent(true)
		outputChatBox("#1E00FF[Dono] #FFFFFF"..name.."#FFFFFF : #1E00FF" .. text, root, 255, 255, 255, true)
        outputServerLog("CHAT: [ Dono ] " .. name .. ": " .. text)

   elseif isObjectInACLGroup("user." .. account, aclGetGroup("SuperModerator")) then
	cancelEvent(true)
	outputChatBox("#038DFF[S.Mod] #FFFFFF"..name.."#FFFFFF : #038DFF" .. text, root, 255, 255, 255, true)
        outputServerLog("CHAT: [ S.Mod ] " .. name .. ": " .. text)
       
elseif isObjectInACLGroup("user." .. account, aclGetGroup("Admin")) then
	cancelEvent(true)
	outputChatBox("#FF0000[ADM] #FFFFFF"..name.."#FFFFFF : #FF0000" .. text, root, 255, 255, 255, true)
        outputServerLog("CHAT: [ Admin ] " .. name .. ": " .. text)

elseif isObjectInACLGroup("user." .. account, aclGetGroup("Moderator")) then
	 cancelEvent(true)
	outputChatBox("#00FF00[MOD] #FFFFFF"..name.."#FFFFFF : #00FF00" .. text, root, 255, 255, 255, true)
        outputServerLog("CHAT: [ Moderador ] " .. name .. ": " .. text)
		end
	end
)

 

Link to comment
  • Other Languages Moderators

O jeito é vc ir dando stop nos resources 1 por 1 até achar o resource que está mostrando a mensagem em azul.

Parece ser algum resource relacionado ao ID do jogador. Por padrão o chat não mostra o ID dos jogadores, ou seja, não é um resource nativo do MTA que está fazendo isso.

Edited by Lord Henry
  • Like 1
Link to comment
50 minutes ago, Lord Henry said:

O jeito é vc ir dando stop nos resources 1 por 1 até achar o resource que está mostrando a mensagem em azul.

Parece ser algum resource relacionado ao ID do jogador. Por padrão o chat não mostra o ID dos jogadores, ou seja, não é um resource nativo do MTA que está fazendo isso.

Essa função esta dentro do arquivo compilado do GM, não tem como bloquear ? com algum codigo?

Link to comment
  • Moderators

Remova ele se tiver só o código do chat/id, pode ser que tenha outros códigos relevantes pro servidor, caso contrário, você vai precisar tentar fazer o que eu disse acima.

Link to comment
  • Other Languages Moderators

Quando eu preciso deletar uma linha de código que não sei se é importante ou não, em vez de simplesmente deletar, deixo ela como comentário.

No caso, é só abrir o código com notepad++ e usar Ctrl+Q na linha. Dai ela vira comentário.

Link to comment
  • Other Languages Moderators
1 hour ago, DNL291 said:

Sim, isso ele deve fazer caso não esteja compilado, mas ele disse que esse script do gamemode está compilado então não vai ter como fazer isso.

Sim, mas me refiro a deixar como comentário no meta.xml

Link to comment
  • Moderators
2 hours ago, Lord Henry said:

Sim, mas me refiro a deixar como comentário no meta.xml

Deu pra deduzir que você falou em comentar código de script quando citou abrir o arquivo com notepad++ e usar Ctrl+Q, enfim me equivoquei na interpretação xD

Mas eu quis falar sobre o código do script mesmo, que pode ter outras funções fora essa que ele quer tirar. Primeiramente, vai precisar localizar qual é o script tentando abrir um por um, talvez seja mais difícil pro @OverKILL encontrar, porque é importante ter uma noção de Lua pra entender a estrutura do código e ter mais facilidade de localizar onde fica a função. Pode ser que realmente esteja num script compilado e nesse caso não vai ser possível fazer nada no código.

Então a solução seria tirar o script do meta.xml (se o código não tiver outras funções importantes) ou tentar cancelar a saída no chat com o evento que eu citei no outro comentário.

Edited by DNL291
Link to comment
  • Other Languages Moderators

 

49 minutes ago, DNL291 said:

Mas eu quis falar sobre o código do script mesmo, que pode ter outras funções fora essa que ele quer tirar.

Realmente, se ele desativar no meta.xml e o script tiver outras funções além dessa do chat, pode comprometer outras coisas que não deveriam ser desativadas. E como está compilado, não teria o que fazer pois não da pra editar nada.

No fim das contas a dor de cabeça é tão grande que é mais válido refazer o Gamemode do 0, mas é um problema pequeno demais para se incomodar tanto.

Ele poderia também tentar entrar em contato com o desenvolvedor do GM para pedir ajuda.

Link to comment

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...