普特莫斯维基 (Purtmars Wikipedia 📖)

会话控制 (Chemdah 开发者文档)

来自Purtmars Wikipedia —— 普特莫斯维基
Bkm016讨论 | 贡献2021年5月5日 (三) 22:19的版本

目录

关系

对话(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 扩展属性可以获取到玩家正在进行的会话,若返回空则视为玩家不在对话。