Items Stapelbar machen

10/30/2018 08:42 mathiasfly#1
Hallo, ich habe eine Frage zu den Item wie man die richtig Stapelbar macht. Ich weiß, dass man die Flag auf 4 setzt und die Antiflag auf 0 zum Handeln.

Bei einigen Items hat es auch geklappt ( Seelis, Perlen usw ) , leider aber nicht bei Items wie Segi, Segenskugel, Magischer Stein. Diese sind zwar auch Stapelbar indem ich das Item auf den Boden werfe und wieder aufhebe, allerdings leider nicht wenn ich die aufeinanderziehen möchte.

Wie kann ich das noch ändern?
10/30/2018 13:53 Avulsed#2
Öffne uiinventory.py und such nach:
Code:
elif item.GetUseType(srcItemVID) in self.USE_TYPE_TUPLE:
Und dann ersetz das If Statement darunter hiermit:
Code:
if player.GetItemIndex(srcItemSlotPos) == player.GetItemIndex(dstItemSlotPos):
	self.__SendMoveItemPacket(srcItemSlotPos, dstItemSlotPos, 0)
else:
	self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
10/30/2018 14:13 mathiasfly#3
In welchem Ordner finde ich uiinventory.py? Die Suche hat nichts ergeben.
Edit: Ahh es ist im Client, ich habe im Server gesucht.

Meinst du ich soll das hier ersetzen?
Code:
if player.IsEquipmentSlot(dstItemSlotPos):

				## µé°í ÀÖ´Â ¾ÆÀÌÅÛÀÌ ÀåºñÀ϶§¸¸
				if item.IsEquipmentVID(srcItemVID):
					self.__UseItem(srcItemSlotPos)

			else:
				self.__SendMoveItemPacket(srcItemSlotPos, dstItemSlotPos, 0)
				#net.SendItemMovePacket(srcItemSlotPos, dstItemSlotPos, 0)
#closerequest hat sich erledigt
03/11/2023 21:59 xxpenzuxx#4
Hey,

ist zwar eine Weile her wo dieser Post gemacht wurde, dennoch versuche ich mal mein Glück:

Wo genau wurde diese Passage nun eingesetzt? Egal welche If Funktion ich ersetze und die Root wieder packe, stürzt mein Client nach dem LogIn ab :(

Wäre nice wenn mir vielleicht noch jemand in diesem Thread antwortet :).

Bei mir sieht es so aus:

Quote:
elif item.GetUseType(srcItemVID) in self.USE_TYPE_TUPLE:
self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)

else:
#snd.PlaySound("sound/ui/drop.wav")

## 이동시킨 곳이 장착 슬롯일 경우 아이템을 사용해서 장착 시킨다 - [levites]
if player.IsEquipmentSlot(dstItemSlotPos):

## 들고 있는 아이템이 장비일때만
if item.IsEquipmentVID(srcItemVID):
self.__UseItem(srcItemSlotPos)

else:
self.__SendMoveItemPacket(srcItemSlotPos, dstItemSlotPos, 0)
#net.SendItemMovePacket(srcItemSlotPos, dstItemSlotPos, 0)
03/17/2023 19:13 Endless.#5
Quote:
Originally Posted by xxpenzuxx View Post
Hey,

ist zwar eine Weile her wo dieser Post gemacht wurde, dennoch versuche ich mal mein Glück:

Wo genau wurde diese Passage nun eingesetzt? Egal welche If Funktion ich ersetze und die Root wieder packe, stürzt mein Client nach dem LogIn ab :(

Wäre nice wenn mir vielleicht noch jemand in diesem Thread antwortet :).

Bei mir sieht es so aus:
Wenn dein Client nach dem Login abstürzt, wäre es vielleicht hilfreich wenn du uns deine syserr zeigst. Oder magst du uns deine python File kurz zeigen, dann können wir schauen, wo der Fehler drin ist.



Gruß, Endless :)
03/17/2023 19:27 xxpenzuxx#6
Hi,

danke für deine Antwort!

Folgendes steht in der Syserr:

Quote:
0317 19:25:07185 ::
networkModule.py(line:208) SetSelectCharacterPhase
system.py(line:130) __pack_import
system.py(line:110) _process_result
introSelect.py(line:30) ?
system.py(line:130) __pack_import
system.py(line:110) _process_result
interfaceModule.py(line:12) ?
system.py(line:130) __pack_import

networkModule.SetSelectCharacterPhase - exceptions.SyntaxError:invalid syntax (line 774)

0317 19:25:07185 :: ================================================== ================================================== ========
0317 19:25:07185 :: Abort!!!!
Liebe Grüße

xxpenzuxx
03/17/2023 21:33 [Patrick]#7
Quote:
Originally Posted by xxpenzuxx View Post
Hi,

danke für deine Antwort!

Folgendes steht in der Syserr:



Liebe Grüße

xxpenzuxx
Syntax Error

hast du den Code nur kopiert? Falls ja, dann hast du Leerzeichen kopiert. diese Leerzeichen müssen mit TABS ersetzt werden! Am besten wirklich mal die Datei hochladen. Habe zwar ewig nichts mehr damit am Hut, aber vllt kann mein Laienwissen was nützen

Krass, dass es dich noch gibt Endless. Und umso erstaunlicher, dass ich mich an dich erinnere :D
03/17/2023 22:26 xxpenzuxx#8
Quote:
Originally Posted by [Patrick] View Post
Syntax Error

hast du den Code nur kopiert? Falls ja, dann hast du Leerzeichen kopiert. diese Leerzeichen müssen mit TABS ersetzt werden! Am besten wirklich mal die Datei hochladen. Habe zwar ewig nichts mehr damit am Hut, aber vllt kann mein Laienwissen was nützen

Krass, dass es dich noch gibt Endless. Und umso erstaunlicher, dass ich mich an dich erinnere :D
Dir auch vielen Dank für die Rückmeldung! :)

Hmm wenn ich das richtig verstehe sollte ja nur die Zeile 774 betroffen sein oder? Ich habe nochmal alles entfernt und mit tabs eingefügt, leider dennoch kein Fortschritt :( Der Client stürzt dennoch ab.

Habe jetzt nochmal alles selber eingegeben. Jetzt kommt folgender Fehler bei syserr:

Quote:
0317 23:19:08043 ::
networkModule.py(line:208) SetSelectCharacterPhase
system.py(line:130) __pack_import
system.py(line:110) _process_result
introSelect.py(line:30) ?
system.py(line:130) __pack_import
system.py(line:110) _process_result
interfaceModule.py(line:12) ?
system.py(line:130) __pack_import

networkModule.SetSelectCharacterPhase - exceptions.IndentationError:expected an indented block (line 781)

0317 23:19:08043 :: ================================================== ================================================== ========
0317 23:19:08043 :: Abort!!!!
Ich hoffe das gibt Aufschluss ^^

Und so sieht nun der Block in der uiinventory.py aus:

Quote:
elif item.GetUseType(srcItemVID) in self.USE_TYPE_TUPLE:
self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)

else:
#snd.PlaySound("sound/ui/drop.wav")

## 이동시킨 곳이 장착 슬롯일 경우 아이템을 사용해서 장착 시킨다 - [levites]
if player.GetItemIndex(srcItemSlotPos)==player.GetIte mIndex(dstItemSlotPos):
self.__SendMoveItemPacket(srcItemSlotPos, dstItemSlotPos, 0)
else:
self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)

## 들고 있는 아이템이 장비일때만
if item.IsEquipmentVID(srcItemVID):
self.__UseItem(srcItemSlotPos)
03/18/2023 09:07 xTryx#9
Quote:
Originally Posted by xxpenzuxx View Post
Dir auch vielen Dank für die Rückmeldung! :)

Hmm wenn ich das richtig verstehe sollte ja nur die Zeile 774 betroffen sein oder? Ich habe nochmal alles entfernt und mit tabs eingefügt, leider dennoch kein Fortschritt :( Der Client stürzt dennoch ab.

Habe jetzt nochmal alles selber eingegeben. Jetzt kommt folgender Fehler bei syserr:



Ich hoffe das gibt Aufschluss ^^

Und so sieht nun der Block in der uiinventory.py aus:
Du hast in dieser Zeile einen Abstand drin.

if player.GetItemIndex(srcItemSlotPos)==player.GetIte mIndex(dstItemSlotPos):

zwischen "Item"
03/18/2023 12:54 xxpenzuxx#10
Quote:
Originally Posted by xTryx View Post
Du hast in dieser Zeile einen Abstand drin.

if player.GetItemIndex(srcItemSlotPos)==player.GetIte mIndex(dstItemSlotPos):

zwischen "Item"
Hm ich fürchte das sieht auf dem Zitat nur so aus durch das Kopieren und Einfügen. Hier nochmal wie es im Moment aussieht:

Quote:
773 elif item.GetUseType(srcItemVID) in self.USE_TYPE_TUPLE:
774 self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
775
776 else:
777 #snd.PlaySound("sound/ui/drop.wav")
778
779 ## 이동시킨 곳이 장착 슬롯일 경우 아이템을 사용해서 장착 시킨다 - [levites]
780 if player.GetItemIndex(srcItemSlotPos)==player.GetIte mIndex(dstItemSlotPos):
781 self.__SendMoveItemPacket(srcItemSlotPos, dstItemSlotPos, 0)
782 else:
783 self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
784
785 ## 들고 있는 아이템이 장비일때만
786 if item.IsEquipmentVID(srcItemVID):
787 self.__UseItem(srcItemSlotPos)
Hmm komisch er macht das hier immer automatisch auseinander :) es ist aber definitiv zusammengeschrieben ^^
03/18/2023 13:19 xTryx#11
Quote:
Originally Posted by xxpenzuxx View Post
Hm ich fürchte das sieht auf dem Zitat nur so aus durch das Kopieren und Einfügen. Hier nochmal wie es im Moment aussieht:



Hmm komisch er macht das hier immer automatisch auseinander :) es ist aber definitiv zusammengeschrieben ^^
unter dem if kommt ein tab :

if code:
TAB code
else:
TAB code

hast du das auch so gemacht?
03/18/2023 14:11 xxpenzuxx#12
Quote:
Originally Posted by xTryx View Post
unter dem if kommt ein tab :

if code:
TAB code
else code:
TAB code

hast du das auch so gemacht?
Habe ich auch gemacht, ja.

Ich weiß nicht mehr weiter :D Jetzt kommt Syserr Fehler:

Quote:
networkModule.SetSelectCharacterPhase - exceptions.SyntaxError:invalid syntax (line 780)
Und hier die Zeile 780ff.:

Quote:
780 if player.GetItemIndex(srcItemSlotPos): == player.GetItemIndex(dstItemSlotPos):
781 self.__SendMoveItemPacket(srcItemSlotPos, dstItemSlotPos, 0)
782 else:
783 self.__SendUseItemToItemPacket(srcItemSlotPos, dstItemSlotPos)
784
785 ## 들고 있는 아이템이 장비일때만
786 if item.IsEquipmentVID(srcItemVID):
787 self.__UseItem(srcItemSlotPos)
Mit TAB Einrückungen versteht sich.
03/18/2023 14:17 xTryx#13
Quote:
Originally Posted by xxpenzuxx View Post
Habe ich auch gemacht, ja.

Ich weiß nicht mehr weiter :D Jetzt kommt Syserr Fehler:



Und hier die Zeile 780ff.:



Mit TAB Einrückungen versteht sich.
: vor dem == gehört weg.
03/18/2023 19:16 xxpenzuxx#14
Quote:
Originally Posted by xTryx View Post
: vor dem == gehört weg.
Hat den einen Fehler behoben, jedoch kommt jetzt wieder:

Quote:
networkModule.SetSelectCharacterPhase - exceptions.IndentationError:expected an indented block (line 781)
-.-


Aber danke für den Hinweis! :D
03/18/2023 19:23 xTryx#15
Quote:
Originally Posted by xxpenzuxx View Post
Hat den einen Fehler behoben, jedoch kommt jetzt wieder:



-.-


Aber danke für den Hinweis! :D
Wenn du Notepad++ nutzt, es gibt oben einen Button der sieht aus wie ein gespiegeltes P. Wenn du auf diesen klickst kannst du deine TABs sehen.
Ein TAB wird durch einen Pfeil nach rechts dargestellt.