-
Posts
839 -
Joined
-
Days Won
393 -
Feedback
100%
Content Type
Forums
Store
Third Party - Providers Directory
Feature Plan
Release Notes
Docs
Events
Everything posted by xP3NG3Rx
-
Here is a little fix to disable the double potion sounds (green & purple): UI\PythonItem.cpp -> DWORD CPythonItem::__GetUseSoundType(const CItemData& c_rkItemData) Search the case of the ability_up and replace it with this: case CItemData::USE_ABILITY_UP: { if ((c_rkItemData.GetIndex() == 27053 || c_rkItemData.GetIndex() == 27054) || (c_rkItemData.GetIndex() >= 27100 && c_rkItemData.GetIndex() <= 27105) || (c_rkItemData.GetIndex() >= 27110 && c_rkItemData.GetIndex() <= 27115)) return USESOUND_NONE; else return USESOUND_POTION; } break; This is an exception to block the playusesound when you are using an item from inventory: netSendItemUsePacket -> CPythonNetworkStream::SendItemUsePacket -> __PlayInventoryItemUseSound Because of the SpecificEffectPacket plays the sound of the potions as well.
-
Reducing Waiting Time for Respawn (player)
xP3NG3Rx replied to emre408's topic in Community Support - Questions & Answers
cmd_general.cpp ACMD(do_restart) iTimeToDead is a counter which is counting down from 180 while the deadevent is active == 3*60 --> If it passed the character automaticaly will be restarted to the town. Here: You have to edit the 170 for yourself. This is the restart at the current position, which is 10 secs(180-170), if you want 3 secs only, just change it to 177(180-3). And here is the restart to town: 180-173 = 7 secs, I hope you'll understand. -
uiAffectShower.py PythonCharacterModule.cpp RULES!
-
all mobs color transfer to blue
xP3NG3Rx replied to NeXoN's topic in Community Support - Questions & Answers
You did it wrong. Did you add new column to your mob_proto.txt to the right place? Maybe the columns are mixed in the txt and the dump_proto packs wrong your proto. Read the rules again and keep it in... -
Fix the tabs, make fit to your client and a colon is missing from IsEq line. if not player.IsEquipmentSlot(attachedSlotPos):########################################## m2net.SendSafeboxCheckinPacket(attachedInvenType, attachedSlotPos, selectedSlotPos)
-
[Search Update] ItemProto & MobProto
xP3NG3Rx replied to Rusef's topic in Paid Support / Searching / Recruiting
Easy -
## Slot Event def SelectEmptySlot(self, selectedSlotPos): selectedSlotPos = self.__LocalPosToGlobalPos(selectedSlotPos) if mouseModule.mouseController.isAttached(): attachedSlotType = mouseModule.mouseController.GetAttachedType() attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber() if player.SLOT_TYPE_SAFEBOX == attachedSlotType: m2net.SendSafeboxItemMovePacket(attachedSlotPos, selectedSlotPos, 0) #snd.PlaySound("sound/ui/drop.wav") else: attachedInvenType = player.SlotTypeToInvenType(attachedSlotType) if player.RESERVED_WINDOW == attachedInvenType: return if player.ITEM_MONEY == mouseModule.mouseController.GetAttachedItemIndex(): #m2net.SendSafeboxDepositMoneyPacket(mouseModule.mouseController.GetAttachedItemCount()) snd.PlaySound("sound/ui/money.wav") else: if not player.IsEquipmentSlot(attachedSlotPos)########################################## m2net.SendSafeboxCheckinPacket(attachedInvenType, attachedSlotPos, selectedSlotPos) #snd.PlaySound("sound/ui/drop.wav") mouseModule.mouseController.DeattachObject()
-
Hello devs. I think that webzen already fixxed this, because I can't reverse the CSlotWindow::OnMouseOver it may be virtualized ? 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")
-
official Official Unpacked Updates Metin2 ? No Spam ?
xP3NG3Rx replied to pollux's topic in Guides & HowTo
metin2_patch_user_situation (Mega) (Metin2 Download) metin2.sg eterPacks 2017.04.29. (Mega) (Metin2 Download)- 125 replies
-
- 276
-
SoulBind & Cheque & AdvanceRefine Systems
xP3NG3Rx replied to MrLibya's topic in Features & Metin2 Systems
Bye -
That is just the name of the net module. Easy to handle this problem from the error message if someone doesn't notice. And no need source to change the name of the built-in modules , but yeah need to care of it if someone doesn't renamed it.
-
M2 Download Center Download Here ( Internal ) Hello devs. I don't want to talk a lot about nothing, but I have to say what is this. With this little modification the party and the friend requests are cancelled automatically in seconds what you can change in the Open method. ( pyObj.Open(sec) ) Preview video: Make a backup before you are implementing it! And if you found a bug, please explain it. 0.) Open your uiCommon.py file and import chat module. 1.) Replace the whole QuestionDialogWithTimeLimit class in the uiCommon.py file with this: class QuestionDialogWithTimeLimit(QuestionDialog2): def __init__(self): ui.ScriptWindow.__init__(self) self.__CreateDialog() self.endTime = 0 self.timeOverMsg = 0 self.timeOverEvent = None self.timeOverEventArgs = None def __del__(self): QuestionDialog2.__del__(self) def __CreateDialog(self): pyScrLoader = ui.PythonScriptLoader() pyScrLoader.LoadScriptFile(self, "uiscript/questiondialog2.py") self.board = self.GetChild("board") self.textLine1 = self.GetChild("message1") self.textLine2 = self.GetChild("message2") self.acceptButton = self.GetChild("accept") self.cancelButton = self.GetChild("cancel") def Open(self, timeout): self.SetCenterPosition() self.SetTop() self.Show() self.endTime = app.GetTime() + timeout def SetTimeOverEvent(self, event, *args): self.timeOverEvent = event self.timeOverEventArgs = args def SetTimeOverMsg(self, msg): self.timeOverMsg = msg def OnTimeOver(self): if self.timeOverEvent: apply(self.timeOverEvent, self.timeOverEventArgs) if self.timeOverMsg: chat.AppendChat(chat.CHAT_TYPE_INFO, self.timeOverMsg) def OnUpdate(self): leftTime = max(0, self.endTime - app.GetTime()) self.SetText2(localeInfo.UI_LEFT_TIME % (leftTime)) if leftTime <= 0: self.OnTimeOver() 2.) Open your game.py file and replace each of these three methods to these: def OnMessengerAddFriendQuestion(self, name): messengerAddFriendQuestion = uiCommon.QuestionDialogWithTimeLimit() messengerAddFriendQuestion.SetText1(localeInfo.MESSENGER_DO_YOU_ACCEPT_ADD_FRIEND % (name)) messengerAddFriendQuestion.SetTimeOverMsg(localeInfo.MESSENGER_ADD_FRIEND_ANSWER_TIMEOVER) messengerAddFriendQuestion.SetTimeOverEvent(self.OnDenyAddFriend) messengerAddFriendQuestion.SetAcceptEvent(ui.__mem_func__(self.OnAcceptAddFriend)) messengerAddFriendQuestion.SetCancelEvent(ui.__mem_func__(self.OnDenyAddFriend)) messengerAddFriendQuestion.Open(10) messengerAddFriendQuestion.name = name self.messengerAddFriendQuestion = messengerAddFriendQuestion def RecvPartyInviteQuestion(self, leaderVID, leaderName): partyInviteQuestionDialog = uiCommon.QuestionDialogWithTimeLimit() partyInviteQuestionDialog.SetText1(leaderName + localeInfo.PARTY_DO_YOU_JOIN) partyInviteQuestionDialog.SetTimeOverMsg(localeInfo.PARTY_ANSWER_TIMEOVER) partyInviteQuestionDialog.SetTimeOverEvent(self.AnswerPartyInvite, False) partyInviteQuestionDialog.SetAcceptEvent(lambda arg=True: self.AnswerPartyInvite(arg)) partyInviteQuestionDialog.SetCancelEvent(lambda arg=False: self.AnswerPartyInvite(arg)) partyInviteQuestionDialog.Open(10) partyInviteQuestionDialog.partyLeaderVID = leaderVID self.partyInviteQuestionDialog = partyInviteQuestionDialog def BINARY_OnQuestConfirm(self, msg, timeout, pid): confirmDialog = uiCommon.QuestionDialogWithTimeLimit() confirmDialog.SetText1(msg) confirmDialog.Open(timeout) confirmDialog.SetAcceptEvent(lambda answer=True, pid=pid: m2net.SendQuestConfirmPacket(answer, pid) or self.confirmDialog.Hide()) confirmDialog.SetCancelEvent(lambda answer=False, pid=pid: m2net.SendQuestConfirmPacket(answer, pid) or self.confirmDialog.Hide()) self.confirmDialog = confirmDialog 3.) Open your locale/xy/locale_game.txt and add these if these aren't exists: MESSENGER_ADD_FRIEND_ANSWER_TIMEOVER Friend request was cancelled. PARTY_ANSWER_TIMEOVER Party invite was cancelled. Remove MESSENGER_DO_YOU_ACCEPT_ADD_FRIEND_2 line and change MESSENGER_DO_YOU_ACCEPT_ADD_FRIEND_1 with this: MESSENGER_DO_YOU_ACCEPT_ADD_FRIEND %s added you as a friend, accept? At last take a look at your files and correct the net module calls and the True-False syntax. net <--> m2net, True <--> TRUE
- 13 replies
-
- 49
-
official [Old][Archive] - [Official] Unpacked Updates Metin2.de
xP3NG3Rx replied to Shogun's topic in Guides & HowTo
-
official [Old][Archive] - [Official] Unpacked Updates Metin2.de
xP3NG3Rx replied to Shogun's topic in Guides & HowTo
This topic is not file request thread, please stop it. Everything* is public from the official client. 17.0.7 whole unpacked client: [Hidden Content] 17.0.12 whole unpacked client: [Hidden Content] 17.1 updates only: [Hidden Content] -
Channel Switcher like WoM2
xP3NG3Rx replied to BackPlayer's topic in Community Support - Questions & Answers
def __GetServerID(self): regionID = self.__GetRegionID() serverID = 0 for i in serverInfo.REGION_DICT[regionID].keys(): if serverInfo.REGION_DICT[regionID][i]["name"] == net.GetServerInfo().split(",")[0]: serverID = int(i) break return serverID -
official [Old][Archive] - [Official] Unpacked Updates Metin2.de
xP3NG3Rx replied to Shogun's topic in Guides & HowTo
Forget about it. -
Seems 1st of April fool. No, not seems, exactly it is.
-
This isn't because of this, but If I remember as well it's a global problem, I don't know how do I fixed it already.
-
official [Old][Archive] - [Official] Unpacked Updates Metin2.de
xP3NG3Rx replied to Shogun's topic in Guides & HowTo
I don't know anything about the maps. Pet icons: 53250.tga / 53251.tga -
OnUpdate Isn't the best solution, but seems good. def OnUpdate(self): # self.RefreshBagSlotWindow() for i in xrange(player.INVENTORY_PAGE_SIZE): if self.wndItem: GlobalSlot = self.__InventoryLocalSlotPosToGlobalSlotPos(i) if player.GetItemLook(GlobalSlot): self.wndItem.EnableSlotCoverImage(i) else: self.wndItem.DisableSlotCoverImage(i) if player.FindActivedChangeLookSlot(0) == GlobalSlot or player.FindActivedChangeLookSlot(1) == GlobalSlot: self.wndItem.ActivateChangeLookSlot(i) else: self.wndItem.DeactivateChangeLookSlot(i)
-
official [Old][Archive] - [Official] Unpacked Updates Metin2.de
xP3NG3Rx replied to Shogun's topic in Guides & HowTo
The new update(v17.1) is containing the following unpacked packfiles: locale(en,us,de,cz,hu) w/ unpacked protos <!!> via new antiflags <!!> root <!> dumped python and built-in datas <!> (Not raw .python files!) uiscript icon patch_easter2k16 patch_etc_costume1 patch_pc3_m patch_public patch_ramadan patch_summer outdoormilgyo1 outdoortrent02 [Hidden Content] [Hidden Content]- 840 replies
-
- 103
-
official [Old][Archive] - [Official] Unpacked Updates Metin2.de
xP3NG3Rx replied to Shogun's topic in Guides & HowTo
Metin2(CN)_eterPacks_2017_03_25 Metin2 Download 18.0 isn't on live server yet. -
official GF-Like Inventory Slot Marking System
xP3NG3Rx replied to xP3NG3Rx's topic in Features & Metin2 Systems
Let's start to learn minimal c++ knowledge or use the google. -
official [Old][Archive] - [Official] Unpacked Updates Metin2.de
xP3NG3Rx replied to Shogun's topic in Guides & HowTo
Stop copy and paste.. Here is the new one: M2(cz)_EterPacks_17.0.12.7z Metin2 Download- 840 replies
-
- 198
-
official GF-Like Inventory Slot Marking System
xP3NG3Rx replied to xP3NG3Rx's topic in Features & Metin2 Systems
These should be your fault, because I never experienced those problems, still under developing neither. Uploading(available in next 30 mins): [Hidden Content] Btw: Shiro2/3 is using this a long time ago.- 75 replies
-
- 22