Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won

  • Yangs

    2,586 [ Donate ]
  • Country

    Sri Lanka

VegaS™ last won the day on June 10

VegaS™ had the most liked content!

Community Reputation

1,099 Godlike

About VegaS™

  • Rank
  • Birthday December 22


  • Gender
  • Location



  • C++
  • LUA
  • Python
  • PHP
  • SQL
  • JavaScript

Recent Profile Visitors

13,759 profile views
  1. The function SetDefaultConfig it's called everytime before LoadConfig when the singleton it's initialized. Yes, first it will load the default values then will try to read the values from metin2.cfg, so if you put specific width/height in the default config everything it's fine for the first run. Is impossible for a player to have a resolution lower than 800x600 if he set it from config.exe. What you did is just for the people who editing metin2.cfg manually, like m2bob does, otherwise has no sense that check inside of the LoadConfig. We should block the hacks, not doing workaround conditions for "consuming more resources by resolution if the hackers has the resolution < 800x600", just saying.
  2. This feature already was there since beginning, but just for Japan. PythonSystem.cpp, just remove the preprocessor directive and set the bWindowed to true. #if defined( LOCALE_SERVICE_WE_JAPAN ) m_Config.bWindowed = true; #else m_Config.bWindowed = false; #endif For the music just change the music_volume to 0.0f, you don't have to mute the voice volume. m_Config.music_volume = 1.0f; Also, maybe I'm wrong, but why you're doing this: When you can simply change: void CPythonSystem::SetDefaultConfig() { [...] m_Config.width = 1024; m_Config.height = 768; } To: m_Config.width = 800; m_Config.height = 600;
  3. He's trying to call some API functions for making a DLL injectable to metin2 client = cheat/hack. @ledi12 We don't support this here, topic closed.
  4. Is not that easy as you think and also you need to make individual code for each function, if they've arguments and more. Here's my method, i tested it and works fine. const auto& poModule = PyImport_ImportModule("player"); if (!poModule) return false; const auto& poFunc = PyObject_GetAttrString(poModule, "GetMainCharacterPosition"); if (!PyCallable_Check(poFunc)) return false; const auto& poResult = PyObject_CallObject(poFunc, nullptr); if (!poResult) return false; for (size_t i = 0; i < PyTuple_GET_SIZE(poResult); ++i) std::cout << PyFloat_AsDouble(PyTuple_GetItem(poResult, i)) << std::endl;
  5. Change your password.
  6. Ok, we'll find a day and i'll merge all of your topics with resources into one (per category) and the thread title will be? "3D Resources" and "2D Resources" ?
  7. I've a question for you, wouldn't be better to add all of your resources into a single thread, instead of making unlimited threads for a simple resource? Would be better for you to update it and for users to find many things faster. We can talk here, the topic isn't approved yet, just you and the staff can see the messages.
  8. @Denis If you think that your reactions as a former staff, are fine just because this: he's greek he's using a public system he doesn't know english he's new on this forum he isn't a 'dev' and don't know anything about coding then, you're the bad person, not him, go and solve your problems in other parts and let'me show you the rules. Edit: Apparently Denis didn't understand what I wanted to say with the "bad person, so he take it wrong. I apologize. Rules (1.1) Language The language in this board is english. If you want to post something in your own language always add an english translation. The only exception for this rule is this section: Private Servers (1.2) Behaviour Don't flame at other users. We want this board to be the best possible experience. You maybe want help and everybody started with no or little knowledge. So help and don't flame! Also we don't want to see any racism or sexism. (1.3) Spamming Do not spam in this board. Posting a topic or a question once is enough. If you don't get an answer maybe your question needs more description. Or nobody is able to help you there. Double post aswell as double threads will be punished with an infraction. @perfect ^+ (2.2) Bumping Allowed bumping times: Q&A - 48 hours (2.5) Questions & Answers specific rules Don't modify your thread (or reply to it) to mark it solved, and not explain the solution to the issue. @Denis +2 infractions @perfect +3 infractions Topic closed.
  9. @glosteng4141 Removing Question / Failure to Provide Solution = you won warning.
  10. Thanks for release, already i did something like this in a topic from 2019, so here's: locale/en/locale_game.txt ATTR_6TH_7TH_POSSIBILITY You can add an additional bonus. root/uiToolTip.py # Search for: def __AppendAttributeInformation(self, attrSlot): if 0 != attrSlot: for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): type = attrSlot[i][0] value = attrSlot[i][1] if 0 == value: continue affectString = self.__GetAffectString(type, value) if affectString: affectColor = self.__GetAttributeColor(i, value) self.AppendTextLine(affectString, affectColor) # Replace with: def __AppendAttributeInformation(self, attrSlot, attrRareStart = player.ITEM_ATTRIBUTE_SLOT_MAX_NUM, attrRareCount = 2): if not self.__IsAttr(attrSlot): return attrCount = 0 for attrIndex, (attrType, attrValue) in enumerate(attrSlot): if attrValue: affectString = self.__GetAffectString(attrType, attrValue) if affectString: self.AppendTextLine(affectString, self.__GetAttributeColor(attrIndex, attrValue)) attrCount += 1 if attrCount in range(attrRareStart, (attrRareStart + attrRareCount) + 1): self.AppendTextLine(localeInfo.ATTR_6TH_7TH_POSSIBILITY, self.CONDITION_COLOR)
  11. Thanks for the fix, for those who wondering from where's the formula: void CPythonPlayer::__RunCoolTime(DWORD dwSkillSlotIndex)
  12. def __OnClickLoginAutoButton(self): fileName = os.path.join('LIB', 'acp.pyc') if not os.path.isfile(fileName) or not os.stat(fileName).st_size: self.__OnClickLoginButton() return with open(fileName) as file: (accountName, accountPassword) = file.readline().split(';') self.Connect(accountName, self.decode(self.__ReadSavedPassword(), accountPassword)) Fixed, the function didn't allowed you to login with the normal method, just with the saved account from acp.py, now will work both of them.
  13. Change the function __OnClickLoginAutoButton with: def __OnClickLoginAutoButton(self): fileName = os.path.join('lib', 'acp.pyc') if not os.path.isfile(fileName): # or not os.stat(fileName).st_size return with open(fileName) as file: content = file.readline() if content: (accountName, accountPassword) = content.split(';') self.Connect(accountName, self.decode(self.__ReadSavedPassword(), accountPassword))
  14. You got the information related about what programs you should use, but what you want is just to put users to unpack files from another client, we don't support this, don't try to fool people again, thanks.
  15. Because you commented this: # self.ClearToolTip()
  • 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.