Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Coding Releases
You last visited: Today at 07:23

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Release] AAL Editing Tools

Discussion on [Release] AAL Editing Tools within the Coding Releases forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
[Release] AAL Editing Tools

Hey ho Leute,

hiermit möchte ich nun die Alpha meiner AAL IDE vorstellen.



Bei der IDE handelt es sich um ein Opensource Projekt zum Entwickeln und Managen von AAL Projekten.

Das Projekt ist komplett Open Source und auf Github verfügbar:


Eine Kompilierte Version der IDE findet ihr im Release Verzeichnis des Git Repo. Außerdem lade ich als Anhang einen Installer hoch, welcher die neuste Version runterläd und Installiert.

Weitere Informationen zu der IDE und deren Funktionen findet sich als Dokumentation über Extras->Über->Hilfe
Attached Files
File Type: zip AETInstaller.zip (635.3 KB, 17 views)
warfley is offline  
Thanks
9 Users
Old 12/18/2015, 20:25   #2
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878

Sehr geile Sache!
Um etwas besser den Ablauf und den Aufbau von AAL zu verstehen kannst du dir die "./Getting Started/aal-developer-manual.pdf" anschauen, da stehen ein paar allgemeine Sachen drin, u.a. auch was Sichtbarkeitsbreich angeht (Wobei Sichtbarkeitsbereiche im Normalfall abgeschlossen sind, das heißt in While definierte Variablen sind auch nur dort sichtbar).

Aber du hast Recht es fehlt noch enorm viel Dokumentation.
Ich bin aber auf dem besten Weg das auszumerzen.
Der Editor ist aber echt schon einmal eine richtig geile Hilfe.

Hoffentlich können wir den Editor einigermaßen aktuell halten.

Edit:
Kommentare gibt es bisher nur einzeillige und werden mit ";" eingeführt.
Z.B.
Shadow992 is offline  
Old 12/21/2015, 20:44   #3
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
So, ich habe mal ein etwas größeres Update (bzw. wer das Repository up to date hält hatte mehrere kleine).
Der Editor unterstützt nun grob alle Funktionen die ich mir vorgenommen habe vorerst zu implementieren (Liste steht im ersten Post).

Von nun an werde ich mich mit neuen Komponenten wie einem Compilerinterface auseinandersetzen, und natürlich noch Bugs fixen, aber vorerst werden keine großen neuen Features zum Editor hinzukommen

Update: die erste Grundversion der IDE mit Projektsystem und Formeditor ist fertig, natürlich fehlt noch eine menge wie das Compilerinterface oder Events im Formeditor, aber grundlegend lassen sich damit jetzt AAL GUI Anwendungen schreiben (Man muss sie nur manuell kompilieren)
warfley is offline  
Thanks
1 User
Old 01/08/2016, 02:24   #4
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by warfley View Post
Update: die erste Grundversion der IDE mit Projektsystem und Formeditor ist fertig, natürlich fehlt noch eine menge wie das Compilerinterface oder Events im Formeditor, aber grundlegend lassen sich damit jetzt AAL GUI Anwendungen schreiben (Man muss sie nur manuell kompilieren)
Die IDE sieht mal echt geil aus vor allem der Formeditor.
Ich hab das Gefühl das wird echt noch was richtig Großes, keep it up!

Als kleines Extra könntest du die Styles noch auswählbar machen (das sind die ganz normalen Style der WinApi, die da reinmüssen). Später werde ich dafür sicher noch Konstanten anlegen, nur als Anregung.

Edit:
Falls du gerade nicht verstehst was ich meine:
Shadow992 is offline  
Thanks
1 User
Old 01/08/2016, 14:22   #5
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
Quote:
Originally Posted by Shadow992 View Post
Die IDE sieht mal echt geil aus vor allem der Formeditor.
Ich hab das Gefühl das wird echt noch was richtig Großes, keep it up!

Als kleines Extra könntest du die Styles noch auswählbar machen (das sind die ganz normalen Style der WinApi, die da reinmüssen). Später werde ich dafür sicher noch Konstanten anlegen, nur als Anregung.

Edit:
Falls du gerade nicht verstehst was ich meine:
Ich werde nächste Woche sowieso nochmal einen Großteil des GUI Editors überarbeiten, er ist mir bisher noch viel zu statisch und schwer erweiterbar.

Ich hätte da nur noch 2 fragen zu aal:
Welche Funktionen gibt es bisher um die controls zu bearbeiten? Im Beispiel ist zwar das lesen des Textes, aber wie z.B. Setzt man den Wert einer checkbox?

Und zum anderen welche Events außer onClick gibt es, wäre cool wenn du eine Liste hättest
warfley is offline  
Thanks
1 User
Old 01/08/2016, 14:53   #6
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by warfley View Post
Ich hätte da nur noch 2 fragen zu aal:
Welche Funktionen gibt es bisher um die controls zu bearbeiten? Im Beispiel ist zwar das lesen des Textes, aber wie z.B. Setzt man den Wert einer checkbox?
Um Controls zu bearbeiten gibt es bisher kaum etwas und mehr Funktionen werden auch noch ein gutes Stück auf sich warten lassen. Und mir fällt tatsächlich auf, dass ich diese Funktionen in der Dokumentation vergessen habe (oder bin ich blind?)...

Momentan gibt es genau 3 Funktionen:
PHP Code:
ReadText($control) ; returns read text of control (should work for all kind of controls no matter if buttoncheckbox or inputbox)

SetText($control$text) ; sets text of control (should work for all kind of controls no matter if buttoncheckbox or inputbox)

IsChecked($checkbox) ; returns true if given checkbox is checked 
Um auf dem aktuellsten Stand zu bleiben (vor allem wenn ich Held wieder die Hälfte vergesse) kannst du auch in den AAL-Interpreter reinschauen. Ich habe das Hinzufügen neuer Funktionen extra so universell, einfach und extra gehalten, dass man praktisch kaum etwas vom Interpreter-Code verstehen muss und man trotzdem neue Funktionen hinzufügen kann oder zumindest sehen kann welches es so gibt (wenn man auch noch die parameter rausfinden will, muss man dann doch ein bisschen Einblick haben) aber nur um zu sehen was es gibt und um ganz grob abschätzen zu können was es macht, kann man einen Blick in "StandardFunctions.cpp" wagen.

Quote:
Originally Posted by warfley View Post
Und zum anderen welche Events außer onClick gibt es, wäre cool wenn du eine Liste hättest
Da wird noch einiges dazu kommen, vor allem plane ich das ganze ähnlich wie Javascript aufzubauen, sodass man also auf allerlei Events reagieren kann wie "onClick", "onMouseOver" usw.

Folgende Events plane ich früher oder später einzufügen:
Quote:
onchange An HTML element has been changed
onclick The user clicks an HTML element
onmouseover The user moves the mouse over an HTML element
onmouseout The user moves the mouse away from an HTML element
onkeydown The user pushes a keyboard key

Quelle:
Aber momentan gibt es nur onClick und das wird wohl auch noch ein ganzes Stück so bleiben. Jetzt möchte ich erst einmal den Sprachumfang (was Klassen, Syntax und Semantik angeht) fertig haben und danach kommen noch allerlei Funktionen und Events dazu.
Shadow992 is offline  
Thanks
1 User
Old 01/25/2016, 19:41   #7
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
So version 0.0.2 ist da, kaum neue Features, dafür eine Menge Bugs gefixt, und mehr Konfigurationsmöglichkeiten für das Erscheinungsbild der IDE

Außerdem ein Beispielprojekt (ein GUI Taschenrechner) dazu gepackt
warfley is offline  
Thanks
2 Users
Old 01/28/2016, 22:58   #8
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
Zwar ist 0.0.2 erst 3 Tage alt, aber diese 3 Tage war ich doch schon sehr Produktiv, und bin nun mit Version 0.0.3 fertig.

Neue Features: Formeditor unterstützt Multiselektion
Es lässt sich nun ein Raster für den Formeditor einstellen, Aber achtung, das Zeichnen dieses Rasters benötigt sehr viel CPU last, bei Zu großen Fenstern beginnt es zu laggen (dann einfach über die Optionen ausschalten)
Hilfslinien im Formeditor zum Positionieren von Objekten
Sowie ein paar kleinere neue Funktionen, Bugfixes und Performance Fixes

Außerdem gibt es jetzt eine Update Funktion über den Menüreiter Extras, und ich habe das Zip Archiv durch einen Installer ausgetauscht, welcher immer die Aktuelle Version Runterläd und Installiert

Nun habe ich allerdings eine Frage:

Was wünscht ihr euch für Features, weil mit den gesamten Grundfeatures bin ich eigentlich schon durch, und mir fällt nichts großes Neues zur Zeit mehr ein.

PS: Falls in den nächsten 1-2 Monaten kaum Updates kommen nicht wundern, bald beginnt bei mir die Klausurphase, und da habe ich nun mal nicht so viel Zeit
warfley is offline  
Thanks
1 User
Old 01/28/2016, 23:18   #9


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,115
Received Thanks: 2,436
Es gibt doch noch soviel... schau dir doch einfach mal andere IDE´s an..
z.b. Git Unterstützung (man sieht am Rand welche Sachen noch nicht committed bzw gepusht wurden...
Wie wäre es mit Plugin Unterstützung ?etc.. es gibt viel^^
False is offline  
Thanks
2 Users
Old 01/29/2016, 11:13   #10
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by warfley View Post
Zwar ist 0.0.2 erst 3 Tage alt, aber diese 3 Tage war ich doch schon sehr Produktiv, und bin nun mit Version 0.0.3 fertig.

Neue Features: Formeditor unterstützt Multiselektion
Es lässt sich nun ein Raster für den Formeditor einstellen, Aber achtung, das Zeichnen dieses Rasters benötigt sehr viel CPU last, bei Zu großen Fenstern beginnt es zu laggen (dann einfach über die Optionen ausschalten)
Hilfslinien im Formeditor zum Positionieren von Objekten
Sowie ein paar kleinere neue Funktionen, Bugfixes und Performance Fixes

Außerdem gibt es jetzt eine Update Funktion über den Menüreiter Extras, und ich habe das Zip Archiv durch einen Installer ausgetauscht, welcher immer die Aktuelle Version Runterläd und Installiert

Nun habe ich allerdings eine Frage:

Was wünscht ihr euch für Features, weil mit den gesamten Grundfeatures bin ich eigentlich schon durch, und mir fällt nichts großes Neues zur Zeit mehr ein.

PS: Falls in den nächsten 1-2 Monaten kaum Updates kommen nicht wundern, bald beginnt bei mir die Klausurphase, und da habe ich nun mal nicht so viel Zeit
Ziemlich cool fände ich noch einen Shortcut, welcher einen erlaubt an der aktuellen Stelle (besonders vor Funktionen) einen automatisch generierten Kommentar einzufügen, der sich die Informationen der nächsten Zeile holt und sie "Dokumentier-Bereit" darstellt, also z.B. sowas:

Code:
func Fib($num,$maxdepth=0)
; ...
return $fib
endfunc
Dann Strg + d (oder jedes beliebige andere Kürzel):

Code:
; ------------------------------------------
; Function: Fib ($num,$maxdepth=0)
; Summary:
; 
; $num - 
; $maxdepth (optional; default=0) - 
; 
; Returns: $fib - 
; ------------------------------------------

func Fib($num,$maxdepth=0)
; ...
return $fib
endfunc
Ist natürlich nur eine Idee, das Aussehen lässt sich sicher noch optimieren/anpassen.

Edit:
Auch interessant wäre eine statische Code-Analyse ala "Variable never used" oder "Unreachable Return"... Das Ganze wird zwar auch in den Compiler kommen, aber nur in der Form: "Unreachable Code? --> Schmeiss es raus"

Auch interessant wären Refactoring Sachen, sowas wie Vorschläge an der Seite, dass Funktionen immer klein/groß/mit _ anfangen sollten.

Eine Art TestUnit Unterstützung (oder zumindest eine automatische Generierung derselbigen) hätte auch was, ähnlich wie in C#. Wenn man z.B. die Funktion Fib testen möchte mit Parameter 10 und einmal mit 5:

Code:
; [TestUnitName1: Fib(10); ExpectedOutput=55]
; [TestUnitName2: Fib(5); ExpectedOutput=5]
func Fib($num)
; ...
return $fib
endfunc
Edit2:
In der nächsten Version wird es wohl auch Klassen geben, die dann wie folgt erstellt/deklariert werden:

Code:
class Dog($CanBark_in)
   $CanBark=$CanBark_in
   $isRealDog=true

   if $CanBark = false
      $isRealDog=false
   EndIf

   Func bark()
      if $CanBark = true
         ; do something
      endif
   EndFunc

EndClass
Erstellen geht dann über:
Code:
$A_Dog= new Dog(true)
Shadow992 is offline  
Thanks
1 User
Old 01/29/2016, 15:45   #11
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
Quote:
Originally Posted by .ƒaℓsє.
Es gibt doch noch soviel... schau dir doch einfach mal andere IDE´s an..
z.b. Git Unterstützung (man sieht am Rand welche Sachen noch nicht committed bzw gepusht wurden...
Wie wäre es mit Plugin Unterstützung ?etc.. es gibt viel^^
Quote:
Originally Posted by Shadow992 View Post
Ziemlich cool fände ich noch einen Shortcut, welcher einen erlaubt an der aktuellen Stelle (besonders vor Funktionen) einen automatisch generierten Kommentar einzufügen, der sich die Informationen der nächsten Zeile holt und sie "Dokumentier-Bereit" darstellt, also z.B. sowas:

Code:
func Fib($num,$maxdepth=0)
; ...
return $fib
endfunc
Dann Strg + d (oder jedes beliebige andere Kürzel):

Code:
; ------------------------------------------
; Function: Fib ($num,$maxdepth=0)
; Summary:
; 
; $num - 
; $maxdepth (optional; default=0) - 
; 
; Returns: $fib - 
; ------------------------------------------

func Fib($num,$maxdepth=0)
; ...
return $fib
endfunc
Ist natürlich nur eine Idee, das Aussehen lässt sich sicher noch optimieren/anpassen.

Edit:
Auch interessant wäre eine statische Code-Analyse ala "Variable never used" oder "Unreachable Return"... Das Ganze wird zwar auch in den Compiler kommen, aber nur in der Form: "Unreachable Code? --> Schmeiss es raus"

Auch interessant wären Refactoring Sachen, sowas wie Vorschläge an der Seite, dass Funktionen immer klein/groß/mit _ anfangen sollten.

Eine Art TestUnit Unterstützung (oder zumindest eine automatische Generierung derselbigen) hätte auch was, ähnlich wie in C#. Wenn man z.B. die Funktion Fib testen möchte mit Parameter 10 und einmal mit 5:

Code:
; [TestUnitName1: Fib(10); ExpectedOutput=55]
; [TestUnitName2: Fib(5); ExpectedOutput=5]
func Fib($num)
; ...
return $fib
endfunc
Edit2:
In der nächsten Version wird es wohl auch Klassen geben, die dann wie folgt erstellt/deklariert werden:

Code:
class Dog($CanBark_in)
   $CanBark=$CanBark_in
   $isRealDog=true

   if $CanBark = false
      $isRealDog=false
   EndIf

   Func bark()
      if $CanBark = true
         ; do something
      endif
   EndFunc

EndClass
Erstellen geht dann über:
Code:
$A_Dog= new Dog(true)
Danke, die Ideen sind an alle gut. Ich werde mal sehen was ich wie implementieren werde. Vor allem die Klassen bereiten mir in wenig sorge, da ich dafür Variablentypen überprüfen muss und ich dafür noch keine vernünftige Lösung gefunden habe
warfley is offline  
Thanks
1 User
Old 01/29/2016, 16:23   #12
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by warfley View Post
Danke, die Ideen sind an alle gut. Ich werde mal sehen was ich wie implementieren werde. Vor allem die Klassen bereiten mir in wenig sorge, da ich dafür Variablentypen überprüfen muss und ich dafür noch keine vernünftige Lösung gefunden habe
Wieso willst du da Variablentypen überprüfen?
Das ist etwas, das passiert nicht mal zur Compilezeit, weil es einfach nicht möglichist.
Stell dir nur mal vor es gibt zwei Klassen, die jeweils unterschiedliche Funktionen besitzen.

PHP Code:
$var=0
If random() = 
  $var 
= new Class1()
Elseif 
random() =2
  $var 
= new Class2()
Endif

$var.doSomething() 
Es gibt praktisch keine Möglichkeit das zur Compilezeit herauszufinden.
Daher wird es auch in AAL selbst nur zur Laufzeit geprüft und auch nur wenn es in der jeweiligen Zeile ankommt.
Man hat also keine Chance heruaszufinden, ob 0 oder ein Objekt in $var steckt.
Shadow992 is offline  
Thanks
1 User
Old 01/29/2016, 17:21   #13
 
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
Quote:
Originally Posted by Shadow992 View Post
Wieso willst du da Variablentypen überprüfen?
Das ist etwas, das passiert nicht mal zur Compilezeit, weil es einfach nicht möglichist.
Stell dir nur mal vor es gibt zwei Klassen, die jeweils unterschiedliche Funktionen besitzen.

PHP Code:
$var=0
If random() = 
  $var 
= new Class1()
Elseif 
random() =2
  $var 
= new Class2()
Endif

$var.doSomething() 
Es gibt praktisch keine Möglichkeit das zur Compilezeit herauszufinden.
Daher wird es auch in AAL selbst nur zur Laufzeit geprüft und auch nur wenn es in der jeweiligen Zeile ankommt.
Man hat also keine Chance heruaszufinden, ob 0 oder ein Objekt in $var steckt.
Und das ist ja genau mein Problem, aber für z.B. die Autovervollständigung würde ich ungern alle Methoden und Felder aller Objekte angeben, daher hatte ich überlegt eine Liste mitzuführen, welche Objekte es überhaupt sein könnte. Da habe ich dann nur das Problem wenn man die Objekte von Funktionen zurückbekommt, und das würde meinen Parser deutlich verkomplizieren.

Vielleicht stelle ich das auch erst mal zurück
warfley is offline  
Thanks
1 User
Old 01/29/2016, 17:47   #14
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by warfley View Post
Und das ist ja genau mein Problem, aber für z.B. die Autovervollständigung würde ich ungern alle Methoden und Felder aller Objekte angeben, daher hatte ich überlegt eine Liste mitzuführen, welche Objekte es überhaupt sein könnte. Da habe ich dann nur das Problem wenn man die Objekte von Funktionen zurückbekommt, und das würde meinen Parser deutlich verkomplizieren.

Vielleicht stelle ich das auch erst mal zurück
Um später meinen Code leichter optimieren zu können, will ich sowieso demnächst ein internes Flussdiagramm erzeugen. Vielleicht kann man das später ausbauen und in ne Dll schmeissen, sodass du eine Zeile + den Code in die Dll schmeist und dir das Flussdiagramm alle möglichen Klassen + Datentypen zurückgibt, die die Variable haben kann.

Aber mal sehen das wird noch bissel dauern bis ich soweit bin. Von daher sollte man das vielleicht wirklich zurückstellen für die IDE.
Shadow992 is offline  
Thanks
1 User
Old 01/29/2016, 22:25   #15
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
Die IDE sieht sehr gut aus, ich würde aber empfehlen jetzt erstmal etwas abzuwarten was sich bei den folgenden Versionen von AAL noch ändert. Es würde nicht wirklich Sinn machen, wenn die IDE der Sprache "voraus" ist
.SkyneT. is offline  
Thanks
2 Users
Reply

Tags
aal, editor, formeditor, ide, projekt


Similar Threads Similar Threads
[RELEASE](OpenSources/VB.NET) Map editing tools + LUA bonuses
03/29/2014 - Rappelz Private Server - 3 Replies
Heyhalleleyho! Here is an open source release of 2 tools. First one is the tool that allows to edit NFM props data and save it to a file - NFM Props editor. It allows to spawn static props on a map. Second one is an NFA editor with grid/graphic interfaces (no drawing edit as in previous version, but open source this time + possible to delete points/regions).
[TOOLS]All you Need in Editing KOM Files!
12/10/2010 - Grand Chase Hacks, Bots, Cheats & Exploits - 10 Replies
All you Need Tools in Editing Kom Files are Here! Download Link:TOOLS.rar Including: KomExtractor Kompact Phyton 2-6
[TOOLS]for editing .KOM FILES [UPDATED]
08/09/2010 - Grand Chase Hacks, Bots, Cheats & Exploits - 214 Replies
here are the tools that you need on how to edit the KOM Files. but i will not post here the tutorial on how to use the tools that i posted. for the tutorials just use the search button ok? TOOLS that you can use in the attachments KOM files extrator (posted by 4jax) crch2 (for crc files) 010 editor (for editing the hex files) or use any hex editor like winhex that i use in dekaron hacking (for phyton just check 4jax thread about it)



All times are GMT +1. The time now is 07:24.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.