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)中包含一个核心方法:
1 /**
2 * 唤起对话
3 * 脚本代理的执行在添加对话内容之前
4 * 所有脚本包括嵌入式在内都会继承会话中的所有变量
5 *
6 * @param player 玩家
7 * @param origin 原点(对话实体的头顶坐标)
8 * @param sessionTop 上层会话(继承关系)
9 * @param npcName 对话 NPC 名称
10 * @param npcObject 对话 NPC 对象
11 */
12 fun open(
13 player: Player,
14 origin: Location,
15 sessionTop: Session? = null,
16 npcName: String? = null,
17 npcObject: Any? = null
18 ): CompletableFuture<Session>
通过 player.conversationSession 扩展属性可以获取到玩家正在进行的会话,若返回空则视为玩家不在对话。