antiblock
Rodnia | Alpha & Omega

Dynamic Things

Uploader
  • Content Count

    781
  • Joined

  • Last visited

  • Days Won

    114

Everything posted by Dynamic Things

  1. Segue abaixo o link do jogo em questão. Download separado em 12 partes. Link Mega: https://mega.nz/#F!is9ADawS!nsRujQcNBECKIDa-t6C_YQ Link Google Drive: https://drive.google.com/open?id=0BzzyqH-XCk5_VmdTLVIwb3ZjOEU Atenção não testei, mas fiz uma pesquisa sobre o conteúdo em si e aparentemente não está nada em falta
  2. Features: Alto performance, Fácil editar, Template responsive Demo Themeforest Demo Link Direto
  3. @Diogo Miguel Com isto quis dizer, o teu tópico não cumpre com as regras estabelecidas para um tópico de divulgação de servidores metin2, para saberes como o fazer segue o tópico: Protocolo Para Divulgação De Servidores Metin2 Caso contrario o teu tópico será motivo para Lixeira. Dei-te uma prazo de 24 horas no caso de não estares presente no forum, tendo em conta que estás presente faça o favor de verificar/editar o teu tópico de acordo com as normas estabelecidas.
  4. Olha para mim podes mandar vir um prato de feijoada e já ficamos amigos.
  5. Boa sorte com o servidor, tens alguns detalhes a melhorar no teu tópico mas não te preocupes que ainda vais a tempo de o fazer, tens 24 Horas, caso contrario o teu tópico será motivo para Lixeira. Segue o tópico - Protocolo Para Divulgação De Servidores Metin2
  6. Bem-vindo à comunidade Cyber-Gamers! O objectivo da nossa comunidade é proporcionar um espaço onde se pode falar e partilhar todo o tipo de conteúdo. Sente-te livre de criar tópicos e fazer perguntas agora mesmo, nós ou os outros membros da comunidade faremos o possível para responder o mais correto e rápido possível. Tópicos que poderão ser uma mais valia para o futuro: Regras da Comunidade FAQs/Guias Suporte Atenciosamente,
  7. Não cheguei a testar mas aparentemente parece-me funcional. obrigado pelo tutorial
  8. @Diogo Miguel Atenção ao doble post.
  9. Bem-vindo à comunidade Cyber-Gamers! O objectivo da nossa comunidade é proporcionar um espaço onde se pode falar e partilhar todo o tipo de conteúdo. Sente-te livre de criar tópicos e fazer perguntas agora mesmo, nós ou os outros membros da comunidade faremos o possível para responder o mais correto e rápido possível. Tópicos que poderão ser uma mais valia para o futuro: Regras da Comunidade FAQs/Guias Suporte Atenciosamente,
  10. AVISO: O tópico em questão , foi fechado por desrespeitar as/os regras/protocolos da comunidade, para saberes qual das/os regras/protocolos foi desrespeitada/o, visita o tópico das regras gerais: De forma a facilitar a estrutura do fórum, agradecemos que respeitem o básico durante a criação de um tópico. Algumas dicas para criares um tópico agradável: O título deve ser curto e explicito! Desta forma os outros membros percebem do que se trata. ATENÇÃO! Não use TÍTULOS unicamente com a palavra "AJUDA", "PROBLEMA", "SUPORTE", etc... Devem ser utilizadas TAG's (palavras-chave) que se relacionem com o conteúdo no tópico. Isto facilita a procura do tópico através dos motores de busca. ATENÇÃO! Não use TAG's como "AJUDA", "PROBLEMA", "SUPORTE", etc. Formate o texto de forma a facilitar a leitura. Se copiar um texto use a opção "Remover formatação" para que não fique com o fundo colorido ou letras com tamanhos desproporcionais. ATENÇÃO! A utilização intensiva de CAPS LOCK ou tamanho de letra acima do normal NÃO É PERMITIDA! O fórum está devidamente estruturado por fóruns e sub-fóruns, por isso, ao criarem um tópico, respeitem a ÁREA devida! Para partilhar imagens, podem usufruir do nosso serviço gratuito em iCyber.me Para usufruir da área de downloads pode faze-lo assim que criar pelo menos 1 tópico/post. O nosso conteúdo é totalmente gratuito. Alguma dúvida, erro ou sugestão que tenhas, não hesites em contactar a equipa. Cumprimentos.
  11. Reavaliação do servidor: A reavaliação do servidor foi executada momentos antes do post.
  12. só podes fazer BUMP uma vez a cada 24 horas. Mas aqui na área de Metin2 - Server Files Vais encontrar vários tópicos com as respostas que procuras.
  13. E quando digo que não conheço nenhuma empresa sem fins lucrativos é porque isto simplesmente não existe, porque uma coisa é dizeres uma organização sem fins lucrativos outra é dizeres empresa sem fins lucrativos.
  14. Correto tem toda a razão para ter o tópico aqui na área de criatividade, gostaria de o relembrar que tendo em conta as regras: 2.12) A partilha de qualquer arquivo até 128MB terá obrigatoriamente que conter a sua análise em 'www.virustotal.com'. Faça o favor de rectificar o seu erro.
  15. Bem-vindo à comunidade Cyber-Gamers! O objectivo da nossa comunidade é proporcionar um espaço onde se pode falar e partilhar todo o tipo de conteúdo. Sente-te livre de criar tópicos e fazer perguntas agora mesmo, nós ou os outros membros da comunidade faremos o possível para responder o mais correto e rápido possível. Tópicos que poderão ser uma mais valia para o futuro: Regras da Comunidade FAQs/Guias Suporte Atenciosamente,
  16. Alguma coisa não me está a fazer sentido disponibilizas o download do cliente sem sequer teres site para os jogadores criarem as suas respectivas contas, das ao nome do tópico Metin2 Live mas o download é crazygames o site não há qualquer indicação pela parte da equipa do servidor digo isto porque isto a mim não demonstra grande sinal de profissionalismo de todo. "e o mais importante, profissionalismo da nossa parte." "O Live vai contar como uma empresa sem fins lucrativos, visando apenas e exclusivamente a vossa diversão." Nunca vi uma empresa sem fins lucrativos. "Garantimos que o Mt2 Live irá trazer uma nova perspectiva de Servidor PvM/PvP, pois garantimos estabilidade 100% e segurança 100% contra hacks, cheats e invasões. Garantimos que nenhum hack atual e/ou futuro venha funcionar em um de nossos servidores." Até poderia levar este tópico a serio se não tivesse na área de criatividades. Não querendo desrespeitar o vosso tópico mas penso que ainda tens alguns pontos a melhorar para transmitires a mensagem de confiança e estabilidade que queres passar. wait tentei levar esse tópico a serio mas depois li: Diferente da concorrência e da maioria a nossa proteção não é via Cliente (dando lag) e sim na nossa máquina.
  17. Reavaliação do servidor: A reavaliação do servidor foi executada momentos antes do post.
  18. Bem-vindo à comunidade Cyber-Gamers! O objectivo da nossa comunidade é proporcionar um espaço onde se pode falar e partilhar todo o tipo de conteúdo. Sente-te livre de criar tópicos e fazer perguntas agora mesmo, nós ou os outros membros da comunidade faremos o possível para responder o mais correto e rápido possível. Tópicos que poderão ser uma mais valia para o futuro: Regras da Comunidade FAQs/Guias Suporte Atenciosamente,
  19. venho deixar aqui mais um tópico, desta vez vai ser como bloquear automaticamente uma lista de ips utilizando o cron e o php. Para começar vamos podem copiar o seguinte: <?php // Lista de Blacklist IP's $blacklist = "https://www.dynamic-things.ga/exemplo/blacklist.txt"; // .htaccess apache file $htac = rtrim($_SERVER['DOCUMENT_ROOT'], "/ ")."/.htaccess"; // Separator $line = "## BLACKLIST IP UPDATED ##"; $data = @file_get_contents($blacklist); if ($data === false || !$data) die ("<font color='red'><b>Erro!</b></font> Não foi encontrado nenhum ficheiro com o nome: $blacklist"); $htaccess = @file_get_contents($htac); if ($htaccess === false) die ("<font color='red'><b>Erro!</b></font> Não foi encontrado nenhum ficheiro com o nome: $htac no diretorio www."); $htaccess = trim($htaccess); if (stripos($htaccess, $line) !== false) $htaccess = trim(substr($htaccess, 0, stripos($htaccess, $line))); if (stripos($data, "# Copyright")) $data = substr($data, 0, strripos($data, "# Copyright")) . substr($data, strripos($data, "##############")+16); $htaccess .= "\n\n\n" . $line . "\n\n" . $data; $htaccess = trim($htaccess) . "\n\n"; $res = file_put_contents($htac, $htaccess); if ($res === false) die ("<font color='red'><b>Error!</b></font> Não foi possivel escrever a blacklist de ips no ficheiro: $htac no diretorio www da tua hospedagem. É necessario mudares as permissões do ficheiro para 0777 (comando: chmod 0777 $htac)"); else die ("<font color='green'><b>Ficheiro .htaccess atualizado com sucesso.</b></font><br>Data de atualização: " . date("r")); ?> vamos criar um novo arquivo com o nome a vossa escolha exemplo: blacklist.php e colam o código acima copiado, salvam o ficheiro. Pronto. Agora vamos a parte do cron para adicionar-mos uma cron para fazer que o nosso ficheiro blacklist.php é corrido uma vez a cada meia hora. exemplo: 30 * * * * /usr/bin/php /var/www/public_html/blacklist.php Se não tiveres o ficheiro .htaccess não vai funcionar
  20. Bem-vindo à comunidade Cyber-Gamers! O objectivo da nossa comunidade é proporcionar um espaço onde se pode falar e partilhar todo o tipo de conteúdo. Sente-te livre de criar tópicos e fazer perguntas agora mesmo, nós ou os outros membros da comunidade faremos o possível para responder o mais correto e rápido possível. Tópicos que poderão ser uma mais valia para o futuro: Regras da Comunidade FAQs/Guias Suporte Atenciosamente,
  21. Mekie povo, já tenho isto para mim a algum tempo mas como não vejo muitos a falarem disso por ai decidi publicar. Passando agora ao tópico, neste tutorial tenho como objetivo de mostrar como podem passar a indexar os teus patchs sem a necessidade de terem um ficheiro index no vosso cliente. Muito bem uma vez explicado o que se pretende fazer vamos ver os prós e os contras que isto pode trazer: Prós: Obriga a qualquer pessoa que tente adicionar novo patch ao cliente a ter de o adicionar a source do binário para o fazer. Permitira uma melhor reorganização da base do cliente. Contras: Quando queremos adicionar algum patch novo temos de o adicionar ao binário e voltar a compilar. Como o fazer? No ficheiro userinterface.cpp procurar pelo seguinte: bool PackInitialize(const char * c_pszFolder) E vão encontrar a seguinte função: bool PackInitialize(const char * c_pszFolder) { NANOBEGIN if (_access(c_pszFolder, 0) != 0) return true; std::string stFolder(c_pszFolder); stFolder += "/"; std::string stFileName(stFolder); stFileName += "Index"; CMappedFile file; LPCVOID pvData; if (!file.Create(stFileName.c_str(), &pvData, 0, 0)) { LogBoxf("FATAL ERROR! File not exist: %s", stFileName.c_str()); TraceError("FATAL ERROR! File not exist: %s", stFileName.c_str()); return true; } CMemoryTextFileLoader TextLoader; TextLoader.Bind(file.Size(), pvData); bool bPackFirst = TRUE; const std::string& strPackType = TextLoader.GetLineString(0); if (strPackType.compare("FILE") && strPackType.compare("PACK")) { TraceError("Pack/Index has invalid syntax. First line must be 'PACK' or 'FILE'"); return false; } #ifdef _DISTRIBUTE Tracef("¾Ë¸²: ÆÑ ¸ðµåÀÔ´Ï´Ù.\n"); //if (0 == strPackType.compare("FILE")) //{ // bPackFirst = FALSE; // Tracef("¾Ë¸²: ÆÄÀÏ ¸ðµåÀÔ´Ï´Ù.\n"); //} //else //{ // Tracef("¾Ë¸²: ÆÑ ¸ðµåÀÔ´Ï´Ù.\n"); //} #else bPackFirst = FALSE; Tracef("¾Ë¸²: ÆÄÀÏ ¸ðµåÀÔ´Ï´Ù.\n"); #endif CTextFileLoader::SetCacheMode(); #if defined(USE_RELATIVE_PATH) CEterPackManager::Instance().SetRelativePathMode(); #endif CEterPackManager::Instance().SetCacheMode(); CEterPackManager::Instance().SetSearchMode(bPackFirst); CSoundData::SetPackMode(); // Miles ÆÄÀÏ ÄݹéÀ» ¼ÂÆà std::string strPackName, strTexCachePackName; for (DWORD i = 1; i < TextLoader.GetLineCount() - 1; i += 2) { const std::string & c_rstFolder = TextLoader.GetLineString(i); const std::string & c_rstName = TextLoader.GetLineString(i + 1); strPackName = stFolder + c_rstName; strTexCachePackName = strPackName + "_texcache"; CEterPackManager::Instance().RegisterPack(strPackName.c_str(), c_rstFolder.c_str()); CEterPackManager::Instance().RegisterPack(strTexCachePackName.c_str(), c_rstFolder.c_str()); } CEterPackManager::Instance().RegisterRootPack((stFolder + std::string("root")).c_str()); NANOEND return true; } E agora nessa função vamos começar por fazer o seguinte: Vamos comentar o seguinte /* std::string stFileName(stFolder); stFileName += "Index"; CMappedFile file; LPCVOID pvData; if (!file.Create(stFileName.c_str(), &pvData, 0, 0)) { LogBoxf("FATAL ERROR! File not exist: %s", stFileName.c_str()); TraceError("FATAL ERROR! File not exist: %s", stFileName.c_str()); return true; } CMemoryTextFileLoader TextLoader; TextLoader.Bind(file.Size(), pvData); */ E agora dentro da nossa função vamos procurar pelo seguinte e comenta-lo /* const std::string& strPackType = TextLoader.GetLineString(0); if (strPackType.compare("FILE") && strPackType.compare("PACK")) { TraceError("Pack/Index has invalid syntax. First line must be 'PACK' or 'FILE'"); return false; } */ e por ultimo para remover o index com sucesso procuramos e comentamos o seguinte /* std::string strPackName, strTexCachePackName; for (DWORD i = 1; i < TextLoader.GetLineCount() - 1; i += 2) { const std::string & c_rstFolder = TextLoader.GetLineString(i); const std::string & c_rstName = TextLoader.GetLineString(i + 1); strPackName = stFolder + c_rstName; strTexCachePackName = strPackName + "_texcache"; CEterPackManager::Instance().RegisterPack(strPackName.c_str(), c_rstFolder.c_str()); CEterPackManager::Instance().RegisterPack(strTexCachePackName.c_str(), c_rstFolder.c_str()); } */ Agora com a nossa função sem a verificação do ficheiro index deverá estar assim: bool PackInitialize(const char * c_pszFolder) { NANOBEGIN if (_access(c_pszFolder, 0) != 0) return true; std::string stFolder(c_pszFolder); stFolder += "/"; /* std::string stFileName(stFolder); stFileName += "Index"; CMappedFile file; LPCVOID pvData; if (!file.Create(stFileName.c_str(), &pvData, 0, 0)) { LogBoxf("FATAL ERROR! File not exist: %s", stFileName.c_str()); TraceError("FATAL ERROR! File not exist: %s", stFileName.c_str()); return true; } CMemoryTextFileLoader TextLoader; TextLoader.Bind(file.Size(), pvData); */ bool bPackFirst = TRUE; /* const std::string& strPackType = TextLoader.GetLineString(0); if (strPackType.compare("FILE") && strPackType.compare("PACK")) { TraceError("Pack/Index has invalid syntax. First line must be 'PACK' or 'FILE'"); return false; } */ #ifdef _DISTRIBUTE Tracef("¾Ë¸²: ÆÑ ¸ðµåÀÔ´Ï´Ù.\n"); #else bPackFirst = FALSE; Tracef("¾Ë¸²: ÆÄÀÏ ¸ðµåÀÔ´Ï´Ù.\n"); #endif CTextFileLoader::SetCacheMode(); #if defined(USE_RELATIVE_PATH) CEterPackManager::Instance().SetRelativePathMode(); #endif CEterPackManager::Instance().SetCacheMode(); CEterPackManager::Instance().SetSearchMode(bPackFirst); CSoundData::SetPackMode(); // Miles ÆÄÀÏ ÄݹéÀ» ¼ÂÆà /* std::string strPackName, strTexCachePackName; for (DWORD i = 1; i < TextLoader.GetLineCount() - 1; i += 2) { const std::string & c_rstFolder = TextLoader.GetLineString(i); const std::string & c_rstName = TextLoader.GetLineString(i + 1); strPackName = stFolder + c_rstName; strTexCachePackName = strPackName + "_texcache"; CEterPackManager::Instance().RegisterPack(strPackName.c_str(), c_rstFolder.c_str()); CEterPackManager::Instance().RegisterPack(strTexCachePackName.c_str(), c_rstFolder.c_str()); } */ CEterPackManager::Instance().RegisterRootPack((stFolder + std::string("root")).c_str()); NANOEND return true; } agora para adicionarem novos patchs ao binário fazem da seguinte forma: acima do seguinte CEterPackManager::Instance().RegisterRootPack((stFolder + std::string("root")).c_str()); adicionamos os nossos patchs, como por exemplo: CEterPackManager::Instance().RegisterPack("pack/item1", "*"); CEterPackManager::Instance().RegisterPack("pack/pc1", "*"); CEterPackManager::Instance().RegisterPack("pack/pc2", "*"); CEterPackManager::Instance().RegisterRootPack((stFolder + std::string("root")).c_str()); Em caso de algum erro deixem nos comentários que posso ter me esquecido de alguma coisa. Cumprimentos, Dynamic Things
  22. Bem-vindo à comunidade Cyber-Gamers! O objectivo da nossa comunidade é proporcionar um espaço onde se pode falar e partilhar todo o tipo de conteúdo. Sente-te livre de criar tópicos e fazer perguntas agora mesmo, nós ou os outros membros da comunidade faremos o possível para responder o mais correto e rápido possível. Tópicos que poderão ser uma mais valia para o futuro: Regras da Comunidade FAQs/Guias Suporte Atenciosamente,
  23. Bem-vindo à comunidade Cyber-Gamers! O objectivo da nossa comunidade é proporcionar um espaço onde se pode falar e partilhar todo o tipo de conteúdo. Sente-te livre de criar tópicos e fazer perguntas agora mesmo, nós ou os outros membros da comunidade faremos o possível para responder o mais correto e rápido possível. Tópicos que poderão ser uma mais valia para o futuro: Regras da Comunidade FAQs/Guias Suporte Atenciosamente,
  24. Estás a começar a sofrer da mesma doença que todos os grandes começam a sofrer, estás a começar a esquecer-te dos tempos em que foste apenas um noob como todos nós começamos. Não há problema algum e não saber! Na tua estrutura de cliente vais ter Cliente - lib - pack - etc... Dentro da tua pasta pack vais ter um ficheiro index ou seja: -pack --index --exemplo.eix --exemplo.epk e consoante vais adicionando novos patchs tal como por exemplo: item2.eix item2.epk vais adicionando ao teu ficheiro index os novos directórios a serem indexados como por exemplo: item * item2 * ou seja assim estás a indicar ao teu cliente que o item e item2 devem ser indexados também podes indexar directórios específicos como por exemplo: Item2 d:/ymir work/item2/