วิธีการที่% attacker% สามารถขยายเพื่อรวมข้อมูลบางอย่างที่ไม่ใช่ชื่อของวัตถุ:
- คำกริยาอาจเป็นเอกพจน์หรือพหูพจน์ ขึ้นอยู่กับตัวแบบ "คุณโจมตี X" (บุคคลที่ 2 เอกพจน์) กับ "Extrakun โจมตี X" (บุคคลที่ 3 เอกพจน์) กับ "The Goblins โจมตี X" (หัวเรื่องบุคคลที่ 3 จำนวนมาก) คำกริยาส่วนใหญ่ต้องการเพียงการ
-s
เพิ่ม แต่ก็มีข้อยกเว้นเล็กน้อย
- คำนามอาจเป็นคำนามที่เหมาะสม (" Goblinโจมตี X") หรือคำนามทั่วไป (" A Goblinโจมตี X") คำนามสามัญที่เริ่มต้นด้วยเสียงสระควรใช้ "an" แทน "a" อาจเป็นคำนามทั่วไป แต่มีเพียงอินสแตนซ์เดียวในบริบทปัจจุบัน (" The goblinโจมตี X")
- คำนามอาจแตกต่างกันไปในจำนวนตั้งแต่ศูนย์ ("คุณไม่มีก๊อบลิน ") ถึงหนึ่ง ("คุณโดนหนึ่งก๊อบลิน ") ถึงจำนวนมาก ("คุณโดนสามก๊อบลิน ") คำนามจำนวนมากจำเป็นต้องมี
-s
หรือ-es
เพิ่ม แต่ก็มีข้อยกเว้นมากมาย
- วัตถุและวัตถุอาจเป็นแบบง่าย (" กอบลิน ") หรือสารประกอบ (" กอบลินและน้องชายของเธอ ")
- คำนามทั่วไปที่จุดเริ่มต้นของประโยคจะต้องเป็นตัวพิมพ์ใหญ่ แต่ถ้าคำนามมีบทความหรือถ้ามันเป็นคำประสมคุณจะต้องใช้อักษรตัวใหญ่ของคำแรกเท่านั้น คำนามที่เหมาะสมจะเป็นตัวพิมพ์ใหญ่เสมอ
- ตำแหน่งเรื่อง (" เธอชนกอบลิน") และตำแหน่งของวัตถุ ("พวกกอบลินชนเธอ ") ใช้สรรพนามต่างกัน
- สามารถสร้างได้โดยการเพิ่ม
's
ถ้าเอกพจน์ (" ขวานของกอบลิน ") '
ถ้าพหูพจน์ (" แกนกอบลินสองแกน") แต่คำสรรพนามมีกฎของตัวเอง (" ขวานของคุณ ")
สำหรับภาษาอังกฤษฉันเขียน Python ห้องสมุดสร้างข้อความที่ได้มาจาก MUD ชื่อ JaysHouseMOO รู้สึกอิสระที่จะศึกษาหรือคัดลอกโค้ด มันไม่มีห้องสมุดที่ดีในกรณีพิเศษ คุณจะต้องเพิ่มสิ่งนั้นด้วยคำที่ใช้ในเกมของคุณ ฉันกลัวว่ารหัสที่พอร์ตของฉันจะไม่ได้รับการทดสอบอย่างกว้างขวาง อาจต้องมีการเพิ่มเติมเคสสำหรับเกม (มันถูกออกแบบมาสำหรับ Social MUD ไม่ใช่ MUD สำหรับเล่นเกม)
"%1I %1:(inflicts) a serious wound (%2n damage) on %3i"
ตัวอย่างของคุณจะได้รับการเขียนเป็น ตัวเลข%1
, %2
, %3
บอกว่าวัตถุคือการทดแทน; I
/ i
บอกให้เพิ่มบทความทางอ้อม ("a", "an") หากต้องการ; n
บอกให้แสดงคำนามโดยไม่มีบทความ :(inflicts)
บอกให้ผันคำกริยาสำหรับวัตถุนั้น
นี่คือผลลัพธ์ที่จะแสดงต่อผู้โจมตีผู้พิทักษ์และผู้อื่น:
$ 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.')
หมายเหตุถ้าคุณให้มัน(1, 'point')
มันจะพิมพ์ "1 จุด" แทน "1 คะแนน" นั่นคือสิ่งที่ทำให้ฉันเป็นโรคจิตในข้อความดังนั้นฉันจึงแน่ใจว่าได้รวมฟีเจอร์เพื่อให้ง่ายต่อการพิมพ์อย่างถูกต้อง
นี่เป็นอีกตัวอย่างหนึ่งที่มีคำนามผสมและ "a" กับ "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.")
ตัวอย่างเหล่านี้เป็นภาษาอังกฤษและติดตามเฉพาะเพศชาย / หญิงคำสรรพนามคำกริยาเอกพจน์ / พหูพจน์ / คำนามและคำนามที่เหมาะสม / ทั่วไป สิ่งที่คุณต้องติดตามจะแตกต่างกันไปตามภาษาและประเภทของข้อความในเกมของคุณ ในภาษาสเปนมีคำสรรพนามที่เป็นทางการและไม่เป็นทางการ หลายภาษามีคำกริยารูปแบบผู้ชายและผู้หญิง คำสรรพนามภาษาญี่ปุ่นขึ้นอยู่กับสถานะของวัตถุที่สัมพันธ์กับวัตถุ ในบางภาษาการผันคำกริยาอาจรวมเรื่องโดยปริยาย กำหนดข้อความทุกประเภทที่คุณต้องการสร้างและภาษาที่คุณต้องการแปลและจะบอกสิ่งที่คุณต้องการติดตามในวัตถุเกมของคุณ เมื่อคุณสร้างเนื้อหาคุณสามารถรวมคำอธิบายประกอบที่จำเป็นและกรณีพิเศษ