Suche Tutorial
Suche Tutorial
Ich suche ein Tutorial bei dem genau erklärt wird wie man einen Schlüssel mit einer Tür benutzt.
Gibt es das irgendwo oder gibt es vielleicht irgendwo ein Demo Game wo ich mir das ansehen kann.
Gibt es das irgendwo oder gibt es vielleicht irgendwo ein Demo Game wo ich mir das ansehen kann.
Die Suche des Forums habe ich schon benutzt und da was in den Themen drin steht geht einfach nicht.
Ich habe es Schritt für Schritt gemacht, funktioniert auch soweit. Nur wenn ich dann aus dem Raum raus will für den ich den Schlüssel gebraucht habe muss ich erst die Tür öffnen, bevor ich raus kann (obwohl die Tür offen ist) und wenn och dann draussen bin und wieder in den Raum gehen will (für den ich den Schlüssel gebraucht habe), muss ich erst wieder den Schlüssel draus verwenden (obwohl die Tür offen ist) bevor ich wieder in den Raum komme.
Ich weiß das ich das mit Variablen machen kann aber ohne ein Beispiel Script oder ein Demo Game wo ich mir das mal ansehen kann weiß ich einfach nicht wie ich es machen soll.
Kann nicht einer seine Episode als Beispiel Game zur Verfügung stellen in dem sowas vorkommt. Es kann auch nur der Raum sein, das ist mir egal ich muss es nur mal sehen um es zu verstehen.
Achja die Hilfe im Programm ist nicht gerade hilfreich, den dort steht es auch nicht drin wie ich einen Inventar-Gegenstand mit einer Tür benutze.
Was soll ich bitte in Goggle eingeben " Schlüssel mit Tür benutzen" da lande ich wo möglich noch auf der Seite einer Psychatrie.
Ich habe es Schritt für Schritt gemacht, funktioniert auch soweit. Nur wenn ich dann aus dem Raum raus will für den ich den Schlüssel gebraucht habe muss ich erst die Tür öffnen, bevor ich raus kann (obwohl die Tür offen ist) und wenn och dann draussen bin und wieder in den Raum gehen will (für den ich den Schlüssel gebraucht habe), muss ich erst wieder den Schlüssel draus verwenden (obwohl die Tür offen ist) bevor ich wieder in den Raum komme.
Ich weiß das ich das mit Variablen machen kann aber ohne ein Beispiel Script oder ein Demo Game wo ich mir das mal ansehen kann weiß ich einfach nicht wie ich es machen soll.
Kann nicht einer seine Episode als Beispiel Game zur Verfügung stellen in dem sowas vorkommt. Es kann auch nur der Raum sein, das ist mir egal ich muss es nur mal sehen um es zu verstehen.
Achja die Hilfe im Programm ist nicht gerade hilfreich, den dort steht es auch nicht drin wie ich einen Inventar-Gegenstand mit einer Tür benutze.
Was soll ich bitte in Goggle eingeben " Schlüssel mit Tür benutzen" da lande ich wo möglich noch auf der Seite einer Psychatrie.
- Rocco
- Adventure-Treff
- Beiträge: 1019
- Registriert: 25.11.2003, 16:20
- Wohnort: Ronville
- Kontaktdaten:
ich geh mal davon aus du sprichst von Maniac Mansion Episoden, denn das geht aus deinen posts nicht 100% hervor.
Ich hab hier ein Originalzitat von LucasFan zum Thema Türen, vielleicht hilfts dir:
Ich hab hier ein Originalzitat von LucasFan zum Thema Türen, vielleicht hilfts dir:
LucasFan hat geschrieben:Tür-Scripts in MMM
--------------------
Im Prinzip ist es ganz einfach:
function any_click_on_door (int GI, int object, int x, int y, int dir, int nr_room, int nr_x, int nr_y, int nr_dir)
Int GI – der verwendete GlobalInt für die Tür
int object – Nummer des Objekts/Hotspots der Tür
int x – Koordinaten um zur Tür zu gehen
int y – Koordinaten um zur Tür zu gehen
int dir – Richtung in die er schauen soll
int nr_room – Zielraum nach “durchschreiten” der Tür
und der Rest wie das Gleiche zuvor, nur halt für den Zielraum
Was man nicht vergessen darf, ist die in der Funktion verwendeten GlobalInts den Öffne/Schließe-Funktionen zuzuweisen, damit es per Rechtsklick funktioniert. Im Globalen Script findest du die Funktion VariableExtensions. Da stehen Zeilen wie diese:
if ((r == 1) && (h == 4)) OpenCloseExtension (3, location);
Die besagt, dass in Raum 1 (r=1) eine Tür ist, die den Hotspot 4 (h=4) hat und den GlobalInt 3 benutzt. Und das war’s dann auch schon. Auf diese Art und Weise erspart man sich ne Menge Arbeit. Zu beachten ist, dass man das Objekt, das eine offene oder geschlossen Tür darstellen soll, zu „nicht clickable“ macht, so das es nicht den Hotspot der Tür verdeckt. Man öffnet und schließt quasi immer den selben Hotspot, da das Objekt zwar zu sehen ist, aber nicht damit interagiert werden kann. Hoffe ich konnte für etwas Klarheit sorgen. Auf den ersten Blick mag das alles etwas verwirrend sein, aber man spart sich so die ganzen A_OPEN und A_CLOSE Funktionen wie bei der Schublade.
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Die Funktion, die Du brauchst, ist diese hier:
1. Du gehst in das Script der Tür, die verschlossen werden soll.
Dort steht normalerweise dies:(natürlich mit den entsprechenden Parametern)
Diese Funktion macht folgendes:
2. Mit genau diesem Code ersetzt Du jetzt die any_click_on_door-Funktion, wobei Du natürlich die Parameter der alten Funktion übernehmen musst.
Die special-Funktion hat vier Parameter mehr, wichtig ist der dritte. Du änderst die "-1" einfach in die Nummer des Schlüssel-items.
Zusätzlich kannst Du mit dem SetDoorStrings-Befehl die Messages ausgeben, die gesagt werden sollen.
Z.B. so:
Sag Bescheid, obs funktioniert hat
Code: Alles auswählen
any_click_on_door_special (int GI, int object, int x, int y, int dir, int nr_room, int nr_x, int nr_y, int nr_dir, int opensound, int closesound, int key, int closevalue)
Dort steht normalerweise dies:
Code: Alles auswählen
any_click_on_door (int GI, int object, int x, int y, int dir, int nr_room, int nr_x, int nr_y, int nr_dir)
Diese Funktion macht folgendes:
Code: Alles auswählen
SetDoorStrings ("", "", "");
any_click_on_door_special (GI, object, x, y, dir, nr_room, nr_x, nr_y, nr_dir, 2, 3, -1, 0);
Die special-Funktion hat vier Parameter mehr, wichtig ist der dritte. Du änderst die "-1" einfach in die Nummer des Schlüssel-items.
Zusätzlich kannst Du mit dem SetDoorStrings-Befehl die Messages ausgeben, die gesagt werden sollen.
Z.B. so:
Code: Alles auswählen
// SetDoorStrings (string lookat, string islocked, string wrongitem)
SetDoorStrings ("", "Die Tür ist verschlossen. Mist!", "Damit werde ich die Tür kaum aufschließen können...");
Use gopher repellent on funny little man
OK soweit habe ich das verstanden, aber die Tür ist nicht verschlossen ich kann sie immer noch öffnen.
Hier mal das was ich eingefügt habe
Habe ich was vergessen?
Hier mal das was ich eingefügt habe
Code: Alles auswählen
SetDoorStrings("", "Die Tür ist verschlossen. Mist!", "Damit werde ich die Tür kaum aufschließen können...");
any_click_on_door_special (20, 1, 140, 134, DIR_RIGHT, 22, 40, 134, DIR_RIGHT, 2, 2, 10, 0);
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Du nicht, aber ich:
Die GlobalInt der Tür, also Nr. 20, muss auf 2 gesetzt werden, sonst ist die Tür nicht verschlossen. (0=offen, 1=zu, 2=verschlossen)
Mach das am besten in der game_start.
Edit: es sollte am Ende "...2, 3, 10, 0);" heissen, sonst wird beim Zumachen der Öffnen-Sound gespielt.
Die GlobalInt der Tür, also Nr. 20, muss auf 2 gesetzt werden, sonst ist die Tür nicht verschlossen. (0=offen, 1=zu, 2=verschlossen)
Mach das am besten in der game_start.
Edit: es sollte am Ende "...2, 3, 10, 0);" heissen, sonst wird beim Zumachen der Öffnen-Sound gespielt.
Use gopher repellent on funny little man
Wie meinst du das jetzt genau, muss ich die 20 durch 2 ersetzten?khrismuc hat geschrieben:Du nicht, aber ich:
Die GlobalInt der Tür, also Nr. 20, muss auf 2 gesetzt werden, sonst ist die Tür nicht verschlossen. (0=offen, 1=zu, 2=verschlossen)
Mach das am besten in der game_start.
Und was soll ich genau in game start mache, denn mit dem Teil habe ich noch nicht gearbeitet und weiß nicht was ich da machen muss.
Ok ich habe nun am Schluss aus der o eine 2 gemacht aber ich kann die Tür immer noch öffenen, aber wenn ich sie dann schließe und wieder öffnen will kommt das die Tür verschlossen ist.
Warum aber nicht vorher?
Dann gibt es noch ein Problemchen. Wenn ich ihm Raum war und die Tür zu mache (von außen) und sie wieder öffnen will, kommt auch das sie geschlossen ist, ist das normal?
Warum aber nicht vorher?
Dann gibt es noch ein Problemchen. Wenn ich ihm Raum war und die Tür zu mache (von außen) und sie wieder öffnen will, kommt auch das sie geschlossen ist, ist das normal?
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Du öffnest das global script und suchst die Zeile mit
Alle Befehle, die in dieser Funktion stehen, werden am Anfang des Spiels einmal ausgeführt.
Wenn Deine Hauptperson z.B. den Gegenstand Nr. 5 von Anfang an dabei haben soll, würdest Du den Befehldort hinein schreiben.
In diesem Fall jetzt musst Dureinschreiben.
Damit wird die Globale Int Nr. 20 auf den Wert 2 gesetzt.
Code: Alles auswählen
function game_start() {
Wenn Deine Hauptperson z.B. den Gegenstand Nr. 5 von Anfang an dabei haben soll, würdest Du den Befehl
Code: Alles auswählen
AddInventory(5);
In diesem Fall jetzt musst Du
Code: Alles auswählen
SetGlobalInt(20,2);
Damit wird die Globale Int Nr. 20 auf den Wert 2 gesetzt.
Use gopher repellent on funny little man
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Nein, Du hättest aus der 2 eine 3 machen sollen.Anonymous hat geschrieben:Ok ich habe nun am Schluss aus der o eine 2 gemacht
So muss es aussehen:
Code: Alles auswählen
any_click_on_door_special (20, 1, 140, 134, DIR_RIGHT, 22, 40, 134, DIR_RIGHT, 2, 3, 10, 0);
int opensound, int closesound, int key, int closevalue
opensound: Nummer der Sounddatei mit dem Öffnen-Sound (2)
closesound: Nummer der Sounddatei mit dem Schließen-Sound (3)
key: Nummer des Inventaritems, das die Tür aufschließt, bzw. -1, wenn die Tür immer aufgehen soll, oder -2, wenn die Tür kaputt ist und gar nicht aufgehen soll
closevalue: Nachdem die Tür geschlossen wird, wird die GlobalInt der Tür, also deren Zustandsvariable, wieder auf diesen Wert gesetzt. 2 entspricht verschlossen, 0 entspricht zu.
Da du aus der Null am Ende eine 2 gemacht hast, ist die Tür wieder verschlossen gewesen, nachdem Du sie zugemacht hast.
Use gopher repellent on funny little man
Habe ich alles wieder geändert, trotzdem danke für die belehrung kann ich immer mal gebrauchen wenn ich wieder was nicht verstehe oder falsch gemacht habe.khrismuc hat geschrieben:Nein, Du hättest aus der 2 eine 3 machen sollen.Anonymous hat geschrieben:Ok ich habe nun am Schluss aus der o eine 2 gemacht
So muss es aussehen:Die vier zusätzlichen Parameter sind diese hier:Code: Alles auswählen
any_click_on_door_special (20, 1, 140, 134, DIR_RIGHT, 22, 40, 134, DIR_RIGHT, 2, 3, 10, 0);
int opensound, int closesound, int key, int closevalue
opensound: Nummer der Sounddatei mit dem Öffnen-Sound (2)
closesound: Nummer der Sounddatei mit dem Schließen-Sound (3)
key: Nummer des Inventaritems, das die Tür aufschließt, bzw. -1, wenn die Tür immer aufgehen soll, oder -2, wenn die Tür kaputt ist und gar nicht aufgehen soll
closevalue: Nachdem die Tür geschlossen wird, wird die GlobalInt der Tür, also deren Zustandsvariable, wieder auf diesen Wert gesetzt. 2 entspricht verschlossen, 0 entspricht zu.
Da du aus der Null am Ende eine 2 gemacht hast, ist die Tür wieder verschlossen gewesen, nachdem Du sie zugemacht hast.