Jump to content

Ken

Inactive Member
  • Posts

    726
  • Joined

  • Last visited

  • Days Won

    44
  • Feedback

    0%

Everything posted by Ken

  1. Ken

    Small Messenger Fix

    A small fix about a query of messenger system. When you remove any person on your list, the companion will continue to see your name on his list (when the companion relog in the game again). This query will remove both of them's contact in the database. Best Regards Ken
  2. Ken

    Small Messenger Fix

    I've updated the codes again. Good luck
  3. Hi, I'd like to share a small fix about the messenger system. what exactly are we fixing? The main problem is when you remove any person from your list, the companion's messenger list is not refreshing until relog in. Webzen has fixed this situation with a small packet. That packet will provide to remove the name from the list. There is no part of Python because it's already done by Ymir. For serverside For client side Best Regards Ken
  4. @Johnny69 I have looked at the binary file. The only way that you must need to have a Brazil IP Address. I have thought they're blocking it with block country feature of metin2 but when I look at a bit deeper, I saw it wasn't. They're blocking the whole IP addresses on their firewall. About Xigncode - Most people are saying that it's just joke. Also, I'm thinking about why Xigncode is forcing binary to close itself. (Could be incompatible because when I watch the process on Process Hacker 2, the operating system is only running WerFault.exe) When logininfo.py (I'm not talking about loginInfo.xml) is running, it's reading locale.cfg to change something inside. (Including IP Addresses)
  5. I tried to ping the ip addresses but it looks like it's dead. (Including many countries). I think, there is no way to login the server without brazil ip address. Did you try to login the server with a brazil ip address?
  6. After @Johnny69's file, the client is working fine. The only problem is why the server is not respond to client about '..' Did you figure out or still same?
  7. I have the same problem at the moment. Xigncode is forcing binary to close for one reason. I have thought that they have blocked the ip addresses. However, it looks like xigncode is blocking us If I find any way, I'll let you know about it. PS1: It looks like Xigncode is incompatible with Windows 10. (That's the reason why you can't open it - I guess) The operating system is trying to stop it (Werfault.exe) when you try to open metin2client.bin. I will test the server on the other operating system.
  8. Can you post the brazil server's ip address and ports? I'd like to test something on it, then I can tell you. Best Regards Ken
  9. You might right about tetris game
  10. This release is just information about fish event. I just made the class from their binary files. Some functions are not still accessible yet because of define flags. class FishEventGridSlotWindow(Window): def __init__(self): Window.__init__(self) self.startIndex = 0 def __del__(self): Window.__del__(self) def RegisterWindow(self, layer): self.hWnd = wndMgr.RegisterFishEventGridSlotWindow(self, layer) def ArrangeSlot(self, startIndex, xCount, yCount, xSize, ySize, xBlank, yBlank): self.startIndex = startIndex wndMgr.ArrangeSlot(self.hWnd, startIndex, xCount, yCount, xSize, ySize, xBlank, yBlank) def GetStartIndex(self): return self.startIndex # The newest compiled binary file is not contain this function yet. (ENABLE_FISH_EVENT) def SetPickedAreaRender(self, unkArg1): pass Best Regards Ken
  11. I agree with you about that. You don't have to follow what exactly ymir did until now. (Except a few things). About code's readability, you can use comment line for that. About naming variables, you're right. It still depends on you. You can use it or not. Best Regards Ken
  12. It depends on you. In my case, pkItem is useless if you're just using that for a condition. if (ch->GetItem(p->ItemPos) && ch->GetItem(p->ItemPos)->IsEquipped()) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<Storage> You can't store an equiped item.")); return; } I think, it's much better now Best Regards Ken
  13. LPITEM pkItem = ch->GetItem(p->ItemPos); // Make sure pkItem is not null pointer. Without that condition, the channel might down. if (pkItem && true == pkItem->IsEquipped()) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<Storage> You can't store an equiped item.")); return; } Best Regards Ken
  14. It looks like it's still NPC. Try this 20338 ???????? Soccer 1 0 3 250 0 STUN,SLOW,CURSE,TERROR 0 bkarcher 0 0 0 0 0 0 0 1000000 10 100 0 0 10 999 100 100 0 100 5000 0 0 0 0 0 0 0 0 100 100 100 100 100 100 100 100 100 100 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Also, I looked Metin2.SG's football event. A game master send a duel for each them and starting. (I know it's manual) Best Regards Ken
  15. You need to a trigger for that to start timer in that map. It could be a login or logout or kill or pick up and so on for trigger. when login with pc.get_map_index() == xx begin server_timer("WhatEverYouCall", Number) end when WhatEverYouCall.server_timer begin regen_in_map(mapindex, path) end I just wanted to give a basic simple for you to understand. Best Regards Ken
  16. Metin2.SG made the football as a mob not a npc. You just need to change type of the football. Then you can attack it Best Regards Ken
  17. You just have to search the function name in the files. You just need to include it in the cpp file when you found. Best Regards Ken
  18. It's probably missing the library in liblua folder (liblua.a). You just have to recompile liblua again. Best Regards Ken
  19. Mask Type and mask subtype will use for private shop search. (It's for list the items order by Type and Subtypes) Best Regards Ken
  20. With new changes, webzen is added new things in item proto. The newest item proto has two new bytes and vnum range. Here is the newest item proto struct typedef struct { DWORD dwVnum; DWORD dwVnumRange; char szName[ITEM_NAME_MAX_LEN + 1]; char szLocaleName[ITEM_NAME_MAX_LEN + 1]; BYTE bType; BYTE bSubType; BYTE bWeight; BYTE bSize; DWORD dwAntiFlags; DWORD dwFlags; DWORD dwWearFlags; DWORD dwImmuneFlag; DWORD dwGold; DWORD dwShopBuyPrice; TItemLimit aLimits[ITEM_LIMIT_MAX_NUM]; TItemApply aApplies[ITEM_APPLY_MAX_NUM]; long alValues[ITEM_VALUES_MAX_NUM]; long alSockets[ITEM_SOCKET_MAX_NUM]; DWORD dwRefinedVnum; WORD wRefineSet; BYTE bAlterToMagicItemPct; BYTE bSpecular; BYTE bGainSocketPct; BYTE bMaskType; BYTE bMaskSubType; } TClientItemTable; ItemData.cpp BYTE CItemData::GetMaskType() const { return m_ItemTable.bMaskType; } BYTE CItemData::GetMaskSubType() const { return m_ItemTable.bMaskSubType; } PythonItemModule.cpp PyObject * itemGetMaskType(PyObject * poSelf, PyObject * poArgs) { CItemData * pItemData = CItemManager::Instance().GetSelectedItemDataPointer(); if (!pItemData) return Py_BuildException("no selected item data"); return Py_BuildValue("i", pItemData->GetMaskType()); } PyObject * itemGetMaskSubType(PyObject * poSelf, PyObject * poArgs) { CItemData * pItemData = CItemManager::Instance().GetSelectedItemDataPointer(); if (!pItemData) return Py_BuildException("no selected item data"); return Py_BuildValue("i", pItemData->GetMaskSubType()); } Here are the newest item proto text files. [Hidden Content] Best Regards Ken
  21. @Koray If you can't understand the goal of GetPCForce, don't use the source files. They may miss a few condition but your goal is not totally fix. Your method is just about extra make sure.. Best Regards Ken
  22. @Koray It's not totally fix. It's about code style. If you try to use CQuestManager::GetPCForce for a NPC or monster or pet, Of course you will get a null pointer. It more makes sense to write the codes well. Best Regards Ken
  23. @Koray If the system didn't know anything about newmember is pc or not. even If you edit that function, it will be unnecessary. Best Regards Ken
  24. Ohm, it's not bug it's just a small mistake.
×
×
  • 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.