SuperDialog - 超级 NPC 对话框

插件 SuperDialog - 超级 NPC 对话框 1.0.0

请登录后获取
版权类型
原创
API版本
1.0.5
版权链接
https://github.com/Mcayear/SuperDialog
语言支持
中文(简体)
前置组件
NInvShop https://github.com/mcayear/ninvshop/tree/mot
[MD] # SuperDialog - 超级 NPC 对话框 感受划时代的 RPG 色彩! ## 预览 ![preview](https://github.com/Mcayear/SuperDialog/blob/master/image/preview.gif?raw=true) ## 快速开始 ### 命令 | 命令 | 描述 | |--------------------------------------------------------------------|----------------| | `/supernpc value <player> <typeEnum: string, int, boolean> <data>` | 设置玩家持久化数据的值 | | `/supernpc open <player> <scenes>` | 为玩家打开一个指定的场景 | | `/supernpc change <player> <scenes>` | 暂无实际作用(WIP) | | `/supernpc reload` | 重载配置文件和 Lua 缓存 | | `/supernpc help` | 获取帮助 | 只需要 NPC 执行 `/supernpc open Mcayear default` 即可向玩家 `Mcayear` 打开 `default.lua` 编写的对话框。 ### config.yml ```yml dialog: scrolling: true # 使用滚动对话框 scrolling_speed: 1 # 滚动速度,正整数,最小为 1,值越大越快 ``` ### scenes/default.lua 每一个 lua 脚本都是一个场景,你可以在 lua 脚本中定义多个对话框。 不包含后缀的文件名就是命令中的 `<scenes>` 值,如 `default.lua` 就是 `default`。 ## Lua 进阶 Lua 语言的语法非常简单,你可以参考 [LuaJava API 官方文档](https://gudzpoz.github.io/luajava/api.html#jclass-type)。 ### Lua 函数设计 轻便简洁是设计的初衷,每一个场景都必须包含 `function main()` 与 `function close()` 两个函数。 函数 `main()` 是默认执行的,函数 `close()` 是当对话框关闭时执行的。 ```lua openCount = nil; function main() openCount = share:getIntValue("openCount", 0); -- 读取玩家持久化数据的值 openCount = openCount + 1; local playerName = player:getName() -- 调用Java方法获取玩家名称 local entityName = entity:getName().."§r" -- 调用Java方法获取实体名称 local title = "Welcome " .. playerName .. "!" local description = "You are interacting with " .. entityName .. ".\nopen count: ".. openCount ..".\nChoose again:" local options = {"Option 1", "Option 2"} return {title, description, options, { "close", "close" }} end function close() -- 此函数没有返回值。 share:setIntValue("openCount", openCount); end ``` ### Lua 全局变量设计 我们添加了一些全局变量 | 变量名 | 描述 | Java 类型 | |-----|--------|-------------------------------------------------------------------------------------------------------------------------------| | player | 玩家对象 | [cn.nukkit.Player](https://github.com/CloudburstMC/Nukkit/blob/master/src/main/java/cn/nukkit/Player.java) | | entity | 实体对象 | [cn.nukkit.entity.Entity](https://github.com/CloudburstMC/Nukkit/blob/master/src/main/java/cn/nukkit/entity/Entity.java) | | share | 共享变量对象 | [cn.vusv.plugin.superdialog.config.LuaShareVariable](./src/main/java/cn/vusv/plugin/superdialog/config/LuaShareVariable.java) | | tools | 工具对象 | [cn.vusv.plugin.superdialog.config.LuaToolsVariable](./src/main/java/cn/vusv/plugin/superdialog/config/LuaToolsVariable.java) | ### share 变量详解 share 是玩家的数据文件,它会以玩家名字被持久化保存到服务器的 `./plugins/SuperDialog/players/` 目录下。` 我们只提供了基础的 int、string、boolean 类型的读写方法。 [/MD]
  • 喜欢
反馈: 若尘在长大
作者
Mcayear
价格
200.00金粒
下载
8
查看
1,874
首次发布
最后更新

评分

0.00 星 0 次评分

Mcayear 的其他资源

后退
顶部 底部