Tidus

Membro
  • Total de itens

    25
  • Registro em

  • Última visita

Reputação

19 Ajudante

6 Seguidores

Sobre Tidus

  • Rank
    Membro Novato

Profile Information

  • Sexo
    Masculino
  • Interesses
    Dominar o mundo!

Contact Methods

  • Twitter
    jeffersongz
  • Website URL
    http://www.jgnetwork.com.br

Últimos Visitantes

1.874 visualizações
  1. É só acessar o ADMIN CP do IPB, ir em RSS Management e configurar o RSS Export.
  2. Se for fazer 100% fiel até em termos de NPC complica, pois era tudo diferente em 2004 até acho que Março ou Maio de 2005 que o campo de aprendiz era literalmente uma aula sobre o jogo onde tu ficava quase 1 hora só conversando com NPC até poder sair de lá e ir matar o primeiro poring, detalhe. não tinha campo de treinamento ali com níveis de dificuldade, tu ficava mesmo um tempão falando com npc e depois ia level 1 pra sua cidade, prontera, geffen, izlude e etc, e ia matar poring e fabre mesmo.
  3. Eu era 45 quando fechou hauhauha, sou amigo de muita gente lá, só não disputei o top ranking com Igor, Mentor e Leo porque minha conta de nível mais alta foi hackeada quando joguei em Lan e dai tive que upar outra kkk Qual era teu nick lá? Ainda tem um vídeo meu no youtube fazendo 2kk numa das músicas que o povo mais detestava:
  4. Tenho tudo de Old Times, tenho todas GRF do bRO desde o beta de 2004 até 2016, separadas episódio por episódio, tenho a grf da ilha da tartaruga e a do episódio guerra do emperium que foi o primeiro episódio do jogo e tenho também os sakexe de 2004~2009, inclusive já forneci eles ao JulioCF uma vez. O problema não é ter isso, o fato é que isso que o Mihael sugere não dá para fazer, até dá, mas seria um trabalho enorme. Vou começar dando exemplos de coisas que acontecem de episódio para episódio, o item_db e mob_db de Amatsu & Kunlun não são iguais os de Umbala e Niflheim, e não falo sobre adicionar itens que falta, mas sim em termos de configurações, bônus de item, preço, drops de monstro e etc, 90% da pasta db é alterada de episódio para episódio assim como a pasta NPCs e os arquivos de respaw de mobs. A maioria desses Old Times e Gold Times que tem por ai, são servidores pré-renovação com remoção dos mapas e poucas modificações em skill, se for para fazer algo correto de episódio para episódio, é muita configuração para mudar, tanto em item, quanto em monstro, assim como o respaw dos mobs, são realocados em vários episódios. É muita coisa que teria que separar de episódio para episódio, e não acho isso saudável para comunidades como Cronus e brAthena que dão fork em outro emulador invés de seguir desenvolvimento solo.
  5. Kaizen/Hazit é a empresa mais safada que existe, inaugurou o Audition Dance Battle como Closed Beta em fevereiro de 2007 e perto do final de ano deu wipe, o que era esperado de um closed beta, e voltou como Open Beta, o jogo ficou até 2010 online, tinha uma quantia boa de players, para depois sem explicação nenhuma, fechar o game sem aviso prévio, simplesmente sumiu site e etc, sem darem nenhuma notícia aos jogadores, teve nego que colocou cash 1 dia antes do jogo sumir do mapa e se lascou. Quando Priston Tale foi lançado em 2005 pela Kaizen, eu pensei em parar o Rag, comecei o Rag no beta em setembro de 2004, e antes de conhecer o Ragnarok, eu joguei outros MMORPG, que foi Risc Your Life2, Lineage2, Everquest, Knight Online, e Priston Tale, o priston onde eu moro era uma febre nas lan house, o único problema é que tu só podia jogar até o level 39, se upa-se para o 40 a conta era bloqueada e tinha que pagar, não lembro quantos dolar, mas dava uns 40 pila, dai quando anunciaram o lançamento do PT no brasil, animei na hora pra voltar pra ele e kitar do rag, só que foi uma decepção total cara, o jogo veio todo atualizado com quest de nível 40 habilitadas, podia transferir conta do americano para o br, dai tu naquela expectativa de começar e disputar o ranking, já tomava ferro porque vinha o Greenman com seu mecanico level 80 transferido, e pra piorar o jogo além de não começar dos episódios iniciais que era a tier 1 do level 10, o mesmo ainda era mais fácil, exp bem mais elevada que a do internacional. Há quem fale da LUG, concordo que ela é uma merda, mas tem empresas bem piores, e Hazit é uma delas, ferrou 2 jogos que eu curtia muito antes do rag existir.
  6. Barbiroto o que eu e márcio fizemos é algo diferente, mas ainda assim é passivo de tomar ataques, porque mesmo que eu dificulte o acesso ao IP, ainda é possível forçar e estourar a banda da rede. Na época resolveu por um tempo para mim, mas acabou sendo mais viável migrar meu servidor para o EUA do que manter no Brasil, pois além de ser um processo que causa desconforto aos jogadores, sempre que o IP deles mudam, é necessário liberar novamente. O que fiz foi fechar todas portas e qualquer acesso ao servidor, deixei ele rodando como se tivesse em localhost e liberei conexão apenas para o IP do host que iria rodar a API, essa API era programada para fazer o cadastro de novos IP no firewall físico da amazon. Até ai OK, uma API em uma máquina do Hostgator que faz cadastro no firewall do host da amazon do IP que acessa ela. E como o usuário do servidor tem seu IP liberado no firewall da amazon? simples, eu hospadava o CP em outra máquina e na página de login usava um código para fazer comunicação com a API que por sua vez iria enviar o dados e cadastrar o IP na amazon, então sempre que o usuário logava no CP, seu IP era automaticamente liberado no servidor. Segue um exemplo do código do CP: function postCurl($funcao,$campos,$id_clouds_contratados,$url='https://hostgator/aws/api.php'){ $ch = curl_init(); $campos[funcao]=$funcao; $campos[id_clouds]=$id_clouds; curl_setopt($ch, CURLOPT_URL,$url);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $campos);// receive server response ...curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$server_output = curl_exec ($ch);// na duvida de erro?//echo $server_output.'xxxxx';curl_close ($ch);return $server_output;}Foi uma gambiarra na época que até deu certo, até conversei com o Carlos sobre a possibilidade de criarmos um firewall melhor e invés de usar o CP, usar as funções de proxy do cliente para cadastrar um usuário sempre que ele logar pelo hexed mesmo, assim tornando o cadastro mais rápido e mais eficaz, mas não seria uma solução definitiva, existem muitas formas de atacar um servidor, então sempre que uma empresa prometer 100% de proteção contra DDoS, não contrate e ainda diga o motivo, se até Google, Facebok e Microsoft tomam DDoS, aonde que uma empresa de ragnarok não tomar, a melhor resposta é ter um técnico presente e disponível para lhe ajudar a conter e barrar manualmente.
  7. Pedro não tem como dar um jeito de forma 100% não, estes sites famosos como google e facebook não caem, por conta da quantidade de servidores e links que possuem, um administrador de Ragnarok não tem dinheiro para comprar tanta banda e link assim, e mesmo com essa qualidade de recursos, google e facebook já foram alvos de ataques e já fraquejaram contra DDoS, mas nada sério. O problema é que DDoS pode ser executado de várias formas, no passado eu e o Márcio Ex-Ceo da ForBrazil criamos uma API para proteção usando o firewall físico da Amazon, onde o painel de controle e o servidor tinham todas conexões de saída e entrada bloqueadas, só tinha uma forma de obter acesso, era com IPs cadastrados no firewall, a única maneira de efetuar estes cadastrados era logando no CP do servidor que só podia ser acessado pelo site do servidor que era o único IP autorizado a abrir a conexão, toda vez que um usuário logava no CP seu IP era liberado e ele tinha acesso ao servidor, o problema é que o tempo de resposta disso é muito grande e torna lenta a conexão do usuário, então pensamos em utilizar o sistema de proxy dos hexeds, que inclusive foi sugestão do Raizen, todas conexões do servidor são fechadas, com possibilidade apenas do hexed fazer liberação via proxy no firewall, porém apesar de tornar o processo mais rápido, se alguém conseguir o endereço de IP da rede, coisa que não é difícil e atacar lá, já era igual, além de derrubar seu servidor, vai deixar todas instâncias que compartilham a mesma conexão offline. Proteção para DDoS é persistência, você barrar os ataques manualmente e tomar as possíveis medidas enquanto o servidor está sobre ataque.
  8. @Kooda ele quer implementar a função bindatcmd no emulador dele, para que os scripts que utilizam esta função sejam compatíveis com o emulador antigo dele. script.c BUILDIN(bindatcmd) { const char* atcmd; const char* eventName; int i, group_lv = 0, group_lv_char = 99; bool log = false; bool create = false; atcmd = script_getstr(st,2); eventName = script_getstr(st,3); if( *atcmd == atcommand->at_symbol || *atcmd == atcommand->char_symbol ) atcmd++; if( script_hasdata(st,4) ) group_lv = script_getnum(st,4); if( script_hasdata(st,5) ) group_lv_char = script_getnum(st,5); if( script_hasdata(st,6) ) log = script_getnum(st,6) ? true : false; if( atcommand->binding_count == 0 ) { CREATE(atcommand->binding,struct atcmd_binding_data*,1); create = true; } else { ARR_FIND(0, atcommand->binding_count, i, strcmp(atcommand->binding[i]->command,atcmd) == 0); if( i < atcommand->binding_count ) {/* update existent entry */ safestrncpy(atcommand->binding[i]->npc_event, eventName, ATCOMMAND_LENGTH); atcommand->binding[i]->group_lv = group_lv; atcommand->binding[i]->group_lv_char = group_lv_char; atcommand->binding[i]->log = log; } else create = true; } if( create ) { i = atcommand->binding_count; if( atcommand->binding_count++ != 0 ) RECREATE(atcommand->binding,struct atcmd_binding_data*,atcommand->binding_count); CREATE(atcommand->binding[i],struct atcmd_binding_data,1); safestrncpy(atcommand->binding[i]->command, atcmd, 50); safestrncpy(atcommand->binding[i]->npc_event, eventName, 50); atcommand->binding[i]->group_lv = group_lv; atcommand->binding[i]->group_lv_char = group_lv_char; atcommand->binding[i]->log = log; } return true;}BUILDIN(unbindatcmd) { const char* atcmd; int i = 0; atcmd = script_getstr(st, 2); if( *atcmd == atcommand->at_symbol || *atcmd == atcommand->char_symbol ) atcmd++; if( atcommand->binding_count == 0 ) { script_pushint(st, 0); return true; } ARR_FIND(0, atcommand->binding_count, i, strcmp(atcommand->binding[i]->command, atcmd) == 0); if( i < atcommand->binding_count ) { int cursor = 0; aFree(atcommand->binding[i]); atcommand->binding[i] = NULL; /* compact the list now that we freed a slot somewhere */ for( i = 0, cursor = 0; i < atcommand->binding_count; i++ ) { if( atcommand->binding[i] == NULL ) continue; if( cursor != i ) { memmove(&atcommand->binding[cursor], &atcommand->binding[i], sizeof(struct atcmd_binding_data*)); } cursor++; } if( (atcommand->binding_count = cursor) == 0 ) aFree(atcommand->binding); script_pushint(st, 1); } else script_pushint(st, 0);/* not found */ return true;}BUILDIN(useatcmd) { TBL_PC *sd, *dummy_sd = NULL; int fd; const char* cmd; cmd = script_getstr(st,2); if( st->rid ) { sd = script->rid2sd(st); if( sd == NULL ) return false; fd = sd->fd; } else { // Use a dummy character. sd = dummy_sd = pc->get_dummy_sd(); fd = 0; if( st->oid ) { struct block_list* bl = map->id2bl(st->oid); memcpy(&sd->bl, bl, sizeof(struct block_list)); if( bl->type == BL_NPC ) safestrncpy(sd->status.name, ((TBL_NPC*)bl)->name, NAME_LENGTH); } } // compatibility with previous implementation (deprecated!) if( cmd[0] != atcommand->at_symbol ) { cmd += strlen(sd->status.name); while( *cmd != atcommand->at_symbol && *cmd != 0 ) cmd++; } atcommand->exec(fd, sd, cmd, true); if (dummy_sd) aFree(dummy_sd); return true;}São estas 3 funções que compõe o bindatcmd, porém você terá que adaptar o código para o do seu emulador ou pedir ajuda à algum dev. PS: Não olhei se a função tem mais códigos na source, a principio acredito que seja apenas isso.
  9. Prompt + netstart -n = Irá mostrar todas suas conexões, inclusive o ip e portas do seu servidor.
  10. Saudades:
  11. E ainda se perguntam porque os privates no Brasil possuem tão pouco players huahuahuahuahauh
  12. E eu que larguei de Engenharia da Computação por questão de tempo e praticidade querendo fazer algo mais suave e simples como Análise de Sistemas, dai me deparo com um cara de 16 anos, 2 graduações, uma fucking pós, fala 4 idiomas, e sério, programa em linux?
  13. Quase tranquei minha faculdade depois de ver isso, e olha que eu só começo a estudar ano que vem kkk
  14. Provável que o erro foi de biblioteca, por isso não compilou no host, se seu host disponibiliza o acesso SSH, é só atualizar o compilador para GCC 4.4 ou alguma versão mais recente, e instalar a biblioteca libconfig. Se tiver dúvidas sobre como configurar o Harmony: http://forum.cronus-emulator.com/tutorials/article/656-harmony-shield-guia-completo-de-instalacao-e-configuracao/
  15. Só se a pessoa não souber configurar ele, ele é não é tão simples quanto aos outros shield, e possui um sistema de bloqueio por mac_adress muito eficiente. O problema é que o pessoal compra o shield, não altera uma configuração, só sai implementando no emulador e espera que resolva todos seus problemas.