Autor Thema: Probleme mit Scripten aus veralteten Starterpacks  (Gelesen 4529 mal)

1mal_volltanken

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1243
  • Geschlecht: Männlich
  • Traue niemals einem glatzköpfigen Friseur!
    • ICQ Messenger - 327646596
    • Profil anzeigen
Probleme mit Scripten aus veralteten Starterpacks
« am: 20. August 2014, 11:07:39 »
Hallo Community!

Da ich derzeit an einem Starterpack herumwerkel, das mal ein Kanadier für mich geschrieben hat, möchte ich gerne auf Basis dessen einige vertraute Befehle und Funktionen aus den MMM-Starterpacks mit integrieren.

Das klappt leider nicht immer reibungslos, so wie im Beispiel mit dem EnterRoom:

function EnterRoom (int room, int x, int y, int dir){
  FaceDirection (GetPlayerCharacter (), dir);
  NewRoomEx (room, x, y);
}

Dachte, der 'GetPlayerCharacter'-Parameter gehöre schon zum AGS-Default-Syntax. Dem ist ja leider nicht so.

Denn als ich diesen Code im anderen Script eingefügt habe, erhielt ich die Fehlermeldung undefined parameters 'GetPlayerCharacter()' oder so in etwa.

Allerdings habe ich selbst nach mehrmaligen Durchforsten des Scripts keinen Code gefunden, wo 'GetPlayerCharacter' eindeutig und klar definiert wurde.
Könnte jemand einen Code beisteuern, der dieses Problem löst und eine identische Funktionsweise hat wie im ursprünglichen Starterpak?
Und überhaupt: Wird diese FaceDirection-Zeile im EnterRoom-Script überhaupt benötigt?

Für Hilfe sage ich schon einmal vielen Dank im voraus!



--------------------------------------------------------------------------------------------------------------------------------


An diesem Beispiel sind schon die Nachteile der alten Starterpacks ganz klar zu erkennen.

Die Scripts sind einfach viel zu überladen. Ich schätze mal, dass es daran liegt, dass diese damals auf der Version 1 von AGS geschrieben wurden und war dieses Kuddelmuddel damals nicht anders zu lösen war.
Jetzt haben wir inzwischen schon AGS 3.3 und da wäre mal ein Neuanstrich sicher fällig. ;)
ZAK hatte zwar ein Bernard-SP auf AGS 3.2.1 aufgesetzt, nur ist da immer noch sehr viel alter Syntax drin vorhanden.

Das Problem an den alten Starterpaks ist: Ab einen gewissen Grad steigt man da schon nicht mehr durch. Jedenfalls habe ich da schon erhebliche Probleme.

Vielleicht denkt sich jetzt der ein oder andere "warum soll man etwas an den alten Starterpaks ändern, wenn sie doch einwandfrei funktionieren"?

Das ist zwar korrekt, aber nach heutigem Standard sind sie in vielerlei Hinsicht nicht mehr sehr bedienerfreundlich.

Es fängt schon damit an, dass man an den GUIs was Fonts und Colors betrifft, im Editor nichts verändern kann, so dass es eine Auswirkung in der Darstellungsweise hätte. Und zwar deshalb, weil diese Styles im Script definiert sind und man dies auch im Script ändern muss.  --> sehr umständlich

Ein großes Dilemma wird es, wenn man noch versucht, im GUI noch Buttons hinzuzufügen, sie umpositionieren oder gar inhaltlich verändern möchte.
Dann hagelt es nur noch so vor Fehlermeldungen und es wird eine echte Mammutaufgabe, dies soweit hinzubekommen, bis sämtliche Fehlermeldungen ausgemerzt sind und nach der 5. Fehlermeldung verlässt einen auch schon langsam der Mut, in diese Richtung noch weiterzuarbeiten.

Fakt ist, es ist nur soweit bediener- und anfängerfreundlich, solange man nicht versucht, an den GUI-styles etwas zu verändern. Vielleicht wird da so mancher auch einwenden "Ist doch alles super so. Warum muss da denn überhaupt etwas verändert werden?!". ->  Weil es eben auch User gibt, die gerne auch einen anderen Style verwenden möchten.


Ich bin mit meinem derzeitigem AGS-Projekt erstmal ziemlich eingespannt.
Vielleicht gibt es hier aber jemanden, der sich evtl noch motiviert fühlt, auf AGS 3.3 ein MMM-Starterpak von Grund auf (leeres Template) neu aufzusetzen. Es muss ja gar nicht zu umfangreich sein. Ein 3-bis-5-Räume-SP reicht ja vollkommen.
Syd's Wohnung ohne das Treppenhaus wäre z.B. dafür ja schon wirklich ideal.


Also ich meine, dass die Scripts noch einmal viel schlanker gemacht werden müssten. Wer weiss, vielleicht sehen es viele andere User auch so wie ich.


Bin auf Eure Rückmeldungen gespannt.



BG
der Volltanker

"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2307
  • Geschlecht: Männlich
  • Skandal-Entwickler und Idiot
    • Profil anzeigen
    • Conequest
Re: Probleme mit Scripten aus veralteten Starterpacks
« Antwort #1 am: 20. August 2014, 17:05:33 »
Zitat
Könnte jemand einen Code beisteuern, der dieses Problem löst und eine identische Funktionsweise hat wie im ursprünglichen Starterpak?
Ersetze GetPlayerCharacter() durch player.ID. Hat zumindest zeitweise funktioniert.  Die bessere Lösung, die auch aufjedenfall funktioniert, ist es aber das playerExtends-Script von Rulaman aus den neuen SPs zu importieren. Das bringt neben einer neuen FaceDirection-Funktion auch gleich eine erneuerte EnterRoom-Funktion mit.

Zitat
Wird diese FaceDirection-Zeile im EnterRoom-Script überhaupt benötigt?
Wird der FaceDirection-Befehl in einer Funktion benötigt, deren einziger Sinn das Zusammenfassen von FaceDirection und dem Raumwechsel ist, benötigt?

Zitat
dass diese damals auf der Version 1 von AGS geschrieben wurden
Stimmt nicht. Das war AGS 2.

Zitat
Jetzt haben wir inzwischen schon AGS 3.3 und da wäre mal ein Neuanstrich sicher fällig.
Das hat Rulaman vor Jahren getan.

Zitat
ZAK hatte zwar ein Bernard-SP auf AGS 3.2.1 aufgesetzt, nur ist da immer noch sehr viel alter Syntax drin vorhanden.
Nein, ist da nicht.

Zitat
Syd's Wohnung
Ich krieg deswegen noch ein Magengeschwür.
« Letzte Änderung: 20. August 2014, 17:06:23 von ConeRX »


Folge mir auf X und itch.io

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Scripten aus veralteten Starterpacks
« Antwort #2 am: 20. August 2014, 20:30:01 »
Da ich derzeit an einem Starterpack herumwerkel, das mal ein Kanadier für mich geschrieben hat, möchte ich gerne auf Basis dessen einige vertraute Befehle und Funktionen aus den MMM-Starterpacks mit integrieren.

1. An was für einem SP arbeitest du denn? *neugierig sei*  ::)
2. Frag doch mal den Kanadier wie man Befehle in sein SP integriert. :cl

Vielleicht gibt es hier aber jemanden, der sich evtl noch motiviert fühlt, auf AGS 3.3 ein MMM-Starterpak von Grund auf (leeres Template) neu aufzusetzen. Es muss ja gar nicht zu umfangreich sein. Ein 3-bis-5-Räume-SP reicht ja vollkommen.

Die Idee kling zwar sehr gut, aber ich glaube nicht das das mal so eben jemand macht. Auch wenn das neue SP aufgrund verbesserter AGS Funktionalität (3.3 vs. 2.x) viel schlanker wird ist es dennoch eine MENGE Arbeit wenn man mit einem leeren Template startet. Ich habe hier gelernt: Wenn man was haben will muss man es selber machen! Das ist nicht böse gemeint, nur meine Erfahrung.

Das ein GUI Umbau schnell im Super-GAU enden kann ist natürlich sehr ärgerlich. >:( Die Frage die sich diesbezüglich stellt ist:
Ist es einfacher den bestehenden Code so zu ändern/ergänzen das auch ein Anfänger schnell und einfach das GUI umbauen kann ODER ist es einfacher mit einem leeren Template ein ganz neues SP zu bauen in dem diese Möglichkeit schon gegeben ist ???



Zitat
Syd's Wohnung
Ich krieg deswegen noch ein Magengeschwür.

Der Erfinder der Milchsockensäure bekommt von falschen Apostroph's ein Magengeschwür? Glaub mir ConeRX, du wirst's überleben ;)
Ich habe mir grade mal den Spaß gegöhnt und auf meiner Tastatur das Teil gesucht und nur dieses ' (auf der Raute-Taste) und diese zwei ´`(rechts neben dem ?ß\ Button) gefunden. Bei Wikipedia sieht es aber nochmal anders aus: http://de.wikipedia.org/wiki/Apostroph

Wo hast du den dein großes rotes Apostroph her? Was ich auch nicht verstehe ist, wenn du wegen falscher Satzzeichen ein Magengeschwür bekommst dann müsste doch das lesen der Texte in diesem Forum (und im Internet allgemein) doch sofort zum Tod führen. Deshalb mein Motto zu dem Thema: Hakuna Matata!
« Letzte Änderung: 20. August 2014, 20:33:05 von Kiwa »
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 988
    • Profil anzeigen
Re: Probleme mit Scripten aus veralteten Starterpacks
« Antwort #3 am: 26. August 2014, 04:26:09 »
Man kann durchaus alte Befehle wie z.B. GetPlayerCharacter() verwenden (sollte man aber nicht), dazu muss man nur in den General settings einstellen, dass alter Code verwendet werden darf.

Der Apostroph bei Syd's ist der mit Abstand am wenigsten schlimmste (und eh die englische Schreibweise), erstens ist das korrekte Zeichen verwendet worden und zweitens ging es um Besitztum.
Ein Magengeschwür kriege ich bei "Starterpack´s" und dergleichen.

Ich hab immer mal wieder mit dem Gedanken gespielt, ein Starterpack "from scratch" zu erstellen, oder zumindest eins ohne Räume; aber die Hochzeit von MMM haben wir leider hinter uns, und der Aufwand ist halt schon enorm.
« Letzte Änderung: 26. August 2014, 04:26:36 von KhrisMUC »

1mal_volltanken

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1243
  • Geschlecht: Männlich
  • Traue niemals einem glatzköpfigen Friseur!
    • ICQ Messenger - 327646596
    • Profil anzeigen
Re: Probleme mit Scripten aus veralteten Starterpacks
« Antwort #4 am: 26. August 2014, 16:13:16 »
@Kiwa:

Gut, was jetzt die Frage um das Projekt (Starterpak) angeht, möchte ich natürlich jetzt noch nicht zu viel verraten. Ich bevorzuge es inzwischen, etwas im Stillen zu produzieren und es dann zu präsentieren, wenn es auch tatsächlich fertig geworden ist, anstatt voreilig etwas Großes anzukündigen, wenn am Ende davon nicht viel verwirklicht wird. ;)

Dem Kanadier hatte ich einige MMM-Starterpacks mal zugeschickt und mir auch mitgeteilt, dass er da nicht durchgestiegen ist. Deswegen hatte er mir quasi ein Starterpack geschrieben gehabt, wo allerdings einfache Befehle wie EnterRoom nicht mehr funktionierten.

Diesen Befehl kann man allerdings auch durch den player.ChangeRoom() ersetzen. Nur das FaceDirection müsste in eine neue Zeile und das ist sicher das kleinste übel.


@ ConeRX:

Ja. Rulaman hat da sicher wirklich gute Arbeit geleistet und auch direkt markiert, was dort ausgemistet wurde.
Nur das Problem, dass sich GUI, Font- und Color-Style sich weiterhin nicht ohne Probleme verändern lassen, bleiben weiterhin bestehen.


@KhrisMUC:

Na siehste. Da könnte ich ja noch einmal nachschauen.
Irgendwo macht es bei einigen Befehlen sicher auch Sinn, dass man sie ausgespart hatte.



BG
der Volltanker





"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2307
  • Geschlecht: Männlich
  • Skandal-Entwickler und Idiot
    • Profil anzeigen
    • Conequest
Re: Probleme mit Scripten aus veralteten Starterpacks
« Antwort #5 am: 26. August 2014, 16:43:22 »
Zitat
Diesen Befehl kann man allerdings auch durch den player.ChangeRoom() ersetzen. Nur das FaceDirection müsste in eine neue Zeile und das ist sicher das kleinste übel.
Was hält dich davon ab, eine neue EnterRoom-Funktion zu schreiben, die aus ChangeRoom und FaceDirection besteht?

Zitat
Nur das Problem, dass sich GUI, Font- und Color-Style sich weiterhin nicht ohne Probleme verändern lassen, bleiben weiterhin bestehen.
Was hält dich davon ab, eine GUIChange-Funktion zu schreiben, die alle GUI-Grafiken, Fonts und Schriftfarben ändert?


Folge mir auf X und itch.io

rulaman

  • Moderator
  • Teenie Tentakel
  • *****
  • Beiträge: 354
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Probleme mit Scripten aus veralteten Starterpacks
« Antwort #6 am: 27. August 2014, 22:22:36 »
Zitat
Diesen Befehl kann man allerdings auch durch den player.ChangeRoom() ersetzen. Nur das FaceDirection müsste in eine neue Zeile und das ist sicher das kleinste übel.
Was hält dich davon ab, eine neue EnterRoom-Funktion zu schreiben, die aus ChangeRoom und FaceDirection besteht?

Die Tatsache, dass es das schon im SP gibt.  ;D

// Character.EnterRoom
function EnterRoom(this Character*, int room, int x, int y, eDirection dir)
{
  this.FaceDirection(dir);
  this.ChangeRoom(room, x, y);
  return 1;
}
Baden ist die einzige Möglichkeit, den Dreck der Füße an den Hals zu bekommen.

1mal_volltanken

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1243
  • Geschlecht: Männlich
  • Traue niemals einem glatzköpfigen Friseur!
    • ICQ Messenger - 327646596
    • Profil anzeigen
Re: Probleme mit Scripten aus veralteten Starterpacks
« Antwort #7 am: 01. September 2014, 22:23:21 »
Zitat
Was hält dich davon ab, eine GUIChange-Funktion zu schreiben, die alle GUI-Grafiken, Fonts und Schriftfarben ändert?

Da es sich doch viel einfacher im Editor-Modus ändern lässt wäre es ja quatsch! ;)


Danke rulaman für den Code.



BG
der Volltanker

"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2307
  • Geschlecht: Männlich
  • Skandal-Entwickler und Idiot
    • Profil anzeigen
    • Conequest
Re: Probleme mit Scripten aus veralteten Starterpacks
« Antwort #8 am: 01. September 2014, 22:38:49 »
Das wäre kein Quatsch, mit einer solchen Funktion kannst du das Aussehen des GUIs auch während des Spiels verändern.
Wenn du aber nur ein Style haben willst, verstehe ich dein Problem nicht. Zwei Variablen im Skript ändern ist ja wohl nicht die Welt.


Folge mir auf X und itch.io

1mal_volltanken

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1243
  • Geschlecht: Männlich
  • Traue niemals einem glatzköpfigen Friseur!
    • ICQ Messenger - 327646596
    • Profil anzeigen
Re: Probleme mit Scripten aus veralteten Starterpacks
« Antwort #9 am: 01. September 2014, 22:51:05 »
Nur damit hört es ja nicht auf.

Ich hatte damals ja mal darauf basierend versucht, ein 15-Verben-GUI aufzubauen.
Das ging jedoch gründlich schief, da das Hinzufügen von Buttons zu Fehlermeldungen führte.
Hatte man tatsächlich einen behoben, kam direkt die nächste Fehlermeldung, usw.
"Tage sind eigentlich wie Nächte...nur nicht ganz so spät!"...hörte ich einmal einen sehr klugen, alten Mann beim Erdnüsse sortieren in der Kneipe sagen, kurz bevor er vom Hocker rutschte.


"Nicht jeder, der aus dem Rahmen fällt, war vorher im Bilde!"

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2307
  • Geschlecht: Männlich
  • Skandal-Entwickler und Idiot
    • Profil anzeigen
    • Conequest
Re: Probleme mit Scripten aus veralteten Starterpacks
« Antwort #10 am: 01. September 2014, 22:55:09 »
Jetzt verstehe ich dein Problem. Ein solcher Umbau ist mit Arbeit verbunden, dass ist klar.
Ich war von deiner Aussage
Zitat
Nur das Problem, dass sich GUI, Font- und Color-Style sich weiterhin nicht ohne Probleme verändern lassen, bleiben weiterhin bestehen.
irritiert. Denn das stimmt nunmal nicht.


Folge mir auf X und itch.io