Ir para conteúdo

Forged

Administrador
  • Registro em

  • Última visita

Tudo que Forged postou

  1. Forged postou uma resposta no tópico em Suporte & Pedidos
    Obrigado pelo elogio e minha opinião das quests é mesma coisa isso é o rpg do server estou quase terminando os scripts da parte final jaja eu posto as fotos de como ficou! Alias essa quest é um pouco grande pois depois de passar nas hydra tem que voltar na cidade para falar com o npc!
  2. Forged postou uma resposta no tópico em Suporte Tibia OTServer
    Cara isso é de gosto eu prefiro 100x um global full mais próximo do rl possível xp baixa do que um compacto sem graça '-'
  3. Forged postou uma resposta no tópico em Portal
    CARALHO! Pra falar a verdade eu nem estava me lembrando que hoje era o aniversário de 3 anos do TK, derrepente eu me toquei que estávamos no mês de agosto e que já estava chegando o final do mês, ai caiu a ficha que poderia ser aniversário do TK, bom, foi certeiro. Dia 21/08/2010 exatamente ás 09:27 da manhã o TibiaKing.com foi criado com o seguinte pensamento: "Ah vamo fazer essa bagaça, se num der certo num dá nada..." Pois é, hoje fazem mais de 1.000 dias que o TibiaKing.com está online, mas precisamente, cerca de 1.095 dias, ou seja, 26.280 horas, é bastante tempo, não!? Durante esse tempão, passamos por momentos maravilhosos e também por vários momentos de perrengue (aqueles que é melhor esquecer) e nos tornamos uma grande comunidade que posso dizer com toda certeza que somos uma das melhores brasileiras em nosso ramo, SE NÃO, a melhor. Algumas novidades quentinhas no TK vão vim nestes próximos dias, como: Vários eventos/concursos, valendo prêmios super bacanas. [TOP] Melhores membros e melhores tópicos do mês. Convocações para a equipe do TK. Confecções de camisetas do TK (só em novembro/dezembro). Entre outras novidades, fiquem ligados... Enfim... Eu, o Renato e todo o restante da equipe do TK agrademos a todos que fizeram/fazem parte dessa nossa querida história, vamos continuar a trilhar e vamos fazer esse site crescer ainda mais, contamos com todos vocês!!
  4. Forged postou uma resposta no tópico em Suporte & Pedidos
    Fala galerinha, hoje eu vim aqui para realizar uma espécie de "debate e pesquisa de soluções" a respeito de um assunto que é muito temido e que com certeza já fez o favor de acabar com o projeto de muitos, enfim, vamos falar sobre os famosos ataques DDoS (Negação de Serviço), aqueles conhecidos como nukers. Sei que com certeza esse é um dos maiores, ou até mesmo, o maior dos problemas que um Administrador de OTServ pode enfrentar, até porque grandes empresas já passaram ou passam constantemente por problemas relacionado a ataques DDoS, quer um exemplo? http://www.tibiabr.com/2013-08-12-esclarecimentos-sobre-a-recente-medida-contra-ataques-ddos Bom, vamos ao que interessa, peço que respondam as seguintes perguntas: Você já sofreu algum tipo de ataque DDoS? O que você fez para solucionar seu problema?
  5. Fala galerinha, este é um sistema bastante procurado por todos os donos de servidores 9.6+ pelo fato de não possuir o Rule Violation, eu procurei por ele aqui no TK e acabei não encontrando, então resolvi compartilhar com vocês. Bom, vamos ao que interessa.. Os créditos do sistema encontram-se no final do tópico... Vá até sua database e execute a seguinte query: CREATE TABLE ban_table ( id INTEGER NOT NULL, account INTEGER NOT NULL, added INTEGER NOT NULL, expires INTEGER NOT NULL, admin_id INTEGER NOT NULL DEFAULT 0, comment TEXT NOT NULL, PRIMARY KEY ( id ) ); Vá até sua data/talkactions abra seu aquivo talkactions.xml e remova os comandos (caso exista): /ban /unban /baninfo Agora em data/talkactions, abra o arquivo talkactions.xml e adiciona a seguinte tag: <talkaction log="yes" words="/unban;/ban;/baninfo" access="4" event="script" value="bansystem.lua"/> Em data/talkactions/scripts crie um arquivo chamado bansystem.lua com isto: function onSay(cid, words, param) if words == "/unban" then if not param or param == "" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "enter a valid name.") return true end local param = param:lower() local player = getPlayerGUIDByName(param) if not player then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "this player does not exist.") return true elseif not isAccountBan(getAccountIdByName(param)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "That player or account is not banished or deleted.") return true end doRemoveBanAccount(getAccountIdByName(param)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, param.." has unbanned successfully.") elseif words == "/ban" then local t = string.explode(string.lower(param), ",") if not t[1] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local player = getPlayerGUIDByName(t[1]) if not player then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return true elseif isAccountBan(getAccountIdByName(t[1])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "this player is already banished.") return true end local hours,comment = not tonumber(t[2]) and 24 or tonumber(t[2]),not t[3] and "No Reason" or t[3] doBroadcastMessage(t[1].." was banned by "..getCreatureName(cid)..": "..comment) doBanirAccount(getAccountIdByName(t[1]), os.time() + hours*3600, getCreatureName(cid), comment) if getPlayerByNameWildcard(t[1]) then doRemoveCreature(getPlayerByNameWildcard(t[1])) end elseif words == "/baninfo" then if not param or param == "" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "enter a valid name.") return true end local param = param:lower() local player = getPlayerGUIDByName(param) if not player then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "this player does not exist.") return true elseif not isAccountBan(getAccountIdByName(param)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "That player or account is not banished or deleted.") return true end local acc = getAccountIdByName(param) local baninfo = getBanAccInfo(acc) doPlayerPopupFYI(cid, "Account has been banished at:\n"..os.date("%d %b %Y",baninfo[1])..".\n\nfor the following reason:\n"..baninfo[2]..".\n\nBanned By: "..baninfo[3].."\n\nYour banishment will be lifted at:\n"..os.date("%d %b %Y %X",baninfo[1])..".") end return true end Em data/creaturescript abra o arquivo chamado creaturescript.xml e adicione a tag: <event type="login" name="BanLogin" event="script" value="BanLogin.lua"/> Em data/creaturescript/scripts crie um arquivo chamado BanLogin.lua com isto: function onLogin(cid) local MyAccount = getPlayerAccountId(cid) if isAccountBan(MyAccount) then local baninfo = getBanAccInfo(MyAccount) doPlayerPopupFYI(cid, "You account has been banished at:\n"..os.date("%d %b %Y",baninfo[1])..".\n\nfor the following reason:\n"..baninfo[2]..".\n\nYour banishment will be lifted at:\n"..os.date("%d %b %Y %X",baninfo[1])..".") addEvent(doRemoveCreature, 1500, cid) end return true end Em data/lib crie um arquivo chamado BanLib.lua com isto: function doBanirAccount(accid, time, admin_id, comment) return db.executeQuery("INSERT INTO `ban_table` (`account`, `added`, `expires`, `admin_id`, `comment`) VALUES ('".. accid .."', '".. os.time() .."', '".. time .."', '".. admin_id .."', '".. comment .."');") end function getBanAccInfo(acc) local info,qry = {},db.getResult("SELECT `expires`, `comment`, `admin_id` FROM `ban_table` WHERE `account` = "..acc) if (qry:getID() ~= -1) then info = {qry:getDataInt("expires"), qry:getDataString("comment"), qry:getDataString("admin_id")} end return #info > 0 and info or false end function isAccountBan(acc) local qry = db.getResult("SELECT `expires` FROM `ban_table` WHERE `account` = "..acc) if (qry:getID() ~= -1) then if os.time() < qry:getDataInt("expires") then return true end if os.time() >= qry:getDataInt("expires") then db.executeQuery("DELETE FROM `ban_table` WHERE`account` = "..acc) end end return false end function doRemoveBanAccount(acc) return db.executeQuery("DELETE FROM `ban_table` WHERE `account` = "..acc) end Prontinho, seu script está pronto para ser utilizado! VOCÊ PODE USAR UM MOD AO INVÉS DE TODOS ESSES SCRIPTS ACIMA... Na pasta raiz do seu server abra a pasta /mods e cria um arquivo chamado BanCommand.xml com isso: <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Ban Command" version="1.0" author="Vodkart" contact="none.com" enabled="yes"> <config name="ban_func"><![CDATA[ function doBanirAccount(accid, time, admin_id, comment) return db.executeQuery("INSERT INTO `ban_table` (`account`, `added`, `expires`, `admin_id`, `comment`) VALUES ('".. accid .."', '".. os.time() .."', '".. time .."', '".. admin_id .."', '".. comment .."');") end function getBanAccInfo(acc) local info,qry = {},db.getResult("SELECT `expires`, `comment`, `admin_id` FROM `ban_table` WHERE `account` = "..acc) if (qry:getID() ~= -1) then info = {qry:getDataInt("expires"), qry:getDataString("comment"), qry:getDataString("admin_id")} end return #info > 0 and info or false end function isAccountBan(acc) local qry = db.getResult("SELECT `expires` FROM `ban_table` WHERE `account` = "..acc) if (qry:getID() ~= -1) then if os.time() < qry:getDataInt("expires") then return true end if os.time() >= qry:getDataInt("expires") then db.executeQuery("DELETE FROM `ban_table` WHERE`account` = "..acc) end end return false end function doRemoveBanAccount(acc) return db.executeQuery("DELETE FROM `ban_table` WHERE `account` = "..acc) end ]]></config> <event type="login" name="BanLogin" event="script"><![CDATA[ domodlib('ban_func') function onLogin(cid) local MyAccount = getPlayerAccountId(cid) if isAccountBan(MyAccount) then local baninfo = getBanAccInfo(MyAccount) doPlayerPopupFYI(cid, "You account has been banished at:\n"..os.date("%d %b %Y",baninfo[1])..".\n\nfor the following reason:\n"..baninfo[2]..".\n\nYour banishment will be lifted at:\n"..os.date("%d %b %Y %X",baninfo[1])..".") addEvent(doRemoveCreature, 1500, cid) end return true end]]></event> <talkaction words="/unban;/ban;/baninfo" access="4" event="buffer"><![CDATA[ domodlib('ban_func') if words == "/unban" then if not param or param == "" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "enter a valid name.") return true end local param = param:lower() local player = getPlayerGUIDByName(param) if not player then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "this player does not exist.") return true elseif not isAccountBan(getAccountIdByName(param)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "That player or account is not banished or deleted.") return true end doRemoveBanAccount(getAccountIdByName(param)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, param.." has unbanned successfully.") elseif words == "/ban" then local t = string.explode(string.lower(param), ",") if not t[1] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local player = getPlayerGUIDByName(t[1]) if not player then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return true elseif isAccountBan(getAccountIdByName(t[1])) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "this player is already banished.") return true end local hours,comment = not tonumber(t[2]) and 24 or tonumber(t[2]),not t[3] and "No Reason" or t[3] doBroadcastMessage(t[1].." was banned by "..getCreatureName(cid)..": "..comment) doBanirAccount(getAccountIdByName(t[1]), os.time() + hours*3600, getCreatureName(cid), comment) if getPlayerByNameWildcard(t[1]) then doRemoveCreature(getPlayerByNameWildcard(t[1])) end elseif words == "/baninfo" then if not param or param == "" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "enter a valid name.") return true end local param = param:lower() local player = getPlayerGUIDByName(param) if not player then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "this player does not exist.") return true elseif not isAccountBan(getAccountIdByName(param)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "That player or account is not banished or deleted.") return true end local acc = getAccountIdByName(param) local baninfo = getBanAccInfo(acc) doPlayerPopupFYI(cid, "Account has been banished at:\n"..os.date("%d %b %Y",baninfo[1])..".\n\nfor the following reason:\n"..baninfo[2]..".\n\nBanned By: "..baninfo[3].."\n\nYour banishment will be lifted at:\n"..os.date("%d %b %Y %X",baninfo[1])..".") end return true ]]></talkaction> </mod> ESSE SCRIPT FOI INTEIRAMENTE CRIADO PELO VODKART, TODOS OS CRÉDITOS SÃO DELE! Você gostou deste conteúdo!? Este conteúdo te ajudou!? Isso será realmente útil pra você!? Então, se possível, faça uma doação (de qualquer valor) que estará me ajudando também!
  6. Forged postou uma resposta no tópico em Portal
    Olá pessoal do TK, como você puderam perceber nós passamos as últimas 24 horas (metade do tempo previsto) offline devido à alguns problemas técnicos que tivemos em nosso antigo host e devido a isso acabamos migrando para um outro servidor melhor e com uma estrutura mais preparada para o nosso site. Enfim, tudo ocorreu muito bem e estamos novamente 100% a ativa! Ainda essa semana será postadas algumas novidades/ideias que estamos em mente para botar em prática no TK. Fiquem ligados que vai vim novidades por ai!
  7. Recentemente, foi postado no Blog da ServerSoft algumas experiências vividas relacionadas ao temido ataques DDoS em alguns projetos. E agora a ServerSoft inciou há alguns meses um projeto de pesquisa para desenvolver uma próxima geração de Firewall, cerca de 10x á 20x mais potente que o DDoS Firewall de nível 3 atual. Por isso eles querem ouvir vocês, conte suas experiências e ajude-os a trazer esse novo serviço com um dos melhores custo/benefícios do mercado. A grande vantagem será a flexibilidade dessa rede de defesa, possibilitando segurar ataques, inclusive de dedicados externos como VPS, com uma amplitude de até 10gbps, milhões de pacotes por segundo e futuramente com gráficos e todo o controle direto do seu painel de controle ServerSoft. Mas, para que isso aconteça, precisamos saber a sua opinião! Participe dessa breve pesquisa contando suas experiências sobre DDoS, e ajude a desenvolver esse novo tipo de Firewall. Acesse agora mesmo: http://www.serversoft.com.br/pesquisa-cloud-firewall-ddos-10gbps/
  8. Galerinha todo mundo sabe que o Gesior é uma bosta no quesito segurança e o XAMPP também tem suas falhas, porém muitos ainda utilizam o Gesior e o XAMP por diversos motivos, até mesmo por afinidade. Hoje eu vim aqui dar algumas dicas valiosas para que você possa tornar seu querido Gesior e seu XAMPP um pouco mais seguro. 1 - Se você utiliza XAMPP, siga os passos abaixo para tornar-lo mais seguro: Crie um senha relativamente boa e segura para o seu xampp/phpMyAdmin. Exclua completamente a pasta webdav. Vá até o seu phpMyAdmin > Privilégios e exclua o usuário pma. Vá até a pasta phpMyadmin/config.inc.php e procure pela seguinte tag: $cfg['blowfish_secret'] = 'xampp'; E mude a palava xampp por algo completamente sem sentido, exemplo: $cfg['blowfish_secret'] = 'hsdewu1721has1au'; Ainda em config.inc.php e procure pela seguinte tag: $cfg['Servers'][$i]['auth_type'] = 'config'; E mude-a para: $cfg['Servers'][$i]['auth_type'] = 'cookie'; Agora vá até php/php.ini e procure pela seguinte tag: Safe_mode = Off Ative-o, deixando assim: Safe_mode = On Prontinho, seu XAMPP está bem mais seguro! 2 - Bom agora vamos ao Gesior, vá até o arquivo config/config.php e faça as edições nas seguintes tags: $config['site']['access_news'] = 6; // access level needed to edit news $config['site']['access_tickers'] = 6; // access level needed to edit tickers $config['site']['access_admin_panel'] = 6; // access level needed to open admin panel Mude todas para 6 para não termos problemas com invasões ao sistema de tickers, porém lembre de por page_acess 6 na sua account pelo phpMyAdmin para você administrar seu site. 3 - Vá até layouts/sua-skin/layout.php e procure a tag <body e substitua por essa: <body onBeforeUnLoad="SaveMenu();" onUnload="SaveMenu();" oncontextmenu="return false" onselectstart="return false" ondragstart="return false"> Agora, logo abaixo da tag <body>, você adicionará o seguinte código: <?php { $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|show tables|#|\*|--|\\\\)/"),"",$sql); $sql = trim($sql); $sql = strip_tags($sql); $sql = addslashes($sql); return $sql; } function protect($str) { if( !is_array($str) ) { $str = preg_replace("/(from|select|insert|delete|where|drop table|show tables)/i","",$str); $str = preg_replace('~&amp;#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))',$str); $str = preg_replace('~&amp;#([0-9]+);~e', 'chr("\\1")',$str); $str = str_replace("<script","",$str); $str = str_replace("script>","",$str); $str = str_replace("<Script","",$str); $str = str_replace("Script>","",$str); $str = trim($str); $tbl = get_html_translation_table(HTML_ENTITIES); $tbl = array_flip($tbl); $str = addslashes($str); $str = strip_tags($str); return strtr($str,$tbl); } else return $str; } $nome = anti_injection($_POST["nome"]); $senha = anti_injection($_POST["senha"]); $link = htmlspecialchars($_POST['link'], ENT_QUOTES); echo $link; header("Content-Type: text/html; charset=ISO-8859-1",true)?> Ainda em layout.php logo abaixo da tag <head>, você adicionará o seguinte código: <script type="text/javascript"> function click() { if (event.button==2||event.button==3) { oncontextmenu='return false'; } } document.onmousedown=click document.oncontextmenu = new Function("return false;") </script> Esses códigos te ajudarão a se previr contra SQL Injection, mas eu afirmo logo que isso não é 100% seguro. 4 - Vá até o arquivo guilds.php e localize a seguinte tag: $guild_logo = $guild->getCustomField('logo_gfx_name'); if(empty($guild_logo) || !file_exists("guilds/".$guild_logo)) $guild_logo = "default_logo.gif"; Agora substitua por isso: foreach (array("/", "\\", "..") as $char) { $guild_logo = str_replace($char, "", $guild->getCustomField('logo_gfx_name')); } if (empty($guild_logo) || !file_exists("guilds/".$guild_logo)) { $guild_logo = "default_logo.gif"; } Pronto, seu guilds.php está seguro agora. 5 - Exclua completamente o arquivo houses.php, ele é um arquivo muito inutilizado e ainda muito vulnerável, pessoas maliciosas podem conseguir ver sua config.lua através dele, portanto apenas exclua. Pronto, por enquanto é só, se você tiver mais dicas para deixar o Gesior e o XAMPP mais seguro, poste nesse tópico que você com certeza estará ajudando muitas pessoas necessitadas! Créditos: Matheus gpedro Red Stian Você gostou deste conteúdo!? Este conteúdo te ajudou!? Isso será realmente útil pra você!? Então, se possível, faça uma doação (de qualquer valor) que estará me ajudando também!
  9. Hehe nem dahh .. quero essa versão pq ja compilei warsystem e varios bangs....
  10. Forged postou uma resposta no tópico em Eventos de Mapping
    ²
  11. Forged postou uma resposta no tópico em Suporte Tibia OTServer
    algum bug do otserver ou voce deu a sua senha para alguem feche o otserver resete mude a senha do vps e reabra!
  12. volte a versao antiga u.u
  13. Fala galera Blz? Então galera to com um grande problema no Eribaiak. É o seguinte antigamente eu utilizava uma versão do TFS mais antiga e tudo funcionava tranquilamente. Mais... resolvi colocar a versão do TFS 0.4 que é a REV 3777. e todas as spells de healling pararaod e funcionar. Tipo elas até funcionam e executam sem ennhum erro, porem naoa diciona o heall no player Alguem saberia me Informar qual providencia devo tomar? Abraços
  14. Forged postou uma resposta no tópico em Suporte Tibia OTServer
    Bom,se alguém podese me ajudar preciso de um npc que troca um montaria x por um item x (( no caso um sword em um war horse
  15. Forged postou uma resposta no tópico em Suporte Tibia OTServer
    Olha cara telefone eu nao sei se tem como ocultar sei só essa do email mesmo
  16. Forged postou uma resposta no tópico em Suporte Tibia OTServer
    bom,se você utiliza o PagSeguro, você pode adicionar vários emails como secundário caso não queira que seu email pessoal apareça!
  17. Forged postou uma resposta no tópico em Suporte Bots
    Macro Expert esse é o programa
  18. Forged postou uma resposta no tópico em Suporte Tibia OTServer
    Pode ser o player completa a quest e ganha um item clica no item e assim ganha acesso ao tile?!
  19. Forged postou uma resposta no tópico em Playground (Off-topic)
    Fala galerinha, nós resolvemos voltar com o Bate-Papo do TK e iremos gravar um amanhã as 16:20h (4:20), portanto quem quiser participar basta me adicionar no skype e falar comigo amanhã!!! Skype: matheus.sesso
  20. Fala galerinha o MOTW (Mapping Of the Week) está de volta e já está rolando a #11 edição e o tempo de inscrições para o concurso já está acabando, então não perca tempo, corra e participe você também, nos mostre suas habilidades de mapper, é sua chance de ganhar um concurso no TK! 1º lugar: 5 reps + sign 2º lugar: 3 reps + sign 3º lugar: 1 rep + sign >> Participe já do concurso clicando aqui!!! <<
  21. Forged postou uma resposta no tópico em Suporte Tibia OTServer
    Testando u.u!oxi nao fi no scripts funçao para adicionar 20k :0
  22. Forged postou uma resposta no tópico em Playground (Off-topic)
    como você é old eu ri HEUAHUEHAUE BR?
  23. Forged postou uma resposta no tópico em Suporte Tibia OTServer
    Sim *-*!
  24. Forged postou uma resposta no tópico em Playground (Off-topic)
    http://www.youtube.com/watch?v=TPJzkiPLbos

Informação Importante

Confirmação de Termo