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

Thema: Zufallstruhe schnell gemacht =)

  1. #1

    Zufallstruhe schnell gemacht =)

    Diese kleine Toturial widme ich allen die Spaß am Makern haben und die gerne etwas dazu lernen wollen.

    Was brauchen wir?

    Ein wenig Grundwissen setzte ich für diese kleine Tut vorraus da ich nicht auf jeden einzelnen Befehl eingehen werde.
    Ihr solltet Wissen wie man mit Schaltern, Bedingungen und Variabeln umgeht.
    Zum zweiten brauchen wir ein Charaset bspw. eine Kiste,Truhe,Krug u.ä.

    Der Code im groben:

    Wir benutzen bei dieser wahl der Zufalltruhe die funktion der Zufallsvariabel diese soll durch eine von uns gewählte Zahl (in diesem Bsp. 1-5) ein Item aus einer von uns erstellten Liste zufällig herauswählen. Danach soll jeweils für jede einzelne Ziffer (1-5) eine Bedingung abfragen welche Ziffer nun in der Zufallsvariabel gespeichert ist und ebend im positiven verlauf des Zufalls ein Item zuweisen im negtiven Fall soll dies uns eine kurze Textnachricht anzeigen das die Kiste leer ist. Nach dem uns nun ein Item zugewiesen worden ist oder auch ebend nicht kommt ganz am Ende ein Schalter (in diesem Beispiel "Kiste Offen") der ist wichtig damit wir die Kiste nicht unendlich öffnen können wir sind auch nicht zwangsweise auf 2 Ereignissseiten angewiesen.

    In Drei Schritten zur Zufallstruhe:

    1. Schritt

    Nun haben wir im groben was wir alles dafür benötigen jetzt gehts an den Code an sich für den Grundaufbau benötigen wir zuerst eine Bedingung die abfragt ob der Schalter der Truhe (Truhe Offen) schon auf AN gestellt ist dem so so geben wir dem Spieler mit einer kurzen Textmittleiung einen Hinweis das die Truhe bereits leer ist.

    Der Code sieht hiefür so aus:



    2.Schritt

    Nun was soll passieren wenn die Kiste aber nicht schon geplündert worden ist? Ganz klar der Held soll was bekommen oder auch ebend nicht wie es der Zufall ebend will. Beginnen tut alles mit einer Zufallsvariabel ihr erinnert euch wir haben eine Ziffer von 1-5 gewählt diese soll nun als erstes gespeichert werden danach folgen 5 Bedingungen bei 4 von den Bedingungen lassen wir das Häckchen Ansonstenfall an bei dem letzten unseren 5 können wir es weglassen.Nach dem wir nun diese Bedingungen abfragen Schalten wir bei jeder einzelnen Bedingung dern Schalter "Truhe Offen" auf an.

    Der Code im Maker:



    3. Schritt

    In Schritt Drei können wir nun Bewegungsanimation der Kisten, Truhen ect. durch Moveevents anzeigen lassen gleichzeitig aber auch Soundgeräusche abspielen der letzte Teil lässt eurer Phantasie freien lass, aber das allerwichtigste was ihr im dritten Schritt machen solltet ist das zuteilen der Items an die Heldentruppe.

    Der Code:



    Ich hoffe euch hat das basteln Spaß gemacht ich freue Mich nartürlich über jede konstruktive Kritik und Verbesserungsvörschlägen für dieses kleine Tut und auf eure Erfahrungsberichte mit der Zufallstruhe. =)

    Lg
    Multi-Master1988

  2. #2
    Wer ganz schlau ist und sich Arbeit sparen will, setzt die Move Events vor die Forks
    Damit wirds dann auch nochmal etwas kürzer und übersichtlicher

  3. #3

    Users Awaiting Email Confirmation

    Frequenz 8 bei Moveevents bedeutet, dass die Truhe sofort ohne Animation offen ist :P
    Moveevents+Wait until moved sollte VOR die Abfrage und Switch 23 = ON nach der Abfrage.
    Code gespart

  4. #4
    Bezieht sich "Wait until moved" nicht auf alle Events auf der Map? Ich traue der Methode schon seit 2K-Zeiten nicht mehr. Ein Wait geht ja auch. Du könntest den Code in der Hinsicht optimieren, dass du:

    - die If-Abfragen nicht schachtelst
    - alle Operationen, die immer ausgeführt werden, an den Anfang bzw. ans Ende setzt. Sprich:

    Animation
    Wait
    Alle If-Abfragen
    Switch anschalten

  5. #5
    @ All

    Gut der Code lässt sich so nartürlich übersichtlich machen dran hatte ich beim erstellen des Tuts nicht gedacht in allgemeinen lässt sich der Code nartürlich induviduell an die Bedürfnisse der Einzelnen immer anpassen.

    @ Kelven

    Bezügglich des ""Wait until moved" hatte ich eigentlich noch keine Propleme ich schau es mir aber nochmal an.

    Lg
    Multi-Master1988

  6. #6
    @Multi Master
    Wie soll ein Anfänger den Code vereinfachen, wenn er nichtmal so ein System selber bauen kann?
    Ein Tutorial sollte einfach und verständlich gehalten sein.Schaue bitte nochmal über deinen Code, denn der ist teilweise mehr als unsauber und es sind sachen zuviel drin.
    1. Spoiler1 scheint ok zu sein.
    2. Spoiler2 ist sinnlos und erfüllt keinen Zweck! Kann einfach gelöscht werden.
    3. Spoiler3 kann deutlich von doppelt gemopelten Code in den Forks befreit werden, auch diese ganzen Else Cases wirken recht unübersichtlich.
    Freue mich auf eine überarbeitete Version.
    Edit: Gibt es bei diesem Maker Self Switches wie beim VX ?

    Gruß Bex

    Geändert von Bex (21.10.2012 um 23:24 Uhr)

  7. #7
    Meine Gedanken dazu:

    Variable "Zufall" Random Number between ... and ...

    If Variable "Zufall" is ... then
    *inhalt*

    If Variable "Zufall" is ... then
    *inhalt*

    If Variable "Zufall" is ... then
    *inhalt*
    ---------------------------------------------
    Edit:
    Zitat Zitat von Bex
    Edit: Gibt es bei diesem Maker Self Switches wie beim VX ?
    Nicht dass ich wüsste.

    Edit2:
    Die Soundeffekte würde ich in Common Events packen, nachher willst du was verbessern und darfst erstmal jedes einzelne Event abklappern xD

    Geändert von Davy Jones (22.10.2012 um 00:09 Uhr)

  8. #8
    jetzt weiß ich, warum ich den maker so beschissen finde.
    nichtmal item namen per msg command ansprechbar.... echt schwach sowas.
    nunja, wenn man nicht unbedingt ausgeben muss, was in der truhe drin ist, dann ist das ein 3 zeiler (zumal ich tatsächlich bei euch auch dazu tendieren würde, Add Item with ID zu nehmen, und nicht jedes einzeln zu bestimmen...)

  9. #9

    Users Awaiting Email Confirmation

    Zitat Zitat von anti-freak Beitrag anzeigen
    (zumal ich tatsächlich bei euch auch dazu tendieren würde, Add Item with ID zu nehmen, und nicht jedes einzeln zu bestimmen...)
    Macht wenig bis garkeinen Sinn. Was willst du mit ner Zufallsvariable die dann für die Datenbank ist?
    Man sollte bedenken dass zwischen Item 1 und 5 ein legendäres Schwert oder einfach nur eine leere Zeile sein kann.

  10. #10
    @ Davy Jones

    Nicht nur die Soundeffekte Mittlerweile halte ich es so das ich den gesamten Code über ein Communevent aufrufen lasse so erspar ich mir änderungen in jedem einzelnen Event zu machen.

    @ anti-freak

    Wie kommst du auf diesen Gedankengang? Also ich sehe da kaum Sinn drin Add Item with ID zu nehmen für mich ist es so im Moment einfacher gewesen und ich denke mal für eine die sich schon ein wenig mit dem Maker beschäftigt haben ebendso.

    Lg
    Multi-Master1988

  11. #11
    Weil ich programmieren kann.

    Ich habe ein Array, warum also nicht nutzen wie eins? Ich persönlich habe keine Lust 200 oder mehr add item Befehle per Hand zu ändern. Das unzweckmäßig und kostet nur Zeit, und am Ende sind doch wieder 10 Fehler drin. Wenn das mit deiner momentanen item Struktur nich möglich Ist, machst du was falsch. Ein ziel welches man haben sollte, Ist möglichst wartbaren und wiederverwertbaren code zu schreiben, das Ist das da oben sicherlicht nicht. Ich gebe zu, der Maler Ist beschränkt, aber man kann sich dennoch die Funktionen, die er bietet zu nutze machen. Ich mein... Ihr macht euch Gedanken über ne Zeile mit soundeffekt, wollt mir aber erklären, das es sinnvoll Ist 200 add item Befehle per Hand zu setzen, sure...?

  12. #12
    @anti-freak
    Was du zum Code erstellen sagst, da kann ich nur zustimmen.
    Hier geht es aber lediglich um 5 zufällige Werte = 1von5 Items. So das man die Truhe nur kopieren brauch und immer 5andere Items einstellen kann.
    Hier auf eine Itemreihenfolge in der Database zu achten ist in diesem Fall nicht vorteilhaft.
    @Multi-Master1988
    Kannst du versuchen den Eventcode bezüglich der weiter oben im Thread genannten Punkte zu verbessern?

    Gruß Bex

  13. #13
    Zitat Zitat von Bex Beitrag anzeigen
    @anti-freak
    Was du zum Code erstellen sagst, da kann ich nur zustimmen.
    Hier geht es aber lediglich um 5 zufällige Werte = 1von5 Items. So das man die Truhe nur kopieren brauch und immer 5andere Items einstellen kann.
    Hier auf eine Itemreihenfolge in der Database zu achten ist in diesem Fall nicht vorteilhaft.
    Gruß Bex
    stimme ich dir zu, das es bei diesem beispiel ein wenig überzogen wäre. allerdings kann ich mir nicht vorstellen, das es im ganzen spiel nur 5 items gibt, die in jeder zufallstruhe auftauchen können. deswegen mein einwand. das da oben soll ja lediglich ein tutorial sein, und da fande ich es angebracht das zu erwähnen. wie das dann letzendlich jeder für sich alleine löst ist mir ja persönlich egal. ich nutze den maker nun schon sehr lange nicht mehr (und vermissen tu ich ihn nicht wirklich) aber ich habe damals jede funktion lieben gelernt, die es mir erlaubt hat, dinge indirekt anzusprechen. deswegen fand ich auch den destiny patch so schön, weil er sowas einfach gefördert hat.

  14. #14
    Man könnte es auch noch eleganter machen und ein / oder mehrere Common-Event(s) erstellen, welche einen Zufallswurf starten, der aus allen existierenden Gegenständen eines auswürfelt. (alá Diablo Itemdrop)
    In den Truhen müsste man so, wenn diese noch nicht geplündert wurde, lediglich den Switch für das Zufallsitem-Common Event auf AN stellen. Heißt = weniger Code in den einzelnen Truhen und übersichtlichere Code-Ansicht / Fehlerbehebung.
    Die Variante habe ich in "Von Händlern und Helden" eingebaut und in fünf Item-Kategorien geteilt.
    Auf die Weise kann ich von jedem Punkt im Spiel, mit einem einfachen Switch, einen Zufalls-Item-Wurf auslösen, ohne viel Code kopieren zu müssen

  15. #15
    Zitat Zitat von EasyEventExporter
    - SCRIPT -
    <> Move Event: Event #0, Frq 4, Pattern: Play SE Open1 V100 T100 B50, Fc right, Fc up, Fc left
    <> Wait Until Moved
    <> Fork Condition: If Switch [23] == ON then ...
    . <> Show Message: Nur noch Spinnennetze zu finden......
    . <>
    : Else ...
    . <> Change Variable: [25] = Random [1-5]
    . <> Fork Condition: If Variable [25] == 1 then ...
    . . <> Show Picture: #20, Kleiner Heilttrank, (160, 120), Mgn 100%, Tsp 0%
    . . <> Play Sound Effect: Item1, Volume 100%, Speed 100%, Pan Center
    . . <> Change Items: Add 1 piece of item #1
    . . <> Change Switch: [23] = ON
    . . <>
    . : End of fork
    . <>
    : End of fork
    <> Fork Condition: If Variable [25] == 2 then ...
    . <> Play Sound Effect: Failure2, Volume 100%, Speed 100%, Pan Center
    . <> Change Switch: [23] = ON
    . <>
    : End of fork
    <> Fork Condition: If Variable [25] == 3 then ...
    . <> Play Sound Effect: Item1, Volume 100%, Speed 100%, Pan Center
    . <> Change Items: Add 1 piece of item #1
    . <> Change Switch: [23] = ON
    . <>
    : End of fork
    <> Fork Condition: If Variable [25] == 4 then ...
    . <> Play Sound Effect: Item1, Volume 100%, Speed 100%, Pan Center
    . <> Change Items: Add 1 piece of item #2
    . <> Change Switch: [23] = ON
    . <>
    : End of fork
    <> Fork Condition: If Variable [25] == 5 then ...
    . <> Play Sound Effect: Failure2, Volume 100%, Speed 100%, Pan Center
    . <> Change Switch: [23] = ON
    . <>
    : End of fork
    <> Move Event: Event #0, Frq 4, Pattern: Fc up, Fc right, Fc down
    <> Wait Until Moved
    <> Erase Picture: #20

    So sieht der aktuelle Code aus und wird über Commun Events aufgerufen bei jeder einzelnen Truhe Kiste ect.

    Lg
    Multi-Master1988

  16. #16

    Users Awaiting Email Confirmation

    Wieso sind die Variablen Abfragen außerhalb des Else-Cases der anderen?
    Ergibt doch keinen Sinn^^
    Wieso wird die Variable abgefragt, wenn die Truhe schon offen ist?

    Was für ne Zufallstruhe vielleicht in Ordnung wäre, es Level-bedingt zu machen.
    Level 1-10: Heilkraut, kleiner heiltrank, kleiner Manatrank
    Level 11-25: mittlerer Heiltrank, mittlerer Manatrank, Phönixfeder
    Level 26:XY: großer Manatrank, großer Heiltrank, irgendein-Item-Das-Party-wiederbelebt

  17. #17
    Wo ist das Problem bei nem einfachen Kistenevent? oO
    Code (Pseudocode):
     
    Random Variable zwischen 1-5: V1337
    Chestanimation + Sound
    Wenn Switch XYZ an ist...
       ..omg die Truhe ist leider leer! D:
    Wenn nicht, dann...
       Wenn V1337 = 1, dann
       Item A
       Ende
       Wenn V1337 = 2, dann
       Item B
       Ende
       Wenn V1337 = 3, dann
       Item C
       Ende
       Wenn V1337 = 4, dann
       Item D
       Ende
       Wenn V1337 = 5, dann
       Item E
       Ende
       Mach Switch XYZ an
    Ende
    Chestanimation zu + Sound
     


    You get it?
    Ausserdem kann man sowas nicht in ein CE packen (ausser du meintest Maister-Räbbits Methode, das ist aber noch was anderes), da man den Switch pro Truhe ja ändern muss. Außer man spielt da irgendwie mit dem Modulus rum, aber keine Ahnung wie das klappt.

    Geändert von goldenroy (30.10.2012 um 19:28 Uhr)

  18. #18
    Naja man kann so etwas schon in ein CE packen. Das mach ich auch so^^ Wenn dann ein Item ausgegeben wird, setze ich im CE einen Switch auf ON. Danach frage ich im Event der Truhe ab ob dieser Switch auf ON steht und wenn ja dann wird der Switch für diese Truhe aktiviert und der Switch aus dem CE wieder ausgeschaltet. Ich hab das so gemacht weil ich mir gerade ein eigenes Inventar bastele, und wenn man keinen Platz mehr hat, dann kann man sich das Item später noch abholen. (Ich weiß grade nicht wie das bei dem Inventar vom RPGmaker ist...wird das überhaupt jemals voll ?^^ Und wenn ja bei wievielen Items und eine noch bessere Frage, was passiert dann mit den Items die man eigentlich erhalten sollte ?) Wenn man dieses Prinzip mit dem Prinzip einer Zufallstruhe kombiniert, müsste man sich ggf. das Item was sich in genau dieser Truhe ist merken oder man lässt einfach erneut den Zufall entscheiden, je nachdem wie man lustig ist.

    Ansonsten denk ich aber eher auch das so ein einfaches Kistenevent, nicht sonderlich Schwierigkeiten machen sollte und man eig nicht soviel falsch machen kann UND das das ganze sehr schnell und übersichtlich geht. goldenroy hat ja schon geschrieben wie es geht. Und wenn man halt noch 'nen Sound für das Erhalten des Items will, fügt man diesen eben hinzu (auch hier: ggf. per Switch abfragen ob ein Item erhalten wurde, falls der Zufall manchmal will das man kein Item erhält.)

    LG Quetschi

  19. #19
    Zitat Zitat von Quetschi Beitrag anzeigen
    wird das überhaupt jemals voll ?^^
    Nicht das ich wüsste. 0:

  20. #20
    Items nur bis 99 Stapelbar soweit ich weiß. (Zumindest 2000/2003er)

Berechtigungen

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