Maniac Mansion Mania - Episode 3
-
- Logik-Lord
- Beiträge: 1089
- Registriert: 12.08.2002, 11:44
- Wohnort: Köln
Wieso soll es das? Es kommt in Deiner Episode doch gar kein anderer Charakter vor?
Aber wenn Du es universell programmieren willst, dann setz halt vorher noch eine if-Abfrage rein, die abfängt ob GetCharacterAt auch einen sinnvollen Wert zurückgibt. Und wenn dies nicht der Fall ist, dann lass den Spieler-Charakter einfach irgendwo hin gucken.
Aber wenn Du es universell programmieren willst, dann setz halt vorher noch eine if-Abfrage rein, die abfängt ob GetCharacterAt auch einen sinnvollen Wert zurückgibt. Und wenn dies nicht der Fall ist, dann lass den Spieler-Charakter einfach irgendwo hin gucken.
- Gremlin
- Hobby-Archäologe
- Beiträge: 132
- Registriert: 24.08.2003, 16:36
- Wohnort: Karken
- Kontaktdaten:
Nein, ich kann AGS imemrnoch nicht, aber mal ein wenig Theorie:
Wenn die Endposition ds Cursors (also nach dem Dialog, ist doch richtig so, oder?) kein Charakter ist, dann stürzt das Spiel ab...
Aber gesetzt den Fall, es gäbe mehr als einen Charakter im Raum, dann könnte man doch damit nachher den/einen anderen Charakter angucken?
Evtl. könnte man ja den Charakter, der zu Beginn angeklickt wurde in einer Variable speichern? Wenn AGS keine String-Variablen kennt, müsste man leider eine Liste machen...
Vielleicht hilft das ja bei der Behebung.
Wenn die Endposition ds Cursors (also nach dem Dialog, ist doch richtig so, oder?) kein Charakter ist, dann stürzt das Spiel ab...
Aber gesetzt den Fall, es gäbe mehr als einen Charakter im Raum, dann könnte man doch damit nachher den/einen anderen Charakter angucken?
Evtl. könnte man ja den Charakter, der zu Beginn angeklickt wurde in einer Variable speichern? Wenn AGS keine String-Variablen kennt, müsste man leider eine Liste machen...
Vielleicht hilft das ja bei der Behebung.
-
- Logik-Lord
- Beiträge: 1089
- Registriert: 12.08.2002, 11:44
- Wohnort: Köln
@Gremlin
Das geht sicher auch einfacher... Ich weiß allerdings auch gar nicht so recht, was Lak da genau vor hat zu implementieren.
@Lak
Was genau soll denn passieren?
Wenn der Dialog zu Ende ist, soll der PlayerCharacter die Person anschauen, mit der er gesprochen hat?
Das ist doch sowieso immer der Fall...
Oder verstehe ich Dein Vorhaben da falsch?
Und wenn mehrere Charaktere im Raum sind? Wen soll er dann angucken?
Irgendwie scheint mir das alles unnötig kompliziert...
Zur Not lässt Du den Code so wie er ist, fragst aber vorher mit einer if-klausel ab, ob GetCharacterAt auch wirklich einen sich im Raum befindlichen Charakter zurückgibt.
Wenn nein, dann soll einfach nix weiter geschehen, wenn ja dann soll er die Person anschauen.
Wobei das aber auch recht unsinnig wäre... Wenn ein weiterer Charakter im Raum ist, auf den man während des Dialogs dann zufällig den Mousecursor zieht, schaut er danach dann diesen an.
Das kann ja auch nicht das sein, was Du willst oder?
Das geht sicher auch einfacher... Ich weiß allerdings auch gar nicht so recht, was Lak da genau vor hat zu implementieren.
@Lak
Was genau soll denn passieren?
Wenn der Dialog zu Ende ist, soll der PlayerCharacter die Person anschauen, mit der er gesprochen hat?
Das ist doch sowieso immer der Fall...
Oder verstehe ich Dein Vorhaben da falsch?
Und wenn mehrere Charaktere im Raum sind? Wen soll er dann angucken?
Irgendwie scheint mir das alles unnötig kompliziert...
Zur Not lässt Du den Code so wie er ist, fragst aber vorher mit einer if-klausel ab, ob GetCharacterAt auch wirklich einen sich im Raum befindlichen Charakter zurückgibt.
Wenn nein, dann soll einfach nix weiter geschehen, wenn ja dann soll er die Person anschauen.
Wobei das aber auch recht unsinnig wäre... Wenn ein weiterer Charakter im Raum ist, auf den man während des Dialogs dann zufällig den Mousecursor zieht, schaut er danach dann diesen an.
Das kann ja auch nicht das sein, was Du willst oder?
- Gremlin
- Hobby-Archäologe
- Beiträge: 132
- Registriert: 24.08.2003, 16:36
- Wohnort: Karken
- Kontaktdaten:
Ich rate nochmal wild drauf los:
Wenn also ein Gegenstand an einen Charakter gegeben oder mit ihm benutzt wird, soll der charakter angeguckt werden, der unter dem Mauscurser liegt, verstehe ich das richtig?
Ich gehe mal davon aus, dass die Mauscursorposition nach dem Dialog abgefragt wird (muss ja). Dann könnte man das doch einfach vorziehen/rauslassen, denn im Dialog wird ja auch der Charakter angeguckt.
Wenn also ein Gegenstand an einen Charakter gegeben oder mit ihm benutzt wird, soll der charakter angeguckt werden, der unter dem Mauscurser liegt, verstehe ich das richtig?
Ich gehe mal davon aus, dass die Mauscursorposition nach dem Dialog abgefragt wird (muss ja). Dann könnte man das doch einfach vorziehen/rauslassen, denn im Dialog wird ja auch der Charakter angeguckt.
Zuletzt geändert von Gremlin am 22.03.2005, 17:04, insgesamt 1-mal geändert.
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Fehler auf andere abzuwälzen is immer einfach...Lak hat geschrieben:Man ich hab doch keine ahnung der Script is nicht von mir der is da schon von LucasFan drin ...
Hier die Erklärung:
1. Die entsprechende Zeile liegt innerhalb der unhandled_event funktion.
2. Normalerweise wird diese unmittelbar nach Klicken auf einen Hotspot aufgerufen, wenn keine der vorangegangenen if-Abfragen (die sinnvolle Aktionen des Spielers prüfen) true ergeben hat.
3. Klickt der Spieler auf einen Character, und im Skript wird diese Aktion nicht als sinnvoll erkannt, schaut der Spieler den Charakter an, bevor er seine "Ich habe nichts zu sagen."-message losläßt. Dazu dient die Codezeile.
4. Da der Aufruf normalerweise unmittelbar erfolgt, liefert GetCharacterAt (mouse.x, mouse.y) auch den angeklickten Charakter und nicht -1 wie in MMM3s Fall, was zum Fehler führt.
5. DEIN FEHLER, LAK, war es einfach, diese Funktion trotzdem noch aufzurufen, obwohl Bernard Purpur die .... übergeben hat.
6. Deswegen sagt Bernard nach dem Gespräch auch völlig sinnlos "Besser nicht." (wie an anderer Stelle wohl auch).
Aber ich fand die Erklärung mit dem langsam erst Gib und dann langsam Früchte klicken usw. auch sehr lustig.
Use gopher repellent on funny little man
- max_power
- Zombiepirat
- Beiträge: 10065
- Registriert: 16.04.2002, 20:30
- Wohnort: Uppsala
- Kontaktdaten:
Jetzt verstehe ich, warum LucasFan seinen kompletten Quellcode unveröffentlicht lassen möchte.Lak hat geschrieben:Man ich hab doch keine ahnung der Script is nicht von mir der is da schon von LucasFan drin ...
„Es müsste immer Musik da sein, bei allem was du machst. Und wenn's so richtig Scheiße ist, dann ist wenigstens noch die Musik da. Und an der Stelle, wo's am allerschönsten ist, da müsste die Platte springen und du hörst immer nur diesen einen Moment.“ (Floyd, Absolute Giganten)
- LAF
- Oldschool RPG King
- Beiträge: 6361
- Registriert: 30.03.2005, 20:13
- Wohnort: Tulln(Ö)
aber nur durch lucas fan ist di mmm erst ins rollen kommen oder !
Just the old one's
Oldschool RPG's: auf http://www.rpg-atelier.net/
Oldschool RPG's: auf http://www.rpg-atelier.net/
- DernetteEddy
- Süßwasserpirat
- Beiträge: 298
- Registriert: 30.06.2004, 00:31