Jump to content

Metin2 Dev

Bot
  • Posts

    2151
  • Joined

  • Last visited

  • Feedback

    100%

Everything posted by Metin2 Dev

  1. Hello community, I am creating an admin panel for metin2 servers to share for free here in the community when it is finished. I need you to tell me features you would like to see in the admin panel. I will update this thread with the functions I find relevant and identify who has suggested them. The panel is being made in PHP+ PDO. All suggestions are welcome! Features Lock/unlock accounts. Block all accounts associated with an IP. Block all accounts associated with the machine GUID. Map Viewer @ ASIKOO Inventory Viewer @ ASIKOO Log Viewer @ ASIKOO Search Search for all accounts associated with an IP. Search for all accounts associated with the machine GUID. Search for all characters in an account. Logs
  2. Thank you for the improvement of the script! I just made a script in haste to do what I wanted to do, I didn't try to improve it.
  3. I have worked on servers that use both files... The focus of marty is to have a clean base and correct the errors by the crazy Chinese without adding systems. The focus of owsap is to keep the server as similar as possible to the official one including systems. If you want to learn to program I advise marty, if you intend to open a server I advise owsap. Of course you can use marty to start a server but you don't understand much and it will cost you more to pay developers.
  4. Hello community, I have created a python script that saves the name with directory of all files in a text file. I used this script after organizing the quest folder from my server files to generate the quest_list. [Hidden Content]
  5. Post ClientManagerPlayer.cpp from the db. In most cases, your problem stems from this file.
  6. The issue is occurring because the pointer to the event function is null, whereas the info is not null. To resolve this issue, you can simply check whether the pointer to the function is null or not. if (!the_event->func) continue; new_time = (the_event->func) (get_pointer(the_event), processing_time); Because the event functions are global functions, there are not many ways to get a null pointer. Therefore, you should check the following (although there may be other ways to get a null pointer, one of the following is likely your case): - Check your event code and ensure that you are not explicitly setting the "func" pointer to null. - Check whether you are calling the event_create function like this: event_create(nullptr, info, PASSES_PER_SEC(1));
  7. Hello community, I have been working for the last few months on an international project. The server is labeled middle school with new systems adapted. The plan is to have team members spread around the world in order to support the communities in each country. There are currently 20 places available for the Trial Game Master for the following languages: Português, Español, Italiano, Français, Deutsch, Română, Polski, Türkçe, Magyar, čeština The positions Game Master and Super Game Master receive payments in cash or dragon coins depending on their performance. The Trial Game Master position does not receive any payment as it is in the testing phase. All those chosen who do a good job will be promoted to Game Master in the future as well as who is Game Master can be promoted to Super Game Master. Requirements Be fluent in your native language and, if possible, understand the basics of English. At a minimum, you should be able to devote 2 hours a day to server tasks and support in your native language. You must view the position as a job and not just a game. Treat all players equally without any special treatment. Enforce rules and punish all those who go against them without exception. When you are supporting a player treat him as you would like to be treated in his position. If you meet the requirements and feel you would be an asset to the team, please contact me via discord to talk a little bit about you joining the team. I am also looking for promoters with payment in cash or dragon coins. Requirements If you are a youtuber you must have at least 1000 subscribers and at least 500 views on each video. If you do streams you must have at least 20 simultaneous viewers. If you make videos for tiktok you must have at least 1000 followers and at least 2000 views per video. If you make content on instagram you must have at least 1000 followers and at least 200 views per storie/video. If you meet the requirements to join the team or the requirements to be a promoter, feel free to contact me via discord. Discord: Papix#4344
      • 1
      • Metin2 Dev
  8. Nice work ? Here is a token list I use: ["\t", "\r", "\n", ",", " ", "=", "[", "]", "+", "-", "<", ">", "~", "!", ".", "(", ")", "*", "{", "}", "/"] So you can use: (and more) local drops = {DROP1, DROP2, DROP3} local count = COUNT1+COUNT2
  9. Hello community, For those who don't know me, I have more than 10 years of experience in solutions against DDoS attacks. Recently I started to create my new firewall focused on websites and game servers including metin2 servers. I provide free server protection for both game servers and websites. Why free? For you it is a free service, for me it is a study mechanism to improve my skills in the business. Who is eligible for free protection? Any game server or website owner can contact me so I can start securing their server and website. How many free places are there? There are only 10 free slots to maintain professionalism in the service. Although it is a free service I will treat everyone as a customer, 24/7 support, interventions when needed at any time. Anyone interested in taking one of the places for my free services please contact me by discord. Discord: Papix#4344
      • 2
      • Metin2 Dev
  10. If you want to bulk crop here is a little python script I did some time ago:
  11. This script does not go against the discord ToS, don't pass on wrong information, it can confuse people.
  12. Hello community, I come to introduce you to a company that is better than OVH, it relies on attack mitigation up to 2TR. The support is super fast and has a firewall panel (currently in beta). The prices are excellent for both VPS and dedicated servers. They currently have data centers in the netherlands and the USA (will soon have data centers in europe). I migrated all my machines to this company after testing the firewall and seeing the quality of the hardware. I talked to the team and they provided a FreeBSD template on the panel as a target for those who will use the servers for m2. I also got a promo code for 15% off! WEBSITE & PROMO CODE: [HIDE] Use my affiliate link, you are helping me get better discounts for you guys! ? Website: https://royalehosting.net/aff.php?aff=6 PROMO CODE 15%: PAPIX22 [/HIDE]
      • 1
      • Metin2 Dev
  13. Hello @Pandrio. I think @ Syreldar is your man. I can just recommend him.
  14. I know ive heard of it thats why ill getting a bit used into it, its great tools but they will not perform perfectly as a human hand. Still it gets great results, and there are plenty of cool ideas created by AI wich we can use and reedit to use it in our projects. I like that the techniques has progressed this far for creating art, its insane what time has done so far
  15. I did some editing and creating myself with gimp, a bit of ps, some ai work and 2-3 plugins. Ill post these days some more results cause im working at the moment alot of in unreal engine so we need a bit of inspiration
  16. 0924 23:40:27432 :: 0924 23:40:27432 :: for bonusIndex, bonusName in localeInfo.FormatBonusNameDict().iteritems(): 0924 23:40:27432 :: File "localeInfo.py", line 688, in FormatBonusNameDict 0924 23:40:27433 :: File "localeInfo.py", line 678, in FormatBonusNameString 0924 23:40:27433 :: TypeError 0924 23:40:27433 :: : 0924 23:40:27433 :: 'tuple' object is not callable 0924 23:40:27433 ::
  17. Hey guys, Today I was facing with a guild melting problem, the problem was that the stones which are in the special inventory is not shown in the SelectItemWindow. I managed to solve this by adding a new check for special inventory size && special inventory slot end. In this tutorial the codes may be different from yours, if you have Sanii Special Inventory you have to check your GameType.h how is page size calculated and your PythonPlayerModule.cpp to see how it's defined. For example: PythonPlayerModule.cpp-> PyModule_AddIntConstant(poModule, "SPECIAL_INVENTORY_PAGE_SIZE", SPECIAL_INVENTORY_PAGE_SIZE); PyModule_AddIntConstant(poModule, "SPECIAL_INVENTORY_SLOT_END", c_Special_Inventory_Slot_End); GameType.h-> SPECIAL_INVENTORY_WIDTH = 5, SPECIAL_INVENTORY_HEIGHT = 9, SPECIAL_INVENTORY_PAGE_SIZE = SPECIAL_INVENTORY_WIDTH * SPECIAL_INVENTORY_HEIGHT, const DWORD c_Special_Inventory_Slot_Start = c_Belt_Inventory_Slot_End; const DWORD c_Special_Inventory_Skillbook_Slot_Start = c_Special_Inventory_Slot_Start; const DWORD c_Special_Inventory_Skillbook_Slot_End = c_Special_Inventory_Skillbook_Slot_Start +SPECIAL_INVENTORY_PAGE_SIZE * c_Inventory_Page_Count; const DWORD c_Special_Inventory_Stone_Slot_Start = c_Special_Inventory_Skillbook_Slot_End; const DWORD c_Special_Inventory_Stone_Slot_End = c_Special_Inventory_Stone_Slot_Start + SPECIAL_INVENTORY_PAGE_SIZE * c_Inventory_Page_Count; const DWORD c_Special_Inventory_Material_Slot_Start = c_Special_Inventory_Stone_Slot_End; const DWORD c_Special_Inventory_Material_Slot_End = c_Special_Inventory_Material_Slot_Start + SPECIAL_INVENTORY_PAGE_SIZE * c_Inventory_Page_Count; const DWORD c_Special_Inventory_Slot_End = c_Special_Inventory_Material_Slot_End; const DWORD c_Inventory_Count = c_Special_Inventory_Slot_End; Solution: root/uiselect.py In def RefreshSlot(self): search for: for i in xrange(player.INVENTORY_PAGE_SIZE*player.INVENTORY_PAGE_COUNT): After for loop add a new for loop for the special inventory: for i in xrange(player.SPECIAL_INVENTORY_PAGE_SIZE*player.SPECIAL_INVENTORY_SLOT_END): slotNumber = i itemVNum = getItemVNum(slotNumber) if 0 == itemVNum: continue if not item.IsMetin(itemVNum): continue itemGrade = player.GetItemGrade(slotNumber) if itemGrade > 2: continue self.inventorySlotPosDict[slotPos] = i slotPos += 1 if slotPos > 54: break Another problem is that if you select 100 stack of stone in the SelectItemWindow, they all disappear from the inventory, so instead of one piece, all of them disappear. Solution: mining.cpp Search for: ITEM_MANAGER::instance().RemoveItem(metinstone_item, "REMOVE (MELT)"); Replace with: metinstone_item->SetCount(metinstone_item->GetCount() - 1); I hope it will be useful for you ? Author of special inventory: @Sanii. @LordZiege approved me to share this fix.
  18. Try this: UserInterface -> Properties -> Manifest Tool -> Input and Output -> DPI Awareness -> High DPI Aware Recompile the binary and try again.
  19. Good job. For what I've seen in the metin2 comunity a lot of people doesn't care about these values (they leave bosses without skills on live servers and so on). The damage multiply column have also wrong values. Example: if the monster have 5.3 damage multiuply when you unpack you will get 5. I personally changed the unpack function to read those values from a file at unpack. Here is the code with all variables I found with wrong values or missing (maybe it can help you): The database file too:
  20. Dear everyone!? I'm trying to solve this issue, but i didn't find anything. I'm ask for your help guys maybe someone can suggest something. Serverfile: martysama 5.4 (boughted). In the source i have vegas multilanguage + pickup (boughted). LLDB: input_login.cpp 85 line (sometimes it's item_drop_bonus etc..): exp_bonus = CPrivManager::instance().GetPriv(ch, PRIV_EXP_PCT); it's chatpacket: ch->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("°ćÇčġ %d%% Ăß°ˇ Čąµć ŔĚşĄĆ® ÁßŔÔ´Ď´Ů."), exp_bonus); (When entering the game i see this chat message and it's working fine.) GDB: Syslog: What do you think? The server is crashing very often when someone entering the game. I've checked the locale_strings line by line, translates, source chatpackets, but i didn't find the issue. Marty and VegaS tried to help me, but it was not enough. I don't expect anyone to help me for free. I can pay for your help & time. Thank you in advance!
  21. HomeServer for Promox Usage: Ryzen 5 3600X DDR4 3600hz Ram Corsair Vengeance RGB Pro 16gb M2 SSD 250gb 2x WD Red Plus 4TB 1x WD Purple 2TB 1x Seagate "idk wich" 4TB GTX 680 EVGA 350 Watt Powersupply MainPC Intel i9 10900x Boost 5.45 Ghz 10 Core 20Threads 64GB DDR4 3200 Mhz Ram Corsair Vengeance RGB Pro Cl14 M2 SSD 970 Evo Plus 2TB M2 SSD 960 Evo 1TB NVM SSD 860qe 2TB RTX 3080 ASUS ROG Strix ROG RIJUYIN 360mm Radiator with 3 Noctua Fans 6 Corsair LL 120mm Fans RGB Splitter Corsair iCue ROG Strix X299-E Gaming II LGA 2066 Power supply Corsair rx 1000w Case "Corsair D500 Obsidian" i think thats it xD
  22. Welcome Paulo!
  23. Yes, as @Clairmont said the design is obtained from the official wiki. If you want to improve your knowledge about templates for the media wiki you can follow this: [Hidden Content]
×
×
  • 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.