-
Posts
576 -
Joined
-
Days Won
43 -
Feedback
0%
Community Answers
-
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.
-
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 -
Sanchez's post in Disable Dev/Debug functions was marked as the answer
It's in game.py:
def UpdateDebugInfo(self):
-
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; -
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
-
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
-
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); -
Sanchez's post in Error WorldEditor was marked as the answer
You should install DirectX End-User Runtime.
-
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; } -
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 -
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/
-
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 -
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() -
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?
-
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/
-
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 -
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.