Scripte durch Variablen mit ihren Name aufrufen

  • GM 7

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

  • Scripte durch Variablen mit ihren Name aufrufen

    Hallo, denke mir sollte schnell geholfern sein, über die Suche hab ich leider nichts gefunden

    mein Problem:
    möchte ein Spiel mit einem Rundenbasierenden Kampfsystem machen, dazu möchte ich scripte über ihren Namen und durch eine Variable öffnen:

    grobes Besispiel:

    GML-Quellcode

    1. var attacktype
    2. attacktype = "magic";
    3. global.damage=script_execute(attacktype, arg1, arg2, usw...);


    Ich möchte also erreichen, einen Script mir dem Namen eines Variablenwertes zu öffnen. Leider sieht die script_execute funktion aber so aus, dass sie nicht nach ihrem Namen, sondern ihrem Ind (nehme an eine Zahl für Index) geöffnet wird.
    Demzufolge ist es egal welchen Wert attacktype hat, es wird immer der gleiche Script geöffnet, unabhängig davon ob attacktype= magic oder attacktype = angriff ist.

    Danke im vornihein
    Adolamin
  • LoganTheManster's Vorschläg wäre eine Möglichkeit, ich hab hier aber immer noch nicht den Sinn von script_execute verstanden.
    Wenn du ein Script namens "magic" und eins namens "angriff" hast, das jeweilige Script dann mit bestimmten Argumenten ausführen willst und einen return Wert abfangen willst, geht das noch ein wenig einfacher:

    GML-Quellcode

    1. var str;
    2. str = "global.damage = " + attacktype + "(arg1, arg2, arg3, usw...)";
    3. //bei attacktype="magic" sähe das dann so aus:
    4. //str = "global.damage = magic(arg1, arg2, arg3, usw...)"
    5. //bei attacktype="angriff" dann entsprechend:
    6. //str = "global.damage = angriff(arg1, arg2, arg3, usw...)"
    7. execute_string(str); //und das wird dann ausgeführt, und so hast du den return wert von dem jeweiligen script in der variable global.damage

    Oder hab ich da was falsch verstanden?

    Zu LoganTheManster:
    an der stelle string(attacktype) hätte meines wissens nach einfach attacktype gereicht, da die funktion string(...) den inhalt der klammer in einen Stirng umwandelt und attacktype ist schon ein string.

    LG
    -Tobi
  • Tobi schrieb:

    ich hab hier aber immer noch nicht den Sinn von script_execute verstanden
    Ich habs nur benutzt, weil ich den Code von oben übernommen hab. Was ist überhaupt der sinn von 'script_execute()' ?

    Tobi schrieb:

    Zu LoganTheManster:
    an der stelle string(attacktype) hätte meines wissens nach einfach attacktype gereicht, da die funktion string(...) den inhalt der klammer in einen Stirng umwandelt und attacktype ist schon ein string.
    Hast recht