Einfachster Weg. Ändern des Script.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Einfachster Weg. Ändern des Script.

    Ich bin, obwohl ich schon länger den Gm benutze nicht so gut in Arrays, Argumente, etc....

    Frage 1)
    Ich habe einen Script der wie folgt aussieht:

    GML-Quellcode

    1. argument0="Eisball"
    2. argument1="Feuerball
    3. argument2="Blitz"
    4. argument3="Erdbeben"
    5. {
    6. attackAuswahl = 1;
    7. attackText[0] = 4;
    8. attackText[1] = argument0
    9. attackText[2] = argument1
    10. attackText[3] = argument2
    11. attackText[4] = argument3
    12. }
    Alles anzeigen


    Im Create Event wird es aufgerufen.
    Ich weiss auch wie man diese 4 Attacken einsetzt.

    Meine Frage ist, wie ändere ich die argumente, also z.B.: agrument0="Eisball""Eissturm".
    Ich habs halt versucht, wenn ich z.B.: Enter drücke, dass argument0="Eissturm" wird.
    Funktioniert nicht. Es bleibt Eisball.

    Frage 2)
    Im Enter event ist folgendes:

    GML-Quellcode

    1. {
    2. switch(attackAuswahl) {
    3. case 1: // Argument0
    4. instance_create(x,y,argument0)
    5. break;
    6. case 2: // Argument1
    7. instance_create(x,y,argument1)
    8. break;
    9. case 3: // Argument2
    10. instance_create(x,y,argument2)
    11. break;
    12. case 4: // Argument3
    13. instance_create(x,y,argument3)
    14. break;
    15. }
    16. }
    Alles anzeigen

    Wie mache ich das argument z.B.: argument0=Eisball, das der Eiball erstellt wird. So wie ich das habe funktioniert es nicht wirklich :s
    Und wenn argument0=Eissturm ist, dass dieser erstellt wird.

    Wahrscheinlich bin ich komplett auf dem Holzweg. Ich hoffe ich versteht meine Fragen.
  • Argumente kannst du nur innerhalb des Scriptes verwenden und nicht verändern, du solltest ihnen einfach eine Variale zuweisen:

    GML-Quellcode

    1. attack[0] = argument0
    2. attack[1] = argument1
    3. //...

    Diese kannst du dann verändern und auch im z.B. Enter Event verwenden.
    Ausserdem kannst du in instance_create als Objekt keinen String eingeben, sondern nur die Objekt-id (oder eben den Objekt Namen ohne Anführungszeichen).

    MfG Waterman7
  • Danke :) Wusst ich nicht :s

    Ähm, dass versteh ich nicht ganz.
    Wie mache ich nun das wenn ich Enter drücke der Eisball erstellt wird aber wenn ....=Eissturm ist, dass der Eissturm erstellt wird?
    Mit else wären das ja Jahre lange abfragen, wenn es z.B 50 Skills gebe.

    Weil ich versteh nicht den unterschied zwischen deinem attack[0]=argument0 und meinem Code.
    Wie definiere ich es den so, dass attackText[0]=.... ist(Eisball oder wenn es Eissturm ist, Eissturm )

    Also zuerst ist ....=Eisball und wnen ich z.B.: numpad0 drücke ....=Eissturm wird und diese als object erstellt werden wenn ich Enter drücke?! :s

    Ich sollte echt mal anfangen, besser Gml zu lernen :whistling:
  • Der Unterschied zwischen meinem und deinem Code ist, dass deiner nicht funktioniert, weil im Enter Event nicht auf argument0-4 aus dem Script zugegriffen werden kann und von daher keine Informationen aus dem Script entnommen werden. Ausserdem kannst du die Variablen im Gegensatz zu den argumenten einfach im Numpad 0 Event ändern (attack[0] = "Eissturm").
    Das ändert leider nichts daran, dass du keine Strings als Objekte eingeben kannst...
    Ich hab jetzt direkt keine (unkomplizierte) Lösung, wenn mir was einfällt lasse ich es dich wissen.
    Vllt kann dir jemand anderes schneller helfen. ;)

    MfG Waterman7
  • Mist, das wollt ich grad schreiben X(

    Stimmt, mit execute_string kannst du den kompletten Befehl (instance_create) als string angeben und den namen den du angibst dazwischen hängen...

    Was auch gehen würde, du benutzt ein 2D array oder 2 normale arrays und machst es so, dass du z.B. name[0]="Schneesturm" und dann skill[0]=obj_schneesturm und das halt komplett durch machst.

    In nem 2D Array wäre das dann skill[0,0]="Schneesturm"; skill[0,1]=obj_schneesturm;

    Hoffe ich konnt dir helfen ;)


    PS: Sorry falls ich schlampig geschrieben hab, bin heute etwas hektisch
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet