Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 11/09/2021 in all areas

  1. https://mega.nz/folder/oksAQJAJ#aRbjCa6LDH6aWDs56oE71Q https://1fichier.com/?sse0yzk46d0mwgb9nmto
    3 points
  2. AddictMt2 serverfiles View File Informações: tlthings.net Submitter [Admin] tierrilopes Submitted 08/17/18 Category Serverfiles  
    2 points
  3. Ir até ao ficheiro game.py (root): Procurar por: from _weakref import proxy Adicionar por baixo: from switchbot import Bot Procurar por: self.quickSlotPageIndex = 0 Adicionar por baixo: self.switchbit = Bot() self.switchbot.hide() Procurar por: onPressKeyDict[app.DIK_F4] =lambda : self.__PressQuickSlot(7) Adicionar por baixo: onPressKeyDict[app.DIK_F6] =lambda : self.__toogleSwitchbot() Adicionar no fim do ficheiro: def __toggleSwitchbot(self): if self.switchbot.bot_shown == 1: self.switchbot.Hide() else: self.switchbot.Show() Colocar o ficheiro switchbot.py dentro da pasta root. switchbot.py
    2 points
  4. reupload >> https://mega.nz/folder/98VDwapD#QBubg2K3fsy25WDqwyqBJQ
    2 points
  5. LINK UPDATED BY @Metin2 https://mega.nz/folder/98VDwapD#QBubg2K3fsy25WDqwyqBJQ
    1 point
  6. Serve para definir o valor mínimo e máximo de DM e DH a sair nas armas. Ir até ao ficheiro config.h Procurar por: extern int VIEW_BONUS_RANGE; Adicionar o seguinte por baixo: extern int minDanoHabilidade; extern int maxDanoHabilidade; extern int minDanoMedio; extern int maxDanoMedio; Ir até ao ficheiro config.cpp Procurar por: int VIEW_BONUS_RANGE = 500; Adicionar o seguinte por baixo: int minDanoHabilidade = -30; int maxDanoHabilidade = 30; int minDanoMedio = -30; int maxDanoMedio = 30; Procurar por: TOKEN("gold_drop_time") { str_to_number(gold_drop_time, value_string); gold_drop_time = MINMAX(0, gold_drop_time, 32767); fprintf(stderr, "GOLD_DROP_TIME: %d\n", gold_drop_time); } Adicionar o seguinte por baixo: TOKEN("minDanoHabilidade") { str_to_number(minDanoHabilidade, value_string); minDanoHabilidade = MINMAX(-32767, minDanoHabilidade, 32767); fprintf(stderr, "minDanoHabilidade: %d\n", minDanoHabilidade); } TOKEN("maxDanoHabilidade") { str_to_number(maxDanoHabilidade, value_string); maxDanoHabilidade = MINMAX(-32767, maxDanoHabilidade, 32767); fprintf(stderr, "maxDanoHabilidade: %d\n", maxDanoHabilidade); } TOKEN("minDanoMedio") { str_to_number(minDanoMedio, value_string); minDanoMedio = MINMAX(-32767, minDanoMedio, 32767); fprintf(stderr, "minDanoMedio: %d\n", minDanoMedio); } TOKEN("maxDanoMedio") { str_to_number(maxDanoMedio, value_string); maxDanoMedio = MINMAX(-32767, maxDanoMedio, 32767); fprintf(stderr, "maxDanoMedio: %d\n", maxDanoMedio); } Substituir o item_addon.cpp pelo do anexo, ou colocar o seguinte conteúdo: Adicionar o seguinte aos ficheiros CONFIG dos canais: minDanoMedio: Valor maxDanoMedio: Valor minDanoHabilidade: Valor maxDanoHabilidade: Valor Onde diz Valor poderá ser um número desde -32768 até 32767 item_addon.cpp item_addon.cpp
    1 point
  7. Informações do ficheiro Password TMoore Tutorials MD5 151d1a36a15f91f8dacee3f7a577b4d4 SHA1 618bdd56fc44c1eeb4c956aa67c82884045db625 SHA256 c23bcdd3bd3bd2e1b6ffa4c33223d00b517ca62cb722025816711f37501a222c Link da análise
    1 point
  8. Olá! Hoje, trago a vocês, uma versão da Evolution Software. Serverfilles Versão 2018/19 Completa. - Algumas Imagens: Cliente Fechado Source BIN Source GAME/DB MakePack Cliente Aberto Game: AutoPatch - DESIGN CROWN Dump Proto:
    1 point
  9. Login interface 40k Imagem baixar https://drive.google.com/open?id=1Z_O0vGL2Hn2Lo9NjCZ3hW8fbRiNSy9LO virus scan https://www.virustotal.com/#/file/9298d1400e348e8a505dbaf4506936441eac10e196e5026cc3134933c0a71493/detection Fonte Turkommo
    1 point
  10. Link funcional: https://www.mediafire.com/folder/o25f6pnbpy9j5/beyond
    1 point
  11. Bom Dia. Aqui deixo uma source de que toda gente fala bastante bem penso que ainda esta a venda e cara talvez mais actualizada que esta visto que foi um leak de 2016 de qualquer maneira continua a ser uma das melhores sources disponiveis na internet. http://www60.zippyshare.com/v/ZEe9CqjV/file.html https://www.virustotal.com/#/file-analysis/MWViMmIzMjk0YzU0MjkxZmFiM2FhMTVmN2MzOTk2OWM6MTUwNzQ2MDczMA== Desciçao da source http://daemonservice.altervista.org/docs/Source Selling.html Comsegui compilar o cliente em VS2013 com tools vs120 com a seguinte pasta de Extern http://www80.zippyshare.com/v/nW2BWf04/file.html https://www.virustotal.com/#/file-analysis/YjlmMzE5NmYxYzQ2NzgxMTZlNjVmNDg2N2U0MTAwODQ6MTUwNzQ3MTI4Nw== para compilar vao ter de ir as propriedades do projecto UserInterface e em Linker / Advanced na ultima escolha Image has Safe Exceptions Handlers defenir para No (/SAFESH:NO)
    1 point
  12. Link para baixo, você poderia reenviá-lo?
    1 point
  13. Aqui fica um Design observado em Servidores como o OceanusMT2 ou o QuantumMT2 na altura de natal... Imagens: http://www.bilder-upload.eu/show.php?file=7719a1-1462770152.png http://www.bilder-upload.eu/show.php?file=0b83d4-1462770218.png http://www.bilder-upload.eu/show.php?file=1673dc-1462770236.png http://www.bilder-upload.eu/show.php?file=c51dee-1462770252.png Download: Link https://www.virustotal.com/de/file/76dc90468d4cf0f55844794d4dfaed21c62ee1961460d28ea49ec06f301a7c64/analysis/ Créditos: KoriDev
    1 point
  14. https://mega.nz/folder/Fo003YLZ#WGG_CMIMEb1tQf42uxj3-g
    1 point
  15. Go to file char_battle.cpp Look for: dam += GetPoint(POINT_DEF_GRADE) * (100 + GetPoint(POINT_DEF_BONUS)) / 100; Add this after: EffectPacket(SE_PENETRATE); Do this twice on the file.
    1 point
  16. Não tenho muito o que falar, quem quiser usar a source martysama v4 fique à vontade. Contém: serverfiles, source cliente, source server e mysql. Info server: Info client: Download
    1 point
  17. Azuris serverfiles + source View File Informações: tlthings.net Submitter Tierri Lopes Submitted 08/17/18 Category Serverfiles
    1 point
  18. Créditos: [*]LovePlay pelo design [*]FaBy pelo Script [*]Zielsko : Material [*]Cyber-gameres pela criação e upload dos ficheiros Download: https://mega.co.nz/#...OGHkj1j3rOL_44k
    1 point
  19. abrir eterPythonLib/PythonSlotWindow.h e procurar por CGraphicImageInstance * pInstance; adicionar abaixo CGraphicImageInstance * pInstanceLevel; procurar por void Destroy(); adicionar abaixo void SetSlotLevelImage(DWORD dwIndex, CGraphicImage * levelImage); abrir eterPythonLib/PythonSlotWindow.cpp e procurar por Slot.pFinishCoolTimeEffect = NULL; adicionar abaixo Slot.pInstanceLevel = NULL; procurar por void CSlotWindow::SetSlotCount(DWORD dwIndex, DWORD dwCount) adicionar antes: void CSlotWindow::SetSlotLevelImage(DWORD dwIndex, CGraphicImage * levelImage) { TSlot * pSlot; if (!GetSlotPointer(dwIndex, &pSlot) || !levelImage) return; assert(NULL == pSlot->pInstanceLevel); pSlot->pInstanceLevel = CGraphicImageInstance::New(); pSlot->pInstanceLevel->SetDiffuseColor(1.0, 1.0, 1.0, 1.0); pSlot->pInstanceLevel->SetImagePointer(levelImage); } procurar por: pSlot->dwCenterSlotNumber = 0xffffffff; adicionar abaixo if (pSlot->pInstanceLevel) { CGraphicImageInstance::Delete(pSlot->pInstanceLevel); pSlot->pInstanceLevel = NULL; } procurar por if (rSlot.bActive) adicionar antes if (rSlot.pInstanceLevel) { rSlot.pInstanceLevel->SetPosition(m_rect.left + rSlot.ixPosition, (m_rect.top + rSlot.iyPosition + rSlot.byyPlacedItemSize*ITEM_HEIGHT) - 32); rSlot.pInstanceLevel->Render(); } abrir eterPythonLib/PythonWindowManagerModule.cpp e procurar por void initwndMgr() adicionar antes PyObject * wndMgrSetSlotImage(PyObject * poSelf, PyObject * poArgs) { UI::CWindow * pWin; if (!PyTuple_GetWindow(poArgs, 0, &pWin)) return Py_BuildException(); int iSlotIndex; if (!PyTuple_GetInteger(poArgs, 1, &iSlotIndex)) return Py_BuildException(); char * szImagePath; if (!PyTuple_GetString(poArgs, 2, &szImagePath)) return Py_BuildException(); if (!pWin->IsType(UI::CSlotWindow::Type())) return Py_BuildException(); UI::CSlotWindow * pSlotWin = (UI::CSlotWindow *)pWin; CGraphicImage * pImage = (CGraphicImage *)CResourceManager::Instance().GetResourcePointer(szImagePath); if (!pImage) return Py_BuildException(); pSlotWin->SetSlotLevelImage(iSlotIndex, pImage); return Py_BuildNone(); } procurar por { "ShowOverInWindowName", wndMgrShowOverInWindowName, METH_VARARGS }, adicionar abaixo { "SetSlotLevelImage", wndMgrSetSlotImage, METH_VARARGS }, abra root/ui.py e procure por wndMgr.SetSlotCount(self.hWnd, renderingSlotNumber, ItemCount) adicione ####Item level text/icon ### itemName=item.GetItemName().strip() itemNameP=item.GetItemName().rfind('+') if itemNameP>0 and len(itemName)>itemNameP+1: level=itemName[itemNameP+1:] if level.isdigit(): wndMgr.SetSlotLevelImage(self.hWnd, renderingSlotNumber, ("icon/level/%d.tga"%int(level))) ####Item level text/icon END ### na função, ficando assim def SetItemSlot(self, renderingSlotNumber, ItemIndex, ItemCount = 0, diffuseColor = (1.0, 1.0, 1.0, 1.0)): if 0 == ItemIndex or None == ItemIndex: wndMgr.ClearSlot(self.hWnd, renderingSlotNumber) return item.SelectItem(ItemIndex) itemIcon = item.GetIconImage() item.SelectItem(ItemIndex) (width, height) = item.GetItemSize() wndMgr.SetSlot(self.hWnd, renderingSlotNumber, ItemIndex, width, height, itemIcon, diffuseColor) wndMgr.SetSlotCount(self.hWnd, renderingSlotNumber, ItemCount) ####Item level text/icon ### itemName=item.GetItemName().strip() itemNameP=item.GetItemName().rfind('+') if itemNameP>0 and len(itemName)>itemNameP+1: level=itemName[itemNameP+1:] if level.isdigit(): wndMgr.SetSlotLevelImage(self.hWnd, renderingSlotNumber, ("icon/level/%d.tga"%int(level))) ####Item level text/icon END ### icon +0 and +9.7z
    1 point
  20. Boas, tal como diz o título fica disponível 4121 texturas para edição de mapas, andei muito tempo ausente de metin2, portanto não consigo recordar de onde consegui estas texturas. Upload feito por mim. https://mega.nz/#!AK4EyQrL!1EX8aXvebOPZLCQe31DsqM1wvmw0W6bQQaP0djvQ4ok
    1 point
  21. Boas, deixo aqui um pequeno tutorial para desabilitar o uso de pot's e elixires em duelo Espero que sirva para alguém, game/src Ficheiro: char_item.cpp 1.) Add header: #include "pvp.h" 2.) Search: case USE_POTION: 3.) Add after: if (CPVPManager::instance().IsFighting(GetPlayerID())) { switch (item->GetVnum()) { case 27001: case 27002: case 27003: case 27004: case 27005: case 27006: ChatPacket(CHAT_TYPE_INFO, "You can not use potions in a duel!"); return false; break; } } game/src/ Ficheiro: pvp.cpp 1.) Search: void CPVPManager::ConnectEx(LPCHARACTER pkChr, bool bDisconnect) 2.) Add before: bool CPVPManager::IsFighting(LPCHARACTER pkChr) { if (!pkChr) return false; return IsFighting(pkChr->GetPlayerID()); } bool CPVPManager::IsFighting(DWORD dwPID) { CPVPSetMap::iterator it = m_map_pkPVPSetByID.find(dwPID); if (it == m_map_pkPVPSetByID.end()) return false; TR1_NS::unordered_set<CPVP*>::iterator it2 = it->second.begin(); while (it2 != it->second.end()) { CPVP * pkPVP = *it2++; if (pkPVP->IsFight()) return true; } return false; } game/src Ficheiro: pvp.h 1.) Search: virtual ~CPVPManager(); 2.) Add after: bool IsFighting(LPCHARACTER pkChr); bool IsFighting(DWORD dwPID); ########################################################### ############# Os pot's já estão bloqueados :D ############# ########################################################### ########################################################### # Agora vamos bloquear os elixires ( Obrigado ao Tierri ) # ########################################################### game/src Ficheiro: char_item.cpp 1.) Search: case ITEM_AUTO_HP_RECOVERY_S: case ITEM_AUTO_HP_RECOVERY_M: case ITEM_AUTO_HP_RECOVERY_L: case ITEM_AUTO_HP_RECOVERY_X: case ITEM_AUTO_SP_RECOVERY_S: case ITEM_AUTO_SP_RECOVERY_M: case ITEM_AUTO_SP_RECOVERY_L: case ITEM_AUTO_SP_RECOVERY_X: case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_XS: case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_S: case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_XS: case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_S: case FUCKING_BRAZIL_ITEM_AUTO_SP_RECOVERY_S: case FUCKING_BRAZIL_ITEM_AUTO_HP_RECOVERY_S: { if (CArenaManager::instance().IsArenaMap(GetMapIndex()) == true) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ÃÀå¿¡¼­ »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.")); return false; } 2.) Add after: if (CPVPManager::instance().IsFighting(GetPlayerID())){ ChatPacket(CHAT_TYPE_INFO, "You can not use potions in a duel!"); return false;} Relativamente a créditos não irei dar o meu nome, pois não fui eu que fiz tal coisa e obtive através de um amigo, um especial obrigado ao @Tierri Lopes pela parte dos elixires.
    1 point
  22. Caso também queiras bloquear os elixires, em char_item.cpp, procura por: case ITEM_AUTO_HP_RECOVERY_S: case ITEM_AUTO_HP_RECOVERY_M: case ITEM_AUTO_HP_RECOVERY_L: case ITEM_AUTO_HP_RECOVERY_X: case ITEM_AUTO_SP_RECOVERY_S: case ITEM_AUTO_SP_RECOVERY_M: case ITEM_AUTO_SP_RECOVERY_L: case ITEM_AUTO_SP_RECOVERY_X: case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_XS: case REWARD_BOX_ITEM_AUTO_SP_RECOVERY_S: case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_XS: case REWARD_BOX_ITEM_AUTO_HP_RECOVERY_S: case FUCKING_BRAZIL_ITEM_AUTO_SP_RECOVERY_S: case FUCKING_BRAZIL_ITEM_AUTO_HP_RECOVERY_S: { if (CArenaManager::instance().IsArenaMap(GetMapIndex()) == true) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´ë·ÃÀå¿¡¼­ »ç¿ëÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.")); return false; } Adiciona isto a seguir: if (CPVPManager::instance().IsFighting(GetPlayerID())){ ChatPacket(CHAT_TYPE_INFO, "You can not use potions in a duel!"); return false;}
    1 point
×
×
  • Create New...