Hallo,
an sich hatte ich das Skript schon fertig, allerdings würde es so wie ich es zuvor gemacht habe total groß und unübersichtlich sein.
Das ganze Inventar funktioniert wie jedes Inventar in Rollenspielen, man erhält items die man dan im Inventar verschieben kann oder verwenden. Zuerst habe ich es so gelöst, das ich jeden einzelnen Inventarslot abfrage und dann dementsprechend die Variable gleich dem Item das man erhalten hat setze. Daran habe ich auch nicht viel geändert nur diesesmal wollte ich das ganze in einer Schleife machen, die solange weiterläuft bis ein freier Slot gefunden wurde oder das Inventar voll ist:
Erstmal wofür steht jede Variable:
0034 = Variable ID "Diese Variable gibt an, welcher Slot gerade abgefragt wird. Die Slot Variablen gehen von 41-91."
0035 = Item erhalten "Diese Variable gibt die Item ID"
0036 = Slot Abfrage "Ich weiß nicht mehr warum ich diese Variable erstellt habe, da sie immer gleich 0034 ist. Aber aus irgendeinemgrund entstehen bugs wenn ich sie durch 0034 ersetze. Ist schon was länger her seitdem ich angefangen habe das Skript zu schreiben^^."
0037 = Stack ID "Da manche Items auch stackbar sein sollen, muss jeder Slot auch noch eine Stack ID haben. Dafür kann man genauso 0034 benutzen, allerdings brauche ich 0037 noch für ein paar andere Skripte. (Diese Skripte habe ich noch nicht geschrieben, sie können nichts mit den Bugs zu tun haben)"
Das ganze Skript baut also auf einer Endlosschleife auf, die erst durchbrochen werden soll, wenn man entweder das Item erhalten hat oder das Inventar voll ist. Sollte also die Variable 0034 über 91 kommen, wird das Skript unterbrochen und ein Switch angestellt, der angibt das das Inventar voll ist.
Die Abfrage ob das gerade erhaltene Item über 1 und unter 2500 liegt, dient dem Zweck das ich weiß ob ein Item stackbar ist. Da ich mir keinen leichteren weg ausdenken konnte, habe ich einfach entschieden das die ersten Items die zwischen 1 und 2500 liegen stackbar sind.
So kann ich ganz leicht auch abfragen ob der Slot noch nicht belegt ist "0" oder ein nicht stackbares Item dort liegt "über 2500".
Nun kommen aber die ganzen Bugs, erstmal funktioniert es am Anfang. Wenn ich nun ein Item erhalte, sagen wir mal mit der Item ID 12, entstehen schon die ersten Bugs. Der Inventarslot mit der ID 41 wird als erstes auf 12 gesetzt. Nun passiert es aber, das schon die Stack ID nicht erhöht wird, sie bleibt Konstant auf 0. Sollte man zudem jetzt ein neues Item erhalten, wird die Variable mit der ID 41 eben wieder verändert, egal welches Item man erhält, dabei sollte nun eigentlich ID 42 abgefragt werden.
Um das ganze zu debuggen habe ich mal versucht mit der Message Box immer Hallo auszugeben wenn die letzte Conditional Branch Abfrag zustimmt und das passiert jedesmal wenn man ein item erhält, dabei wird abgefragt ob "Item erhalten" und "Slot Abfrage" gleich sind, also ob sie stackbar sind. Es gibt nur 1 Situation in der es nicht passiert und zwar am Anfang, wenn man das aller erste Item erhält, das ist aber auch das einzige was wirklich an diesem Skript funktioniert...
Ich hoffe ich habe hier keine dummen Fehler gemacht und ich hoffe hier blickt überhaupt jemand durch was ich von euch will D:, aber ich komme dabei wirklich nicht weiter und ich bin hier echt am verzweifelnXD... Natürlich könnte ich es wie vorhin beschrieben in einer eigenen Abfrage machen, die einfach jeden Slot einzelnd durchgeht. Aber sobald ich dann was an dem Skript verändern will, wird es natürlich sehr unübersichtlich und Fehleranfälliger :/.
Nun gut, schonmal Danke im Vorraus für eure Hilfe und ich hoffe das ich keinen dummen Fehler gemacht habe XD