-
Posts
839 -
Joined
-
Days Won
392 -
Feedback
100%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Everything posted by xP3NG3Rx
-
official [Old][Archive] - [Official] Unpacked Updates Metin2.de
xP3NG3Rx replied to Shogun's topic in Guides & HowTo
I patched the files manual with 4-5KB/s(32kbps) download speed, so... All in one the last update is 49,9MB, this was not 1-2 minutes -
official [Old][Archive] - [Official] Unpacked Updates Metin2.de
xP3NG3Rx replied to Shogun's topic in Guides & HowTo
Here is an unpacked patch from official client. There are the new pets by name: Eweriel and Ramblue (lamb_pet) metin2_patch_pet1 >> m2_15.5.5_20224 => Metin2 Download -
No name of Yang--help
xP3NG3Rx replied to shenhui19860214's topic in Community Support - Questions & Answers
That is a good idea against the public "python pickup-bot" -
official [Old][Archive] - [Official] Unpacked Updates Metin2.de
xP3NG3Rx replied to Shogun's topic in Guides & HowTo
These files are coming from last update. metin2_patch_etc metin2_patch_party metin2_patch_pet1 metin2_patch_ramadan_costume Download (Metin2 Download) Password: -
Of course because the "dstSlotPos" variable is None in some cases and not int. Replace that line in "def refresh(self,dstSlotPos,srcSlotPos):" with this: try: attrSlot = [player.GetItemAttribute(dstSlotPos, i) for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM)] except TypeError: return
-
Yes I have Mega.co.nz - Baby huashin Mega.co.nz - 2 Half moon(red and blue)
-
The new update is not containing the new pets yet, so no problem Here are the old and the new crclist files, there you can see the modified files: Old New I think the new login packet has got a new data in byte probably(last used slot).
-
Major Lazer Lean On (feat. M0 & DJ Snake) Feder - Goodbye ft Lyse (Original Mix)
-
Omi - Cheerleader (Felix Jaehn Remix) Redfoo - New Thang
-
Here it is: tkmt2-inf-package-old-not-actual.arc - 154 KB This client is sucks xD
-
@AfterLife, Ol' Dirty Bastard ft. Kelis - Got Your Money Calvin Harris ft. Example - We'll Be Coming Back
-
The first code is the Alpha.
-
The cythonized root are modified. Before cython: def AutoSetItem(self, (invenType, invenPos), itemCount): After cython: def AutoSetItem(self, inven, itemCount): invenType, invenPos = inven
-
Worakls - Bleu (Original Mix) Bedouin Soundclash - Brutal Hearts (Flic Flac Remix)
-
ACMD(do_view_equip) { #ifndef ENABLE_VIEW_EQUIP_FOR_PLAYERS if (ch->GetGMLevel() <= GM_PLAYER) return; #endif //[...] ACMD(do_view_equip) { if (ch->GetGMLevel() <= GM_PLAYER && 0 == quest::CQuestManager::instance().GetEventFlag("view_equip_for_players")) return; //[...] Or how do you think?
-
Can you sell your dragon stones in npc-shop? That root is containing your wolf modifications? I did not know.
-
M2 Download Center Download Here ( Internal ) Hello everyone, It is a nice day to release my modifications to sell items from dragon soul inventory too So let's go. Serverside: 1) Open input_main.cpp 2.1) Search(CTRL+F) this: case SHOP_SUBHEADER_CG_SELL2: 2.2) Replace that whole case with this: case SHOP_SUBHEADER_CG_SELL2: { if (uiBytes < sizeof(WORD) + sizeof(BYTE) + sizeof(BYTE)) return -1; const WORD wPos = *reinterpret_cast<const WORD*>(c_pData); const BYTE bCount = *(c_pData + sizeof(WORD)); const BYTE bType = *(c_pData + sizeof(WORD) + sizeof(BYTE)); sys_log(0, "INPUT: %s SHOP: SELL2", ch->GetName()); CShopManager::instance().Sell(ch, wPos, bCount, bType); return sizeof(WORD) + sizeof(BYTE) + sizeof(BYTE); } 3) Save and close it, now open shop_manager.h 3.1) And replace this: void Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount = 0); 3.2) With this: void Sell(LPCHARACTER ch, WORD wCell, BYTE bCount = 0, BYTE bType = 0); 4) Save it and close it. 4.1) Next step; open shop_manager.cpp and search this function: void CShopManager::Sell(LPCHARACTER ch, BYTE bCell, BYTE bCount) 4.2) Replace the parameters/arguments only with this: LPCHARACTER ch, WORD wCell, BYTE bCount, BYTE bType 4.3) Search this line: LPITEM item = ch->GetInventoryItem(bCell); 4.4) And replace it with this: LPITEM item = ch->GetItem(TItemPos(bType, wCell)); 4.5-Choosable) I added a log function too into the antiflag_sell check against hackers 4.5.1) Replace this: if (IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_SELL)) return; 4.5.2) With this(as I said, this is choosable, not important change): if (IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_SELL)) { // In clientside the sell is blocked by python if a player arrive here he's a hacker, maybe. ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can't sell this item.")); sys_err("[HACKER] Force sell-script used by name [%u]%s.", ch->GetPlayerID(), ch->GetName()); return; } 5) Save and close the file, now you are ready to build your game. Clientside-BIN: 1) Open PythonNetworkStream.h 1.1) Search this: bool SendShopSellPacketNew(BYTE bySlot, BYTE byCount); 1.2) Replace it with this: bool SendShopSellPacketNew(WORD wSlot, BYTE byCount, BYTE byType); 2) Save it, close it. Open PythonNetworkStreamPhaseGameItem.cpp 2.1) Search this function: bool CPythonNetworkStream::SendShopSellPacketNew(BYTE bySlot, BYTE byCount) 2.2) Replace the whole function with this: bool CPythonNetworkStream::SendShopSellPacketNew(WORD wSlot, BYTE byCount, BYTE byType) { if (!__CanActMainInstance()) return true; TPacketCGShop PacketShop; PacketShop.header = HEADER_CG_SHOP; PacketShop.subheader = SHOP_SUBHEADER_CG_SELL2; if (!Send(sizeof(TPacketCGShop), &PacketShop)) { Tracef("SendShopSellPacket Errorn"); return false; } if (!Send(sizeof(WORD), &wSlot)) { Tracef("SendShopAddSellPacket Errorn"); return false; } if (!Send(sizeof(BYTE), &byCount)) { Tracef("SendShopAddSellPacket Errorn"); return false; } if (!Send(sizeof(BYTE), &byType)) { Tracef("SendShopAddSellPacket Errorn"); return false; } Tracef(" SendShopSellPacketNew(wSlot=%d, byCount=%d, byType=%d)n", wSlot, byCount, byType); return SendSequence(); } 3) Save and close. Open PythonNetworkStreamModule.cpp 3.1) Search this function: PyObject* netSendShopSellPacketNew(PyObject* poSelf, PyObject* poArgs) 3.2) And replace it with this: PyObject* netSendShopSellPacketNew(PyObject* poSelf, PyObject* poArgs) { int iSlotNumber; if (!PyTuple_GetInteger(poArgs, 0, &iSlotNumber)) return Py_BuildException(); int iCount; if (!PyTuple_GetInteger(poArgs, 1, &iCount)) return Py_BuildException(); int iType; if (!PyTuple_GetInteger(poArgs, 2, &iType)) return Py_BuildException(); CPythonNetworkStream& rkNetStream=CPythonNetworkStream::Instance(); rkNetStream.SendShopSellPacketNew(iSlotNumber, iCount, iType); return Py_BuildNone(); } 4) Save, close and build Clientside-Python: Here you have to do it by yourself. The new function of the m2net/net module are called by 3 files uiInventory.py uiDragonSoul.py uiShop.py You have to edit these files if your files are not containing these updates, but thanks to [sA]Con for the newer root package from his release ^^ Here you can download the "new" root package which is containing every changes for this and for wolfman. I do not recomment to replace or overwrite your files with those files! Use a comparer tool like Notepad++ Compare plugin to check the differences at "sell" keyword. Tested and works, but if you found bug/mistake/error please write into this thread a detailed post. So not like this: ps.: I hope you understand everything, and sorry for my poor english:3 ps2: In the official bin this message " SendShopSellPacketNew(bySlot=%d, byCount=%d, byType=%d)" can be found, but I renamed the variable too, hehe :-D. With Regards, P3NG3R
-
I think you have to need install the latest DirectX9.
-
Granny viewer - change background color
xP3NG3Rx replied to Maslovicz's topic in Community Support - Questions & Answers
I do not know, but this is a good idea to make good videos -
No, you have to rename or fill those strings with 0x00's. So PyRun_SimpleString in hex: 50 79 52 75 6E 5F 53 69 6D 70 6C 65 53 74 72 69 6E 67 Replace with this: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 And do same with PyRun_SimpleFile too.
-
Pitbull ft. Ne-Yo - Time Of Our Lives <3 Fritz Kalkbrenner - Back Home
-
[question] ymir untouched source
xP3NG3Rx replied to cosmin24hd's topic in Community Support - Questions & Answers
I have installed 2008PRO+SP1, 2010PRO+SP1, 2012U, 2013U VS and I compile my files in VS2013Ultimate with 2008 toolset. Installed other contents from Microsoft: Microsoft.Windows SDK for Windows 7 and .NET Framework 3.5 Microsoft.Windows SDK for Windows 7 and .NET Framework 4 Microsoft.Windows Server 2008 SDK and .NET Framework 3.5 (If i do not install these SDKs my VS tells me IL mismatch p1 p2 version blabla error message.) Only one problem with 2013VS: Huge RAM-Consuming But if you want to start a server, build your server src on BSD with gcc/g++. -
Everyone, but if you want to do it for GMs only, replace the ShowDefaultButton function with this: def ShowDefaultButton(self): self.isShowButton = True self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_WHISPER]) self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_EXCHANGE]) if chr.IsGameMaster(player.GetMainCharacterIndex()): self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_VIEW_EQUIPMENT]) self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_FIGHT]) self.showingButtonList.append(self.buttonDict[localeInfo.TARGET_BUTTON_EMOTION_ALLOW]) for button in self.showingButtonList: button.Show()
-
Here is a diff to fix it for your problem(uitarget.py). [Hidden Content]
-
Fritz Kalkbrenner - Back Home <3