Jonas^ Posted May 4, 2018 Share Posted May 4, 2018 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 Lord Henry Posted May 4, 2018 Other Languages Moderators Share Posted May 4, 2018 Desligue o Freeroam. 1 1 Link to comment
Jonas^ Posted May 4, 2018 Author Share Posted May 4, 2018 (edited) 14 hours ago, Lord Henry said: Desligue o Freeroam. Eu tirei a pasta [GAMEMODES] mas mesmo assim fica duplicando ;((((((((( http://prntscr.com/jdtvy7 PRINT < - Edited May 4, 2018 by OverKILL Link to comment
Jonas^ Posted May 4, 2018 Author Share Posted May 4, 2018 15 hours ago, Lord Henry said: Desligue o Freeroam. http://prntscr.com/jdundr Outra print do chat do server, acho q tem q usar uma função pois talvez essa parte do chat esta dentro do GM compilado, teria como usar alguma função pra bloquear essa msg repetida? Link to comment
DNL291 Posted May 4, 2018 Share Posted May 4, 2018 Você se refere àquela mensagem azul no chat? Você pode tentar cancelar ela com o evento onClientChatMessage, e usar os parâmetros da cor da mensagem pra saber se é essa mensagem ou não. Link to comment
Other Languages Moderators Lord Henry Posted May 4, 2018 Other Languages Moderators Share Posted May 4, 2018 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
Jonas^ Posted May 5, 2018 Author Share Posted May 5, 2018 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 Lord Henry Posted May 5, 2018 Other Languages Moderators Share Posted May 5, 2018 (edited) 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 May 5, 2018 by Lord Henry 1 Link to comment
Jonas^ Posted May 5, 2018 Author Share Posted May 5, 2018 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 Lord Henry Posted May 5, 2018 Other Languages Moderators Share Posted May 5, 2018 (edited) 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 May 5, 2018 by Lord Henry 1 Link to comment
Jonas^ Posted May 5, 2018 Author Share Posted May 5, 2018 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
Other Languages Moderators Lord Henry Posted May 5, 2018 Other Languages Moderators Share Posted May 5, 2018 (edited) Abra o meta.xml do GM. E remova esse arquivo do script. Assim ele não será usado. Edited May 5, 2018 by Lord Henry Link to comment
DNL291 Posted May 5, 2018 Share Posted May 5, 2018 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 Lord Henry Posted May 5, 2018 Other Languages Moderators Share Posted May 5, 2018 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
DNL291 Posted May 5, 2018 Share Posted May 5, 2018 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. Link to comment
Other Languages Moderators Lord Henry Posted May 5, 2018 Other Languages Moderators Share Posted May 5, 2018 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
DNL291 Posted May 6, 2018 Share Posted May 6, 2018 (edited) 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 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 May 6, 2018 by DNL291 Link to comment
Other Languages Moderators Lord Henry Posted May 6, 2018 Other Languages Moderators Share Posted May 6, 2018 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
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now