Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/25/21 in all areas

  1. Heya, when a party member is assigned a role, it's tiny icon will be displayed in the beginning instead of predefined position. Inside party.py replace SetAffect function with the following: def SetAffect(self, affectSlotIndex, affectValue): if affectSlotIndex >= len(self.partyAffectImageList): return if affectValue > 0: self.partyAffectImageList[affectSlotIndex].Show() else: self.partyAffectImageList[affectSlotIndex].Hide() self.affectValueDict[affectSlotIndex] = affectValue self.__ArrangeAffectPosition() Add this function to the class: def __ArrangeAffectPosition(self): x_pos = 22 y_pos = 24 affectIndex = 0 for image in self.partyAffectImageList: if image.IsShow(): image.SetPosition(x_pos + 14 * affectIndex, y_pos) affectIndex += 1
    6 points
  2. Hello, This tutorial will show you how to create a shop with an NPC. There are two types of shops: One shop: When you click on a NPC, a shop window opens. The first part will be enough for you to create a simple shop. Multi shop: Which consists of assigning several shops to an NPC using a quest. Prerequisites Own a Metin2 server with access to the database. Have an NPC available. Set up a quest. I. Create a shop or modify a shop II. Multi Shop Sincerly, ASIKOO
    2 points
  3. Maybe a config option for this messagebox could be interesting. Other than that, a small message can be displayed right next to "Idle" on the bottom left of your screenshot.
    2 points
  4. You could do it with a map. [Hidden Content] Also you could use my C++ library (there exists python too) for coloring a string, much easier. [Hidden Content] #include "cff.h" std::string text = CFF::format("Metin2", "green"); std::string text = CFF::format(std::to_string(8000), "banana"); std::string text = CFF::format(std::to_string(412.55), "red"); std::string text = CFF::format("Pending", "#113355"); std::string text = CFF::format("Item name:", "springgreen", CFF::FLAG_NEW_TAB) + CFF::format(pItemData->GetName(), "chocolate"); std::vector<string> text = CFF::multi_format({"a", "b", "c"}, "red"); // text[0], text[1], text[2]
    2 points
  5. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) Offline Shop - Premium Private Shop System Hi, due to lack of time, I hadn't shared, but ¡Hey!, I'm here and one more contribution. The Official Servers have an Offline for few months ago, so I took on the task of making a similar one, It's not like Official Servers in a some parts of code I think, it does occupy designs and other things but in some issues it's different, but I used the rules that they use in terms of encoding. I hope you like it, I tried that the Offline didn't occupy so many SQL sequences to minimize the load of SQL injections for the server and uses the same methods of the store and stores, don't create new files so that you can observe it. I take this topic to indicate that I don't sell my things because some persons always end up filtering them and it makes me very lazy to think that, I'm selling and providing kind support to good people so that a bad one arrives and simply ends all that, I don't usually give support because I don't received anything... in Yohara's level system some people sent me a message to indicate that there was an error and it was always an error that they installed it wrong, look correctly at the guide and once for real believe that I omitted something in the guide, you can contact me and tell me to fix it, but if it's an installation error and I must install the system for you, I will charge you, I like to help, but I give you a guide so that it is only corrected what I omitted. If you need me to connect it to your code or to add extra functions, I will still charge you, it's not much, it will simply be at your discretion and it will be a voluntary donation for me and my time, you will value how much you give me, it can be 1 EUR, 2 EUR, 3 EUR, 5 EUR I don't know (So I hope you make an effort, I already gave you the most complicated part, is to copy and paste code already done, including other parts for example like Safebox in Safebox part?), Some people were nice and some were not, so I decided to stop placing the rest of Yohara's patches for a few time. I hope you like this, install, test and contact me if you detect an error, I already looked for and corrected everything I observed. About memory leak - Doesn't have, I think . Use WJ_ENABLE_TRADABLE_ICON (public system). The default code in Python is Safebox to avoid code differences. Among other things. I use TRANSMUTATION like TRANSMUTATION, change it to Changelook, as I indicated in some parts of the guide where to change. # Visual Parts You can download the patches from the Official Servers in: Gyazo: [Hidden Content] [Hidden Content] [Hidden Content] [Hidden Content] GitHub: [Hidden Content]
    1 point
  6. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) [Hidden Content]
    1 point
  7. M2 Download Center Download Here ( Internal ) With this change, slow effect will also reduce attack speed, and will reduce movement speed more than before, making it a good bonus (and slow immunity relevant). Video: 1. Client Source/UserInterface/InstanceBase.h Search: AFFECT_NUM = 64, Add above: AFFECT_SLOW_AS = 45, Search: NEW_AFFECT_BOW_DISTANCE, Add below: NEW_AFFECT_SLOW_AS = 227, PythonCharacterModule.cpp: Search: PyModule_AddIntConstant(poModule, "AFFECT_SLOW", CInstanceBase::AFFECT_SLOW); Add below: PyModule_AddIntConstant(poModule, "AFFECT_SLOW_AS", CInstanceBase::AFFECT_SLOW_AS); 2. game/src/affect.h Cauta: AFFECT_DEF_GRADE, Add below: AFFECT_SLOW_AS = 227, Cauta: AFF_BITS_MAX Add above: AFF_SLOW_AS=45, battle.cpp: Search: AttackAffect(pkAttacker, pkVictim, POINT_SLOW_PCT, IMMUNE_SLOW, AFFECT_SLOW, POINT_MOV_SPEED, -30, AFF_SLOW, 20, "SLOW"); Replace with: if (pkAttacker->GetPoint(POINT_SLOW_PCT) && !pkVictim->IsAffectFlag(AFF_SLOW)) { if (number(1, 100) <= pkAttacker->GetPoint(POINT_SLOW_PCT) && !pkVictim->IsImmune(IMMUNE_SLOW)) { pkVictim->AddAffect(AFFECT_SLOW, POINT_MOV_SPEED, -50, AFF_SLOW, 10, 0, true); pkVictim->AddAffect(AFFECT_SLOW_AS, POINT_ATT_SPEED, -40, AFF_SLOW_AS, 10, 0, true); } } char_affect.cpp: Search: RemoveAffect(AFFECT_SLOW); Add below: RemoveAffect(AFFECT_SLOW_AS); char_skill.cpp: Search: else if (IS_SET(m_pkSk->dwFlag, SKILL_FLAG_SLOW)) Replace the content with: { if (iPct && !pkChrVictim->IsAffectFlag(AFF_SLOW)) { if (number(1, 1000) <= iPct && !pkChrVictim->IsImmune(IMMUNE_SLOW)) { pkChrVictim->AddAffect(AFFECT_SLOW, POINT_MOV_SPEED, -50, AFF_SLOW, 10, 0, true); pkChrVictim->AddAffect(AFFECT_SLOW_AS, POINT_ATT_SPEED, -40, AFF_SLOW_AS, 10, 0, true); } } } Note: to modify the values, change the values inside the AddAffect function call. Example: pkChrVictim->AddAffect(AFFECT_SLOW_AS, POINT_ATT_SPEED, -40, AFF_SLOW_AS, 10, 0, true); -40 is the value reduced, 10 is the duration of the debuff.
    1 point
  8. M2 Download Center Download Here ( Internal ) Download Here ( GitHub ) No need to say anything, it's just offline private message system. It keeps messages at db instead of txt. There is a 5 hour time limit for offline messages. After this time the message will be deleted automatically.
    1 point
  9. Hi, I use: python27 gmake makedepend devil gdb llvm-devel boost mysql-server80
    1 point
  10. 1 point
  11. GF v21.0.8 Patch (Metin2 Download) (Full client) Contents: root-meta, dumped binary, locales with protos new monsters, maps, dungeon, armors, 2021 easter costumes and mount the package contains the separated folders(m00xxx) and the unpacked files together in one folder.
    1 point
  12. Hello there! You need to put the 6th skill in special.active_skill_list in order for this to work. You can find it in locale/xx/quest/questlib.lua usually. It should be something like this: special.active_skill_list = { { { 1, 2, 3, 4, 5, 6}, { 16, 17, 18, 19, 20, 21}, }, { {31, 32, 33, 34, 35, 36}, {46, 47, 48, 49, 50, 51}, }, { {61, 62, 63, 64, 65, 66}, {76, 77, 78, 79, 80, 81}, }, { {91, 92, 93, 94, 95, 96}, {106, 107, 108, 109, 110, 111}, }, }
    1 point
  13. 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 [Hidden Content]
    1 point
  14. Btw, instead of adding a .SetDelay() to all objects, you could do do a simple change. for all visual ani_image from screen. root/ui.py Search for: if True == value.has_key("delay"): window.SetDelay(value["delay"]) Replace with: [Hidden Content] So, you don't have to any part of python from tutorial, just this.
    1 point
  15. quest_functions: say_blue say_blue2 say_red say_green say_gold say_black say_white say_yellow Questlib.lua function say_blue ( name ) say ( color256 ( 0 , 0 , 255 ).. name .. color256 ( 0 , 0 , 255 )) end function say_red ( name ) say ( color256 ( 255 , 0 , 0 ).. name .. color256 ( 255 , 0 , 0 )) end function say_green ( name ) say ( color256 ( 0 , 238 , 0 ).. name .. color256 ( 0 , 238 , 0 )) end function say_gold ( name ) say ( color256 ( 255 , 215 , 0 ).. name .. color256 ( 255 , 215 , 0 )) end function say_black ( name ) say ( color256 ( 0 , 0 , 0 ).. name .. color256 ( 0 , 0 , 0 )) end function say_white ( name ) say ( color256 ( 255 , 255 , 255 ).. name .. color256 ( 255 , 255 , 255 )) end function say_yellow ( name ) say ( color256 ( 255 , 255 , 0 ).. name .. color256 ( 255 , 255 , 0 )) end function say_blue2 ( name ) say ( color256 ( 0 , 206 , 209 ).. name .. color256 ( 0 , 206 , 209 )) end Exemple quest: say_blue ( "Metin2dev" ) say_blue2 ( "Metin2dev" ) say_red ( "Metin2dev" ) say_green ( "Metin2dev" ) say_gold ( "Metin2dev" ) say_black ( "Metin2dev" ) say_white ( "Metin2dev" ) say_yellow ( "Metin2dev" )
    1 point
  16. Thnx for release, btw they still steal xd.
    0 points
  17. Holy Moly old shit... its 2008? Please use ShopEX, not Quest...
    0 points
  18. You're right, but if you really want to use something like this, you should do a customizable class, like: [Hidden Content]
    0 points
×
×
  • 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.