Ergebnis 1 bis 6 von 6

Thema: Problem mit eigenem Inventar (Items erhalten)

  1. #1

    Problem mit eigenem Inventar (Items erhalten)

    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

  2. #2
    Zitat Zitat von Cherry Beitrag anzeigen
    Ansonsten könnte dir noch das hier empfehlen: http://www.multimediaxis.de/threads/...=1#post2801470
    Damit kannst du genau nachvollziehen, welche Eventzeilen ausgeführt werden und welche Variablenwerte/Switchwerte vorhanden sind.
    Verwende die Logging-Funktion von diesem Tool, das könnte dir helfen.

  3. #3
    Uiii, danke aber das hat mir bis jetzt auch nicht geholfenXD....

    Ich habe zwar herausgefunden was schiefgeht und was der Maker macht aber immernoch nicht was der Auslöser ist :/.
    Naja, mir ist ein Bug aufgefallen... Ich habe ein Menü in meinem Spiel und nun seitdem ich jetzt deinen patch draufhabe kommt eine Fehlermeldung sobald ich das Menü aufrufe und dann wieder beenden will und zwar:

    Event Script referenced an Event that does not exist.
    Last executed event Script line:
    Common Event ID 8
    Line:52

    Das kann gar nicht sein, vorher hat alles super funktioniert O.o

  4. #4
    Zitat Zitat von djeurissen Beitrag anzeigen
    0034 = Variable ID "Diese Variable gibt an, welcher Slot gerade abgefragt wird. Die Slot Variablen gehen von 41-91."
    Nop, tut der nicht, der bleibt Konstant bei 41, zumindest bei der Eventcode dem du hier reingemacht hast.
    Statt variable 34 um 1 zu erhöhen für jedes durchführung von der schleife erhöhst du dem variable an dem mit variable 34 zeigst immer wieder mit 1,
    bzw. variable 41.

  5. #5
    AchsoooXD, das variable 41 immer erhöht wird ist mir auch aufgefallen (Dafür nochmal danke an cherry^^), aber nun weiß ich auch wieso^^.

    Da habe ich wohl vergessen das ich noch Variable Reference ausgewählt hatte, ich wusste es war ein dummer Fehler :/ Danke Kezesui^^

  6. #6
    Zitat Zitat von djeurissen Beitrag anzeigen
    Uiii, danke aber das hat mir bis jetzt auch nicht geholfenXD....

    Ich habe zwar herausgefunden was schiefgeht und was der Maker macht aber immernoch nicht was der Auslöser ist :/.
    Naja, mir ist ein Bug aufgefallen... Ich habe ein Menü in meinem Spiel und nun seitdem ich jetzt deinen patch draufhabe kommt eine Fehlermeldung sobald ich das Menü aufrufe und dann wieder beenden will und zwar:

    Event Script referenced an Event that does not exist.
    Last executed event Script line:
    Common Event ID 8
    Line:52

    Das kann gar nicht sein, vorher hat alles super funktioniert O.o
    Ja, das ist ein Bug, stimmt. Verwende den Patch am besten nur zum Debuggen, ich hab keine Zeit, da jetzt rauszufinden wie ich es fixen könnte, tut mir Leid.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •