Standardsprüche grammatikalisch korrekt?

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
Treibholz
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 862
Registriert: 29.05.2004, 14:49
Wohnort: Kassel

Standardsprüche grammatikalisch korrekt?

Beitrag von Treibholz »

Da ich momentan so ziemlich alles parallel mache (Rätseldesign, Raumaufbau, Story und grafische Umsetzung), bin ich bei der Zuordnung von Standardsprüchen angelangt. Es ist momentan noch ein rein theoretisches Konzept, deshalb vorab auch nur der Gedanke:

Wie formuliere ich grammatikalisch korrekte Standardsätze für Situationen, in denen Gegenstände nicht auf bestimmte Interaktionen reagieren?

Allein bei "Ziehe / Drücke" bieten sich doch an:
Ich will es nicht bewegen. [das Bild]
Ich will sie nicht bewegen. [die Tür]
Ich will ihn nicht bewegen. [den Schrank]

Das hieße ich müsste für jeden Gegenstand Variablen für jede einzelne Interaktion, die scheitern wird definieren. Zum Beispiel beim Schrank:

Ziehe: Standard-Antwort Ziehe #3
Drücke: Standard-Antwort Drücke #3

und so weiter.
Geht das auch irgendwie einfacher? Wie macht ihr das genau? Legt ihr darauf eventuell keinen Wert? (ist ja bei DOTT teilweise auch so)
Benutzeravatar
Floyd
Logik-Lord
Logik-Lord
Beiträge: 1088
Registriert: 14.03.2004, 19:59

Beitrag von Floyd »

Du könntest weniger spezifische Sätze verwenden, wie
"Das geht nicht" und "Versuch etwas anderes".
Oder wie wäre es mit "Besser nicht" oder "Kein guter Plan" :D ?
Aber ich sags mal so: Je weniger Standardantworten, desto besser.
Noch etwas: "Ich kann das nicht bewegen" finde ich persönlich weniger störend als "Ich kann es nicht bewegen" :).
MfG Floyd
Benutzeravatar
Dusty D.
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 153
Registriert: 18.04.2004, 20:03
Kontaktdaten:

Beitrag von Dusty D. »

Ich habe beim Long Trip drauf verzichtet und bemühe mich um Formulierungen, die ohne die Fälle auskommen, in deinem Beispiel natürlich etwas blöd, weil man dann SEHR allgemein formulieren muss. Long Trip antwortet in solchen Situationen mit "Das wird nix!", "Zu viel Stress", "Wie bekifft muss man eigentlich sein, um auf so eine Idee zu kommen?", "Ich würde es versuchen, wenn die Programmierer dran gedacht hätten" u.ä.

Machbar ist es aber: Du verpasst (zB.) den Inventory-Items entsprechende Namen: "Die Tür", "Der Schrank", "Das Buch" und formulierst entsprechend:

Code: Alles auswählen

string ItemName;
GetInvName(player.activeinv,ItemName);
DisplaySpeech("%s lässt sich nicht verschieben",ItemName);
Mein altes Adventure "Lost Kingdom" hat übrigens unbestimmte Artikel verwendet, weil es dann noch etwas unkomplizierter ist mit der deutschen Sprache. Allerdings hatte ich da auch eine selbstgeschriebene Engine, die ich natürlich besser auf meine Bedürfnisse zuschneiden konnte. Dort hatte ich den Gegenständen ein eindimensionales Feld zugewiesen, in dem ich das Geschlecht des jeweiligen Gegenstands abgelegt hatte:

Code: Alles auswählen

print geschlStr$(geschlecht(item));" ";item$(item);" lässt sich nicht verschieben."
Ach, was waren das für Zeiten! :)
Das Long Trip-Projekt

"Lauf nicht weg!"
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

Propertys!

Legst einfach eine neue Property Geschl an, die du dann über verschiedene Optionen Abfragen kannst
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
Benutzeravatar
Treibholz
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 862
Registriert: 29.05.2004, 14:49
Wohnort: Kassel

Beitrag von Treibholz »

Also eine Property Geschl regelt dann die Zuordnung von weiblich / männlich / sächlich oder wie?

Klingt ja schon mal nicht schlecht...
Wie sieht das dann im Konzept aus?

Wenn ich beispielsweise der Tür ein weibliches Geschlecht zuordne, werden dann alle Interaktionen auf eine Reihe von Kommentaren beschränkt, in denen "die" vorkommt? Leider hab ich mich noch nicht mit AGS beschäftigt, daher kann ichs mir nur im Groben vorstellen.

So in etwa:

Geschl männlich = der
Geschl weiblich = die
Geschl sächlich = das

"[Geschl] lässt sich nicht verschieben."

die Tür = Property.Geschl.weiblich

Das klingt jetzt wohl sehr theoretisch, weil es kein richtiger Code ist, soll nur in etwa schematisch aufzeigen wie ich es mir vorstelle. Ist aber sicher in AGS ganz anders. ;)
Smiley
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 163
Registriert: 28.04.2005, 16:26
Wohnort: Mönchengladbach

Beitrag von Smiley »

in AGS 2.7

Code: Alles auswählen

int 
x = mouse.x,
y = mouse.y,
typxy = GetLocationType(x, y);
string objgeschlecht;

Object *lookxy   = Object.GetAtScreenXY(x, y);      //Object bei x,y

if (typxy == eLocationObject)  // x,y ist ein Objekt 
lookxy.GetPropertyText("Geschlecht", objgeschlecht);
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

oder (vielleicht weniger umständlich) wenn du die Property als Integer einstellst:

Code: Alles auswählen


function GetGeschlecht(int x, int y) {
  int ret;
  Character* chara = Character.GetAtScreenXY(x, y);
  Object* obj = Object.GetAtScreenXY(x, y);
  Hotspot* hs = Hotspot.GetAtScreenXY(x, y);
  InventoryItem* item = InventoryItem.GetAtScreenXY(x, y);
  if(chara != null) ret = chara.GetProperty("geschl");
  else if(obj != null) ret = obj.GetProperty("geschl");
  else if(hs != null) ret = hs.GetProperty("geschl");
  else if(item != null) ret = item.GetProperty("geschl");
  return ret;
}
dann wäre noch eine Pronomenfunktion sehr hilfreich:

Code: Alles auswählen


function GetPronounEx(int kasus, int geschl, string buffer) {
  if(geschl == MAENNLICH) {
    if(kasus == NOMINATIV) StrCopy(buffer, "er");
    else if(kasus == GENITIV) StrCopy(buffer, "sein");
    else if(kasus == DATIV) StrCopy(buffer, "ihm");
    else if(kasus == AKKUSATIV) StrCopy(buffer, "ihn");
  }
  else if(geschl == WEIBLICH) {
    if(kasus == NOMINATIV) StrCopy(buffer, "sie");
    else if(kasus == GENITIV) StrCopy(buffer, "ihr");
    else if(kasus == DATIV) StrCopy(buffer, "ihr");
    else if(kasus == AKKUSATIV) StrCopy(buffer, "sie");
  }
  else if(geschl == SAECHLICH) {
    if(kasus == NOMINATIV) StrCopy(buffer, "es");
    else if(kasus == GENITIV) StrCopy(buffer, "sein");
    else if(kasus == DATIV) StrCopy(buffer, "ihm");
    else if(kasus == AKKUSATIV) StrCopy(buffer, "es");
  }
  else if((geschl == PLURAL_MAENNLICH) || (geschl == PLURAL_WEIBLICH) || (geschl == PLURAL_SAECHLICH)) {
    if(kasus == NOMINATIV) StrCopy(buffer, "sie");
    else if(kasus == GENITIV) StrCopy(buffer, "der");
    else if(kasus == DATIV) StrCopy(buffer, "ihnen");
    else if(kasus == AKKUSATIV) StrCopy(buffer, "sie");
  }
}
function GetPronoun(int kasus, string buffer) {
  GetPronounEx(kasus, GetGeschlecht(mouse.x, mouse.y), buffer);
  }
und eine Artikelfunktion:

Code: Alles auswählen

function GetArticleEx(int kasus, int geschl, string buffer) {
  if(geschl == MAENNLICH) {
    if(kasus == NOMINATIV) StrCopy(buffer, "der");
    else if(kasus == GENITIV) StrCopy(buffer, "des");
    else if(kasus == DATIV) StrCopy(buffer, "dem");
    else if(kasus == AKKUSATIV) StrCopy(buffer, "den");
  }
  else if(geschl == WEIBLICH) {
    if(kasus == NOMINATIV) StrCopy(buffer, "die");
    else if(kasus == GENITIV) StrCopy(buffer, "der");
    else if(kasus == DATIV) StrCopy(buffer, "der");
    else if(kasus == AKKUSATIV) StrCopy(buffer, "die");
  }
  else if(geschl == SAECHLICH) {
    if(kasus == NOMINATIV) StrCopy(buffer, "das");
    else if(kasus == GENITIV) StrCopy(buffer, "des");
    else if(kasus == DATIV) StrCopy(buffer, "dem");
    else if(kasus == AKKUSATIV) StrCopy(buffer, "das");
  }
  else if((geschl == PLURAL_MAENNLICH) || (geschl == PLURAL_WEIBLICH) || (geschl == PLURAL_SAECHLICH)) {
    if(kasus == NOMINATIV) StrCopy(buffer, "die");
    else if(kasus == GENITIV) StrCopy(buffer, "der");
    else if(kasus == DATIV) StrCopy(buffer, "der");
    else if(kasus == AKKUSATIV) StrCopy(buffer, "die");
  }
}
function GetArticle(int kasus, string buffer) {
  GetPronounEx(kasus, GetGeschlecht(mouse.x, mouse.y), buffer);
  }
im Header wären folgende Zeilen ganz gut:

Code: Alles auswählen

#define MAENNLICH 0
#define WEIBLICH 1
#define SAECHLICH 2
#define PLURAL_MAENNLICH 3
#define PLURAL_WEIBLICH 4
#define PLURAL_SAECHLICH 5

#define NOMINATIV 0
#define GENITIV 1
#define DATIV 2
#define AKKUSATIV 3
und unhandled_event bekommt folgende Zeile:

Code: Alles auswählen

if(Mouse.Mode == MODE_PICKUP) {
  string artikel;
  string objekt;
  GetArticle(DATIV, artikel);
  GetLocationName(mouse.x, mouse.y, objekt);
  DisplaySpeech(EGO, "Ich brauche %s %s nicht", artikel, objekt);
  }
Ich könnte sowas gut gebrauchen. Vielleicht schreibe ich das mal als Modul
Treibholz hat geschrieben:(ist ja bei DOTT teilweise auch so)
Hehe, gib mal in MI2 etwas, was du noch gar nicht hast ;)
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
Benutzeravatar
Treibholz
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 862
Registriert: 29.05.2004, 14:49
Wohnort: Kassel

Beitrag von Treibholz »

Das ist natürlich sehr sehr ausführlich...
Mir hätte ein schlichtes "ich kann ihn / sie / es nicht bewegen [usw.]" gereicht. Den Plural hätte man sich sparen können, weil er sich mit dem weiblichen "sie" deckt. Es darf nur der Name des Gegenstands (bzw. der Gegenstände) nicht mehr in der Bemerkung auftauchen, dann gibts auch keine Schwierigkeiten.

Ich würde mich schon mit einer einfachen Lösung zufriedengeben, die lediglich den Nominativ berücksichtigt. Mit dem Problem werde ich mich dann wohl nochmal näher beschäftigen müssen, wenn ich mich in AGS einarbeite. Bis dahin ists schon mal gut zu wissen, dass es generell möglich ist. :)
Gast

Beitrag von Gast »

Wenn schon, denn schon ;)
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

Eine [i]uuuuunglaublich[/i] unbekannte Person hat geschrieben:Wenn schon, denn schon ;)
Wat für'n Zufall, das sag ich auch immer ;)
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
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Hab ich schon mal erwähnt, wie toll ich die englische Sprache finde? :)
Use gopher repellent on funny little man
Benutzeravatar
Treibholz
Profi-Abenteurer
Profi-Abenteurer
Beiträge: 862
Registriert: 29.05.2004, 14:49
Wohnort: Kassel

Beitrag von Treibholz »

Ah, ich muss meinen vorschnellen Kommentar zurückziehen! Eben hab ich ein bisschen herumexperimentiert und es ist tatsächlich gar nicht so einfach wie ich dachte...
Die unterschiedlichen Formen sind nicht ohne Weiteres vermeidbar, gerade der AKKUSATIV kommt häufig vor ("ich kann IHN nicht bewegen").

Und da es noch nicht zum Ausdruck gekommen ist nochmal mein Respekt für den Code / den Programmierer des Codes. :)
Zuletzt geändert von Treibholz am 27.05.2005, 20:57, insgesamt 1-mal geändert.
Benutzeravatar
Floyd
Logik-Lord
Logik-Lord
Beiträge: 1088
Registriert: 14.03.2004, 19:59

...

Beitrag von Floyd »

Soso der Genitiv :wink: .
MfG Floyd
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

Treibholz hat geschrieben:Die unterschiedlichen Formen sind nicht ohne Weiteres vermeidbar, gerade der Genitiv kommt häufig vor ("ich kann IHN nicht bewegen").
Das ist ein AKKUSATIV :roll:

Kauf dir mal ne Tüte Deutsch, mir halt's auch gehelft. Kostet nur 50 Geld ;)

Achso: Ich habe noch Funktionen für Adjektive und Verben im PHP-Code. Vielleicht könnten die auch ganz nützlich sein
khrismuc hat geschrieben:Hab ich schon mal erwähnt, wie toll ich die englische Sprache finde? :)
Hab ich schon mal erwähnt, dass ich mehr auf Französisch stehe? ;)
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
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Wie Floyd ja schon angedeutet hat, wäre dies der Akkusativ.
Aber zum Genitiv (der praktisch nie benutzt werden muss): der Code ist ja ganz nett, bloss fehlt etwas entscheidendes: bem Genitiv verändert sich das Hauptwort ("des Bildes")
Use gopher repellent on funny little man
Antworten