Jump to content
metin2dev

xP3NG3Rx

Developer
  • Content count

    480
  • Joined

  • Last visited

  • Days Won

    116

Everything posted by xP3NG3Rx

  1. xP3NG3Rx

    c++ [C++] Tab Targeting (GF v16.1)

    Here is the official-like version if someone interested in, yeah, I know, it's weird code. The official is in the CPythonCharacterManager class I think, I've put it into the CInstanceBase, and they use different map, but doesn't matter. I did some tests but I didn't stressed out in every situations, so I'm not sure this is safe enough to use. Oh, and I'm using it via python: Pseudo.c
  2. xP3NG3Rx

    [GF] Race height of actors

    Hello. Today I'd like to share this little stuff what I reversed from the official binary a month ago. This will fix the positions of textails(name position changes by every update packet on the main character), and also the position of the emotions when you are on a mount . I've made a little demonstration video where you can see a private server without the fix, my fixxed version and the official aswell. 1. Client/bin/playersettingmodule.py 2. Client/bin/introLoading.py 3. Place the race_height.txt from the official client into the yours and pack it in the root. 4. Client/UserInterface/PythonCharacterManagerModule.cpp 5. Client/GameLib/RaceManager.h 6. Client/GameLib/RaceManager.cpp 7. Client/UserInterface/InstanceBase.h 8. Client/UserInterface/InstanceBase.cpp 9. Client/UserInterface/InstanceBaseEffect.cpp 10. Client/UserInterface/PythonTextTail.cpp 11. Client/GameLib/ActorInstance.cpp I hope you like it, and if you find any problem just let me know in this topic.
  3. Latest update from .DE client: Hydra run content (boss, pet, map) <!> Protos are broken, don't use them <!> Download
  4. Hello everyone. It's a good day to share an old code with you. First of all you need to know: I don't help to install it. Don't even take the contact with me about it. The whole code is written by me, and reversed from official binaries. At the beginning do a backup for your files(srcs+pys) and READ CAREFULLY the readme. W/o brain.exe please close this tab, or your browser, thank you for your understanding. Preview: Download.exe Enjoy & #h4v3fun, pngr
  5. xP3NG3Rx

    open Update text in Python

    Yes, create it then if it isn't exists. The binary will call it aprox. 60 times per second.
  6. xP3NG3Rx

    open Update text in Python

    Put it into the OnUpdate function.
  7. xP3NG3Rx

    [Group] Daily Music - Share your favorite!

    Blah blah blah
  8. xP3NG3Rx

    open /n announce bar

    No, that is the multiline version of the bigboard for ox-quiz, he is looking for this:
  9. xP3NG3Rx

    c++ [RLS]Effect Give System

    Just to make it sure, right? The best part is the importing of the interfacemodule, you always made my day.
  10. xP3NG3Rx

    open Resistance HH

    This came with the PvP balancing, but the new pendant system conatins too. But really, a new bonus implementation is that hard? I think better if you look for another "hobby".
  11. They did it again... Now the gameguard isn't runing. Here is the whole pack with item and mob protos, but the mob_proto isn't clear just dumped with false values, and ofc I don't recommend of use one of them either. (Exclude files: root, outdoor, outdoorempirebattle1) https://mega.nz/#!GBhjkLbZ!CU1tB_6RrgsD-PkosOJl-MeKXlwD3q7tSIufoxCyFJY
  12. xP3NG3Rx

    solved Stream module

    That is the class pointer of the MainStream class. networkModule.py: introLogin.py:
  13. xP3NG3Rx

    solved Cube System Limit Yang

    Probably with this? else if ("info" == TokenVector[1]) { if (5 != TokenVector.size()) { TraceError("CPythonNetworkStream::ServerCommand(c_szCommand=%s) - Strange Parameter Count : %s", c_szCommand); return; } long long gold = atoll(TokenVector[2].c_str()); UINT itemVnum = atoi(TokenVector[3].c_str()); UINT count = atoi(TokenVector[4].c_str()); PyObject * poArgs = PyTuple_New(3); PyTuple_SetItem(poArgs, 0, PyLong_FromLongLong(gold)); PyTuple_SetItem(poArgs, 1, PyInt_FromLong(itemVnum)); PyTuple_SetItem(poArgs, 2, PyInt_FromLong(count)); PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_GAME], "BINARY_Cube_UpdateInfo", poArgs); }
  14. xP3NG3Rx

    open Slot in quiver

    Once I've met with this problem, the reason was a comma before the new weapon type, nothing else. It was missing from here: The weapon type of the quiver has been overflowed and got 255 as value. You can check it with this code: if app.ENABLE_QUIVER_SYSTEM: import chat chat.AppendChat(1, str((itemType, itemSubType))) if itemSubType != item.WEAPON_QUIVER: self.__AppendMetinSlotInfo(metinSlot) else: bHasRealtimeFlag = 0 for i in xrange(item.LIMIT_MAX_NUM): (limitType, limitValue) = item.GetLimit(i) if item.LIMIT_REAL_TIME == limitType: bHasRealtimeFlag = 1 if bHasRealtimeFlag == 1: self.AppendMallItemLastTime(metinSlot[0]) else: self.__AppendMetinSlotInfo(metinSlot)
  15. Hello devs. I think that webzen already fixxed this, because I can't reverse the CSlotWindow::OnMouseOver it may be virtualized :sob: The problem is that, when you are trying to make conditions for the slot with runtime mouse overin, the slot doesn't handle the overin event until now. Here is a demonstration video to show the fixxed problem. Without this fix the MouseOverIn event was running down if your cursor came to the slotboard which is the board of the slots :| instead of the slot. It's difficult to explain. Before you start to implement it, make safety backup of your files! 1.) Define the new OverIn event into the SlotWindow class in the ui.py file: 2.) Define new functions and a helper variable into the eterPythonLib\PythonSlotWindow.h. 3.) Make fit, and add the new functions into the eterPythonLib\PythonSlotWindow.cpp. Example usage: def LoadObj(self): self.wndItem = self.GetChild("ItemSlot") self.wndItem.SetOverInEvent(ui.__mem_func__(self.OverIn)) self.wndItem.SetOverOutEvent(ui.__mem_func__(self.OverOut)) def OverIn(self, selectedSlotPos): chat.AppendChat(chat.CHAT_TYPE_INFO, "OverIn %d", selectedSlotPos) def OverOut(self): chat.AppendChat(chat.CHAT_TYPE_INFO, "OverOut")
  16. xP3NG3Rx

    c++ Chat history update

    Hello everyone. Here is a little snippet for the chat history. I made this to turn back the "All" state if you turn off every each button.
  17. This isn't a bad idea, maybe I'll take it to my TODO list.
  18. Via antiflag.
  19. Hello, This little thing is marks your pet seal into your inventory like the autopotion. This arrives with the v17.5 patch. Open PetSystem.cpp and replace or make it fit for you: void CPetActor::SetSummonItem(LPITEM pItem) { if (NULL == pItem) { LPITEM pSummonItem = ITEM_MANAGER::instance().FindByVID(m_dwSummonItemVID); if (NULL != pSummonItem) pSummonItem->SetSocket(1, FALSE); m_dwSummonItemVID = 0; m_dwSummonItemVnum = 0; return; } pItem->SetSocket(1, TRUE); m_dwSummonItemVID = pItem->GetVID(); m_dwSummonItemVnum = pItem->GetVnum(); } After that open the uiInventory.py and paste this code below the autopotion if-statement in the RefreshBagSlotWindow function. elif itemVnum >= 53001 and itemVnum <= 53256: metinSocket = [player.GetItemMetinSocket(globalSlotNumber, j) for j in xrange(player.METIN_SOCKET_MAX_NUM)]# <!> globalSlotNumber may be different <!> isActivated = 0 != metinSocket[1] if isActivated: self.wndItem.ActivateSlot(i) else: self.wndItem.DeactivateSlot(i)
  20. xP3NG3Rx

    c++ New Item Type = ITEM_GACHA

    Thanks for it.
×