Programmierfrage: Dialog mit Objects oder Hotspots

Das Mitmach-Projekt aus dem Maniac-Mansion-Universum.
Antworten
Gast

Programmierfrage: Dialog mit Objects oder Hotspots

Beitrag von Gast »

Hallo,

habe gerade angefangen mit AGS und auch schon fast sämtliche tutorials gewälzt.

Benutze die MMM_GUI, also denke ich die Frage gehört in dieses Forum.

Im global script werden ja nicht Character-Objekte von "A_TALK_TO" ausgeschlossen (was normalerweise auch Sinn macht).
Ich möchte aber einen Dialog mit einem leblosen Gegenstand führen (wie zum Beispiel toter Cousin Ted). Da es keine Antworten gibt, würde ich gerne darauf verzichten, den leblosen, unanimierten Gegenstand in einen Charakter umzuwandeln. Ich finde es unschön, dass ich den Character nicht in der Room-Ansicht sofort sehen kann u.A.

Lässt sich das irgendwie bewerkstelligen?

(Wenn ich meinen leblosen Gegenstand als Charakter deklariere, taucht dieser komischerweise im Startbildschirm auf, nicht aber in dem Raum mit der vorgegebenen Raumnummer)
Benutzeravatar
Kate
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 173
Registriert: 13.07.2005, 10:52
Wohnort: Springe

Beitrag von Kate »

Du willst also mit einem Object sprechen, wenn ich das richtig verstanden habe.

Ich habe das mal versucht, indem ich diese Zeile gelöscht habe, glaube ich (also nicht gelöscht, sondern // davorgeschrieben habe
else if (parameter == 3)
{
cond = ((isAction (A_TALK_TO) || (isAction (A_GIVE_TO) && (GetCursorMode () == 4))) && (GetLocationType (mouse.x, mouse.y) != 2));
}

So hatte es funktioniert. Ist aber denke ich nicht die optimalste Lösung.
Ich habe nochmal geschaut und da sind mir diese Zeilen aufgefallen.

if (GlobalCondition (2) || GlobalCondition (3) || GlobalCondition (4))
{
StrCopy (location, ">n");//Dont send the name of the hotspt/obj/char/inv to the action bar and set default action "none"
}

Die GlobalCondition(3) steht für die Aktion, wenn man mit einem Object sprechen oder ihm was geben will.

Meiner Ansicht nach müsste man das jetzt einfach rausnehmen.

Also:
if (GlobalCondition (2) || GlobalCondition (4))
{
StrCopy (location, ">n");//Dont send the name of the hotspt/obj/char/inv to the action bar and set default action "none"
}


Ich habe es aber nicht ausprobiert, musst du mal gucken. :)

(Nach den Zeilen kannst ja mit der Suchfunktion suchen)
GRRRRR AAARGGGHH
Corny
Frischling
Frischling
Beiträge: 5
Registriert: 03.08.2005, 00:20
Kontaktdaten:

nicht global sondern Objektspeziefisch

Beitrag von Corny »

Ja, diese Zeilen habe ich auch schon gefunden. Sie stehen im Globalen Script.

Problem ist, dass ich das globale Script ungern ändern möchte. Dann könnte ich ja plötzlich mit jedem Objekt sprechen, obwohl ich nur mit einem einzigen Objekt reden will.

Gibt es nicht me möglichkeit, wie man das für das spezifische Objekt umschalten kann?

Vielleicht kann man das globale Script verändern wie:
">wenn A_TALK_TO gewählt ist --> wenn Objekt kein Charakter -->
- wenn Objekt die Variable SPRICH_MIT_MIR gesetzt hat, dann gib 0 zurück
- ansonsten deaktiviere die Interaktionsmöglichkeit mit Objekt"
andi_z
Frischling
Frischling
Beiträge: 8
Registriert: 29.07.2005, 19:59
Kontaktdaten:

Beitrag von andi_z »

Hmmmm... man könnte es auch einfach so lösen, dass du einen völlig pinken (d.h. in AGS transparenten) Charakter erstellst (ist in max 1 Min erledigt) und ihn dann über das Objekt setzt und mit dem dann redest. Das kommt für den Spieler genau so an, als ob er mit dem Objekt spricht
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

Nein, geht bei Pixel-Perfect detection nicht. Stattdessen einen Screenshot erstellen, die betreffende Stelle rausschneiden und als Charakter einfügen und diesen an entsprechender Stelle einfügen

Nächste Frage 8)
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Anonymous1

Beitrag von Anonymous1 »

Ich würde den Cousin Ed als Charakter erstellen.
Du machst ein Screenshot, am besten bei Episode X, nimmst Ed raus und fügst ihn als Charakter ein.
Dadurch kannst du mit ihm auch sprechen.
Corny
Frischling
Frischling
Beiträge: 5
Registriert: 03.08.2005, 00:20
Kontaktdaten:

Beitrag von Corny »

hm ja, das dachte ich mir schon fast.

nun denn, werde ich es mal so probieren
Antworten