Jump to content

Dynamic Things

Verified Member
  • Content count

    310
  • Joined

  • Last visited

  • Days Won

    21

Dynamic Things last won the day on September 18

Dynamic Things had the most liked content!

Community Reputation

269 Good

About Dynamic Things

  • Rank
    Unknow

Converted

  • Skype
    DynamicThings

Recent Profile Visitors

1319 profile views
  1. When you index the directory zone you are already indexing all subdirectories that the folder contain, you can do it like the following example CEterPackManager::Instance().RegisterPack("pack/zone", "*");
  2. Link para Re-Upload! Mega.nz password mantém a que foi adicionado anteriormente ao tópico.
  3. View File Visual Studio 2015 (Community + Professional + Enterprise) Microsoft Visual Studio é um ambiente de desenvolvimento integrado (IDE) da Microsoft para desenvolvimento de software especialmente dedicado ao .NET Framework e às linguagens Visual Basic (VB), C, C++, C# (C Sharp) e F# (F Sharp). Também é um produto de desenvolvimento na área web, usando a plataforma do ASP.NET, como websites, aplicativos web, serviços web e aplicativos móveis. As linguagens com maior frequência nessa plataforma são: VB.NET (Visual Basic.Net) e o C♯ (lê-se C Sharp). 1 Link - Community 2 Link - Professional 3 Link - Enterprise Key para o versão profissional: HMGNV-WCYXV-X7G9W-YCX63-B98R2 Key para o versão Enterprise: 2XNFG-KFHR8-QV3CP-3W6HT-683CH Submitter Dynamic Things Submitted 01/28/19 Category Software  
  4. Version 2015

    6 downloads

    Microsoft Visual Studio é um ambiente de desenvolvimento integrado (IDE) da Microsoft para desenvolvimento de software especialmente dedicado ao .NET Framework e às linguagens Visual Basic (VB), C, C++, C# (C Sharp) e F# (F Sharp). Também é um produto de desenvolvimento na área web, usando a plataforma do ASP.NET, como websites, aplicativos web, serviços web e aplicativos móveis. As linguagens com maior frequência nessa plataforma são: VB.NET (Visual Basic.Net) e o C♯ (lê-se C Sharp). 1 Link - Community 2 Link - Professional 3 Link - Enterprise Key para o versão profissional: HMGNV-WCYXV-X7G9W-YCX63-B98R2 Key para o versão Enterprise: 2XNFG-KFHR8-QV3CP-3W6HT-683CH
  5. 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 = "[Hidden Content]"; // .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
  6. Boas ppl, 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
  7. Não tenho serverside de todas elas mas existem algumas files publicas onde podes tirar a parte serverside vou dar uma vista de olhos se encontrar actualizo o tópico
  8. Deixo ai uma montada do rip pelo plechitoCZ Download: Link
  9. Mekie ppl, deixo ai 3 armaduras que ainda não estava aqui no forum Download Download Download Bye Bye
  10. Boas ppl, deixo ai 3 mapas que ja andam publicados mas alguns deles incompletos deixo ai os 3 completos testados por mim Download 1: Link Download 2: Link Download 3: Link
  11. VPS and Game Servers Out of Stock! VPS e Game Servers estão atualmente esgotados. Estamos a fazer o nosso melhor para reabastecer nosso stock, atualizarei o tópico com mais novidades assim que possível! Obrigado.
  12. Servidores de Left4Dead e Left4Dead 2 já disponíveis para aquisição!
  13. Servidores de Counter-Strike: Global Offensive, disponíveis para aquisição!
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.

Our website is made possible by displaying online advertisements to our visitors.
Please consider supporting us by disabling your ad blocker.
You will be able to see content when you disable your adblocker and enable javascript.