Foquinhaa 55 Postado Setembro 30, 2012 Share Postado Setembro 30, 2012 (editado) Olá ékstibianos , venham disponibilizar um script mtmtmt procurado. correções: -Script não executa duas vezes agora Fixo. Arquivo Lua para trabalhar correto com 0.3.6 Agregado a proteção contra spam. Lua (uma vez que ele conta como talkaction não tem cheque sem som) Abra talkaction.cpp de suas fontes e de busca para: código: if(!talkAction || (talkAction->getChannel() != -1 && talkAction->getChannel() != channelId)) return false; e substitui ele por: if(!talkAction) { for(TalkActionsMap::iterator it = talksMap.begin(); it != talksMap.end(); ++it) { if(it->first == "illegalWords") { talkAction = it->second; break; } } if(talkAction && talkAction->isScripted()) return talkAction->executeSay(creature, words, "", channelId); return false; } else if(talkAction->getChannel() != -1 && talkAction->getChannel() != channelId) return false; Vá para talkactions / talkactions.xml e adicione: <talkaction value="blocklinks.lua"/> event="script" words="illegalWords" Codigo : <talkaction words="illegalWords" event="script" value="blocklinks.lua"/> NOTA: Não mudar as palavras = "illegalWords" ou não vai funcionar .. Criar "blocklinks.lua" em talkactions / scripts e cole que neste arquivo: Codigo : function getFixedText(cid, text, replace) local wrongWords = {"#####", "ots-list.pl", "google.br", "83.17.165.189", "hopto.org", "no-ip.org", ".com"} local lowerText = string.lower(text) local noSpaceText = string.gsub(string.gsub(string.gsub(lowerText, "%s", ""), "%p", ""),"-", "") for w = 1, #wrongWords do wordLen = string.len(wrongWords[w]) for p = 1, string.len(text) do if(string.sub(lowerText, p, p+wordLen-1) == wrongWords[w]) then text = string.sub(text, 1, p-1) .. string.rep(replace, wordLen) .. string.sub(text, p+wordLen) end end end if(string.lower(text) == lowerText) then for c = 1, #wrongWords do if(string.find(noSpaceText, string.gsub(string.gsub(wrongWords[c], "%p", ""),"-", "")) ~= nil) then return "I want to post forbidden links.." end end end return text end --[[Channels which are not added to block: 1 - Party Channel 2 - Channel for Staff members 3 - Rule Violation Channel 4 - Channel for Counselors/Tutors 65536 - Private Chat Channel <-- Private Chat cannot be blocked with this script ]]-- local blocked_channels = {5,8,9} --Game-Chat, Real Chat, Help Channel local trade_channels = {6,7} --All trade channels <- These are also blocked local replace = "°" --Symbols which are shown instead of forbidden links -> ° local delay = {16246,5} -- {empty_storage, lenght of muted} function onSay(cid, words, param, channel) local fixedWords = getFixedText(cid, words, replace) if words ~= fixedWords and getPlayerAccess(cid) == 0 then if getPlayerStorageValue(cid,delay[1]) > os.time() then return doPlayerSendCancel(cid,"You are still muted for ".. getPlayerStorageValue(cid,delay[1])-os.time() .." seconds.") end setPlayerStorageValue(cid,delay[1],os.time()+delay[2]) if channel == CHANNEL_DEFAULT then doCreatureSay(cid, fixedWords, TALKTYPE_SAY) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Link: "..words.." is forbidden.") return true elseif isInArray(trade_channels, channel) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Link: "..words.." is forbidden on the trade channel.") return true elseif isInArray(blocked_channels, channel) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Link: "..words.." is forbidden.") doPlayerSendChannelMessage(cid, getCreatureName(cid), fixedWords, TALKTYPE_CHANNEL_Y, channel) return true end end return false end Descrição: blocked_channels -> Array com o channel_id de canais bloqueados Nota: Você não pode bloquear mensagens privadas desta forma. trade_channels = {6,7} - Lista de canais comerciais, que também são bloqueadas substituir -> O script substitui as ligações com o símbolo entrou aqui delay = {16246,5} -> função Mute. Primeiro número é uma identificação de armazenamento vazio e segundo a quanto tempo você não pode dizer outra ligação proibido. ---> O jogador não é realmente mudo. Ele pode falar normal, mas ele está "mudo" para links ilegais para esse período de tempo. CRÉDITOS = SUMM (OTLAND) AJUDEI? REP + Editado Setembro 30, 2012 por TecBreakerByLipe Link para o comentário Compartilhar em outros sites More sharing options...
daniel1997 0 Postado Setembro 30, 2012 Share Postado Setembro 30, 2012 Isso Teria Que mecher nas Sources :x n sei mecher e.e certo ? Link para o comentário Compartilhar em outros sites More sharing options...
Foquinhaa 55 Postado Setembro 30, 2012 Autor Share Postado Setembro 30, 2012 Sim esses script's anti-anuncios , teriam que mecher na source , mas é muito facil , basta ver uns tutoriais Att = Tec Link para o comentário Compartilhar em outros sites More sharing options...
Critical 70 Postado Outubro 2, 2012 Share Postado Outubro 2, 2012 Olá XTibiano! Infelizmente, seu tutorial reprovado. Procure por ajuda na seção de como formular um bom tutorial. Grato pela atenção. Movido. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados