-
Posts
839 -
Joined
-
Days Won
393 -
Feedback
100%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Posts posted by xP3NG3Rx
-
-
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
- 2
-
Somebody had the new Pets from Metin2? Gameforge!
Yes I have
Mega.co.nz - Baby huashin
Mega.co.nz - 2 Half moon(red and blue)- 2
-
-
Major Lazer Lean On (feat. M0 & DJ Snake)
https://www.youtube.com/watch?v=YqeW9_5kURI
Feder - Goodbye ft Lyse (Original Mix)
https://www.youtube.com/watch?v=bNBPCCjZiLk
-
Omi - Cheerleader (Felix Jaehn Remix)
https://www.youtube.com/watch?v=u1l6yEBZ3g4
Redfoo - New Thanghttps://www.youtube.com/watch?v=xGiBiHocSZM
- 1
-
Here it is: tkmt2-inf-package-old-not-actual.arc - 154 KB
This client is sucks xD- 1
-
@AfterLife,
Please
,
Ol' Dirty Bastard ft. Kelis - Got Your Moneyhttps://www.youtube.com/watch?v=vxP9g3uVpm4
Calvin Harris ft. Example - We'll Be Coming Backwww.youtube.com/watch?v=kPC_evpbwDM
-
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
- 1
-
Worakls - Bleu (Original Mix)
https://www.youtube.com/watch?v=_y9-tBQ0anQ
Bedouin Soundclash - Brutal Hearts (Flic Flac Remix)https://www.youtube.com/watch?v=-Y9dWAnOR40
-
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?
- 1
-
I'm sorry but I couldn't understand what's this for.
Could you explain more please?
Can you sell your dragon stones in npc-shop?
You can say something is from ellie about your root file. What ever thanks for share us.
Kind Regards
Ken
That root is containing your wolf modifications? I did not know.
-
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:Quote*nerdface* This is not working for me, help! *endofnerdface*
ps.: I hope you understand everything, and sorry for my poor english:3ps2: 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- 18
- 2
- 2
- 5
- 18
-
I think you have to need install the latest DirectX9.
-
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.
- 1
- 1
-
Pitbull ft. Ne-Yo - Time Of Our Lives <3
https://www.youtube.com/watch?v=FUak2C_KEeU
Fritz Kalkbrenner - Back Homehttps://www.youtube.com/watch?v=5g7j0TrYKMk
-
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()
- 1
-
Here is a diff to fix it for your problem(uitarget.py).
- 3
-
Fritz Kalkbrenner - Back Home <3
https://www.youtube.com/watch?v=5g7j0TrYKMk
-
Compile your binary in Debug mode.
-
Like this:
## Wolfman content chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+42, "Bip01", "d:/ymir work/effect/hit/blow_poison/bleeding_loop.mse") chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+43, "Bip01", "d:/ymir work/effect/hit/blow_flame/flame_loop_w.mse") chrmgr.RegisterEffect(chrmgr.EFFECT_AFFECT+44, "", "d:/ymir work/pc3/common/effect/gyeokgongjang_loop_w.mse") ## End of Wolfman content
From official.
chr.AFFECT_BLEEDING: 42
chr.AFFECT_RED_POSSESSION: 43
chr.AFFECT_BLUE_POSSESSION: 44
- 1
-
Here is in xml:
https://mega.co.nz/#!2ZFljQhL!f1K1d2ZEMz7F8Dc2MkpdulG411oSS2jGtU9NrBXTBYc
Syntax:
<MobDef Vnum="101" Name="??" LocalizedName="Căo Selvagem" Type="0" Rank="0" BattleType="0" Level="1" Size="0" DropGoldMin="0" DropGoldMax="0" Experience="15" MaxHP="126" RegenCycle="6" RegenPercent="7" Defense="4" AIFlags="0" RaceFlag="1" ImmuneFlag="0" Str="3" Dex="6" Con="5" Int="2" DamageMin="20" DamageMax="24" AttackSpeed="100" MovingSpeed="100" AggressiveHPPct="0" AggressiveSight="2000" AttackRange="175" EnchantCurse="0" EnchantSlow="0" EnchantPoison="0" EnchantStun="0" EnchantCritical="0" EnchantPenetrate="0" ResistSword="0" ResistTwohand="0" ResistDagger="0" ResistBell="0" FesistFan="0" ResistBow="0" ResistFire="0" ResistElect="0" ResistMagic="0" ResistWind="0" ResistPoison="0" ResistBleeding="0" ResurrectionVnum="0" DropItemVnum="0" MountCapacity="0" OnClickType="0" Empire="0" Folder="stray_dog" DamMultiply="1.000000" SummonVnum="0" DrainSP="0" MonsterColor="0" PolymorphItemVnum="0" SkillVnum0="0" SkillLevel0="0" SkillVnum1="0" SkillLevel1="0" SkillVnum2="0" SkillLevel2="0" SkillVnum3="0" SkillLevel3="0" SkillVnum4="0" SkillLevel4="0" BerserkPoint="0" StoneSkinPoint="0" GodSpeedPoint="0" DeathBlowPoint="0" RevivePoint="0" />
- 1
[Old][Archive] - [Official] Unpacked Updates Metin2.de
in Guides & HowTo
Posted
These files are coming from last update.
Download (
Password: