Jump to content

Asha

Banned
  • Content Count

    35
  • Joined

  • Last visited

  • Yangs

    0 [ Donate ]

Community Reputation

9 Neutral

About Asha

  • Rank
    Neutral

Informations

  • Gender
    Female

Recent Profile Visitors

661 profile views
  1. https://metin2dev.org/board/index.php?/topic/2420-release-current-metin2deen-client/
  2. Just to make you to understand, you should learn not always come here and ask. 10000 1252 de We have this : "de" is then name from locale_xx.epk->locale -> de "1252" is the encoding HAVE A look here https://en.wikipedia.org/wiki/Windows-1252 you can see all supported characters and also his name. And here you have a complete list of encodings , choose the best one for you https://docs.python.org/2.4/lib/standard-encodings.html
  3. The problem come from client encoding. The server does not handle characters in client display. Set the proper encoding intro locale.cfg
  4. The official client use cython. Check this out : Cython is a compiled language that generates CPython extension modules. These extension modules can then be loaded and used by regular Python code using the import statement. Cython is written in Python and works on Windows, Linux, and Mac OS X, producing source files compatible with CPython 2.4 through 3.5. It works by producing a standard Python module. However, the behavior differs from standard Python in that the module code, originally written in Python, is translated into C. While the resulting code is fast, it makes many calls into the CPython interpreter and CPython standard libraries to perform actual work. Choosing this arrangement saved considerably on Cython's development time, but modules have a dependency on the Python interpreter and standard library. Although most of the code is C-based, a small stub loader written in interpreted Python is usually required (unless the goal is to create a loader written entirely in C, which may involve work with the undocumented internals of CPython). However, this is not a major problem due to the presence of the Python interpreter. Cython has a foreign function interface for invoking C/C++ routines and the ability to declare the static type of subroutine parameters and results, local variables, and class attributes. https://en.wikipedia.org/wiki/Cython Summany : Cython convert you python codes intro C codes. In this way python files is converted intro C codes with extension.c , after they convert intro C, will create a module and use imports , will create import root and the pyhton files can't be extracted anymore as .py codes .. Is pur C codes , you can't unpack .py files from official. If you really want to unpack it and have money pay a reverse engineer from tuts4you but i don't think someone will help you. Regards
  5. Thank you. Really helped me to understand how it works packets in Metin2. A great like.
  6. Why you not use auto ? Since almost of the people from here use visual studio 2013 and vs2013 support auto. Range for can be used with iterators, including pointers. Your program needs further refinement. Upon inspection, we see that the first conditional inside the loop body is invariant inside the loop and can be factored out. To further refine your program, eliminate raw pointers ... etc auto localPetsList = std::vector<int>{ 34001,34051, }; auto globalPetsList ={ 9001, 9002, 9003, 9004, 9005, 9006, 20011, 20091, 20092, 20093, 20094, 20095, 30000 }; auto MapIndexString ={ "metin2_map_a1", "metin2_map_a3", "metin2_map_b1", "metin2_map_b3", "metin2_map_c1", "metin2_map_c3", "season2/metin2_map_skipia_dungeon_01", "season2/metin2_map_skipia_dungeon_02", "metin2_map_duel" }; auto OxEventMap ={ "season1/metin2_map_oxevent" }; auto CheckStringName = CPythonBackground::Instance().GetWarpMapName(); #ifdef ENABLE_STOP_COLLISION_PLAYER_OX if (OxEventMap == CheckStringName) { if (0 <= rVictim.GetRace() && rVictim.GetRace() <= 7) return FALSE; } #endif for (auto colission: MapIndexString) { if (colission == CheckStringName) { for (auto block_pet: globalPetsList) { if (rVictim.GetRace() == block_pet || localPetsList[0] <= rVictim.GetRace() && rVictim.GetRace() <= localPetsList[1]) return FALSE; } } } I can say that you coding style is crap and use old and primitive coding standards, year 2016
  7. Good luck With time you will improve.
  8. @VegaS And master vegas , here is some advices for you Naming : At least in my opinion, the pseudo-hungarian names like m_nTableMax and pkNewItem are much more problematic. Hungarian naming was originally invented for assembly language, back in the days of extremely primitive assemblers that did essentially no type enforcement. They were marginally useful with early C compilers that did minimal type enforcement as well. In C++, Hungarian Notation is beyond useless, well into the range of being detrimental to your code's health. Readibility : You should worry less about length and more about readability. The code above does happen to be shorter, but the real improvement (IMO) is in readability and dependability. Range-based for loops (in particular) can do quite a lot to help eliminate off-by-one errors and such. Best regards. Be friendly with me please @galet Well, you can replace the auto with DWORD DWORD &num = pkNewItem->GetVnum(); if you don't want to use modern programming things. EDIT: why DWORD ? Because GetVnum is DWORD
  9. You code is bad vegas and you should feel bad too. As i saw here you always have a big mouth, but you codes is very bad. I think is better and more simple like this. int m_nTableMin[] = {141, 151, 161, 171, 181, 191}; int m_nTableMax[] = {149, 159, 169, 179, 189, 199}; auto const &num = pkNewItem->GetVnum(); for (int i : m_nTableMin) { for (int j : m_nTableMax) { if (i <= num && num <= j) { char szUpgradeAnnouncement[QUERY_MAX_LEN]; snprintf( szUpgradeAnnouncement, sizeof(szUpgradeAnnouncement), "<Refine> " "Player [%s] " "upgraded item [%s] " "with succes! ", GetName(), pkNewItem->GetName() ); BroadcastNotice(szUpgradeAnnouncement); } } } I can review all of you codes if you want. Please be friendly with me Here i try to show you that you codes is bad Regads
  10. Hello guys, I have a question. For several days trying to understand python files in the root. And I found uisafebox.py in class ChangePasswordDialog functions __LoadDialog (I think this is useless ) LoadDialog ( this is used. ) If anyone has ideas and wants to explain I will be grateful. As i can see there is self.dlgMessage = ui.ScriptWindow() soo i think is a message printed to user. Also this self.__LoadDialog() is loaded intro constructor. So i think when safebox open, the constructor initialize __LoadDialog() and print some message. Thanks I use Google translate
  11. Seems you server read from .txt
  12. Download CFF explorer http://www.ntcore.com/exsuite.php http://i1324.photobucket.com/albums/u607/RandalMcdaniels/laa_zps3c475aa5.jpg You can see the box is unchecked for "App can handle >2gb Adress space" (This has nothing to do with poor optimization or anything, this is just a simple safety cap windows puts on apps to stop them from using up too much memory) No 64 bit apps have a cap like this. So you have to manually uncheck that cap for 32 bit apps. But most developers are already aware of this so they do this step for you. I think the metin2 dev's did not worry about doing this because its really not necessary. The most ram i have seen metin2 use up anyways is 800mb. But if you want to you can go right ahead and remove this 2gb safety cap yourself (see below) Its called 4gb patch. Made by NTcore. (same people who made cff explorer) This will probably not make any performance difference to your game however and is completely optional as metin2 does not use up that much ram anyways. But with this memory leak need to use more than 2GB . For me its just for ease of mind knowing that the game can use up as much ram as it wants. This is a temporar fix for crash and freeze will work just to people Who have much than 2gb ram.
  13. Asha

    GameForce Action

    Hi all! I have come today with a new theme, more delicate. Metin2 is a game with much experience. It first appeared in Asia in 2005 and in 2006 in Europe. And rather quickly appeared and the first Chinese private servers thanks. In the beginning it was tried Webzen some servers to shut down successfully. Then they let it go because private servers They started appearing all over the world. The official game was developed still further and the need to allow the game was developed in one somewhat Pay2Win. And because of this, and because many private servers have emerged, Gameforge started making losses. Players began to leave the official game that brought financial losses. Gameforge now started an action under #ListenUpGameforge. Gameforge has started to block and delete videos Metin2 great YouTuber in Germany, advertising for private servers. And fear even lower YouTuber delete their videos. What do you think about this action? Do you think that will be closed and private servers? Do you think it will reach all country? I'm interested in your opinions.
×
×
  • 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.