Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Dynamic Things

Member
  • Content count

    306
  • Joined

  • Last visited

  • Days Won

    8

Dynamic Things last won the day on December 27 2018

Dynamic Things had the most liked content!

Community Reputation

201 Good

1 Follower

About Dynamic Things

  • Rank
    Unknow

Converted

  • Skype
    DynamicThings

Recent Profile Visitors

1052 profile views
  1. Já procuro aqui pelo disco e dou re up
  2. Dynamic Things

    [How To][Unix Cron+Apache+PHP] IP Blacklist

    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
  3. Dynamic Things

    [How To] Index para o binário

    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
  4. Dynamic Things

    Crystal Dungeon, Mushroom Run & Water Dungeon

    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
  5. Dynamic Things

    [Montada] plechitoCZ - War horse

    Deixo ai uma montada do rip pelo plechitoCZ Download: Link
  6. Mekie ppl, deixo ai 3 armaduras que ainda não estava aqui no forum Download Download Download Bye Bye
  7. Dynamic Things

    Crystal Dungeon, Mushroom Run & Water Dungeon

    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
  8. Dynamic Things

    Alojamento Web + Domínios + Rádio + Jogos + VPS + SSL ~ Lunmea

    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.
  9. Dynamic Things

    Alojamento Web + Domínios + Rádio + Jogos + VPS + SSL ~ Lunmea

    Servidores de Team Fortress 2 já disponíveis para aquisição!
  10. Dynamic Things

    Alojamento Web + Domínios + Rádio + Jogos + VPS + SSL ~ Lunmea

    Servidores de Left4Dead e Left4Dead 2 já disponíveis para aquisição!
  11. Dynamic Things

    Alojamento Web + Domínios + Rádio + Jogos + VPS + SSL ~ Lunmea

    Servidores de Counter-Strike: Global Offensive, disponíveis para aquisição!
  12. Dynamic Things

    Alojamento Web + Domínios + Rádio + Jogos + VPS + SSL ~ Lunmea

    Servidores de Minecraft, disponíveis para aquisição!
  13. Serviços disponibilizados: Registo de Domínios Alojamentos Linux Partilhados Revenda de Alojamento Linux Web Radio (Whmsonic) VPS Servidores de Jogos (De momento: Minecraft, Counter-Strike, Day of Defeat, SA:MP, Team Fortress 2, Left4Dead ) SSL Web Design & Coding (Side-service by https://designscode.space/ ) FAQ: Q: Aceitam sugestões? A: Todas as sugestões são bem vindas. Q: Fornecem assistência? A: Todos os serviços são passíveis de receber suporte. Q: Quanto tempo demora a activação de uma encomenda? A: Depende da natureza do pedido e estado do pagamento. Q: Por que motivo o site se encontra em inglês? A: Antes do lançamento do site e registo do nome da empresa debatemos se seria mais vantajoso um serviço português ou estrangeiro. Sendo que alguns membros da equipa se encontram fora do país, resolveu-se criar a empresa no Reino Unido e utilizar o inglês como a principal língua, nunca descartando a hipótese de abertura de actividade em solo português. Desta forma sempre é possível ter-se um público alvo mais alargado. Anúncio 01/12/2018: Encontramo-nos à procura de criadores de conteúdo (ex. Youtube) para parcerias como forma de afiliados. Receberão 20% do valor de cada compra efectuada com a utilização dos vossos links de afiliado Home: https://lunmea.com Cumprimentos
  14. Dynamic Things

    Metin no MiniMapa

    Não te esqueças de declarar m_MetinPositionVector no PythonMiniMap.h TInstanceMarkPositionVector m_MetinPositionVector;
  15. Dynamic Things

    Como Ativar E Configurar Ipfirewall

    Agree but, you can also user " service ipfw onestart && sleep 60 && service ipfw onestop " to test if ipfw.rules is ok, and if is not, it will be unnecessary to restart the machine, because starting this way will activate the firewall rules for only 60 seconds and then disconnect the ipwf rules after that, thx for your comment!
×

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.