Muito legal, é um topico muito importante para sevidores serios ou mesmo pra curti =D.
- Fórum
- OTServ
- Recursos
- Linguagens de Programação
- [sql] Proteção Contra Ddos / Flood / Nuke
[sql] Proteção Contra Ddos / Flood / Nuke
Por GM Volcano, 20 de mar. de 2008 em Linguagens de Programação
info
Grupo: Conde
Registrado: 06/08/06
Posts: 554
Reputação: +223
Char no Tibia: Balacky

muitu bom
continue trazendu codes boms assin
nos agradecemos
valew!!!
info
Grupo: Campones
Registrado: 29/11/05
Posts: 91
Reputação: 0

mto bom msm!!
parabens
info
Grupo: Artesão
Registrado: 04/05/08
Posts: 126
Reputação: +4
Char no Tibia: ADM Ayame

Otimo !
Gostei em !
Mais so uma pergunta , ele realmente bloqueia nukers !?
info
Grupo: Campones
Registrado: 27/10/05
Posts: 14
Reputação: 0
Char no Tibia: Ghost Happy

Otimo !
Gostei em !
Mais so uma pergunta , ele realmente bloqueia nukers !?
Bom, pelo que vi, não é bem assim!
Parece que ele só não deixa o player perder skills/level, caso o server seja nukado e o player morra.
;P
Acho que é isso mesmo!
Mais mesmo assim, muito bom! É bem útil, só que pode gerar alguns bug's né ? Ou não.. ;P
Att.
God Jotape
info
Grupo: Artesão
Registrado: 14/01/07
Posts: 149
Reputação: 0
Char no Tibia: não jogo global.

i como eu faço isso . poderia postar tutor?
info
Grupo: Campones
Registrado: 05/10/11
Posts: 2
Reputação: 0
Char no Tibia: Tianu

não entendi nda desse começo "depois de:"
info
Grupo: Barão
Registrado: 17/12/07
Posts: 217
Reputação: +45

não entendi nda desse começo "depois de:"
é antigo isso amigo, não funciona mais, pois existe maneiras atualizadas de burlar isso




info
Grupo: Artesão
Registrado: 26/06/06
Posts: 115
Reputação: +1
Char no Tibia: Kasugol
Tá aí um code feito pelo programador Brasileiro Proglin(membro de outro fórum)
Feito para servidores SQL..
Foi testado na svn de dezembro(12/07)
Bom, vamos ao codigo :
Em game.cpp, depois de :
Adicione :
Depois de :
Game::Game() {Adicione :
Adicione no final :
#ifdef __UCB_DDOS_PROTECTION__ bool Game::isOutSideWorldResponding(){ OTSYS_THREAD_LOCK_CLASS lockClass(gameLock, "Game::isOutSideWorldResponding()"); uint32_t now = std::time(NULL); if( !connectionTestOk ){ if( now > connectionTestFalseValidUntil ){ //Redo test connectionTestOk = isWorldReachable(); connectionTestFalseValidUntil = now + 60; //False result is valid for 60 seconds } } else { if( now > connectionTestTrueValidUntil ){ //Redo test connectionTestOk = isWorldReachable(); connectionTestTrueValidUntil = now + 10; //Ok result is valid for 10 secongs } } return connectionTestOk; } #endifAgora em game.h, depois de :
Adicione :
Depois de :
Adicione :
Agora em tools.cpp, adicione no final :
#ifdef __UCB_DDOS_PROTECTION__ bool isWorldReachable(){ int32_t ret; #if defined __WINDOWS__ ret = system("ping -n 1 -w 500 google.com > NUL"); #else ret = system("ping -q -c 1 -w 1 google.com > /dev/null"); #endif return (ret == 0); } #endifAgora em tools.h, adicione no final :
Agora em players.cpp, substitua :
if(skillLoss){Por :
#ifdef __UCB_DDOS_PROTECTION__ if(skillLoss && g_game.isOutSideWorldResponding()){ #else if(skillLoss){ #endifSubstitua :
Por :
#ifdef __UCB_DDOS_PROTECTION__ if( g_game.isOutSideWorldResponding() ){ experience -= getLostExperience(); } #else experience -= getLostExperience(); #endifAgora vá em Projeto > Opções do Projeto > Parâmetros > Compilador C++ e adicione no final :
Agora Recompile tudo (Ctrl + F11)!
Créditos constam no inicio do tópico..