Ergebnis 1 bis 11 von 11

Thema: Äpfel vergammeln

  1. #1

    Äpfel vergammeln

    Als es ist so ich habe ein Common Event erstellt wo nach einer gewissen Zeit Äpfel vergammeln sollen also in deinem Inventar.
    Mit der Bedigung das du mindestens einen Apfel hast.
    Nun bekomme ich aber das Problem das alle in deinen Inventar die länger als 30 Minuten da drinne weilen vergammeln sollen. Aber erstens scheitert das an der Umsetzung weil ich nicht weiß wie man ermitteln kann wie viele Äpfel man hat (also per Variable also da brauche ich hilfe!) und das 2. Problem was ist mit den neu gekriegten Äpfeln? die können ja nicht mit den anderen vergammeln. wie stelle ich es ein das EIN bekommener Apfel in 30 Minuten vergammelt?

    Geändert von Klunky (07.01.2008 um 17:20 Uhr)

  2. #2
    paraleler prozess

    label1
    --bedingung apfel ist im inventar
    wait 30m
    -1 apfel item
    +1 vergammelten apfel item
    --ansonsten

    --ende
    springe zu label

    so müsstes gehen

  3. #3
    so würde aber alle 30 Sekunden ein Apfel vergammeln und nicht jeder Apfel nach 30 Sekunden

    mMn ist das nur umzusetzen, entweder mit dem XP oder mit einem eigenen Inventar. Anders als mit viel Aufwand (da keine Arrays -.-) lässt sich das wohl nicht lösen.

  4. #4
    Du brächtest im Prinzip, für jeden der 99 möglichen Äpfel eine eigene Variable, Immer, wenn du einen Apfel in deinem Inventar hinzugefügt bekommst, Springt eine dieser variablen auf 30. Das überprüftst du mit einer weiteren verteilervariable (für jede mögliche inventarzahl startet diese ein neues variablen-zähl event. Das kann man zwaralles in einem parralel lösen aber: Hm, dann brauchst du ein elllenlanges script, wobei du ständig abfrägst, wiehoch die einzelnen gestarteten variablen den sind und reduzierst die jede Minute um 1. Das ist aber mit 99 Fork Conditions etc. verbunden, die ständig parralel laufen+ eine Verteilerabfrage für die 99 variablen, denn eine Variable soll ja nicht doppelt mit 30 min belegt werden. Zuguterletzt, wenn eine dieser 99 möglichen variablen auf 0 fällt, wird ein Apfel gelöscht und die Variable kommt wieder zu den anderen in die Warteschleife ...

    Theoretisch möglich, hm und auch umsetzbar ^.- einen konkreten Code kann ich dir leider nüscht nennen. Aber vorstellen kann ich ihn mir schon. Eigentlich auch ziemlich einfach zu machen, wenn man es so überlegt, aber seeeeehr viel Tiparbeit, bei der man ständig die variablen ändern muss.

    Eine andere Frage ist die, ob das der Maker schafft. Ich befürte, der stoppt da und giebt den geist auf, bzw. er rechnet zu lange das ganze event durch und somit, käme der schön 1 min Tackt Zeitplan föllig durcheinander.

    PS:

    Digitale Äpfel vergammeln nüscht!!!

  5. #5
    Die Frage wäre nur, wenn der Held einen Apfel isst, welcher wird dann gegessen? Der, der am wenigsten vergammelt ist? Einen zufälligen?

  6. #6
    Wie verhält sich eigentlich ein Event, wenn es gecallt wird, wenn es noch läuft?
    Wenn es quasi mehrere parallele Abläufe schafft, dann bräuchtest du eigtl nur jedes mal, wenn du einen Apfel bekommst ein CE callen, dass 30 min wartet, danach abfragt ob noch gleich viele Äpfel im Inventar sind und wenn es gleich oder mehr sind einen normalen Apfel löschen und einen gegammelten hinzufügen.

  7. #7
    Damit würdest du aber sämtliche Gammelungsprozesse aussetzen, wenn der Held nur einen Apfel isst...

  8. #8
    - 99 Äpfel heißt 99 Variablen. Das ist kein Problem.
    - Dann einfach ein Common Event mit einer Schleife (= Loop) erstellen.
    - In dieser Schleife wird ein Variable immer um eins erhöht (Zählervariable).
    - in der Schleife steht sonst nur noch ein Befehl: Der X-te Apfel wird um eins verringert (Den X-ten Apfel erhälst du mit der Zählervariable, weiter unten mehr dazu)
    - Hinter der Schleife kommen zwei Befehlsblöcke: Eine Bedingungen, dass es "Gammel-Äpfel" gibt (siehe "Gammelbedinung"), und danach ein Wait von einer Minute.

    Beim Aufnehmen eines Apfels muss geguckt werden, wieviele Äpfel vorhanden sind (entweder Inventar, oder ob Variable null sind mit Hilfe der Zählervariable - siehe unten). Schließlich muss die richtige Variable auf 30 gesetzt werden.




    Zusatzidee:
    Es wäre auch möglich statt der absoluten Apfelzeit das Verhältnis zur vorherigen Apfelzeit abzuspeichern (= relative Zeit) und dann diese Zeit zu warten. Da müsste man aber beim Einsammeln des Apfels die Schleife zum berechnen der Zeit verwenden.

    Bei Verständnidschwierigkeiten einfach nachfragen.


    CapSeb

  9. #9
    HEy... Respekt zu der Idee. So ersetzt du durch Aufwand die benötigten Arrays. Die einzige Frage, die noch zu klären wäre, wäre die Frage, welcher Apfel gegessen wird

  10. #10
    Zitat Zitat
    Die einzige Frage, die noch zu klären wäre, wäre die Frage, welcher Apfel gegessen wird
    fast gammelige Äpfel schmecken doch ausgezeichnet. Und zudem ist das die ökonomischste Wahl...
    Wenn man die von mir eben genannte "Gammelbedingung" verwendet, ist es sowieso nötig, dass man den ältesten Apfel isst. Das If fragt ja nur den ersten Apfel ab. Sonst müsste man da auch noch eine Schleife ausßenrum bauen, die leere Variablen erkennt. Reicht ja, wenn das bei der Äpfelanzahl bis hin zu einer leeren Stelle abzählt.

    Ohne diese VarNo wären übrigens alle Formen von größeren Datenbanken nicht möglich. Schade dass das nicht bei Pictures geht (Nummer, Größe, Farbe...).


    CapSeb

  11. #11
    Mein Vorschlag wäre ein anderer, klar du brauchst die X Variablen für die entsprechende Anzahl an Äpfeln aber anstatt eines Zählers der ständig die X Werte an vorhandenen Äpfeln verändert würde ich die Zeit des Apfel-Aufnehmens in der Variablen speichern.

    Der Vorteil ist das die Fäulnis des Apfels dann nur berechnet werden muss wenn der Apfel angeschaut wird (über das Inventar), oder die Fäulnis anderweitig von Interesse ist. Das dürfte schneller sein.

Berechtigungen

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