Der% attacker% -Ansatz kann erweitert werden, um einige andere Informationen als nur die Namen der Objekte einzuschließen:
- Das Verb kann Singular oder Plural sein. Das hängt vom Thema ab. "Sie attackieren X" (Singular 2. Person Thema) vs. "Extrakun Angriffe X" (Einzahl 3. Person Thema) vs. "Die Goblins greifen X" (Plural 3. Person Thema). Die meisten Verben brauchen nur eine
-s
hinzugefügt werden, es gibt jedoch einige Ausnahmen.
- Das Substantiv kann ein Eigenname (" Goblin attackiert X") oder ein gebräuchliches Substantiv (" A Goblin attackiert X") sein. Gängige Substantive, die mit einem Vokalton beginnen, sollten "ein" anstelle von "ein" verwenden. Es kann ein gewöhnliches Substantiv sein, hat aber nur eine Instanz im aktuellen Kontext (" Der Kobold greift X an").
- Das Substantiv kann in der Anzahl variieren, von Null ("Du hast keine Goblins getroffen ") über Eins ("Du hast einen Goblin getroffen ") bis zu Vielen ("Du hast drei Goblins getroffen "). Viele Substantive brauchen nur ein
-s
oder -es
hinzugefügt, aber es gibt viele Ausnahmen.
- Subjekte und Objekte können einfach (" Ein Kobold ") oder zusammengesetzt (" Ein Kobold und ihr Bruder ") sein.
- Gängige Substantive am Satzanfang müssen in Großbuchstaben geschrieben werden. Wenn das Substantiv einen Artikel enthält oder zusammengesetzt ist, möchten Sie nur das erste Wort in Großbuchstaben schreiben. Die richtigen Substantive werden immer in Großbuchstaben geschrieben.
- Die Subjektposition (“ Sie traf den Kobold‚) und Objektposition (‘Der Kobold schlug sie “) verwendet unterschiedliche Pronomen.
- Possessivpronomen kann durch Zugabe erzeugt werden ,
's
wenn Singular ( „A Kobold Axt“), '
wenn Plural ( „Two Goblins Achsen‚), aber Pronomen haben ihre eigenen Regeln (‘ Deine Axt“).
Für Englisch habe ich Python eine Texterzeugungsbibliothek geschrieben, die von einem MUD namens JaysHouseMOO abgeleitet ist. Fühlen Sie sich frei, den Code zu studieren oder zu kopieren . Es gibt keine gute Bibliothek für Ausnahmefälle. Sie müssen das mit den Wörtern hinzufügen, die in Ihrem Spiel benutzt werden. Ich fürchte, mein portierter Code wird nicht ausgiebig getestet. Möglicherweise müssen auch weitere Hüllen für Spiele hinzugefügt werden (es wurde für ein soziales MUD und nicht für ein Gaming-MUD entwickelt).
Ihr Beispiel wäre geschrieben als "%1I %1:(inflicts) a serious wound (%2n damage) on %3i"
. Die Zahlen %1
, %2
, %3
sagen , dass es die Aufgabe ist , substituiert sein können; I
/ i
sage ihm, dass er bei Bedarf einen indirekten Artikel ("a", "an") hinzufügen soll; n
weist es an, das Substantiv ohne Artikel anzuzeigen; :(inflicts)
Weist es an, das Verb für dieses Objekt zu konjugieren.
Hier ist die Ausgabe, die dem Angreifer, dem Verteidiger und allen anderen angezeigt werden soll:
$ python
>>> import msg
>>> m = "%1I %1:(inflicts) a serious wound (%2n damage) on %3i."
>>> attacker = msg.GenderedObject('Amit', 'm', 'proper')
>>> defender = msg.GenderedObject('goblin', 'm', 'unique')
>>> points = (12, 'point')
>>> msg.Msg().sub_parties({1: attacker, 2: points, 3: defender},
m, [attacker, defender])
(['You inflict a serious wound (12 points damage) on the goblin.',
'Amit inflicts a serious wound (12 points damage) on you.'],
'Amit inflicts a serious wound (12 points damage) on the goblin.')
Beachten Sie, wenn Sie es gegeben (1, 'point')
hätten, hätte es "1 Punkt" anstelle von "1 Punkte" gedruckt. Das ist etwas, das mich im Spieltext stört, also habe ich darauf geachtet, eine Funktion zu integrieren, die es einfach macht, das richtig zu drucken.
Hier ist ein weiteres Beispiel mit zusammengesetzten Substantiven und "a" vs. "an":
>>> m = "%1I %1:(hits) %2'n %2'(head)."
>>> a1 = msg.GenderedObject('goblin', 'm', 'normal')
>>> a2 = msg.GenderedObject('orc', 'm', 'normal')
>>> d1 = msg.GenderedObject('Amit', 'm', 'proper')
>>> d2 = msg.GenderedObject('Extrakun', 'm', 'proper')
>>> msg.Msg().sub_parties({1: [a1, a2], 2: [d1, d2]}, m, [d1, d2])
(["A goblin and an orc hit your and Extrakun's heads.",
"A goblin and an orc hit Amit's and your heads."],
"A goblin and an orc hit Amit's and Extrakun's heads.")
Diese Beispiele sind in englischer Sprache und zeigen nur männliche / weibliche, Pronomen, singuläre / pluralische Verben / Substantive und Eigennamen / gebräuchliche Substantive. Was Sie nachverfolgen müssen, hängt von den Sprachen und der Art des Textes in Ihrem Spiel ab. Auf Spanisch gibt es formelle und informelle Pronomen. Mehrere Sprachen haben männliche und weibliche Formen von Verben. Japanische Pronomen hängen vom Status des Subjekts relativ zum Objekt ab. In einigen Sprachen kann die Verbkonjugation implizit das Thema enthalten. Bestimmen Sie alle Arten von Text, die Sie generieren möchten, und die Sprachen, in die Sie übersetzen möchten. Sie erfahren dann, was Sie in Ihren Spielobjekten nachverfolgen müssen. Beim Erstellen des Inhalts können Sie die erforderlichen Anmerkungen und Ausnahmefälle einfügen.