Jump to content

Sanchez

Premium
  • Posts

    576
  • Joined

  • Days Won

    43
  • Feedback

    0%

Community Answers

  1. Sanchez's post in Package Disable was marked as the answer   
    Just comment out this:


  2. Sanchez's post in Anti drop hack was marked as the answer   
    Just replace this in char_item.cpp:
    LPCHARACTER owner = funcFindOwnership.owner; With this:
    LPCHARACTER owner = funcFindOwnership.owner; // Owner does not exist, so don't allow to run remaining codes. if (!owner) return false; The next line of the code will set me as owner of the item if the owner is currently nobody. And sure, it's nobody because no one is the owner of the item from my group.
  3. Sanchez's post in Client close for no reason... was marked as the answer   
    This is a very old problem with the metin2 clients, just open your locale_game.txt and replace this:
    +%,0f To this:
    +%.0f
  4. Sanchez's post in Disable Dev/Debug functions was marked as the answer   
    It's in game.py:
     
    def UpdateDebugInfo(self):
  5. Sanchez's post in disable syslog was marked as the answer   
    Why don't you just return the function at the begin? But logging of useless stuffs can't be a reason to do this.
    void sys_log(unsigned int bit, const char *format, ...) { return;
  6. Sanchez's post in Help by exp_table was marked as the answer   
    Open main.cpp and add this to the top:
    #include "fstream" Search for this still in main.cpp:
    PanamaLoad(); Add this under that:
    // START_OF_EXP_TABLE_LOADING std::string temp_exp_line; std::ifstream exp_table_open("exptable.txt"); if (!exp_table_open.is_open()) return 0; int exp_table_counter = 0; while (!exp_table_open.eof()) { exp_table_open >> temp_exp_line; str_to_number(exp_table_common[exp_table_counter], temp_exp_line.c_str()); exp_table_counter++; } // END_OF_EXP_TABLE_LOADING Open constants.cpp and replace this:
    const DWORD exp_table_common[PLAYER_EXP_TABLE_MAX + 1] = { ... }; With this:
    DWORD exp_table_common[PLAYER_EXP_TABLE_MAX + 1]; Open constants.h and replace this:
    extern const DWORD exp_table_common[PLAYER_EXP_TABLE_MAX + 1]; With this:
    extern DWORD exp_table_common[PLAYER_EXP_TABLE_MAX + 1]; exptable.txt example: http://pastebin.com/KPMGPY38
  7. Sanchez's post in 40250 - VPS was marked as the answer   
    Sorry for the double post, I just wanted to modify my latest comment... Check out this link: http://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/3035413-sammelthread-difs-f-r-game-rev-40250-db-rev-40146-daily-updated.html
  8. Sanchez's post in Placement like Eventhelper was marked as the answer   
    Navigate to SetEventFlag in questmanager.cpp and add the name of your event_flag to the function:
    else if (name == "your_event_flag") { Dosomething(value) // value is the value of the flag } To spawn an NPC you can do it like the Event Helper:
    CHARACTER_MANAGER::instance().SpawnMob(9004, p->lMapIndex, posBase.x + p->x * 100, posBase.y + p->y * 100, 0, false, -1);
  9. Sanchez's post in Error WorldEditor was marked as the answer   
    You should install DirectX End-User Runtime.
  10. Sanchez's post in Quest Function: pc.get_cash was marked as the answer   
    int pc_get_coins(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (ch == NULL) return 0; SQLMsg *msg = DBManager::instance().DirectQuery("SELECT coins FROM account.account WHERE id = '%d'", ch->GetAID()); if (msg->uiSQLErrno != 0) return 0; MYSQL_RES *res = msg->Get()->pSQLResult; MYSQL_ROW row = mysql_fetch_row(res); if (!row[0]) return 0; lua_pushnumber(L, atoi(row[0])); return 1; }
  11. Sanchez's post in [QUESTION] Metin2 source files and compiling server for Win was marked as the answer   
    Please...Don't write posts like this if you don't even know what it is. I'm currently using Visual Studio 2013 without any problems, and my friends using 2012/2010.
     
    @daniel1919:
     
    novaline - Contains the new quest groupping system on server and client side. dev_wolf_branch - A developer line for the upcoming class, "wolfman" dev - Client in default contains the python 2.7 mainline - exactly same with the novaline, but not contains the new quest groupping system   Compatible lines (sure you can use every server for every binary, but you have to change the different packets):   mainline server/novaline client dev server/novaline client novaline server/novaline client   Recommended line:   mainline for server, novaline for client
  12. Sanchez's post in Can someone compile .py to .pyc? was marked as the answer   
    Check this topic out: http://metin2dev.org/board/topic/575-how-to-use-compiled-python-files/
  13. Sanchez's post in Question for Python2.7 was marked as the answer   
    1. Overwrite the Python 2.2 files with these 2.7 files: 
    This is the hidden content, please Sign In or Sign Up
    2. Open UserInterface.cpp and change #pragma comment( lib, "python22.lib" ) to #pragma comment( lib, "python27.lib" )
    3. Use CTOA in the client: http://metin2dev.org/board/topic/459-problem-with-clientbinary/?p=3526
  14. Sanchez's post in Call a python function with binary was marked as the answer   
    1. Open PythonPlayerModule.cpp and add this to the static PyMethodDef s_methods[]:
    { "GetRK", playerGetRK, METH_VARARGS }, 2. Now still in PythonPlayerModule.cpp add this:
    PyObject * playerGetRK(PyObject* poSelf, PyObject* poArgs) { return Py_BuildValue("i", 15); } Add this to your py:
    def GetRKValue(self): return player.GetRK()
  15. Sanchez's post in [HELP] Cant connect to the server (hamachi) was marked as the answer   
    What kind of client and binary do you use? For these 2013Filesv2 the recommended client is this: https://mega.co.nz/#!8IIkGZjD!T14v3XVKNAzTLRiAY55c8H7gKaMCiFE-lQfHa3ZAv0c
    But what errors do you get? what syserr.txt or log.txt says?
  16. Sanchez's post in Levelup ends in a kick was marked as the answer   
    We are already answered your question in your another thread: http://metin2dev.org/board/topic/558-client-crashes-40k-28249-unknown-packet-header-levelup/
  17. Sanchez's post in [Python+Quest]Python Button was marked as the answer   
    I made an example for you, follow these steps:
     
    uitarget.py - >
     
    Search for this: 
     
    BUTTON_NAME_LIST = (  
    Add this to the list:
     
    "M2DEV_BUTTON",  
    Search for this:
     
    self.buttonDict[locale.TARGET_BUTTON_EXCLUDE].SetEvent(ui.__mem_func__(self.OnPartyRemove))  
    Add this under that:
     
    self.buttonDict["M2DEV_BUTTON"].SetEvent(ui.__mem_func__(self.OnM2Dev))  
    Search for this:
     
    if not messenger.IsFriendByName(self.nameString): self.__ShowButton(locale.TARGET_BUTTON_FRIEND)  
    Add this under that:
     
    if str(constInfo.HAVEQF) == "1": self.__ShowButton("M2DEV_BUTTON")  
    Add the event to somewhere you want:
     
    def OnM2Dev(self): import dbg dbg.LogBox("Hello there!")  
    game.py - >
     
    Search for this:
     
    "PlayMusic" : self.__PlayMusic,  
    Add this under that:
     
    "m2devqf" : self.__ReceiveQF,  
    Add the event to somewhere you want:
     
    def __ReceiveQF(self): constInfo.HAVEQF = 1  
    constInfo.py - >
     
    Add this to somewhere you want:
    constInfo.HAVEQF = 0  
    Quest - > 
     
    quest Button begin     state start begin         when login begin             if pc.getqf("m2dev") == 1 then                 cmdchat("m2devqf")             end         end     end end
  18. Sanchez's post in [LUA]DEFINE function was marked as the answer   
    You have to use pre_qc.py, because qc can't handle it.
×
×
  • 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.