Ergebnis 1 bis 20 von 44

Thema: Welchen Maker nutzen?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #23
    @Melfice: Was soll dieses "sry für doppelpost" ? Womit rechtfertigt sich das ? Du hättest ganz einfach den edit button benutzen können.

    Außerdem postest du hier wohl nach dem Motto "hauptsache mal was gesagt". Hättest du den Thread gelesen, wüsstest du, dass sich der Threadersteller 1. schon für einen Maker entschieden hat und 2. bereits alle Maker besitzt.

    --------------------------------
    @Topic

    @Kaat,Freierfall und alle, die es sonst noch interessiert:

    Das "simulieren" ist ganz easy. Dazu muss man nur einpaar Kleinigkeiten wissen.

    1. Ihr braucht zwei instance Variablen (das sind keine Game/MakerVariablen). Nennen wir sie einfach mal @pointer1 und @pointer2 (das @ zeigt an, dass es sich um instance Variablen handelt und muss dazugeschrieben werden.) Noch müsst ihr sie euch nur denken.
    2. Mit $game_variables[ID] greift ihr auf die standarten Variablen des Makers zu. Der RmXP fragt die Variablen nach der ID und nicht nach dem Namen ab. $game_variables[1] würde dann die 0001. Variable darstellen (also die erste, die in der Variablenliste erscheint).
    3. Im Conditional Branch (Forks) gibt es auf der letzten Registerkarte eine "Script" Option.
    4. Der letzte Eventbefehl auf der letzten Event-Registerkarte (Call Script) nimmt Ruby Code auf (kann natürlich noch mehr, das braucht ihr aber jetzt nicht zu wissen).


    Jetzt machen wir uns drei standarte Variablen. Auf Variable 1 soll der Wert der gezeigten Variable gespeichert werden. Auf Variable 2 liegt ein Wert (sagen wir 10) und auf Variable 3 ein weiterer (sagen wir 6). (Die Variablen erstellt ihr ganz wie gewohnt)

    Wir wollen natürlich nicht die zwei Variablen einzeln abfragen.
    Also muss eine Abfrage her, die durch verändern einzelner Werte jeweils eine andere Variable abfragt (bzw ihren Wert).

    Zur demonstration macht ihr euch jetzt ein Event und stellt es auf Touch Hero. Als erstes (natürlich neben den bereits erwähnten drei Variablen) braucht ihr dann den "Call Script" Befehl. Dort schreibt ihr erstmal folgendes:

    #----------------------------------------
    @pointer1 = 1
    @pointer2 = 3

    $game_variables[@pointer1] = $game_variables[@pointer2]
    #----------------------------------------

    Das wärs auch schon.
    Dann macht ihr eine Abfrage (conditional branch), wählt also dort die letzte Registerkarte und Script. Dort schreibt ihr:

    $game_variables[@pointer1] == 6

    In diese Fork setzt ihr dann eine Message "Auf Variable drei verwiesen".


    Fertig.

    Jetzt ist klar, wenn man das Spiel startet und der Hero auf dieses Event läuft, wird die Message "Auf Variable drei verwiesen" abgespielt. Jetzt seht ihr, dass es funktioniert und der Wert von Variable drei in Variable eins gespeichert wurde, aber so wird euch das (wahrscheinlich) noch nicht helfen. Also kurze Erklärung:

    Würde man den Wert von @pointer2 auf 2 (also @pointer2 = 2) verändern, hättet ihr auf die zweite Variable mit dem Wert 10 verwiesen.

    $game_variables[@pointer1]

    Das @pointer1 in der [ ] ist , wie ihr wisst, nur eine Variable. Teilt ihr dieser einen Wert zu, stellt sie eine Standartvariable (mit der entsprechenden ID) des RMXP da. So könnt ihr also eine Universalabfrage erstellen und wie mit den pointer variablen auf einen in einer anderen Variable gespeicherten Wert verweisen.


    Ein Beispiel: @pointer1 ist in diesem Fall Variable 1 in der irgend ein Wert, sagen wir die HP euerer Heros, abgespeichert und abgefragt wird. Wenn die HP auf fünf stehen, passiert irgendwas tolles. Schreibt das (Call script: ) nicht dazu, das schreibe ich nur für euch hin, um den Befehl zu verdeutlichen.

    #----------------------------------------
    (Call script: ) $game_variables[@pointer1] = 1
    #----------------------------------------

    if $game_variables[@pointer1] == 5
    > Message: "Ich hab nur noch 5 hp"
    end

    Das soll bei jedem Hero passieren (und wie ihr wisst wollen wir nicht alle einzeln abfragen). Seht jetzt mal davon ab, dass die Message immerwieder abgespielt werden würde, solange der Wert auf 5 steht. Ich will das jetzt aber so simpel wie möglich halten.

    Die Hp der vier Helden sind in der zweiten, dritten, vierten und fünften Variable gespeichert.

    also

    $game_variables[2]
    $game_variables[3]
    $game_variables[4]
    $game_variables[5]

    (Die Variablen können ganz normal belegt werden. Also durch den Variableneditor des Makers selbst. Das ist nur die Ruby-Darstellung).

    Setzt bei jedem Hero die @pointer2 Variable auf den entsprechenden ID- Wert ihrer HP-Vairable(das macht ihr natürlich durch Call Script). Für Hero 1 wäre das dann die zweite Variable. Also:

    #----------------------------------------
    (Call script: )$game_variables[@pointer2] = 2
    #----------------------------------------


    Beim Abzug der HP fragt ihr jetzt einfach die HP (Variablenwerte) ab (vielleicht mit einem schönen Call Event, wenn ihr das ganze in einem Common Event macht) bzw speichert ihre Werte in die erste Variable. Aber natürlich universal !

    #----------------------------------------
    (Call script: )$game_variables[@pointer1] = $game_variables[@pointer2]
    #----------------------------------------

    Und das wars. Sollte Hero1 5hp haben, würde die Message erscheinen. Durch verändern des @pointer2 Werts verweist ihr jeweils auf eine andere Variable.



    Ich hoffe, ihr habt das jetzt irgendwie begriffen ^^´.


    edit: Ach ja, was ich noch vergessen habe. Das ganze hier "simuliert" nur die "Pointer-Variablen des Rm2k". Der genaue Beobachter sieht bestimmt, dass man simple Universalabfragen (wie z.B. in meinem zweiten Beispiel), solche bei denen der Wert eine Variable nur abgefragt und nicht verändert wird oder es werden darf, auch einfacher realisieren kann. Man braucht dazu nur eine instance Variable (nehmen wir wieder @pointer1 :>). Diesen Wert gilt es dann vor den Abfragen zu verändern, dann wird gleich die betreffende Variable abgefragt und nicht ihr Wert gespeichert in einer anderen Variable. Wer das ganze hier versteht, kommt auch von alleine drauf. Wollte es nur erwähnen, falls nicht ^^.

    Geändert von [KoA-Dani] (06.04.2005 um 21:40 Uhr)

Berechtigungen

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