Autor Thema: Bernard-Maniacweed-Starterpack  (Gelesen 780 mal)

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2345
  • Geschlecht: Männlich
  • Skandal-Entwickler und Idiot
    • Profil anzeigen
    • Conequest
Bernard-Maniacweed-Starterpack
« am: 27. Mai 2025, 16:35:36 »
Also Leute, es ist soweit. Das neue Bernard-Starterpack auf Basis von Tumbleweed hat offiziell Version 1.0 erreicht und steht zur Verwendung bereit.

Neues Repository auf Github.
Direktlink zur Vorlagendatei.

Wir haben beschlossen, zwecks Unterscheidung zu den alten Starterpacks, die Bezeichnung Maniacweed für die SPs mit Tumbleweed-Codebasis fortzuführen. Entsprechend beginnt die Versionierung hier wieder bei 1.0 und wird in einem eigenen Repository gehostet. Die alten Starterpacks bekommen von mir noch ein letztes Update, welches Timidity integriert. Danach werden diese nicht mehr aktiv gewartet. Die Repositorys bleiben aber offen, soll heißen: Wer Änderungen an den alten SPs vornehmen möchte, kann den Code gerne einreichen.

Auf hoffentlich viele neue Spiele!


Folge mir auf X und itch.io

Aktuell aufgrund eines Klinikaufenthalts nur sporadisch anwesend.

AmigaMaster

  • kleiner Tentakel
  • ***
  • Beiträge: 221
    • Profil anzeigen
    • Mein YouTube Kanal
Re: Bernard-Maniacweed-Starterpack
« Antwort #1 am: 31. Mai 2025, 10:44:23 »
Wie arbeitet AGS, wenn man ein Room-Script ändert? Reicht es, wenn man das Script, also die .asc Datei z. B. als Pull-Request einreicht?

Die .CRM's haben auch schon nach einem Import in AGS alle eine andere Größe.

Ich hatte z. B. spontan folgende Eingebung für Bernards Zimmer - das bringt dem eigentlichen Spiel nicht wirklich etwas, es ist einfach nur ein kleines Detail:
--- a/room18.asc
+++ b/room18.asc
@@ -594,6 +594,13 @@ function hBooks_AnyClick(Hotspot *theHotspot, CursorMode mode)
       Wait(5);
       player.Say("Meine Lieblingsbücher.");
       Wait(10);
+      if (Random(1))
+      {
+        player.FaceDirection(eDirectionLeft);
+      } else {
+        player.FaceDirection(eDirectionRight);
+      }
+      Wait(4);
       player.FaceDirection(eDirectionDown);
       player.Say("Von Physik bis Astronomie ist alles dabei.");
     }
Mein YouTube Kanal mit Longplays zu allen 10 MMM Staffeln & mehr
Mein Discord Server mit vielen Retrobegeisterten
Meine Lösungen jeder kann mitmachen

alphawolf300

  • Teenie Tentakel
  • ****
  • Beiträge: 367
    • Profil anzeigen
    • E-Mail
Re: Bernard-Maniacweed-Starterpack
« Antwort #2 am: 31. Mai 2025, 18:04:55 »
Ich hatte z. B. spontan folgende Eingebung für Bernards Zimmer
Hm... ob sich Bernard nun nach links oder rechts umdreht ist mir eigentlich Wurst und der Code verwirrt einen Neuling wahrscheinlich mehr als das er hilft. Versteh mich bitte nicht falsch, ich finde es super, dass sich jemand Gedanken macht, aber ich glaube, sowas ist eher in einer eigenen Episode aufgehoben als in einem Starterpack.

Womit ich zum Thema "neue Episode" überleiten will. Traut euch gerne mal, eine zu erstellen. Ich unterstütze auch gerne dabei, wenn es hakt.

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2345
  • Geschlecht: Männlich
  • Skandal-Entwickler und Idiot
    • Profil anzeigen
    • Conequest
Re: Bernard-Maniacweed-Starterpack
« Antwort #3 am: 31. Mai 2025, 18:46:43 »
Wie arbeitet AGS, wenn man ein Room-Script ändert? Reicht es, wenn man das Script, also die .asc Datei z. B. als Pull-Request einreicht?
Ja, das sollte reichen. Versuchs einfach mal.

In diesem Fall muss ich aber alphawolf zustimmen. Solcher Code gehört eher nicht in ein Template.

An dieser Stelle möchte ich erwähnen, dass ich aufgrund aktueller Umstände nur sporadisch hier bin und das Update für die alten Starterpacks und andere Dinge sich entsprechend verzögern.


Folge mir auf X und itch.io

Aktuell aufgrund eines Klinikaufenthalts nur sporadisch anwesend.

AmigaMaster

  • kleiner Tentakel
  • ***
  • Beiträge: 221
    • Profil anzeigen
    • Mein YouTube Kanal
Re: Bernard-Maniacweed-Starterpack
« Antwort #4 am: 01. Juni 2025, 00:12:01 »
Ihr habt recht, das macht den Code einen Schritt komplizierter und insbesondere die Random() Funktion in der if-Bedingung kann in dieser Form einen Anfänger verwirren.
Letztendlich war das auch nur ein reiner Versuch ohne jegliche Vorkenntnisse in AGS und nur über die Codevervollständigung im Editor. Ansonsten behaupte ich von mir selbst: Ich nutze seit längerem zwar die Powershell, bash, cmd und habe auch schon kleinere Dinge in Python, AutoIT und diesem unsäglichen PowerAutomate entwickelt, aber ab einem gewissen Punkt steigt mein Verstand dann immer aus ::)

Ich habe noch einen kleinen Fehler im ChangeRoom im Hall Second Floor und Attic gefunden (man landete in der TV-Szene bzw. im Wohnzimmer) und mich an einem Pull Request mit der entsprechenden Korrektur versucht. Seht es mir nach, wenn da was nicht ganz sauber ist: War mein erstes Mal, dass ich mich in der Form daran versucht habe und ich weiß auch noch nicht, wie kompatibel die .crm Dateien sind.

Vielleicht ist es eine Option, den Code an verschiedenen Stellen zumindest zu vereinheitlichen. In Britneys Zimmer macht Bernard z. B. eine Drehung über die linke Seite, wenn er in den Schubladen wühlt und noch einen Kommentar abgibt, in Bernards Zimmer hingegen nicht, da dreht er sich direkt um 180 Grad.

P.S: Dabei habe ich ein wenig über Räume, Objekte und Hotspots innerhalb von AGS gelernt. Es ist mir allerdings noch schleierhaft, wie das z. B. vor dem Haus mit dem Hotspot der Fenster funktioniert. Woher kommt der "hWindowLivingRoom", wenn der eigentlich Hotspot "hWindow02" benannt ist?
function hWindowLivingRoom_AnyClick(Hotspot *theHotspot, CursorMode mode)
@Cone Arex
Gute Besserung!
« Letzte Änderung: 01. Juni 2025, 23:45:38 von AmigaMaster »
Mein YouTube Kanal mit Longplays zu allen 10 MMM Staffeln & mehr
Mein Discord Server mit vielen Retrobegeisterten
Meine Lösungen jeder kann mitmachen

alphawolf300

  • Teenie Tentakel
  • ****
  • Beiträge: 367
    • Profil anzeigen
    • E-Mail
Re: Bernard-Maniacweed-Starterpack
« Antwort #5 am: 01. Juni 2025, 08:53:58 »
Ich habe jetzt eine kleine Episode geschrieben vorbereitet, die dann am Ende auch ein Tutorial für AGS wird. Das werden dann (so der Plan) youtube-Videos in mehreren Kapiteln, um den Umgang mit AGS auf einfache Weise nahezubringen.
« Letzte Änderung: 01. Juni 2025, 19:17:15 von alphawolf300 »

AmigaMaster

  • kleiner Tentakel
  • ***
  • Beiträge: 221
    • Profil anzeigen
    • Mein YouTube Kanal
Re: Bernard-Maniacweed-Starterpack
« Antwort #6 am: 01. Juni 2025, 09:35:37 »
Oh, das klingt in jedem Fall interessant!
Mein YouTube Kanal mit Longplays zu allen 10 MMM Staffeln & mehr
Mein Discord Server mit vielen Retrobegeisterten
Meine Lösungen jeder kann mitmachen

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2345
  • Geschlecht: Männlich
  • Skandal-Entwickler und Idiot
    • Profil anzeigen
    • Conequest
Re: Bernard-Maniacweed-Starterpack
« Antwort #7 am: 01. Juni 2025, 11:43:48 »
Ich habe deinem Pull Request stattgegeben und in das Repo gemerged.
P.S: Dabei habe ich ein wenig über Räume, Objekte und Hotspots innerhalb von AGS gelernt. Es ist mir allerdings noch schleierhaft, wie das z. B. vor dem Haus mit dem Hotspot der Fenster funktioniert. Woher kommt der "hWindowLivingRoom", wenn der eigentlich Hotspot "hWindow02" benannt ist?
Auf der Eventseite eines GameObjects wie Objekte, Hotspots etc. wird der Name der Funktion angegeben, welche beim Auslösen eines Events (hier: Any Click on hotspot) ausgeführt wird. Zum Beispiel ist bei htHotspot04 hWindowKitchen_AnyClick angegeben. Wenn kein Funktionsname hinterlegt ist, generiert AGS automatisch einen, bestehend aus dem Scriptnamen des Hotspots, an den dann der Name des Events (AnyyClick) angehängt wird. Seit einiger Zeit erlaubt AGS, dass sich die Funktionsnamen von Hotspotnamen unterscheiden können. Auch wenn ich keinen Fall kenne, wo das nützlich ist.
Das wir im Starterpack unterschiedliche Namen haben, ist schlicht ein Flüchtigkeitsfehler unsererseits. Danke für den Hinweis, ist korrigiert.

Ein neues Release (v1.1) mit allen Änderungen ist bereits erstellt und hochgeladen: https://github.com/ManiacMansionMania/Maniacweed-Bernard/releases/tag/v1.1

@Cone Arex
Gute Besserung!
Danke.


Folge mir auf X und itch.io

Aktuell aufgrund eines Klinikaufenthalts nur sporadisch anwesend.

AmigaMaster

  • kleiner Tentakel
  • ***
  • Beiträge: 221
    • Profil anzeigen
    • Mein YouTube Kanal
Re: Bernard-Maniacweed-Starterpack
« Antwort #8 am: 01. Juni 2025, 17:27:31 »
Danke, habe es nach verzweifelter Suche dann doch endlich im GUI gefunden.

Für alle, die vielleicht über dasselbe Problem stolpern:

Im AGS-Editor die Properties anzeigen lassen und in diesem Fensterbereich dann auf das Icon mit dem gelben Blitz klicken. Siehe beigefügten Screenshot.
« Letzte Änderung: 01. Juni 2025, 17:31:04 von AmigaMaster »
Mein YouTube Kanal mit Longplays zu allen 10 MMM Staffeln & mehr
Mein Discord Server mit vielen Retrobegeisterten
Meine Lösungen jeder kann mitmachen

alphawolf300

  • Teenie Tentakel
  • ****
  • Beiträge: 367
    • Profil anzeigen
    • E-Mail
Re: Bernard-Maniacweed-Starterpack
« Antwort #9 am: 02. Juni 2025, 11:28:42 »
Seit einiger Zeit erlaubt AGS, dass sich die Funktionsnamen von Hotspotnamen unterscheiden können. Auch wenn ich keinen Fall kenne, wo das nützlich ist.
Ich habe das tatsächlich mal gebraucht, nämlich bei Schubladen. Alle Schubladen eines Raums rufen dieselbe Funktion auf und innerhalb der Funktion wird dann geprüft, um welche Schublade es sich handelt. Das reduziert den Code enorm, wenn es um viele Schubladen geht.

Auch von mir gute Besserung, Cone Arex!

Cone Arex

  • Mod
  • alter Tentakel
  • **
  • Beiträge: 2345
  • Geschlecht: Männlich
  • Skandal-Entwickler und Idiot
    • Profil anzeigen
    • Conequest
Re: Bernard-Maniacweed-Starterpack
« Antwort #10 am: 02. Juni 2025, 18:53:45 »
Ich habe das tatsächlich mal gebraucht, nämlich bei Schubladen. Alle Schubladen eines Raums rufen dieselbe Funktion auf und innerhalb der Funktion wird dann geprüft, um welche Schublade es sich handelt. Das reduziert den Code enorm, wenn es um viele Schubladen geht.
Stimmt. Das ist tatsächlich ein sinnvoller Use-Case.

Auch von mir gute Besserung, Cone Arex!
Danke.


Folge mir auf X und itch.io

Aktuell aufgrund eines Klinikaufenthalts nur sporadisch anwesend.

AmigaMaster

  • kleiner Tentakel
  • ***
  • Beiträge: 221
    • Profil anzeigen
    • Mein YouTube Kanal
Re: Bernard-Maniacweed-Starterpack
« Antwort #11 am: 03. Juni 2025, 22:03:12 »
Ich habe  noch ein paar Funde in den Räumen gemacht - zwei davon hatte ich zwar in meinem Pull Request, ich vermute aber, dass die .crm Dateien nicht kompatibel waren:

Raum 15 (Britney):
  • Tippfehler im Object und Hotspotnamen in beiden Kommodentüren, es fehlt das "n" in "Kommodentür"

Raum 2 (Vor dem Haus):
  • Standardaktion SCHAU AN für oMailbox "Briefkasten>l" hinzugefügt"
  • Hotspot "hFrontDoor", Description "Tür>v"
  • und Objekt "oFrontDoor", Description "Tür>c" - diese beiden Änderungen führen dazu, dass die Standardaktionen für die Haustür auf ÖFFNEN / SCHLIESSEN gesetzt werden. Ich verstehe nur noch nicht das ">v"
Mein YouTube Kanal mit Longplays zu allen 10 MMM Staffeln & mehr
Mein Discord Server mit vielen Retrobegeisterten
Meine Lösungen jeder kann mitmachen

alphawolf300

  • Teenie Tentakel
  • ****
  • Beiträge: 367
    • Profil anzeigen
    • E-Mail
Re: Bernard-Maniacweed-Starterpack
« Antwort #12 am: 03. Juni 2025, 23:42:14 »
Ich verstehe nur noch nicht das ">v"
Das >v ist im GlobalScript definiert sorgt dafür, dass die Standard-Aktion stimmt: je nachdem ob die Tür geöffnet oder geschlossen ist, gibt sie schließe oder öffne an. Wie genau das funktioniert, habe ich aber nie verstanden und so scheiterte mein Versuch, sowas auch z. B. bei Schubladen zu machen. Durch die Komplexität ist es aber auch schlecht wartbar, also vielleicht gar nicht so schlimm.  ;D