Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 07/20/18 in all areas

  1. M2 Download Center Download Here ( Internal ) Hello, This little thing is marks your pet seal into your inventory like the autopotion. This arrives with the v17.5 patch. Open PetSystem.cpp and replace or make it fit for you: void CPetActor::SetSummonItem(LPITEM pItem) { if (NULL == pItem) { LPITEM pSummonItem = ITEM_MANAGER::instance().FindByVID(m_dwSummonItemVID); if (NULL != pSummonItem) pSummonItem->SetSocket(1, FALSE); m_dwSummonItemVID = 0; m_dwSummonItemVnum = 0; return; } pItem->SetSocket(1, TRUE); m_dwSummonItemVID = pItem->GetVID(); m_dwSummonItemVnum = pItem->GetVnum(); } After that open the uiInventory.py and paste this code below the autopotion if-statement in the RefreshBagSlotWindow function. elif itemVnum >= 53001 and itemVnum <= 53256: metinSocket = [player.GetItemMetinSocket(globalSlotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]# <!> globalSlotNumber may be different <!> isActivated = 0 != metinSocket[1] if isActivated: self.wndItem.ActivateSlot(i) else: self.wndItem.DeactivateSlot(i)
    1 point
  2. How the bug manifests? Client closes without any syserr How to reproduce the bug? Let' say you got textureset/metin2_map_c1.txt and inside you got an empty string like this: TextureSet TextureCount 17 Start Texture001 "" 5.000000 5.000000 0.000000 0.000000 0 0 0 End Texture001 Start Texture002 "d:\ymir work\terrainmaps\b\field\field 02.dds" 6.000000 6.000000 0.000000 0.000000 0 0 0 End Texture002 binary/src/source/PRTerrainLib/TextureSet.cpp Search this lin inside bool CTextureSet::SetTexture if (!pResource->IsType(CGraphicImage::Type())) And add before if (!pResource) return false; Search this line inside bool CTextureSet::AddTexture if (!pResource->IsType(CGraphicImage::Type())) And add before if (!pResource) return false;
    1 point
  3. It should not count at the speed of the code or other performance criteria but depends how obssessed you are. And yes as I know and experienced the first one should trigger the condition and then the other ones should be ignored. But if you look down at the line with TraceError as long as the pointer is NULL he can't call ->GetFileName() from a NULL pointer You should know that. In conclusion stop trying to impress
    1 point
  4. // PythonNetworkStreamPhaseGame.cpp // Under bool CPythonNetworkStream::SendClientVersionPacket() from // add bool CPythonNetworkStream::SendClientVersionPacketNew(int32_t arg) { auto ver_arg = std::to_string(arg); std::string filename; GetExcutedFileName(filename); filename = CFileNameHelper::NoPath(filename); CFileNameHelper::ChangeDosPath(filename); TPacketCGClientVersion kVersionPacket; kVersionPacket.header = HEADER_CG_CLIENT_VERSION; strncpy(kVersionPacket.filename, filename.c_str(), sizeof(kVersionPacket.filename) - 1); strncpy(kVersionPacket.timestamp, ver_arg.c_str(), sizeof(kVersionPacket.timestamp) - 1); if (!Send(sizeof(kVersionPacket), &kVersionPacket)) { Tracef("SendClientReportPacket Error"); } return true; } //PythnNetworkStram.h // bool SendClientVersionPacket(); Under // add bool SendClientVersionPacketNew(int32_t arg); // PythonNetwoStramModule.cpp PyObject* netSendCheckVersionPacket(PyObject* poSelf, PyObject* poArgs) { int32_t iVer; if (!PyTuple_GetInteger(poArgs, 0, &iVer)) { return Py_BuildException(); } CPythonNetworkStream &rns = CPythonNetworkStream::Instance(); rns.SendClientVersionPacketNew(iVer); return Py_BuildNone(); } // static PyMethodDef s_methods[] = { "SendVersionPacket", netSendVersionPacket, METH_VARARGS }, Python usage def IsVersion(self, arg) net.SendClientVersionPacket(arg) if IsVersion(1111) #Do stuff I did not test it.
    1 point
  5. Try to paste the ConvertPackFilename intro the EterPack.cpp namespace. It should works
    1 point
  6. // Open EterPack folder //Find inline.h // And paste this std::string ConvertPackFilename(const std::string& name) { std::string ret; std::transform(name.begin(), name.end(), std::back_inserter(ret), [](char ch) { if (ch == '\\') return '/'; else return (char)tolower(ch); }); return ret; } I apologize for so many replies, I wrote these codes a long time ago. So I forgot all the code dependencies.
    1 point
  7. Enumeration must be identical in client / server / SQL/ dump_proto Example of a wrong enumeration OF source. enum Server : std::uint8_t { POINT_WOLFMAN, // OK POINT_WARRIOR, // OK } enum Client : std::uint8_t { POINT_WARRIOR, // WRONG POINT_WOLFMAN, // WRONG } Example of a correct enumeration. enum Server : std::uint8_t { POINT_WOLFMAN, // OK POINT_WARRIOR, // OK } enum client : std::uint8_t { POINT_WOLFMAN, // OK POINT_WARRIOR, // OK } Read more about how enum works here. [Hidden Content] Most likely, I think you fucked the dump_proto enumerations. Example of wrong dump_proto enumeration. //Dump_proto int get_Item_ApplyType_Value(string inputString) { string arApplyType[] = { "APPLY_WOLFMAN", // ok "APPLY_BLEEDING", // ok }; int retInt = -1; // ProtoReader.cpp int get_Item_ApplyType_Value(std::string inputString) { std::string arApplyType[] = { "APPLY_BLEEDING", // wrong "APPLY_WOLFMAN", // wrong }; int retInt = -1; Check also the SQL enumeration order, from item_attr
    1 point
  8. root/uidragonsoul.pydef SelectItemSlot(self, itemSlotIndex): // Searchelif app.BUY == curCursorNum:chat.AppendChat(chat.CHAT_TYPE_INFO, localeInfo.SHOP_BUY_INFO)Under to Addelif app.IsPressed(app.DIK_LALT):link = player.GetItemLink(player.DRAGON_SOUL_INVENTORY, itemSlotIndex)ime.PasteString(link)
    1 point
  9. Python developers no longer support python2.7 Most likely, this is a bug that will never be solved because it no longer creates patches for bug fixes. [Hidden Content] [Hidden Content]
    1 point
  10. char szQuery[QUERY_MAX_LEN]; snprintf(szQuery, sizeof(szQuery), "SELECT infernus FROM player.player WHERE name='%s'", GetName()); std::unique_ptr<SQLMsg> pSelectMsg(DBManager::instance().DirectQuery(szQuery); SQLResult* pRes = pSelectMsg->Get(); if (pRes->uiNumRows > 0) { MYSQL_ROW row = mysql_fetch_row(pRes->pSQLResult); DWORD GetVal = 0; str_to_number(GetVal, row[0]); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Total count is %d"), GetVal); } It should work now.
    1 point
  11. std::unique_ptr<SQLMsg> pSelectMsg(DBManager::instance().DirectQuery("SELECT infernus FROM player.player WHERE name='%s'", GetName()); BYTE count = pSelectMsg->Get()->uiNumRows; if (count >= 3) ChatPacket(CHAT_TYPE_INFO,"Total count is %d", count);
    1 point
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.