会话控制 (Chemdah 开发者文档)
来自Purtmars Wikipedia —— 普特莫斯维基
目录
- Chemdah
- 开始
- 基本
- 事件
- ink.ptms.chemdah.api.event.collect.ConversationEvents
- ink.ptms.chemdah.api.event.collect.ObjectiveEvents
- ink.ptms.chemdah.api.event.collect.PlayerEvents
- ink.ptms.chemdah.api.event.collect.QuestEvents
- ink.ptms.chemdah.api.event.collect.TemplateEvents
- ink.ptms.chemdah.api.event.InferEntityHookEvent
- ink.ptms.chemdah.api.event.InferItemHookEvent
- ink.ptms.chemdah.api.event.PartyHookEvent
- 对话相关
- 数据相关
- 任务相关
关系
对话(Conversation)与会话(Session)是两个不同的概念,如同类(Class)与对象(Object)的关系。
对话(Conversation)中包含一个核心方法:
/**
* 唤起对话
* 脚本代理的执行在添加对话内容之前
* 所有脚本包括嵌入式在内都会继承会话中的所有变量
*
* @param player 玩家
* @param origin 原点(对话实体的头顶坐标)
* @param sessionTop 上层会话(继承关系)
* @param npcName 对话 NPC 名称
* @param npcObject 对话 NPC 对象
*/
fun open(
player: Player,
origin: Location,
sessionTop: Session? = null,
npcName: String? = null,
npcObject: Any? = null
): CompletableFuture
通过 player.conversationSession 扩展属性可以获取到玩家正在进行的会话,若返回空则视为玩家不在对话。