Pendekatan% attacker% dapat diperluas untuk mencakup beberapa informasi selain hanya nama-nama objek:
- Kata kerjanya bisa tunggal atau jamak. Ini tergantung pada subjeknya. "Anda menyerang X" (subjek orang ke-2 tunggal) vs. "Extrakun menyerang X" (subjek orang ke-3 tunggal) vs. " Serangan goblin X" (subjek orang ke-3 jamak). Sebagian besar kata kerja hanya perlu
-s
ditambahkan tetapi ada beberapa pengecualian.
- Kata benda mungkin merupakan kata benda yang tepat (" Goblin attack X") atau kata benda yang umum (" A goblin attack X"). Kata benda yang dimulai dengan bunyi vokal harus menggunakan "an" dan bukan "a". Ini mungkin kata benda yang umum tetapi hanya memiliki satu contoh dalam konteks saat ini (" Serangan goblin X").
- Kata benda dapat bervariasi jumlahnya, dari nol ("Anda tidak memukul goblin ") menjadi satu ("Anda menekan satu goblin ") hingga banyak ("Anda menekan tiga goblin "). Banyak kata benda hanya perlu
-s
atau -es
ditambahkan tetapi ada banyak pengecualian.
- Subjek dan objek mungkin sederhana (" goblin ") atau gabungan (" goblin dan saudara lelakinya ").
- Kata benda umum di awal kalimat harus ditulis dengan huruf besar, tetapi jika kata benda memiliki artikel atau jika kata majemuk, Anda hanya ingin menggunakan huruf besar kata pertama. Kata benda yang tepat selalu menggunakan huruf kapital.
- Posisi subjek ( " Dia memukul goblin ') dan posisi objek (' Goblin itu memukul dia ") menggunakan kata ganti yang berbeda.
- Posesif dapat dihasilkan dengan menambahkan
's
jika singular (" kapak goblin "), '
jika jamak (" kapak goblin "), tetapi kata ganti memiliki aturan sendiri (" Kapak Anda ").
Untuk bahasa Inggris, saya menulis Python perpustakaan generasi teks yang berasal dari MUD yang disebut JaysHouseMOO. Jangan ragu untuk mempelajari atau menyalin kode . Itu tidak memiliki perpustakaan yang baik dari kasus luar biasa; Anda harus menambahkannya dengan kata-kata yang digunakan dalam gim Anda. Saya khawatir kode porting saya tidak diuji secara luas. Mungkin juga perlu lebih banyak case yang ditambahkan untuk game (itu dirancang untuk MUD sosial, bukan MUD game).
Contoh Anda akan ditulis sebagai "%1I %1:(inflicts) a serious wound (%2n damage) on %3i"
. Angka-angka %1
, %2
, %3
kirim mana objek adalah untuk diganti; I
Saya i
katakan untuk menambahkan artikel tidak langsung ("a", "an") jika perlu; n
memintanya untuk menampilkan kata benda tanpa artikel; :(inflicts)
mengatakannya untuk mengkonjugasikan kata kerja untuk objek itu.
Inilah output untuk ditampilkan kepada penyerang, pembela, dan semua orang:
$ 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.')
Catatan jika Anda telah memberikannya (1, 'point')
akan mencetak "1 poin" bukan "1 poin". Itu adalah sesuatu yang mengganggu saya dalam teks game, jadi saya memastikan untuk menyertakan fitur agar mudah mencetaknya dengan benar.
Berikut contoh lain, dengan kata benda majemuk, dan "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.")
Contoh-contoh ini dalam bahasa Inggris, dan hanya melacak laki-laki / perempuan, kata ganti, kata kerja tunggal / jamak, dan kata benda yang tepat / umum. Apa yang Anda perlu lacak akan bervariasi antar bahasa dan jenis teks dalam gim Anda. Di Spanyol ada kata ganti formal dan informal. Beberapa bahasa memiliki bentuk kata kerja maskulin dan feminin. Kata ganti orang Jepang bergantung pada status subjek relatif terhadap objek. Dalam beberapa bahasa konjugasi kata kerja dapat secara implisit memasukkan subjek. Tentukan semua jenis teks yang ingin Anda hasilkan dan bahasa yang ingin Anda terjemahkan, dan itu akan memberi tahu Anda apa yang perlu Anda lacak di objek permainan Anda. Saat Anda membuat konten, Anda dapat memasukkan anotasi yang diperlukan dan kasus luar biasa.