Hauptmenü

Neuigkeiten:

Bitte unterstützt uns und bestellt über diese Links bei Amazon  oder HumbleBumble!

Global Script für AGS 3.0

Begonnen von Nall-chan, 12. Juli 2007, 00:48:16

Vorheriges Thema - Nächstes Thema

Nall-chan

Nachdem ich seit längeren nur passiv im Forum unterwegs war, melde ich mich mal wieder zurück.

Betreffend AGS 2.8 (Beta4), was ja schon in diesem Thread von KhrisMuc angesprochen wurde, habe ich mich entschlossen über meine letzten Aktivitäten in Sachen MMM zu berichten.

Ich bin seit erscheinen der Beta2 dabei das GlobalScript (+GUI) komplett zu erneuern. Gründe gibt es genug. Es wurden viele Sachen für das Interface & Inventory im alten GS manuell verarbeitet, welche CJ in den neueren Versionen von AGS automatisiert hat (z.B. InvWindow.ScrollUp();)
Script-O-Name wurde noch fast gar nicht verwendet, obwohl es einfacher ist sich Namen statt Index-Nummern zu merken.
Objekt-Orientiert war glaube ich gar nichts bisher. Beides verbessert imho die Lesbarkeit des Code deutlich. Außerdem ist unbekannt wie lange die alten Befehle noch unterstützt werden. Zumal der neue Editor einen großen Vorteil hat: Es können gleichzeitig mehrere Sachen bearbeitet werden (z.B.  Script und der Raum ).

Vielleicht habe ich jetzt offene Türen eingerannt, oder mir wird Blasphemie vorgeworfen  ;)

Auf jeden Fall hier mal ein Statusbericht und die Aufforderung an alle die Lust zum Testen haben sich zu melden. Wird aber noch etwas dauern bis ich was fertiges habe, bin bei ca 70%. Benötigt werden dann AGSler welche bereit sind unter 2.8 Beta4 das GS in ein eigenen TestGame zu verwenden oder ein altes Spiel umzuschreiben. Ein altes Spiel anzupassen könnte allerdings aufwendig werden. Da alle Funktionen wo vorher nur Indexnummern übergeben wurden jetzt eine Objekt (bzw. den Pointer auf das Objekt) haben wollen.
if (GoToCharacter(cAchmed, eDir_Left, True, eSemiBlock))
{
  if (player == cBernhard) dBernardToAchmed.Start();
}


Update:

Statusbericht:
1.10.2007
Jetzt sind wir schon bei AGS 3.0 Beta 12.

+neu
-nicht umgesetzt/ungeklärt ob noch benötigt wird
oFertig

o Funktionen für die Übersetzung von Interface & Tastenkürzel
o MainGUI, inkl. ActionBar und Inventory
o Alle OptionGUIs
o Tastenfunktionen
o Variable + Static Extensions für Objekte/Hotspots/Chars
o Alle 'Character go to' Funktionen (z.B. NPCGoToCharacter, Moveplayer ect)
+ Neue 'enumerated types' für z.B. Direction
+ MouseWheel support für das Inventory (optional)
+ Textgeschwindigkeit mir F1 + F2 regulierbar
+ Scrollbare Dialoge
- Hunting


Offene Punkte:

Es fehlen noch die  'any_click_*' Funktionen.
Sowie on_mouse_click und ein paar kleinere Funktionen.
Einbindung Chara-Wechsel.
Fehlerbereinigung Gib-Verb.


Außerdem möchte ich gerne die Verwaltung von Türen vereinfachen, habe dafür auch schon verschiedene Ansätze.

Das neue GS wird wohl nur in Form einer Vorlage für AGS nutzbar sein, da ich auch an den GUIs kleine Anpassungen vornehmen mußte.

Vorschläge, Kritik und Drohbriefe wieder  an mich  ;D
Die lieben Kleinen:
- Einige Legosteine können das Verdauungssystem eines Vierjährigen passieren.
- Knetmasse und die Mikrowelle sollten niemals im gleichen Satz erwähnt werden.
- Egal, wie viel Götterspeise man in den Swimming Pool tut, es ist nicht möglich, über das Wasser zu gehen.

Cone Arex

Finde ich gut.
Ich werde mich heute Nacht auch noch an 2.8 setzen obwohl ich müde bin(wer braucht schon schlaf!)


Folge mir auf X und itch.io

Bòógieman

#2
tolle sache!
wurde eh langsam zeit, den steinzeit code durch aktuellen syntax zu ersetzen  ;)
hmm, wusste garnicht, dass ags2.8 schon im kommen ist  :D
muss ich mir gleich mal anschaun...

EDIT:
Zitat* Added script debugger
:D JUHUUUUUUUUUUUU!  ;)
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

KhrisMUC

Ne, oder?

Ich hab die ganze Nacht drangesessen und endlich mal das komplette GlobalScript auf ausschließlich OO umgestellt...
Und dann komm ich hierher und sehe "Global Script für AGS 2.8" :o

Verdammt ;D

Rayman

Ich frage mich nur, was AGS 2.8 haben wird, was in den vorherigen Versionen nicht dabei war?

steve-o-mat


Rayman

Danke Steve-O-Mat für den Link, jetzt kann ich mich mal schlau machen über AGS 2.8. ;) :D

Interessant: AGS 2.8 wird noch benutzerfreundlicher sein als die vorherigen Versionen.
Ein Grund mehr Visionaire zu vernachlässigen (Kleiner Scherz). ;D

Mister L

Zitat von: Nall-chan in 12. Juli 2007, 00:48:16
- Hunting
- Background queued talking

Also ich fände diese Funktionen auf alle Fälle interessant.  :)

KhrisMUC

#8
"Mein" Pack steht jetzt fast, inklusive Background queued talking; die Hunter-Funktionen hab ich rausgenommen. Die waren afaik eh unvollständige Reste aus MMD und ziemlich spezifisch.

To-Do:
-Türen
-CharacterChange

Außerdem hab ich eine Version aus einem EmptyGame hochgezogen, d.h. keine Räume, nur Dave, sowie keine überflüssigen Sprites oder GUIs und vor allem keine ellenlange dummy-Liste bei Inventargegenständen und Views.

Ich warte aber eh auf Nall-Chan, bevor ich das veröffentliche. Er war zuerst dran und kriegt somit selbstverständlich den Vortritt.

Achja: Wie schon neulich erwähnt kann man bei Version 2.8 die vorhandenen Typen erweitern:
function FaceDirection(this Character*, eDirection dir) {
  if (dir==eDir_Down) this.FaceLocation(this.x, this.y+1);
  ...
}

->  cBernard.FaceDirection(eDir_down);


steve-o-mat

Das ist ja echt mal ne tolle Sache! Hab mir auch schon die Beta4 gezogen und werd heut abend mal reinschnuppern.

@KhrisMUC:
Dafür dass das gestern noch ne "Mammutsaufgabe" war, warst du aber ziemlich flott!   ;D

Zitat von: KhrisMUC in 12. Juli 2007, 12:30:05
To-Do:
-Türen

Jetzt wo ich die Türenscripte endlich aus'm Schalf runterrattern kann, wollt ihr sie schon wieder ändern!   :P
(kleiner Spass)  ;)



Nall-chan

#10
Zitat von: KhrisMUC in 12. Juli 2007, 08:46:53
Ne, oder?

Ich hab die ganze Nacht drangesessen und endlich mal das komplette GlobalScript auf ausschließlich OO umgestellt...
Und dann komm ich hierher und sehe "Global Script für AGS 2.8" :o

Verdammt ;D
Vielleicht hätte ich mich mal eher melden sollen.  ;D
Zumal ich schon etliche Tage dabei bin es umzusetzen, und Du das in nur einer Nacht machst... :o

Zitat von: Rayman in 12. Juli 2007, 10:11:17
Interessant: AGS 2.8 wird noch benutzerfreundlicher sein als die vorherigen Versionen.
Das hatte mich motiviert es überhaupt umzusetzen. Beim erstellen meines MD-Raum hat es mich genervt immer den Script-Editor zu verlassen.
Und OO geht mir etwas leichter von der Hand als die alten AGS-Befehle. Außerdem hatte ich Lust nach langer Zeit mal wieder ein Script anzufassen, habe vor 3 Jahren mein CMS auf Basis von PHP und MySQL unterbrochen und seitdem nichts mehr getan  :-[

Zitat von: Mister L in 12. Juli 2007, 11:20:30
Zitat von: Nall-chan in 12. Juli 2007, 00:48:16
- Hunting
- Background queued talking
Also ich fände diese Funktionen auf alle Fälle interessant.  :)
Wenn der Rest läfut, schaue ich sie mir noch mal an.

Zitat von: KhrisMUC in 12. Juli 2007, 12:30:05
"Mein" Pack steht jetzt fast, inklusive Background queued talking; die Hunter-Funktionen hab ich rausgenommen. Die waren afaik eh unvollständige Reste aus MMD und ziemlich spezifisch.
[...]
Ich warte aber eh auf Nall-Chan, bevor ich das veröffentliche. Er war zuerst dran und kriegt somit selbstverständlich den Vortritt.

Achja: Wie schon neulich erwähnt kann man bei Version 2.8 die vorhandenen Typen erweitern:
function FaceDirection(this Character*, eDirection dir) {
  if (dir==eDir_Down) this.FaceLocation(this.x, this.y+1);
  ...
}

->  cBernard.FaceDirection(eDir_down);
Du kannst Dein Pack gerne veröffentlichen. Vielleicht lerne ich noch was und kopier mir was raus  ;) ;)

Ja die Erweiterung der Typen ist es super. Habe ich aber auch bisher nur teilweise umgesetzt.
Um meinem Beispiel von gestern zu Folgen, würde das dann so aussehen.
cBernard.GoToCharacter(cAchmed, eDir_Left, True, eSemiBlock);

NPCGoToCharacter wird dann auch entfallen.

Die lieben Kleinen:
- Einige Legosteine können das Verdauungssystem eines Vierjährigen passieren.
- Knetmasse und die Mikrowelle sollten niemals im gleichen Satz erwähnt werden.
- Egal, wie viel Götterspeise man in den Swimming Pool tut, es ist nicht möglich, über das Wasser zu gehen.

Mister L

Jetzt wo sich so fähige Leute am GlobalScript austoben, mal eine Frage:

Ist es möglich die Dialogoptionen so wie z.B. in Monkey Isand zum scrollen zu gestalten?
Bis jetzt kann man ja nur 6 Dialogoptionen gleichzeitig aktivieren ohne dass sie im unteren Bildschirmrand verschwinden...  :-\

Das würde ich noch als sehr sinnvolle Erweiterung betrachten.  :)

KhrisMUC

Es gibt ein Modul, mit dem das möglich ist, leider kann man dann das eingebaute Dialogsystem nicht mehr nutzen.
Als Alternative könnte man aber das Dialog-GUI hochschiebbar machen, z.B. mit dem Mausrad.

Mister L

Das wäre doch eine gute Möglickeit!  :)
Wäre echt stark wenn das jemand umsetzen könnte...  ;)

KhrisMUC

Schade, haut nicht hin.
Dialoge blockieren alles, der Code müsste also in rep_ex_always. Leider funktioniert mouse.IsButtonDown aber nicht mit eMouseWheelNorth/South.

Ich hab noch ne andere Idee, werds mal testen.