% attacker % 접근 방식은 오브젝트 이름 이외의 정보를 포함하도록 확장 될 수 있습니다.
- 동사는 단수 또는 복수 일 수있다. 이것은 주제에 따라 다릅니다. "당신은 X를 공격한다 "(단일 2 인칭 대상) 대 "엑스트라 쿤 은 X를 공격한다 "(단일 3 인칭 대상) 대 "고블린은 X를 공격한다 "(복수의 3 인칭 대상). 대부분의 동사는
-s
추가 가 필요 하지만 몇 가지 예외가 있습니다.
- 명사는 적절한 명사 ( " 고블린 은 X"를 공격 함) 또는 일반적인 명사 ( "아 블린 은 X"를 공격 함) 일 수 있습니다. 모음 사운드로 시작하는 일반적인 명사는 "a"대신 "an"을 사용해야합니다. 일반적인 명사 일 수도 있지만 현재 문맥에서 하나의 인스턴스 만 가지고 있습니다 ( " 고블린 은 X를 공격합니다").
- 명사 수는 0 ( "You go no no goblins ")에서 1 ( "You go no goblin "), many ( "You go three goblins ") 까지 다양 합니다. 많은 명사는 단지
-s
또는 -es
추가 가 필요 하지만 많은 예외가 있습니다.
- 대상과 대상은 단순 ( " 고블린 ") 또는 복합 ( " 고블린과 그녀의 형제 ") 일 수 있습니다.
- 문장의 시작 부분에있는 공통 명사는 대문자로 표기해야하지만, 명사에 기사가 있거나 복합어 인 경우 첫 단어 만 대문자로 표시하려고합니다. 적절한 명사는 항상 대문자를 사용합니다.
- 대상 위치 ( " 그녀 가 고블린을 쳤다")와 대상 위치 ( "고블린이 그녀를 쳤다 ")는 다른 대명사를 사용합니다.
- 복수형 ( "2 개의 고블린 축") 인
's
경우 단수형 ( "A goblin 's axe") 을 추가하여 소유물을 생성 할 수 있지만 대명사는 고유 규칙 ( " Your axe")을 갖습니다 .'
영어의 경우, JaysHouseMOO라는 MUD에서 파생 된 텍스트 생성 라이브러리를 Python에 작성했습니다. 코드 를 공부하거나 복사 하십시오 . 예외적 인 경우에 대한 좋은 라이브러리는 없습니다. 게임에 사용 된 단어를 추가해야합니다. 내 포팅 된 코드가 광범위하게 테스트되지 않은 것 같습니다. 게임용으로 추가 된 사례가 더 필요할 수도 있습니다 (게임용 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.")
이 예는 영어로되어 있으며 남성 / 여성, 대명사, 단수 / 복수 동사 / 명사 및 고유 / 공통 명사 만 추적합니다. 추적해야 할 내용은 게임의 언어와 텍스트 유형에 따라 다릅니다. 스페인어에는 공식 및 비공식 대명사가 있습니다. 여러 언어에는 남성형과 여성형 동사가 있습니다. 일본어 대명사는 대상과 관련된 주제의 상태에 따라 다릅니다. 일부 언어에서 동사 활용 은 암시 적으로 주제를 포함 할 수 있습니다. 생성하려는 모든 종류의 텍스트와 번역하려는 언어를 결정하면 게임 오브젝트에서 추적해야 할 내용이 표시됩니다. 컨텐츠를 작성할 때 필요한 주석과 예외적 인 사례를 포함 할 수 있습니다.