
Carlos Henrique II
Membro
-
Registro em
-
Última visita
Histórico de Curtidas
-
Carlos Henrique II deu reputação a xWhiteWolf em Aura Bold SystemFala galera do TK, hoje vim compartilhar com vocês um sistema que eu comecei a fazer com a ajuda de um amigo ... Bem, ele é viciado em Skyrim e esses dias a gente ficou quase 10 horas sem internet , e foi nesse meio tempo de tédio que eu decidi fazer um sistema baseado nas Bold Weapons do Skyrim e ele foi me dando uns toques pra eu poder melhorar o script.
Se você nunca jogou Skyrim ou não se lembra eu vou explicar oque é:
Um sistema que você conjura uma arma feita de magia referente a sua classe mas se vc tentar tirar ela da mão, ela some.
O Script em si é bem simpleszinho mas vc tem que fazer diversas alterações no server pra que ele fique 100% então aqui vamos nós:
Antes de tudo eu gostaria de dizer que eu altamente recomendo que você crie novos itens no seu Item Editor pra evitar problemas futuros mas use as sprites dos itens que eu irei passar aqui nesse tópico.
Abra seu weapons.xml e adicione as seguintes linhas (note que vc deve procurar os id's antes pra ver se já não existe ele declarado, caso haja, delete as linhas antigas e adicione as novas):
<instant name="Weapon Aura" words="Aurum" lvl="100" manapercent="60" aggressive="0" exhaustion="2000" needlearn="0" event="script" value="especiais/weaponaura.lua"> </instant> aqui vc vai configurar a palavra que vc diz pra conjurar a magia, o level dela e a porcentagem de mana que vai consumir ao usar a spell.
Ainda na pasta spells vá em scripts e crie uma nova pasta chamada especiais e crie um arquivo chamado weaponaura.lua que deverá conter o seguinte:
Agora você tem que garantir que o player não irá dar trade nos itens, para isso vá em creaturescripts\scripts e crie um arquivo chamado untrade.lua e coloque isso dentro dele:
Feito isso você deve ir no creaturescripts.xml e adicionar essa linha aqui:
<event type="traderequest" name="UntradeAura" event="script" value="untrade.lua"/> agora abra o login.lua que fica em creaturescripts\scripts e antes do ultimo return true adicione isso daqui:
---- AURA ITENS ---- registerCreatureEvent(cid, "UntradeAura")
______________________________________________________________________
Se você conseguiu fazer tudo até agora isso significa que você sabe ler. Se alguma coisa deu merda volte ao início e releia tudo com atenção!
_______________________________________________________________________
Eu pessoalmente achei o sistema super bacana, ainda mais pra servidores sérios.. Testei aqui no meu TFS 0.3.6 (Crying Damson) e rodou tudo perfeitamente... quaisquer erros poste aqui no tópico que eu tento ajudar a resolver, mas é claro que na medida do possível, to sem tempo pra viver então não me peça pra adaptar o script pra sua versão 7.6 ou 10.1... ele foi feito pra 8.54!
Espero que pelo menos alguém use esse sistema pq deu uma trabalheira danada pra fazer, e claro, se te ajudei, fortaleça com um REP que eu vou saber que você gostou do sistema.
Grato.
Mais uma coisa e talvez a mais importante do tópico: Esse script foi feito por mim, Night Wolf ou White Wolf (como vcs preferirem), e é conteudo >>> EXCLUSIVO <<<< do TIBIA KING. Não postem sem minha permissão que eu prometo continuar fazendo coisas legais pra vocês :angry2:.
Abraço do Night.
PS: Pra que o sistema funcione vc deve deixar as duas mãos vazias e falar Aurum, o script vai checar sua classe e te dar a weapon referente, caso vc seja Knight ele vai te dar a arma do tipo cujo sua proficiência seja a melhor.. (Em outras palavras: pegar a sua maior skill, se for sword vai te dar sword e assim por diante.. No caso de empate ele vai te dar sword e no caso de empate entre axe e club ele vai te dar club.) Note que não vai ser possível remover o item nem pra BP nem pra outro slot e nem pro chão... e também não é possível dar trade no item. Vou anexar umas imagens aqui pro pessoal ver melhor:
-
Carlos Henrique II deu reputação a CarlosHenrique7457 em [Pedido] Vip EffectVlw Funcionou direitinho
Vai em data\creaturescripts\scripts
cria um arquivo com nome vipeffects.lua
e cola o script dele la
ae vc vai em na msm pasta data\creaturescripts\scripts
procura por login.lua
e cola isso la dentro
Depis vai em data\creaturescripts
e abre o creaturescripts.xml
e cola isso la dentro
-
Carlos Henrique II deu reputação a Bruno Carvalho em Anti DivulgaçãoNome: advertisingBlock
Versão: 2.0
Suportada: Tfs 0.3 e 0.4
Descrição: Bloqueie propagandas de outros servidor eu seu sem ficar recompilando toda hora.
Em configmanager.cpp procure:
m_confNumber[PACKETS_PER_SECOND] = getGlobalNumber("packetsPerSecond", 50); Abaixo adicione:
m_confString[ADVERTISING_BLOCK] = getGlobalString("advertisingBlock", ""); Em configmanager.h procure:
GAME_PORT, Abaixo adicione:
ADVERTISING_BLOCK, Em game.cpp procure:
int32_t muted = 0; bool mute = player->isMuted(channelId, type, muted); if(muted && mute) { if(muted > 0) { char buffer[75]; sprintf(buffer, "You are still muted for %d seconds.", muted); player->sendTextMessage(MSG_STATUS_SMALL, buffer); } else player->sendTextMessage(MSG_STATUS_SMALL, "You are muted permanently."); return false; } Abaixo adicione:
std::string _text = asLowerCaseString(text); for(uint8_t i = 0; i < _text.length(); i++) { char t = _text[i]; if(t != '-' && t != '.' && !(t >= 'a' && t <= 'z')) { _text.erase(i, 1); i--; } } StringVec strVector; strVector = explodeString(g_config.getString(ConfigManager::ADVERTISING_BLOCK), ";"); for(StringVec::iterator it = strVector.begin(); it != strVector.end(); ++it) { std::string words []= {(*it)}; int ii, length; length = sizeof(words)/sizeof(words[0]); for(ii=0; ii < int(length); ii++) { if (int(_text.find(words[ii])) > 0 || _text == words[ii]) { player->sendTextMessage(MSG_STATUS_SMALL, "You can't send this message, forbidden characters."); return false; break; } } } Em config.lua adicione:
advertisingBlock = "" Configurando:
No config.lua onde tem advertisingBlock = "" substitua para o que deseja bloquear adicionando ; para separar.
Exemplo: advertisingBlock = ".net;servegame;no-ip,.net;.com;.com.br;.org;.pl;.net;.biz"
Créditos:
Comedinha
OTLand (Versão antiga)
-
Carlos Henrique II deu reputação a LeoTK em [Pedido Talkaction] BOSS EVENT COM MENSAGENSbom eu tenho um mod ... é automatico acho que você vai achar legal pois alem de ser automatico você pode configura-lo para os dias da semana e o horario
bom vamos começar
vá na pasta do seu servidor/mod/ crie um arquivo.xml e cole isso dentro
obs: os boss que estão preenchidos são os do meu servidor
como configurar
em days são os dias da semana em inglês no caso monday é segunda-feira
days = {
["Monday"] = {
["21:15"] = {nome = "Shukaku", pos = {fromPosition = {x=413, y=766, z=7},toPosition = {x=413, y=766, z=7}},m = {"1 Shukaku", "5 Sakon e Ukon", "2 Nukenin"}, Time = 15},
"21:15" é o horario que o boss nasce-ra. nome é o nome do evento exemplo: como está na tag shukaku então aparece-ra evento shukaku começou ... exemplo apenas.
pos ={from position = { x,y,z} é a posição aonde o boss nasce-ra junto com mais 2 bixos que configurei para nascer junto com ele
toposition: tambem coloquei igual bom não entendi muito bem mais me parece que são aonde o boss e os bixos nascerão
depois são os bixos que nascerão no meu caso
{"1 Shukaku", "5 Sakon e Ukon", "2 Nukenin"}
e em time é o tempo que os bixos ficarão lá depois desse tempo se ninguem matar os bixos sumiram espero ter ajudado
-
Carlos Henrique II deu reputação a junimvrb em Bloquear Acesso do Account Manager No SiteEntre em "accountmanagement.php", procure por essa linha.
$account_location = $account_logged->getLocation();
Logo abaixo coloque isso e salve!.
$acc_id = $account_logged->getId();
if($acc_id == 1) die("Está conta está BLOQUEADA.");
Ajudei ? REP+
-
Carlos Henrique II deu reputação a Bruno Minervino em Efeito levle upVá em data/creaturescripts/scripts e crie um arquivo chamado advance.lua com o seguinte conteúdo:
local config = { [0] = { "Fist skill UP", 31 }, [1] = { "Club skill UP", 31 }, [2] = { "Sword skill UP", 31 }, [3] = { "Axe skill UP", 31 }, [4] = { "Distance skill UP", 31 }, [5] = { "Shield skill UP", 31 }, [6] = { "Fishing skill UP", 31 }, [7] = { "Magic level UP", 31 }, [8] = { "Level UP", 30 } } function onAdvance(cid, skill, oldlevel, newlevel) local pos = getPlayerPosition(cid) local effectPositions = { {x = pos.x, y = pos.y - 3, z = pos.z}, {x = pos.x, y = pos.y + 3, z = pos.z}, {x = pos.x - 3, y = pos.y, z = pos.z}, {x = pos.x + 3, y = pos.y, z = pos.z}, {x = pos.x - 2, y = pos.y - 2, z = pos.z}, {x = pos.x + 2, y = pos.y - 2, z = pos.z}, {x = pos.x + 2, y = pos.y + 2, z = pos.z}, {x = pos.x - 2, y = pos.y + 2, z = pos.z} } for type, variable in pairs(config) do if skill == type then doCreatureSay(cid, ""..variable[1].." ["..newlevel.."]", TALKTYPE_ORANGE_1) for _, ePos in ipairs(effectPositions) do doSendDistanceShoot(pos, ePos, CONST_ANI_SMALLHOLY) doSendMagicEffect(ePos, CONST_ME_HOLYAREA) end end end return true end Ainda em data/creaturescripts/scripts inclua no arquivo login.lua isto:
registerCreatureEvent(cid, "advance") Agora em data/creaturescripts inclua no arquivo creaturescripts.xml isto:
<event type="advance" name="advance" script="advance.lua"/> Achei este script em outro fórum e trouxe apenas para lhe ajudar, foi postado por Loney porém não sei se o mesmo é o criador, de qualquer forma os créditos são dele.
-
Carlos Henrique II deu reputação a leessandro em [Resolvido] [Pedido] Script que após matar monstro aparece um teleport.cara farei tu tutorial rapido
1 crie seu monstro normalmalmente copie o arquivo xml de um monstro em C:\Users\Usuário\Desktop\naruto\Naruto Online\data\monster e renomeie para o nome do monstro q vc quer e edite o basico como skills look type experience speed entre outros
<?xml version="1.0" encoding="UTF-8"?> <monster name="nome do monstro" nameDescription="nome do monstro" race="blood" experience="1666" speed="310" manacost="0"> <health now="25000" max="25000"/> <look type="160" head="0" body="94" legs="79" feet="79" corpse="2916"/> <targetchange interval="5000" chance="8"/> <strategy attack="90" defense="20"/> <flags> <flag summonable="1"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="1"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="65"/> <flag runonhealth="0"/> </flags> <script> <event name="nome da sua quest"/> </script> <attacks> <attack name="melee" interval="1000" min="-1180" max="-1400"/> <attack name="manadrain" interval="2500" chance="10" range="7" min="-860" max="-1215"> <attribute key="areaEffect" value="redshimmer"/> </attack> <attack name="Venenodark" interval="5000" chance="30" radius="4" target="0" min="-440" max="-600"> </attack> <attack name="Fogofogo" interval="2000" chance="30" radius="4" target="0" min="-440" max="-600"> </attack> </attacks> <defenses armor="80" defense="80"> <defense name="healing" interval="4000" chance="40" min="300" max="300"> <attribute key="areaEffect" value="blueshimmer"/> </defense> <defense name="speed" interval="4000" chance="40" speedchange="450" duration="8000"> <attribute key="areaEffect" value="redshimmer"/> </defense> </defenses> <elements> <element physicalPercent="20"/> <element icePercent="10"/> <element holyPercent="-15"/> <element deathPercent="35"/> </elements> <immunities> <immunity paralyze="1"/> <immunity lifedrain="1"/> <immunity outfit="1"/> <immunity drunk="1"/> <immunity invisible="1"/> </immunities> <voices interval="5000" chance="10"> <voice sentence="Hahahaha, estupido, vou te esmagar!" yell="1"/> <voice sentence="Voce nao tem chanceee... vou te mataaar"/> </voices> <loot> <item id="2666" countmax="5" chance="20000"/><!-- meat --> <item id="2152" countmax="30" chance="10000"/><!-- dolar=verde --> <item id="2145" countmax="2" chance="70000"/><!-- pilula do soldado --> </loot> </monster> 2-criado seu monstro adicione assim em monsters.xml <monster name="nome do monstro" file="nome do documento que vc acabou de criar.xml"/> exemplo <monster name="meu monstro" file="meu monstro.xml"/> onde esta destacado de vermelho sera o nome do arquivo va em creaturescript depois em script e copia um arquivo .lua de la qualquer e mude o nome pro nome da sua quest igual colocasse no monstro e adicione isto nele local tpId = 5023 local tps = { ["Nome do monstro"] = {pos = {x=1277, y=1075, z=7}, toPos = {x=1275, y=1061, z=7}, time = 10}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end
3- Em vermelho o id do teleport que aparecera e so ver no map editor qual teleport vc quer
em azul o nome da criatura
roxo onde o teleport ira aparecer
laranja pra onde ira te teleportar
4-depois disso vai em creaturescripts.xml e adicione
<event type="death" name="nome da quest" event="script" value="nome do arquivo.lua"
vermelho nome da quest
azul nome do arquivo.lua que voce criou
Pronto agora so ligar o server
lembrando as magias , loot, entre otros pode mudar pois este meu monstro e de ot naruto
mais o sistema de teleport funciona
-
Carlos Henrique II deu reputação a Gustavo Ferreira em [Evento] Defend The King - A monarquia do REIBom sem mais nem menos tá ai o Defend The King, Evento Atualmente vendido por empresas de Otserver!
Pack Contém: Todos Scripts do Evento + Mapa
Download: http://www.mediafire...7p2jkly4hv5y9om
Descrição:
É um sistema de WAR, onde 2 grupos ( atacantes e defensores ) se confrontam entre si em um castle, com os seguintes objetivos:
Atacantes: Matar o The King ( o rei ), que fica dentro do castelo defendidos pelos Defensores
Defensores: Defender o The King durante um determinado tempo pré definido.
#Extras:
- Respawn to back: Se um player morrer no evento, tera de esperar 5segundos * (vezes) o numeros de mortes naquela rodada.
- The Gate: um gate é sumonado no mapa para impedir temporariamente a entrada dos atacantes ao castelo.
- The King: Summon que pode ser paralizado ou nao, para se esconder dos atacantes. Existe somente um summon durante a rodad
.
-
Carlos Henrique II deu reputação a MaXwEllDeN em [CTF] Capture The Flag 2.0(Automático)#Introdução
Este é um sistema de rouba bandeira, no qual tem dois times que se enfrentam e tentam se infiltrar na fortaleza do inimigo, roubar a bandeira dele e retornar para sua base com ela.
#Instalação
Faça o download do sistema (anexado ao tópico) e cole na pasta do seu servidor.
Atualizado 28/03/2014 Após ter instalado os arquivos nas suas respectivas pastas e instalado as tags
nos arquivos xml, abra a pasta do seu servidor, e em seguida abra a pasta spells/scripts/support, e abra o arquivo invisible.lua com algum editor de texto, depois de
function onCastSpell(cid, var) cole isso:
if (getPlayerStorageValue(cid, 16700) ~= -1) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end ficando assim:
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_INVISIBLE) setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) setCombatCondition(combat, condition) function onCastSpell(cid, var) if (getPlayerStorageValue(cid, 16700) ~= -1) then return doPlayerSendCancel(cid, "Você não pode usar invisible durante o CTF!") and doSendMagicEffect(getThingPos(cid), 2) end return doCombat(cid, combat, var) end #Configuração
Como na maioria dos meus códigos: as configurações ficam na lib, então:
waitpos = {x = 93, y = 117, z = 6}, -- Posição da sala de espera tppos = {x = 92, y = 117, z = 7}, -- Onde o TP vai aparecer days = {2, 5, 7}, -- Dias que o evento vai abrir xp_percent = 0.5, -- Porcentagem de xp que o player vai receber quando ganhar timeclose = 1, -- Tempo para iniciar o CTF winp = 10, waitpos = {x = 93, y = 117, z = 6}, -- Posição da sala de espera
Posição onde os players que entrarem no teleport vão ficar esperando, até o evento iniciar
tppos = {x = 92, y = 117, z = 7}, -- Onde o TP vai aparecer Posição de onde o teleport vai aparecer
days = {2, 5, 7}, -- Dias que o evento vai abrir
Dias que o evento vai iniciar.
xp_percent = 0.5, -- Porcentagem de exp que o player vai ganhar
Quando o evento acaba, os players da equipe que venceu ganham uma quantidade de experiência baseada na experiência que eles já têm, exemplo:
Meu player tem 1200000000 de exp, quando o evento acabar, ele vai ganhar 0.5% da exp que ele tem, no caso desse exemplo 6000000 de exp.
timeclose = 1, -- Tempo, em minutos, para iniciar o CTF
Tempo para o teleport sumir e os players que estão na sala de espera serem teletransportados para o evento.
winp = 10, -- Quantos pontos uma equipe precisa marcar para vencer
Quantos pontos uma equipe precisa marcar para vencer o evento.
Para configurar o horário que o evento vai abrir, é só você modificar na tag do globalevents.xml:
<globalevent name="CTFCheck" time="19:33:00" event="script" value="CTFMax.lua"/>
Você não precisa criar as bandeiras pelo map editor. O script irá adicioná-las automaticamente.
É isso, essa versão é uma remake, vários bugs reportados pela galera na v.1 foram corrigidos, o script ficou mais simples
Capture The Flag.rar
-
Carlos Henrique II deu reputação a ViitinG em Tower Defense Event [TFS 1.0 / 1.1]Para quem não sabe como funciona o evento : É um evento de defender a torre, no caso vão ter rodadas de monstros e as torres que você colocar vão atacar os monstros e os monstros vão ficando mais fortes a cada rodada e você claro também pode fazer upgrade em suas torres para não perder o evento.
Caso tenha alguma dúvida de como funciona o evento é só você procurar no Google por jogos de Tower Defense que são praticamente iguais ao evento.
OBS : Não me comprometo a dar suporte sobre instalação ou problemas perante aos scripts do evento/sistema, não sou dono do sistema estou apenas trazendo ao fórum com intuito de ajudar os membros que gostam de colocar eventos em seus servidores, qualquer dúvida ou problema você pode deixar ai em baixo mas coloque em mente que eu não estou me comprometendo a ajudar.
Evento desenvolvido por Printer com a ajuda de Limos e Ninja de outro fórum, todos os créditos do sistema vão para eles.
Características :
• Número ilimitado de rodadas pode ser configurado.
• HP dos monstros, porcentagem de drop do gold e velocidade podem ser configurados.
• Diferentes monstros, quantidades e espaço entre os monstros pode ser configurado.
• Pode ser adicionado um número ilimitado de torres.
• Preço das torres, upgrades, venda, cor e velocidade de ataque pode ser também fácilmente configurado no sistema.
• Recompensas ao ganhar uma rodada também pode ser configurado.
• Imagem :
• Adicionando o sistema •
Como o tutorial é um pouco grande eu vou colocar em spoiler para não ficar um tópico muito grande.
Pronto, finalmente você terminou de instalar o script, agora basta baixar o mapa, colocar no seu servidor e se divertir !
E caso o evento seja bem avaliado pelos membros do TibiaKing eu me comprometo de traduzir ele para português para facilitar o entendimento dentro do game!
LINK para download do mapa : http://otland.net/attachments/twdmap-zip.28110/
Créditos : Printer, Limos, Ninja.
-
Carlos Henrique II deu reputação a junimvrb em Bloquear Acesso do Account Manager No SiteEsse amigo.
-
Carlos Henrique II deu reputação a Adriano SwaTT em Bloquear Acesso do Account Manager No SiteBoa tarde,
Para quem não obteve êxito no bloqueio com o código acima.
No mesmo arquivo, procure por:
$account_players = $account_logged->getPlayersList();
E adicione este abaixo:
$acc_id = $account_logged->getId(); if($acc_id == 1) die("Está conta está BLOQUEADA."); (Mesmo código só que em lugar diferente pois comigo também não havia funcionado do outro modo)
Salve e teste.
Lembre-se de atualizar a página antes de testar.
Boa sorte.
-
Carlos Henrique II deu reputação a Natanael Beckman em GesiorACC 2019 8.60 UPDATE 29/06/2019Atualização de 29/06/2019.
Olá meus amigos, essa é a minha última contribuição free que faço na área de OTserver, fiz uma atualização bem completa do Gesior comparando com os que existem disponíveis, não vou falar muito pois grande parte já conhecem... Vou apenas posta algumas imagem das mudanças feitas.
Sempre gostei de evoluir e de oferecer aos demais uma facilidade de obter um material grátis e de qualidade, nunca utilizei meu pouco conhecimento para prejudicar os demais, pelo o contrario sempre foi na intenção de ajudar e se em algum momento falhei, falhei inconscientemente.
- Foi mudado algumas imagens de layout para renovar a estrutura.
- Server Info + Most Power Ful Guilds na mesma estrura.
- Create Account exigindo senhas com letras minusculas, maiúsculas e números, fortalecendo
a segurança do seu cliente e dificultando futuras dores de cabeças.
- Adicionado o mecanismo que identifica os valores de Premuim Points e Backup Points.
- Algumas mudanças de layout.
- Nome do player abaixo linkado.
- Adicionado um Box de doação, com a intenção apenas de complementar
o layout enriquecendo a pagina.
- Fixado o bug edit town, e melhorado o layout.
- Characters.php refeito, nesta imagem é uma visão de uma conta com access admin.
- Visão normal.
- Inventário completo.
- Guilds com visão ampliada.
- Detalhes...
- Novo SHOP com as estrutura de layout melhorada e modernizada.
- Sem BUGs lembre-se do CTRL + F5 para atualizar os cookies nesta pagina.
- Detalhes...
- Detalhes...
- Detalhes...
- Histórico do SHOP...
DOWNLOAD SITE
SHOP.LUA XAMPP 1.7.3 DATABASE LIMPA MYSQL DATABASE COMPLETA MYSQL TUTORIAIS ÚTEIS E COMPATÍVEIS PARA O SITE: PAGSEGURO AUTOMATICO SHOPGUILD BACKUP_POINTS SISTEMA VIP_TIME Créditos: Gesior.pl(WEBMaster) Felipe Monteiro(WEBMaster, WEBDesigner) Natanael Beckman(WEBNada) Nailan (WEBMaster) Ivens Pontes (WEBMaster) Marcio Porto (WEBMaster) Danyel Varejão (Programmer LUA, C++)
-
Carlos Henrique II deu reputação a Absolute em [Proibir Palavras] Anti DivulgaçãoFala galerinha do TK, hoje trago a vocês um sistema de bloquear algumas palavras no servidor!
Sabe aqueles players chatos que entram em seu otserver divulgando o servidor dele dias e dias, leva ban, volta e tudo mais? Poisé, chega disso né.
Primeiro vai o script depois explicação/config:
Em data/talkactions/scripts crie um arquivo com o nome de tibiakingproibiu.lua
function getFixedText(cid, text, replace) local wrongWords = {"#####", "ots-list.pl", "google.br", ".ddns.net", "hopto.org", "no-ip.org", "servegame.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,10} -- {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,"Voce foi mutado por ".. getPlayerStorageValue(cid,delay[1])-os.time() .." segundos, aqui e proibido divulgar.") end setPlayerStorageValue(cid,delay[1],os.time()+delay[2]) if channel == CHANNEL_DEFAULT then doCreatureSay(cid, fixedWords, TALKTYPE_SAY) doPlayerPopupFYI(cid, "Link: "..words.." e proibido, mal educado!.") return true elseif isInArray(trade_channels, channel) then doPlayerPopupFYI(cid, "Link: "..words.." e proibido neste canal.") return true elseif isInArray(blocked_channels, channel) then doPlayerPopupFYI(cid, "Link: "..words.." e proibido, mal educado!.") doPlayerSendChannelMessage(cid, getCreatureName(cid), fixedWords, TALKTYPE_CHANNEL_Y, channel) return true end end return false end Logo em seguida em em talkactions.xml adicione a seguinte linha:
<talkaction words="illegalWords" event="script" value="tibiakingproibiu.lua"/> Fim da instalação.
Explicação/Config:
local wrongWords = {"#####", "ots-list.pl", "google.br", ".ddns.net", "hopto.org", "no-ip.org", "servegame.com"} = Nas aspas ".." você colocará as palavras que deseja proibir, palavrões, divulgações e companhia...
local noSpaceText = string.gsub(string.gsub(string.gsub(lowerText, "%s", ""), "%p", ""),"-", "") = Aqui aconselho não mexer. É para evitar divulgações acompanhadas das Words (palavras) ou seja lá está proibido .servegame.com, então quando o player falar baiakfulunao.servegame.com irá proibir.
local delay = {16246,10} -- {empty_storage, lenght of muted} = no 16246 é a storage que irá salvar, não mexa. em 10 é o tempo em segundos que o player será mutado ao falar as palavras proibidas.
doPlayerPopupFYI(cid, "Link: "..words.." e proibido, mal educado!.") = Este doPlayerPopup é que vai aparecer naquelas janelas que aparece para clicar em ok (caixa de mensagens) caso queira alterar para mensagem de console substitua:
doPlayerPopupFYI(cid, "Link: "..words.." e proibido, mal educado!.")
por
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Link: "..words.." e proibido, mal educado!.")
É isso ae lindões do TK, caso haja alguma dúvida peço que perguntem!
Créditos:
Absolute
OTLAND
Até o próximo!
Absolute
-
Carlos Henrique II deu reputação a Vodkart em [GFS] Guild Frag SystemAntes de mais nada execute essas querys no seu banco de dados
ALTER TABLE `guilds` ADD `frags` INT(11) NOT NULL DEFAULT 0; ALTER TABLE `guilds` ADD `acesstime` INT(15) NOT NULL DEFAULT 0; Sistema
Configuração