Jump to content

Dynamic Things

Members
  • Posts

    316
  • Joined

  • Days Won

    16

Dynamic Things last won the day on February 6 2023

Dynamic Things had the most liked content!

Recent Profile Visitors

7,422 profile views

Dynamic Things's Achievements

Newbie

Newbie (1/14)

  • Very Popular Rare

Recent Badges

1.3k

Reputation

  1. Era para o ter publicado aqui antes mas não tem havido muito tempo, não venho trazer nada de novo para alguns. Download Creditos: Evilsystem
  2. Já foi publicado a algum tempo, a tempos começei a trabalhar no código disso, mas no entretanto dropei a meio porque arranjei algo melhor, no entretanto se alguém quiser o código posso o disponibilizar. Imagens Preview: Download
  3. Visto que estão a tentar vender isso... Deixo ai Re-Up para quem quiser. É apenas o design (PSD). Download
  4. Deixo ai para download, quem quiser dar utilidade, no download contém as armas para demonstração convertidos para a versão do granny 2.9.12.0, as texturas e os projetos de cada arma em formato FBX. Atenção que não é algo para se sacar meter no cliente e usar, pois os ficheiros de demonstração deixados não funcionaram corretamente. É necessário a correção da posição das armas. (algo relativamente fácil de se fazer, mas requer alguma pratica e tempo ).. https://mega.nz/#!5PpzgKLA!uJxj55fztOu0d7IpSW4oHZzZM-hx6A1zuduO2DdDcS8 Preview
  5. 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", "*");
  6. Link para Re-Upload! Mega.nz password mantém a que foi adicionado anteriormente ao tópico.
  7. 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
  8. Version 2015

    28 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
  9. 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
  10. 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
  11. Deixo ai uma montada do rip pelo plechitoCZ Download: Link
  12. Mekie ppl, deixo ai 3 armaduras que ainda não estava aqui no forum Download Download Download Bye Bye
  13. 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
  14. Não te esqueças de declarar m_MetinPositionVector no PythonMiniMap.h TInstanceMarkPositionVector m_MetinPositionVector;
×
×
  • Create New...