概念
< Zh
一个 概念 (Concept) 是代码试图传达的高层次陈述,比如说 hello(TLK_HELLO),回答某个问题(TLK_ANSWER),呼救(TLK_HELP_ME)等等。
你可以通过使用 Speak( AIConcept_t concept, const char *modifiers /*= NULL*/ )
方法,基于概念命令NPC说话。这个方法定义在 AI_Speech.cpp
中。
bool CAI_Expresser::Speak( AIConcept_t concept, const char *modifiers /*= NULL*/ ) { AI_Response *result = SpeakFindResponse( concept, modifiers ); if ( !result ) { return false; } SpeechMsg( GetOuter(), "%s (%x) spoke %s (%f)\n", STRING(GetOuter()->GetEntityName()), GetOuter(), concept, gpGlobals->curtime ); bool spoke = SpeakDispatchResponse( concept, result ); return spoke; }
它尝试从响应系统 脚本中找到概念的响应。如果找到了,就尝试分派它。
NPC_talker.cpp
是一个很好的示例,它将概念说话整合到任务 和日程安排 中。如果你想制作一个自定义的NPC说话,这将是开始的最佳地点。
你也可以通过 "DispatchResponse" 实体输入使NPC选择一个响应。