Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 05/23/16 in all areas

  1. M2 Download Center Download Here ( Internal ) - Searching Glass, Allows the arrow mark appearing on the private shop where the item you select in the search results and guides for players to call the selling items easier access. You must be the same on the map with the seller. Default time limit; 1 Week - Trading Glass, Without going to the private shop on the same map that allows you can buy directly. Default time limit; 1 Week - Trading Glass+, Without going to the private shop you can buy directly works on any map. Default time limit; 2 Week - Common features, You can be viewed right from cheap to expensive price of items in the private shops, you can see the features of items When you move your mouse over the item you are looking for. Level, item name and bonuses you can search on the basis of price. HowTo tutorial exists in archive, Warning: It doesn't works with published shoulder sash system. You need upgrade attr type, value amounts. Download: [Hidden Content] It doesn't looks like %100 official but it's works, My last shared and my last working in metin2.
    1 point
  2. M2 Download Center Download Here ( Internal ) Hello everyone, today I`m going to show to how to make a VIP system from SRC. You need Launcher SRC, Server SRC. So, let`s begin. 1.Launcher: Go to UserInterface/InstanceBase.h and search After that add: Search After that add: 1.2 Go to InstanceBase.cpp and search After that add: In same file search: And after that add: Search: After that add: 1.3: In file InstanceBaseEffect.cpp search After that add: Search: After that add: Search: After that add: 1.4 In fine PythonCharacterModule.cpp search: And after that add: Search: And after that add: Launcher part done. 2.SERVER 2.1 In file common/length.h search: And after that add: 2.2 In file game/src/affect.h search: And after add: 2.3 In file game/src/char.cpp search: And after add: Search And after that add: 2.4 In file game/src/config.cpp search And mofify like that: 2.5 In file db/src/ClientManager.cpp search: And after that add: 3.MYSQL 3.1 Go to your database->COMMON->RIGHT CLICK ON gmlist->DESIGN TABLE->SELECT mAuthority from Fields TAB->VALUES->ADD VIP AFTER PLAYER. 4.CLIENT 4.1. In file ROOT/PlayerSettingModule.py search And after that add: 4.2 In locale go to effect folder(WHERE YOU HAVE GM.MSE) and add THIS FILES: NEW LINK - FIXED Post any problems/bugs and we will solve them tohether Sorry for my bad english..:(
    1 point
  3. M2 Download Center Download Here ( Internal ) Hello Guys I'm currently working on this program .... i've created this project because Metin2MakePack by ymir is in console mode and i made some python scripts to help me but it's a good idea to manage my packs with a GUI window now this is the program. currently only extract button works because I'm testing the GUI. i want to see your opinion PS:to try this tool you have to click on (Browse) button first and select your pack folder to see the pack in the Pack Manager list box PS: In the future i'm working on MFC ProtoManager to (Add,Remove,Edit,Import(client/server(sql/txt),export(client/server(sql/txt)) Item\Mob proto) i got too far about this and now i'm importing (itemdesc.txt / itemlist.txt /skillddesc.txt / skilltable.txt / item_proto / mob proto) Download Link :[Hidden Content] Update (5/3/2017) around 10:19PM ProtoManager -> First of all let me say that I'm on a whole new level on this project from now on .. ProtoManager will be very dynamic a "config.json" file will be created to save your own custom table-like texts ..e.i you don't have to write anything (unless you know what your doing)... there will be "Create/Edit Table" buttons to fully customize your tables... sorry for my bad English FlyGun
    1 point
  4. Hey everyone, Whats your opinion about metin developing? Here is the latest patch from Gameforge(16.2). https://www.youtube.com/watch?v=ZM6TSEG7Kmw
    1 point
  5. Hi, Im searching for a system that prevents farming kills. Let's say that i have a quest that gives 50 STR if Player A kills 500 players. Basicly, what people do (it's very common) is: Player A creates a whole bunch of accounts/characters and kills them with their main account - so it's easier to gain that 50 STR bonus. Im looking for something that can prevent this - i know there's something around as i've seen it before. Thanks
    1 point
  6. Well done I'll try it as soon as I get it.. also please provide another link other than the attachments. mega would be a great choice.
    1 point
  7. Looks Promising.! New Skils Finaly new animation after 11 years. Way to go gameforge lets just wait for the patch ^^
    1 point
  8. I'm so waiting for all these to come as a system :DDDD
    1 point
  9. root/uiRefine.py search in class RefineDialogNew: self.successPercentage.Hide() and change with: self.successPercentage.Show()
    1 point
  10. One thing is certain. We all gonna steal these updates.
    1 point
  11. Open the binary source and search for: chatGetLinkFromHyperlink And make it look like this: PyObject * chatGetLinkFromHyperlink(PyObject * poSelf, PyObject * poArgs) { char * szHyperlink; if (!PyTuple_GetString(poArgs, 0, &szHyperlink)) return Py_BuildException(); std::string stHyperlink(szHyperlink); std::vector<std::string> results; split_string(stHyperlink, ":", results, false); // item:vnum:flag:socket0:socket1:socket2:socket3:socket4:socket5 if (0 == results[0].compare("item")) { if (results.size() < 9) return Py_BuildValue("s", ""); CItemData * pItemData = NULL; if (CItemManager::Instance().GetItemDataPointer(htoi(results[1].c_str()), &pItemData)) { char buf[1024] = { 0 }; char itemlink[256]; int len; bool isAttr = false; len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x:%x:%x:%x", htoi(results[1].c_str()), htoi(results[2].c_str()), htoi(results[3].c_str()), htoi(results[4].c_str()), htoi(results[5].c_str()), htoi(results[6].c_str()), htoi(results[7].c_str()), htoi(results[8].c_str())); if (results.size() >= 11) { for (int i = 9; i < results.size(); i += 2) { len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d", htoi(results[i].c_str()), atoi(results[i+1].c_str())); isAttr = true; } } if (isAttr) //"item:¹øÈ£:Ç÷¡±×:¼ÒÄÏ0:¼ÒÄÏ1:¼ÒÄÏ2" snprintf(buf, sizeof(buf), "|cffffc700|H%s|h[%s]|h|r", itemlink, pItemData->GetName()); else snprintf(buf, sizeof(buf), "|cfff1e6c0|H%s|h[%s]|h|r", itemlink, pItemData->GetName()); return Py_BuildValue("s", buf); } } return Py_BuildValue("s", ""); } Search for playerGetItemLink And make it look like this PyObject * playerGetItemLink(PyObject * poSelf, PyObject * poArgs) { TItemPos Cell; switch (PyTuple_Size(poArgs)) { case 1: if (!PyTuple_GetInteger(poArgs, 0, &Cell.cell)) return Py_BuildException(); break; case 2: if (!PyTuple_GetByte(poArgs, 0, &Cell.window_type)) return Py_BuildException(); if (!PyTuple_GetInteger(poArgs, 1, &Cell.cell)) return Py_BuildException(); break; default: return Py_BuildException(); } const TItemData * pPlayerItem = CPythonPlayer::Instance().GetItemData(Cell); CItemData * pItemData = NULL; char buf[1024]; if (pPlayerItem && CItemManager::Instance().GetItemDataPointer(pPlayerItem->vnum, &pItemData)) { char itemlink[256]; int len; bool isAttr = false; len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x:%x:%x:%x", pPlayerItem->vnum, pPlayerItem->flags, pPlayerItem->alSockets[0], pPlayerItem->alSockets[1], pPlayerItem->alSockets[2] , pPlayerItem->alSockets[3], pPlayerItem->alSockets[4], pPlayerItem->alSockets[5]); for (int i = 0; i < ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++i) if (pPlayerItem->aAttr[i].bType != 0) { len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d", pPlayerItem->aAttr[i].bType, pPlayerItem->aAttr[i].sValue); isAttr = true; } if( GetDefaultCodePage() == CP_ARABIC ) { if (isAttr) //"item:¹øÈ£:Ç÷¡±×:¼ÒÄÏ0:¼ÒÄÏ1:¼ÒÄÏ2" snprintf(buf, sizeof(buf), " |h|r[%s]|cffffc700|H%s|h", pItemData->GetName(), itemlink); else snprintf(buf, sizeof(buf), " |h|r[%s]|cfff1e6c0|H%s|h", pItemData->GetName(), itemlink); } else { if (isAttr) //"item:¹øÈ£:Ç÷¡±×:¼ÒÄÏ0:¼ÒÄÏ1:¼ÒÄÏ2" snprintf(buf, sizeof(buf), "|cffffc700|H%s|h[%s]|h|r", itemlink, pItemData->GetName()); else snprintf(buf, sizeof(buf), "|cfff1e6c0|H%s|h[%s]|h|r", itemlink, pItemData->GetName()); } } else buf[0] = '0'; return Py_BuildValue("s", buf); } Open uitooltip.py and search for def SetHyperlinkItem(self, tokens): It has to look like this def SetHyperlinkItem(self, tokens): minTokenCount = 3 + player.METIN_SOCKET_MAX_NUM maxTokenCount = minTokenCount + 2 * player.ATTRIBUTE_SLOT_MAX_NUM if tokens and len(tokens) >= minTokenCount and len(tokens) <= maxTokenCount: head, vnum, flag = tokens[:3] itemVnum = int(vnum, 16) metinSlot = [int(metin, 16) for metin in tokens[3:9]] rests = tokens[9:] if rests: attrSlot = [] rests.reverse() while rests: key = int(rests.pop(), 16) if rests: val = int(rests.pop()) attrSlot.append((key, val)) attrSlot += [(0, 0)] * (player.ATTRIBUTE_SLOT_MAX_NUM - len(attrSlot)) else: attrSlot = [(0, 0)] * player.ATTRIBUTE_SLOT_MAX_NUM self.ClearToolTip() self.AddItemData(itemVnum, metinSlot, attrSlot) ItemToolTip.OnUpdate(self)
    1 point
×
×
  • 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.