Seite 5 von 8

Verfasst: 22.03.2005, 12:08
von Lak
Toll dann funktioniert das aber nur auf Purpur? Soll aber eigentlich bei allen Characteren funzen oder?

Verfasst: 22.03.2005, 12:19
von Norman
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.

Verfasst: 22.03.2005, 12:44
von Lak
Wieso soll es das? Es kommt in Deiner Episode doch gar kein anderer Charakter vor?
Nein in DIESER Episode von mir noch nicht... ;)

Verfasst: 22.03.2005, 13:24
von Norman
Gut, ok. Aber leuchtet Dir denn jetzt ein, warum das so nicht klappen kann und wie man es behebt?

Verfasst: 22.03.2005, 13:42
von Lak
Ich weiß nicht wie man es beheben kann damit es auf jedem Character funktioniert... :oops:

Verfasst: 22.03.2005, 13:47
von Gremlin
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. :)

Verfasst: 22.03.2005, 14:20
von Norman
@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?

Verfasst: 22.03.2005, 14:53
von Lak
Man ich hab doch keine ahnung der Script is nicht von mir der is da schon von LucasFan drin ...

Verfasst: 22.03.2005, 15:41
von Gremlin
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.

Verfasst: 22.03.2005, 16:47
von KhrisMUC
Lak hat geschrieben:Man ich hab doch keine ahnung der Script is nicht von mir der is da schon von LucasFan drin ...
Fehler auf andere abzuwälzen is immer einfach...
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.

Verfasst: 22.03.2005, 18:12
von max_power
Lak hat geschrieben:Man ich hab doch keine ahnung der Script is nicht von mir der is da schon von LucasFan drin ...
Jetzt verstehe ich, warum LucasFan seinen kompletten Quellcode unveröffentlicht lassen möchte. ;)

Verfasst: 31.03.2005, 07:14
von LAF
aber nur durch lucas fan ist di mmm erst ins rollen kommen oder !

Verfasst: 31.03.2005, 09:56
von Lak
Natürlich, das war wieder so 'ne geniale Idee von LucasFan...
Ich sag ja, der iss'n Genie 8) Was wir ohne den jetzt wieder verpasst hätten ;)

Verfasst: 31.03.2005, 10:27
von DernetteEddy
Da Du ihn ja so gern hast,Lak, nenn Dich doch einfach um in "LUCASFAN-FAN" :lol: :wink:

Verfasst: 31.03.2005, 10:57
von Lak
Mann (oder Frau) kann's auch übertreiben ;)