Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 21

Thema: Finde den Fehler in meinem Script nicht ... (bebildert)

  1. #1

    Finde den Fehler in meinem Script nicht ... (bebildert)

    Also erst mal Hallo...

    Ich habe folgendes Problem:

    Ich moechte die Waffenstaerke meiner Waffen aus geben. Und zwar nicht per pic sondern mit Hilfe eines Events.

    Im CE lasse ich nun die einzelnen Stellne meiner Zahlen berechnen. Dieser Event wird aufgerufen, wenn ich mein Menue starte.



    Dann hat mein Event, fuer die einer Stellen, auf der Map wo er ausgegeben werden soll, 9 Seiten. Etwa so:



    Das Problem ist aber nun, dass nur 0 ausgegeben wird. Weis jemand wo der Fehler liegt. Achja ich habe die Variable Seth Weapon (564) auf 5 gesetzt. Sieht jemand den Fehler, denn ich kann ihn absolut gar nicht finden. Vielleicht bin ich ja auch nur doof oder zu muede... 8)

    Das komische dabei ist, dass ich das "gleiche Verfahren" auf der Hauptseite meines Menues fuer Level, HP und MP benutzt habe und es da auch funktioniert.

    Danke

    Geändert von lokipoki (08.09.2006 um 03:56 Uhr)

  2. #2
    Hm, ich bin mir jetzt nicht sicher in welcher Reihenfolge die Event-Seiten abgearbeitet werden, wenn sie aber von der ersten Seite abgearbeitet werden, wird selbstverständlich immer eine Null angezeigt, da die Voraussetzungen immer erfüllt werden (größer oder gleich 0). Setz doch gleich auf "Equal to".



    Diese Berechnung ist falsch, nur die Einser-Stellen werden richtig ausgerechnet.
    Um die Hunderter-Stelle zu erhalten musst du die Variable nur geteilt durch 100 und bei der Zehner-Stelle nach einer Modulo-Division durch 100, die Variable noch geteilt durch 10 nehmen.

    Beispiel:

    x123 = 987

    x1 / 100 = 9
    x2 mod 100 = 87
    x2 / 10 = 8
    x3 mod 10 = 7

    x1 = 9
    x2 = 8
    x3 = 7

    Geändert von Kyuu (08.09.2006 um 07:02 Uhr)

  3. #3
    Zitat Zitat
    Hm, ich bin mir jetzt nicht sicher in welcher Reihenfolge die Event-Seiten abgearbeitet werden, wenn sie aber von der ersten Seite abgearbeitet werden, wird selbstverständlich immer eine Null angezeigt, da die Voraussetzungen immer erfüllt werden (größer oder gleich 0). Setz doch gleich auf "Equal to".
    Die letzte Seite hat immer die höchste Priorität.

  4. #4
    Zitat Zitat von Kelven
    Die letzte Seite hat immer die höchste Priorität.
    Das heisst es ist richtig? Wo liegt der Fehler?

    Das mit der Berechnung (mod) muesste klappen da es mit den anderen Berechnungen, wie ich schon gesagt hatte, auch klappt...8)

  5. #5
    Hm, keine Ahnung, bei deiner Berechnung müßte bei 5 am Ende auf jeden Fall eine 5 herauskommen (5 Mod 10=5). Daher muss der Fehler doch woanders liegen.

    @ultimaman
    Ich hab auch erst gedacht, dass die Berechnung von lokipoki falsch ist, aber sie könnte funktionieren, wenn er die Abfrage der Werte entsprechend eingestellt hat.

    Mit der Zahl aus deinem Beispiel:

    987 Mod 1000 = 987
    987 Mod 100 = 87
    987 Mod 10 = 7

    Wenn er jetzt bei der 100er Stelle z.B. in hunderter Schritten abfragt (also >=100,>=200 usw.), dann müßte das eigentlich gehen. Wobei da das Mod 1000 natürlich überflüssig wäre, solange die Zahl nicht > 1000 sein kann.

  6. #6

    Master Odious Gast
    Wenn du alles richtig gemacht, hast liegt der Fehler wahrscheinlich dass die Variabel keinen Wert hat, also 0.
    Vielleicht hast du ja einen Fehler im Skript gemacht, welches die Variabel auf 5 setzt. Ansonsten gibt es keine andere Erklärung...

  7. #7
    Zitat Zitat von Kelven
    Hm, keine Ahnung, bei deiner Berechnung müßte bei 5 am Ende auf jeden Fall eine 5 herauskommen (5 Mod 10=5). Daher muss der Fehler doch woanders liegen.

    @ultimaman
    Ich hab auch erst gedacht, dass die Berechnung von lokipoki falsch ist, aber sie könnte funktionieren, wenn er die Abfrage der Werte entsprechend eingestellt hat.

    Mit der Zahl aus deinem Beispiel:

    987 Mod 1000 = 987
    987 Mod 100 = 87
    987 Mod 10 = 7

    Wenn er jetzt bei der 100er Stelle z.B. in hunderter Schritten abfragt (also >=100,>=200 usw.), dann müßte das eigentlich gehen. Wobei da das Mod 1000 natürlich überflüssig wäre, solange die Zahl nicht > 1000 sein kann.
    Mh, stimmt. Dennoch, imo ist das irgendwie um die Ecke gedacht und unübersichtlich.

    Was sein Problem angeht, könnte eine "Macke" des Makers sein. Wenn das Problem reproduzierbar ist -> Maker neu installieren.

    Edit: Könntest noch per Variablen/Switch-Editor (F9) sicherstellen, dass deine Variablen auch wirklich einen Wert erhalten.

  8. #8
    Zitat Zitat von Master Odious
    Wenn du alles richtig gemacht, hast liegt der Fehler wahrscheinlich dass die Variabel keinen Wert hat, also 0.
    Zitat Zitat von lokipoki
    Das Problem ist aber nun, dass nur 0 ausgegeben wird. Weis jemand wo der Fehler liegt. Achja ich habe die Variable Seth Weapon (564) auf 5 gesetzt.
    Wird also kaum daran liegen.

    Neuinstallation wäre auch mein erster Vorschlag gewesen bei der Lage. Ich hatte sowas in der Art auch mal. Ein Event wollte einfach nicht funktionieren. Geholfen hat nichts so wirklich. Da es auch nur ein Übungsprojekt (eigenes Menü aus dem e-book^^) war habe ich es ja auch leicht aufgeben können...

  9. #9
    Zitat Zitat von Paladin
    Wird also kaum daran liegen.
    Es kann passieren, dass durch chaotische Organisation in einem anderen Event, eine Variable, die für das Berechnen von Bedeutung ist, überschrieben wird, und somit das Rechenergebnis verfälscht wird. Natürlich muss es nicht so sein, kann aber, und um den Fehler zu beseitigen muss man jede Möglichkeit ausschließen.
    Ein kurzer Blick in den Editor kann jedenfalls nicht schaden. Man sollte das auch immer machen, wenn man mit einem Problem konfrontiert wird, bevor man stundenlang rumrätselt, was man falsch eingestellt haben könnte.

  10. #10
    Für mich hört sich das ganze so an, als würdest du den Befehl garnicht erst aufrufen bzw. direkt überschreiben.

    Setz nach dem modBefehl mal eine Textbox und lass dir die Variable ausgeben. Dadurch kannst du leicht nachschaun, ob der Befehl überhaupt aufgerufen wird und ob das Ergebnis stimmt.

  11. #11
    Zitat Zitat von ultimaman
    Es kann passieren, dass durch chaotische Organisation in einem anderen Event, eine Variable, die für das Berechnen von Bedeutung ist, überschrieben wird, und somit das Rechenergebnis verfälscht wird. Natürlich muss es nicht so sein, kann aber, und um den Fehler zu beseitigen muss man jede Möglichkeit ausschließen.
    Soweit ich ihn verstanden habe hat er vorher die Variable manuell auf "5" gesetzt oder liege ich dabei so falsch?
    Ohne die von dir beschriebene Möglichkeit gänzlich ausschließen zu wollen würde ich in einem Fall in welchem ich eine Variable auf 5 setze und trotzdem kein entsprechendes Ergebnis angezeigt wird ersteinmal von einem Fehler im Maker ausgehen.

  12. #12
    Nun, wie er die Variable auf "5" gesetzt hat, hat er nicht explizit erwähnt, also kann man durchaus davon ausgehen, dass er sie nicht manuell im Editor (und selbst dann bliebe noch die Möglichkeit des Eingreifens eines anderen Skriptes in die Berechnung) gesetzt hat, sondern im Skript. Jedenfalls nützt es nichts, hier weiter zu spekulieren, warten wir ab, was er zu den Vorschlägen zu sagen hat.

  13. #13
    Zitat Zitat von Master Odious
    Wenn du alles richtig gemacht, hast liegt der Fehler wahrscheinlich dass die Variabel keinen Wert hat, also 0.
    Vielleicht hast du ja einen Fehler im Skript gemacht, welches die Variabel auf 5 setzt. Ansonsten gibt es keine andere Erklärung...
    Wie schon gesagt, ist eigentlich auf den Wert 5 gesetzt. Gleich am Anfang des Spiels, werden alle Werte des Heldens vergeben. Inklusive der Variable 564. Hab den Maker auch nach der Variable suchen lassen. Wurde aber nur in den von mir besprochenem Script aufgerufen...

    Das komische ist, wenn ich 564 also der Wert 5 per message ausgebe, macht er das und zeigt fuenf bevor die Einer, Zehner und Hunderter Stellen berechtnet werden. Ruf ich nun aber die Berechnung auf, zeigt er mir 0 an.

    Wenn ich aber nun die Einerstelle 563 per message ausgebe, zeigt er null an. Warum? Also liegt es nicht am event, sondern muss an der Berechnung liegen... Was ist aber nun falsch an der Berechnung?

    Zitat Zitat von ultimaman
    Mh, stimmt. Dennoch, imo ist das irgendwie um die Ecke gedacht und unübersichtlich.
    Was meinst du mit umstaendlich und um die Ecke gedacht...


    Ok hab den Maker nun neuinstalliert. Fehler ist aber immernoch der selbe...

    Geändert von lokipoki (09.09.2006 um 04:50 Uhr)

  14. #14
    Zitat Zitat von lokipoki
    Wie schon gesagt, ist eigentlich auf den Wert 5 gesetzt. Gleich am Anfang des Spiels, werden alle Werte des Heldens vergeben. Inklusive der Variable 564. Hab den Maker auch nach der Variable suchen lassen. Wurde aber nur in den von mir besprochenem Script aufgerufen...

    Das komische ist, wenn ich 564 also der Wert 5 per message ausgebe, macht er das und zeigt fuenf bevor die Einer, Zehner und Hunderter Stellen berechtnet werden. Ruf ich nun aber die Berechnung auf, zeigt er mir 0 an.

    Wenn ich aber nun die Einerstelle 563 per message ausgebe, zeigt er null an. Warum? Also liegt es nicht am event, sondern muss an der Berechnung liegen... Was ist aber nun falsch an der Berechnung?
    Hm, ist dir eigentlich bekannt, dass der Maker einen Editor während des Testens zur Verfügung stellt, mit Hilfe dessen man auf alle Switches und Variablen im Spiel zugreifen und nach Belieben verändern kann? Aufrufen kann man den Editor, wie gesagt im Testspiel, mit F9. Ist doch viel umständlicher extra eine Message einzubauen, um den Wert einer Variable einzusehen.

    Naja, wenn die Berechnung wirklich nur in dem Ausmaß stattfindet, wie du es uns in den Bildern präsentiert hast, dann gibt es darin keine Fehler.
    Hast du schon versucht das Problem zu reproduzieren? Mach ein neues, exakt gleiches Event und schau, ob es wieder dasselbe Problem gibt. Eventuell noch mit "Equal to" arbeiten.
    Sollte das, das Problem nicht lösen, kannst du das Projekt mal hochladen, damit wir es uns anschauen können. Damit könnte man auch endgültig die Frage beantworten, ob es an deinem Maker, oder deinem Projekt liegt (zum Teil hast du es ja schon, indem du den Maker neuinstalliert hast).

    Zitat Zitat
    Was meinst du mit umstaendlich und um die Ecke gedacht...
    Von umständlich habe ich nichts gesagt, obwohl es in der Tat auch etwas umständlicher ist. Nun, wenn ich eine Zerlegung einer Zahl machen würde, würde ich das auch konsequent durchführen, bis nur noch handliche Zahlen-Stellen zur Abfrage bereit stehen. In deinem Fall wäre es ein Befehl mehr. Bei der Abfrage hätte ich, wie gesagt, nur noch Zahlen-Stellen und wäre so nicht mehr auf die größer/gleich-Bedingung angewiesen. Die Bedingung gleich ist eh kompakter und direkter. Was ist für das Gehirn leichter zu überschauen, Zahlen-Stellen, die von 0 bis 9 reichen und die Abfragen routinieren, oder Intervalle, die immer unterschiedlich groß und unterschiedlich platziert sind? Zudem, da du bei Intervallen auf die Bedingung größer/gleich angewiesen bist, bist du auch von der Priorität der Event-Seiten abhängig, was wiederum deine Flexibilität eingrenzt. Naja, vielleicht sehe nur ich es so kritisch.

    Geändert von Kyuu (09.09.2006 um 07:55 Uhr)

  15. #15

    Projekt hochladen....

    Ok hab mein Projekt auf mein Laptop gespielt und dort ausprobiert. Funktioniert aber immer noch nicht. Weis echt nicht was ich machen soll?

    Wenn ich mein Projekt hochlade, damit ihr es prueffen koennt, moechte ich nicht das ganze Projekt hochladen, Wenn ich nun Maps loesche und nur die "kaputten" Events bzw CE "stehen lasse", wuerde das einen Unterschied machen ??? Koenntet ihr es dann genau so testen als wenn ich euch das ganze Projekt schicke?

    Ich hoffe ihr wisst was ich meine...

    Geändert von lokipoki (12.09.2006 um 09:48 Uhr)

  16. #16
    Oder kann es daran liegen, dass ich den "Enter Patch" benutze ....

    Ich habe jetzt uebrigens den Debugger (F9) ausprobiert und gesehen das meine Variable 564 nden Wert 5 annimmt... Wenn ich nun in mein Menue gehe, also alle oberen Events aufrufe, ist die Variable 564 gleich 0. Warum ???

    Obwohl hier:


    Geändert von lokipoki (12.09.2006 um 10:02 Uhr)

  17. #17
    Ich nehme mal an, dass du die Variable dann an einer anderen Stelle auf 0 setzt, also doppelt verwendest. Mir ist kein Fehler auf dem Maker bekannt, der die Werte von Variablen einfach so verändert.

  18. #18
    Hm, ich kann auch nichts mehr zu diesem Problem beitragen, außer dein Projekt mal anzusehen, wenn du es hochlädst. Wieso willst du es eigentlich nicht ganz hochladen? Musst ja den Downloadlink nicht veröffentlichen und nur denen per PM schicken, denen du vertraust. Ich für meinen Teil habe kein Interesse an deinem Projekt, außer eben zu sehen, wo der Bug drin ist. Naja, deine Entscheidung.

  19. #19
    Hab den Fehler gefunden.


    SORRY...


    Aber danke fuer eure Hilfe.8)

  20. #20
    Ist das alles? Ich will zumindest wissen, was der Fehler war.

Berechtigungen

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