Jump to content
metin2dev

ridetpro

Members
  • Content count

    18
  • Joined

  • Last visited

Community Reputation

6 Neutral

1 Follower

About ridetpro

  • Rank
    Neutral

Profile Information

  • Gender
    Male

Recent Profile Visitors

84 profile views
  1. ridetpro

    c++ FIX unhandled empty textureset

    There is no such empty string in any textureset. But it's good to have this check.
  2. ridetpro

    open check Client_version in python

    // 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.
  3. ridetpro

    open D:/Ymir work dmg hack

    Try to paste the ConvertPackFilename intro the EterPack.cpp namespace. It should works
  4. ridetpro

    open D:/Ymir work dmg hack

    // 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.
  5. ridetpro

    open check Client_version in python

    // PythonNetworkStreamModule.cpp PyObject* netSendVersionPacket(PyObject* poSelf, PyObject* poArgs) { CPythonNetworkStream &rkNetStream = CPythonNetworkStream::Instance(); rkNetStream.SendClientVersionPacket(); return Py_BuildNone(); } // static PyMethodDef s_methods[] = { "SendVersionPacket", netSendVersionPacket, METH_VARARGS }, This function have no argument, it will just send the version from this function. bool CPythonNetworkStream::SendClientVersionPacket() // this line strncpy(kVersionPacket.timestamp, 1111111, sizeof(kVersionPacket.timestamp) - 1); // 111111 IS THE CLIENT VERSION Do you want a function in python Like this ? net.SendClientVersionPacket(123456)
  6. ridetpro

    open D:/Ymir work dmg hack

    #include <boost/filesystem.hpp>
  7. ridetpro

    open Mount CTRL+G TIME

    // Intro pc_mount function from questlua_pc.cpp // Under LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); // Add int CalcLastMoveSec = (get_dword_time() - ch->GetLastMountTime()) / 1000 + 0.5; if (CalcLastMoveSec < 1) // Replace 1 with seconds number. { return 0; } Do same for unmount function intro questlua_pc
  8. ridetpro

    solved Display bug

    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. https://en.cppreference.com/w/cpp/language/enum 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
  9. ridetpro

    open D:/Ymir work dmg hack

    //Add this at top of the EterPack.cpp namespace bfs = boost::filesystem; namespace { bool is_ymir(const bfs::path& p) { auto it = p.begin(); if (it == p.end() || *it != "d:") return false; ++it; if (it == p.end()) return false; if (*it == "/" || *it == "\\") ++it; if (it == p.end() || *it != "ymir work") return false; return true; } }; //Intro bool CEterPack::Put //Add bfs::path packpath = ConvertPackFilename(filename); if (!is_ymir(packpath) && !packpath.is_relative()) return false;
  10. ridetpro

    open HELP packet header 66

    case HEADER_CG_CLIENT_VERSION: Version(d->GetCharacter(), c_pData); break; default: sys_err("login phase does not handle this packet! header %d", bHeader); d->SetPhase(PHASE_CLOSE); return (0); } return (iExtraLen); } Create a new case, below. Identifies the 66th packet and add an empty case.
  11. ridetpro

    open Python

    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. http://bfy.tw/Iylm https://www.saltycrane.com/blog/2010/04/options-listing-files-directory-python/
  12. ridetpro

    open Server crash help

    Inside the quest.
  13. ridetpro

    open Auto Potion

    Please make a GIF/Video to show how your problem manifest.
  14. ridetpro

    open Select value in DB c++

    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.
  15. ridetpro

    open Select value in DB c++

    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);
×