Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Newbies => Thema gestartet von: Elvis am 20. April 2015, 16:56:08

Titel: Starterpack / Problem mit Türen [gelöst]
Beitrag von: Elvis am 20. April 2015, 16:56:08
Edit: Problem ist Dank Eurer Hilfe gelöst! Danke!

Eins vorneweg: Ich bin ein Anfänger, der sich zum ersten Mal mit AGS und MMM beschäftigt.
Ich habe mir auf Basis des "Maniac Mansion Starterpack für AGS 3.2.1" ein eigenes Haus erstellt, durch das ich munter durchspaziere. Skripte usw. habe ich alle aus dem original Starterpack drin gelassen.

Jetzt soll es an die Türen gehen, auf Basis des Starterpacks und des Tutorials hier:
http://www.maniac-mansion-mania.de/forum/index.php?topic=15.msg36729#msg36729

Also habe ich mal eine eigene Tür gebastelt, die ich TuerKuecheneu genannt habe, damit sie der TuerKueche, die bereits in der originalen Edison-Villa ist, nicht in die Quere kommt.

Funktionieren tut folgendes: Tür angucken, hinlaufen, öffnen, schließen.

Aber durchgehen klappt nicht. Es passiert nichts.

Im Skript des Raums steht:

function room_Load()
{
Door[eDoorNumKuecheneu].Init(oTuerKuecheneu, hTuerKuecheneu);
}

function hTuerKuecheneu_AnyClick()
{
   if ( Door[eDoorNumKuecheneu].ClickSpecial(2, 3, 1000, 0) == 0 ) Unhandled();
}

In doors.ash habe ich die Zeile "eDoorNumKuecheneu," eingefügt:

enum eDoorNum
{
 ...
  eDoorNumKuecheneu,
};

In doors.asc folgendes:

   Door[eDoorNumKuecheneu].l_Room         = 66;
   Door[eDoorNumKuecheneu].i_XPosition      = 600;
   Door[eDoorNumKuecheneu].i_YPosition      = 130;
   Door[eDoorNumKuecheneu].l_Direction      = eDirUp;

   Door[eDoorNumKuecheneu].l_NewRoom      = 67;
   Door[eDoorNumKuecheneu].i_NewXPosition   = 60;
   Door[eDoorNumKuecheneu].i_NewYPosition   = 132;
   Door[eDoorNumKuecheneu].l_NewDirection   = eDirUp;

   Door[eDoorNumKuecheneu].s_LookAt      = "Das ist die Tür zur Küche.";
   Door[eDoorNumKuecheneu].s_NewLookAt      = "Das ist die Tür zum Speisesaal.";

Im Skript des Raumes steht:

function room_Load()
{
Door[eDoorNumKuecheneu].Init(oTuerKuecheneu, hTuerKuecheneu);
}

function hTuerKuecheneu_AnyClick()
{
   if ( Door[eDoorNumKuecheneu].ClickSpecial(2, 3, 1000, 0) == 0 ) Unhandled();
}

Das Object oTuerKuecheneu ist einfach nur da.

Der Hotspot hTuerKuecheneu ist verknüpft mit "Any click on hotspot".
Titel: Re: Starterpack / Problem mit Türen
Beitrag von: rulaman am 20. April 2015, 17:35:45
Hi Elvis,

stimmen denn die Koordinaten? Kann der Charakter auf die entsprechende Position laufen?
Prüfe mal die Walkable Areas.

Grüße
Rulaman
Titel: Re: Starterpack / Problem mit Türen
Beitrag von: Elvis am 20. April 2015, 18:58:42
Heureka!

Vielen Dank, rulaman!

Das hätte ich alleine nie rausgefunden, denn erstens war mir nicht klar, dass die Koordinaten stimmen müssen. Habe bisher nur "player.EnterRoom" genutzt und dabei wird die Spielfigur ja im Zweifel auf den nahesten Punkt der Walkable Area gestellt. Und zweitens war der Punkt im zweiten Raum (in den ich wechseln wollte) OK, jedoch der im Ausgangsraum nicht. Und dadurch funktionierte das Raum wechseln dann gar nicht.

Vielen Dank an diejenigen, die mir im Chat und hier geholfen haben!