[TOOL WIP] Block'it [SCRIPT GUI]

    • [TOOL WIP] Block'it [SCRIPT GUI]

      Salut!

      Vor einiges Jahren entdeckte ich den AppInventor zum Programmieren von Android Apps.
      Dort gab es eine für mich bis dato unbekannte Neuheit: Programmieren via GUI - und nein nicht ein GUI wie bei C# o.Ä.
      Es war mehr wie ein Programmierer Lego.

      Vor einem Monat kam mir das alles wieder in den Sinn, und mir kam die Idee, ob dies so nicht auch für MTA machbar wäre.

      Und tatsächlich ist dies möglich (wie ich festgestellt habe)
      Nach langem Suchen endlich, fand ich eine Source von diesem "Blockeditor" und habe mich daran gemacht, diesen umzuschreiben.
      Das MTA Wiki dient dabei als Codebuch.

      Bevor ich nun weiter schreibe, erläutere ich euch das Prinzip an 2 Bildern.

      Angehängte Blöcke


      Hier die Ansicht wo einige Blöcke abgehängt sind

      Die hier gezeigten Bilder sind Teil meiner damaligen end2end verschlüsselten Chat App.


      Statt unserem normalen Programmcode, haben wir "Blöcke" die wir einfach an vorher erstellte Basisfunktionen anheften können. Die Blöcke bestehen auf Funktionen die in einem z.B. Dropdownmenu auswählbar sind (z.B.: Du möchtest abfragen ob das PED in der Karre sitzt). Nehmen wir nun als Beispiel wir würden abfragen ob er im Auto sitzt, dann könnten wir dann einfach per Mausklick anhängen, was denn passieren soll, wenn dies der Fall ist.
      Wenn später mal alle Befehle eingepflegt sind, sind die Möglichkeiten dadurch unendlich.
      Desweiteren ist die Übersichtlichkeit unschlagbar, und sollte mal ein Fehler da sein, lässt dieser sich via Drag and Drop beheben.
      Ebenso sind auch Änderungen oder Erweiterungen super zu erstellen.
      Aktuell bin ich dabei, alle Befehle in den Code einzuspeisen, und ebenso, die Möglichkeit zu geben, eigene Funktionen einzupflegen.
      Erste erfolgreiche "Codes" konnte ich bereits erstellen, diese werden dann als .lua einfach ausgespuckt - nach Wahl sogar in OOP (Sofern man dies im Block it aktiviert.
      Bisher sind nur einfache Funktionen möglich, da das einpflegen etwas Zeit beansprucht.

      Ziel soll es sein, dass Programmieren/Scripten in MTA um ein Vielfaches zu vereinfachen, und so auch Anfängern die Möglichkeit zu geben, schwerere Scripts eigens zu erstellen. Zu Lernzwecken werde ich ebenso ein Hotkey einbauen, der "On Hover [Maus über Block]" den Original LUA Code anzeigt, damit man auch versteht was wo passiert.
      Dies ist aber noch nicht implementiert.
      Ich werde versuchen das Programm soweit Fertig zu stellen, wie möglich, und dann die Website zum testen zu Verfügung zu stellen.
      Achja, noch garnicht erwähnt: Es wird ein Webbasierter Dienst werden, Coden im Browser also.

      Anregungen nehme ich gerne entgegen - war jetzt alles vllt auch bissl Wirr.

      es grüßt ne BoX

      Wer anderen eine BlechBoX brät, hat ein BlechBoXbratgerät.
    • Wow.


      Etwas ähnliches gab es früher immer auf der Schule, da konnte man ein Hamster oder keine Ahnung was programmieren wie mit dem Menü oben.

      Auf die Idee das mit MTA zu verbinden, wäre ich nie drauf gekommen.
      Ich fände es nur schöner, wenn man es auch offline machen könnte. Gerade wenn Wartungsarbeiten an meinem Anbieter o.ä ist scripte ich gerne mal Local.

      Aber aufjedenfall coole Idee, ich würde sogar schon fast sagen, dass es das scripten in MTA "revolutioniert"
      Wenn ihr schon unsere Hilfe "verlangt", dann macht es doch auch richtig.:

    • Die Idee an sich finde ich gut, die Umsetzung von dem vorgestellten Tool allerdings eher gewöhnungsbedürftig - für mich erschließt sich erst beim zweiten Hingucken, was der Code macht, sodass ein geschriebener Code in diesem Fall lesbarer ist.

      Dennoch gibt es für diesen Programmieransatz einige, meiner Meinung nach, gute Umsetzungen wie z.B. in der Unreal Engine unter dem Namen "Blueprint".


      Sowas hat weiterhin sogar schonmal jemand in MTA angefangen umzusetzen:

      Was daraus geworden ist, weiß ich allerdings nicht.

      EDIT:
      Ansonsten würde ich Code zumindest primär nicht generieren, sondern lieber ein eigenes (vielleicht auf XML basierendes) Format entwickeln, da du sonst Probleme bekommst den gespeicherten Code wieder zu laden.
      Weiterhin kannst du, wenn du diese Dateien dann live Ingame interpretierst, zusätzliche Informationen nutzen.

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von ronald drunk ()

    • Danke für das Feedback , anpassen werd ich da noch einiges müssen. Das ganze Local zu machen wäre auch eine Idee, dafür müsste ich dann nur einen Internen Webserver starten, da ich als Source die Webanwendung habe, und die Source erspart mir die GUI Arbeit, und GUIs mach ich so ungern.

      Das mit der Unreal Engine sieht verdammt gut aus, werde ich vllt so ähnlich abwandeln
      Wer anderen eine BlechBoX brät, hat ein BlechBoXbratgerät.
    • Interessante Idee, wobei mir das Anwenden von sowas nicht wirklich zusagt.

      Wenn es für dich zum lernen sein soll, dann ist es ein cooles Project. Für den Einsatz für größere Sachen (Gamemodes usw.) ist es dann eher ungeeignet, da man dort ja schon viel an persönliche Bedürnisse angepassten Code benötigt.

      Die Übersicht ist auf dem ersten Blick auch gewöhnungsbedürftig, sollte man sich aber daran gewöhnen können wenn man sich darauf einlässt.