Anstatt sie einfach hochzuladen was 3 sekunden dauert
Bitte melden Sie sich an, um diesen Link zu sehen.
Anstatt sie einfach hochzuladen was 3 sekunden dauert
Bitte melden Sie sich an, um diesen Link zu sehen.
Ich klicke das Siegel an Das Siegel geht in den Slot und das Mount erscheint (Danach kann ich ganz normal mit STRG + G auf das Mount steigen sofern ich eben eine Zeit Angabe in der DB mache)
Mount Costume System + Mount Follow System verbaut
Wenn ich bei Limittype0 und Limitvalue0 jeweils eine 0 angebe geht das Siegel zwar in den Kostüm Slot man kann auch aufsteigen aber direkt danach wird man wieder abgesetzt vom Mount
Gebe ich allerdings bei Limitvalue0 ne 8 an (REAL_TIME_FIRST_USE) und eine 0 bei Limitvalue0 dann macht der mir automatisch ne Zeitangabe von 7 Tagen (diese funktion habe ich gefunden im Source)
Sprich gebe ich in der DB an das das Siegel eine Zeit beschränkung hat geht es nur wenn ich keine angebe geht es nicht
Btw geht es mittels 7 oder 9 auch nicht als REAL_TIME und TIMED_BASED_ON_WEAR nur mittels REAL_TIME_FIRST_USE aber wie gesagt eigentlich wollen wir keine Zeit Beschränkúng darauf haben! Ja mir ist klar ich könnte das Mount auf 900 Jahre setzen aber dennoch verstehe ich nicht wieso das so ist
Suche immer noch ne Antwort darauf mit nem Neuen Siegel ist es genau das gleiche und auch in der pc_mount questfunktion wird nirgenst definiert das man eine Zeit Angabe benötigt
Guten Tag,
die letzten Tage versuchte ich herauszufinden warum man bei den Mounts ne Zeitangabe machen muss damit man auf ihnen reiten kann!
Leider bin ich nicht wirklich fündig geworden! Deswegen die Frage hier wieso ist das so? Ich hab im Source danach gesucht aber bin entweder zu blind oder zu blöd ne Stelle zu finden wo das definiert wird!
Vlt hat da einer von euch ne Ahnung
Lol wusste gar nicht das es Public ist hab das einfach nur per Zufall gesehen und wollte es nachmachen alles klar
Danke für den Link hatte nen Fehler in der uidragonsoul.py funktioniert jetzt
Hey Leute!
Als ich mich gestern ein wenig schlau über das DSA gemacht habe (keinen plan davon gehabt) und dann im Wiki von DE etwas gelesen habe fiel mir auf das die ja einen neuen Stein hinzugefügt haben! Also wollte ich den auch haben!
Funktioniert auch soweit ich kann den Legendären Uppen zum Mythischen, kann ihn auch in den Slot packen auch wieder raus nehmen alles Funktioniert bis auf 1 Kleinigkeit!
Bitte melden Sie sich an, um diesen Link zu sehen.
Wie man auf der Gif erkennen kann kann ich zwar den Slot vom Mythischen 1 mal anklicken allerdings bleibt er aktiviert (refresht sich nicht wenn ich einen anderen auswähle) somit kann ich ihn kein 2 mal hintereinander anklicken!
Ich lad die dragonsoulwindow.py und uidragonsoul.py mal als Anhang mit hoch vlt seht ihr ja einen Fehler!
Hey Leute ich hab meine item und mob_proto mit den Spalten etc an DE angepasst
So nun hab ich die Frage an euch ob ihr zufällig wisst für was die Spalte 67AttrMaterial gut ist bzw die Funktion dahinter?
Vom Namen her würde ich ja auf 6/7 Boni tippen aber was genau verbirgt sich dahinter
Ja stimmt man fängt klein an aber du fängst direkt mit Marty Sama file (M2u) die dort public sind 🤷♂️natürlich reicht dein Wissen für nicht aus. Wieso ich Sama sage weil ich den selben fehler hatte als ich versucht habe seine files auf meinem root zu installieren 🤷♂️vielleicht solltest du als Anfänger mal fliege files installieren und nicht die Marty Sama files von m2u
Schwachsinn. Marty sind halt die besten.
Wer auf fliege wechselt obwohl er Marty hatte, ist selbst Schuld.
Klar sind fliege nach Marty die besten. Trotzdem kommen sie nicht an Marty ran.
Dennoch für einen Anfänger nicht geeignet wenn man keine Ahnung hat was man auf dem Server installieren muss um den Source kompilieren zu können
B2T:
Lösch die Files nutz wie erwähnt zum üben mal die Clean Fliege Files und steig danach auf Marty Files um (public auf m2u würd dir aber eher zum akuf bei ihm raten da gibt es auch support)
How to add it if my server read SQL not txt?
Type 27 and Subtype 0 for Normal Blend
Type 27 and Subtype 1 for Infinity Blend
Bitte melden Sie sich an, um diesen Link zu sehen.
Kann das nur empfehlen hab selber das erworben und Funktioniert 1A
Habs ihm schon gemacht gehabt habs ihm grade geschrieben er soll es als erledigt markieren
Aze hat mal geschrieben:
Zitat
Die gi_long_sword.mse brauchst du erst gar nicht suchen, da diese nicht existiert. Weder in alten Clienten, noch in aktuellen. Hatte damals 2013 das selbe Problem und bin nie fündig geworden.
Diese gi_long_sword.mse müsste von der gihyeol.msa geladen werden, wenn ich mich richtig erinnere. Den Part kannst du einfach rauslöschen. Ist wahrscheinlich eh nur ein Überbleibsel vergangener Metin2 Zeiten, der ohne Nutzen ist.
Danke moment mal sehen ob in diesen Datein der Part vorhanden ist
Alles anzeigenwork/pc/warrior/effect/gi_long_sword.mse
Istn skill
Wird nicht geladen
Guck mal unter Playersettingmodule nach wo er da genutzt wird
Bzw wie der aussieht und ob er geladen wird
Ja das es ein Skill ist ist mir sehr wohl bewusst! Fakt ist dennoch das diese Datei weder im alten Clienten vor der Aktualisierung weder noch jetzt in den neuen Patches vorhanden ist! Der Fehler aber aus der Syserr verschwindet sobald ich den oben genannten Patch einfüge! Die Datei ist in dem Patch aber auch nicht vorhanden! Dennoch verschwindet der Fehler aus der Sysser wenn man den Patch einfügt!
Für mich stellt sich da die Frage wieso?
Hey Leute,
bin seit gestern dabei meinen Clienten aufzuräumen (Doppelte Sachen entfernen, Auf den neuesten Stand bringen von den Patches her etc)! Dazu wollte ich natürlich paar Patches zusammenfügen usw.
So nachdem ich damit fertig war kam der Fehler
So auf zur Google Suche gibt etliche Threads darüber aber nirgendwo ne Lösung! gibt viele Theorien warum der Fehler auftritt (die häufigste ist das es was mit den Skills zu tun hat) aber das kann ich so nicht bestätigen! Denn ich hab nach und nach die alten Patches eingefügt bis ich zu dem Patch metin2_patch_5th_armor gekommen bin! Kaum war der Patch im Clienten war der Fehler weg!
So also diesen Patch entpackt nochmal alle Dateien in die neuen Patches kopiert (waren alle schon vorhanden einfach ersetzt weil vielleicht ja fehlerhaft) Patches gepackt und Clienten gestartet! Zack Fehler war wieder da! Füge ich aber wieder diesen Patch ein ist der Fehler weg!
Mich persönlich würde es interessieren warum das so ist! Ob vielleicht irgendwer von euch eine Ahnung hat warum das so ist! Wieso muss dieser Patch (metin2_patch_5th_armor ) im Clienten sein?
Freu mich auf eine entspannte Diskussion sofern eine entsteht!
Edit:
Man kann den Patch umbenennen ist auch egal. Dachte es liegt vlt am Index Eintrag da er im Clienten so eingetragen ist
pack/
metin2_patch_5th_armor
Also dachte ich mir das es vlt an der Schreibweise liegt wie ich die anderen Patches eingefügt habe das die Index einfach 1 mal dieses pack braucht aber Fehlanzeige wenn ich statt dem pack ein * mache passt das genauso
Kann dir den nachher hochladen...
Das will ich sehen einen Kompletten Zodiac Run mit allem und das Bugfrei?
Client Source
PythonApplicationModule.cpp
Suche nach
Füge darunter hinzu
Ist eigentlich im Tutorial vom System drinnen.
Alles anzeigenPython: uiprivateshopbuilder.py
- # 1 Import app module with the imports at the top of the file:
- # ********************************* BEGIN ********************************* #
- import app
- # ********************************** END ********************************** #
- # 2.1 Search this in PrivateShopBuilder.__init__:
- # ********************************* BEGIN ********************************* #
- self.title = ""
- # ********************************** END ********************************** #
- # 2.2 Paste this below:
- # ********************************* BEGIN ********************************* #
- if app.WJ_ENABLE_TRADABLE_ICON:
- self.interface = None
- self.wndInventory = None
- self.lockedItems = {i:(-1,-1) for i in range(shop.SHOP_SLOT_COUNT)}
- # ********************************** END ********************************** #
- # 3.1 Search this in PrivateShopBuilder.Destroy:
- # ********************************* BEGIN ********************************* #
- self.priceInputBoard = None
- # ********************************** END ********************************** #
- # 3.2 Add this below:
- # ********************************* BEGIN ********************************* #
- if app.WJ_ENABLE_TRADABLE_ICON:
- self.interface = None
- self.wndInventory = None
- self.lockedItems = {i:(-1,-1) for i in range(shop.SHOP_SLOT_COUNT)}
- # ********************************** END ********************************** #
- # 4.1 Search this in PrivateShopBuilder.Open:
- # ********************************* BEGIN ********************************* #
- self.Show()
- # ********************************** END ********************************** #
- # 4.2 Paste below:
- # ********************************* BEGIN ********************************* #
- if app.WJ_ENABLE_TRADABLE_ICON:
- self.lockedItems = {i:(-1,-1) for i in range(shop.SHOP_SLOT_COUNT)}
- self.interface.SetOnTopWindow(player.ON_TOP_WND_PRIVATE_SHOP)
- self.interface.RefreshMarkInventoryBag()
- # ********************************** END ********************************** #
- # 5.1 Search this in PrivateShopBuilder.Close:
- # ********************************* BEGIN ********************************* #
- self.Hide()
- # ********************************** END ********************************** #
- # 5.2 Paste below:
- # ********************************* BEGIN ********************************* #
- if self.priceInputBoard:
- self.priceInputBoard.Close()
- self.priceInputBoard = None
- if app.WJ_ENABLE_TRADABLE_ICON:
- for privatePos, (itemInvenPage, itemSlotPos) in self.lockedItems.items():
- if itemInvenPage == self.wndInventory.GetInventoryPageIndex():
- self.wndInventory.wndItem.SetCanMouseEventSlot(itemSlotPos)
- self.lockedItems = {i:(-1,-1) for i in range(shop.SHOP_SLOT_COUNT)}
- self.interface.SetOnTopWindow(player.ON_TOP_WND_NONE)
- self.interface.RefreshMarkInventoryBag()
- # ********************************** END ********************************** #
- # 6.1 Search this in PrivateShopBuilder.Refresh:
- # ********************************* BEGIN ********************************* #
- self.itemSlot.RefreshSlot()
- # ********************************** END ********************************** #
- # 6.2 Add below:
- # ********************************* BEGIN ********************************* #
- if app.WJ_ENABLE_TRADABLE_ICON:
- self.RefreshLockedSlot()
- # ********************************** END ********************************** #
- # 7.1 Search this in PrivateShopBuilder.OnSelectEmptySlot:
- # ********************************* BEGIN ********************************* #
- priceInputBoard = uiCommon.MoneyInputDialog()
- # ********************************** END ********************************** #
- # 7.2 Add this above:
- # ********************************* BEGIN ********************************* #
- if app.WJ_ENABLE_TRADABLE_ICON and player.SLOT_TYPE_INVENTORY == attachedSlotType:
- self.CantTradableItem(selectedSlotPos, attachedSlotPos)
- # ********************************** END ********************************** #
- # 8.1 Search this in PrivateShopBuilder.OnSelectItemSlot:
- # ********************************* BEGIN ********************************* #
- snd.PlaySound("sound/ui/drop.wav")
- # ********************************** END ********************************** #
- # 8.2 Add this below:
- # ********************************* BEGIN ********************************* #
- if app.WJ_ENABLE_TRADABLE_ICON:
- (itemInvenPage, itemSlotPos) = self.lockedItems[selectedSlotPos]
- if itemInvenPage == self.wndInventory.GetInventoryPageIndex():
- self.wndInventory.wndItem.SetCanMouseEventSlot(itemSlotPos)
- self.lockedItems[selectedSlotPos] = (-1, -1)
- # ********************************** END ********************************** #
- # 9.1 Search this function in class PrivateShopBuilder:
- # ********************************* BEGIN ********************************* #
- def CancelInputPrice(self):
- # ********************************** END ********************************** #
- # 9.2 Add replace the whole with this:
- # ********************************* BEGIN ********************************* #
- def CancelInputPrice(self):
- if app.WJ_ENABLE_TRADABLE_ICON:
- itemInvenPage = self.priceInputBoard.sourceSlotPos / player.INVENTORY_PAGE_SIZE
- itemSlotPos = self.priceInputBoard.sourceSlotPos - (itemInvenPage * player.INVENTORY_PAGE_SIZE)
- if self.wndInventory.GetInventoryPageIndex() == itemInvenPage:
- self.wndInventory.wndItem.SetCanMouseEventSlot(itemSlotPos)
- self.lockedItems[self.priceInputBoard.targetSlotPos] = (-1, -1)
- if self.priceInputBoard:
- self.priceInputBoard.Close()
- self.priceInputBoard = None
- return 1
- # ********************************** END ********************************** #
- # 10.1 Search this function in class PrivateShopBuilder:
- # ********************************* BEGIN ********************************* #
- def OnOverOutItem(self):
- # ********************************** END ********************************** #
- # 10.2 Paste these functions below the found function:
- # ********************************* BEGIN ********************************* #
- if app.WJ_ENABLE_TRADABLE_ICON:
- def CantTradableItem(self, destSlotIndex, srcSlotIndex):
- itemInvenPage = srcSlotIndex / player.INVENTORY_PAGE_SIZE
- localSlotPos = srcSlotIndex - (itemInvenPage * player.INVENTORY_PAGE_SIZE)
- self.lockedItems[destSlotIndex] = (itemInvenPage, localSlotPos)
- if self.wndInventory.GetInventoryPageIndex() == itemInvenPage:
- self.wndInventory.wndItem.SetCantMouseEventSlot(localSlotPos)
- def RefreshLockedSlot(self):
- if self.wndInventory:
- for privatePos, (itemInvenPage, itemSlotPos) in self.lockedItems.items():
- if self.wndInventory.GetInventoryPageIndex() == itemInvenPage:
- self.wndInventory.wndItem.SetCantMouseEventSlot(itemSlotPos)
- self.wndInventory.wndItem.RefreshSlot()
- def BindInterface(self, interface):
- self.interface = interface
- def OnTop(self):
- if self.interface:
- self.interface.SetOnTopWindow(player.ON_TOP_WND_PRIVATE_SHOP)
- self.interface.RefreshMarkInventoryBag()
- def SetInven(self, wndInventory):
- from _weakref import proxy
- self.wndInventory = proxy(wndInventory)
- # ********************************** END ********************************** #
Wäre ja nicht so wie wenn wir das alles drinnen haben (der code wurde jetzt xmal überprüft) meine Vermutung ist das es am Special Inventory liegt sich da ne Funktion überlagert oder so
1.) Nur weil im Tutorial die datei Protoreader.h benannt ist und du in deiner ProtoReader.h die Einträge nicht findest solltest vlt überlegen was man da machen kann (Gibt verschiedene Möglichkeiten einfachste wäre einfach mal in die gleichnamige Datei zu schauen ProtoReader.cpp dann findest auch deinen eintrag) Mit bisschen nachdenkem wärste da sicher drauf gekommen
Bitte google dir den Fehler von deiner Syserr da findest 10000 Themen darüber was der Fehler bedeutet