这是Y3编辑器的Lua开发框架,旨在帮助 纯Lua开发者 更好的开发地图。 本项目希望可以和广大用户共同开发此框架,因此希望大家可以积极提出建议,包括框架设计也可以提出自己的想法一起讨论。
sumneko.y3-helper
<地图工程>/maps/EntryMap
)script/y3
目录替换为此工程script/y3/初始化配置.bat
,他可以帮你配置插件环境与调试器script
文件夹注意:如果你是用的编辑器是1.0版本,请将此项目的分支切换到
1.0
如果难以访问Github,可以使用镜像仓库:https://gitee.com/tsukiko/y3-lualib
从演示图开始学习Lua!
包含:
启用方法:
require "y3.演示.demo.界面"
菜单栏
-> 插件
-> 插件商城
,搜索 LuaLib
,安装 LuaLib示例-界面
(美术资源)包含:
启用方法:
require "y3.演示.demo.防守图"
菜单栏
-> 插件
-> 插件商城
,搜索 LuaLib
,安装 LuaLib示例-防守图
(英雄、技能、怪物的物编数据)包含:
启用方法:
require "y3.演示.demo.练功房"
菜单栏
-> 插件
-> 插件商城
,搜索 LuaLib
,安装 LuaLib示例-练功房
(英雄、技能、怪物的物编数据)包含:
启用方法:
Y3
物编(用于演示用的物品)require "y3.演示.demo.合成"
菜单栏
-> 插件
-> 插件商城
,搜索 LuaLib
,安装 LuaLib示例-界面
(用于显示商店)绝大部分的接口会保持兼容,但是对于纯Lua作者来说,很多功能有更好的实现方式。比如ECA中的动作“将整数加一”在“ECA转Lua”时会生成函数调用,但在此框架中该函数被移除了。 而触发器、事件等功能也会和ECA中的有较大差异,利用Lua的语言特性使用了更加方便Lua开发的形式。
尽量不要直接调用。因为目前已经有计划修改CAPI,直接调用CAPI可能会在未来产生兼容性问题。
ECA可以直接执行Lua代码,你也可以参考此代码注册一个绑定函数供ECA调用。
我们的模型资源是动态下载的,您需要显式申明你使用的模型。申明方式是在表格编辑器中新建一个表格,然后在里面填入你使用的模型或特效资源ID即可。这张表格无需在游戏中实际使用。
Y3的Lua虚拟机进行过修改与定制,详细请参阅这篇文档。
在代码中使用 log.info('日志内容')
写日志,在开发模式中日志会写到脚本目录的 .log/lua_player01.log
中。在平台上运行时日志会写到地图目录的 custom/lua_player01.log
中。文件名后两位数字代表你在游戏中的玩家ID,在本地多开时会生成多个日志文件。在平台上运行时,完整的日志路径大概是 .../kkduizhan/Games/y3/2.0/game/LocalData/etc/maps/<加密地图名>/custom/lua_player01.log
。
如果你只是想快速的临时看一下,可以直接使用 print('内容')
,这些内容会直接在游戏内显示。上传地图前别忘了去掉 print
。
sumneko.y3-helper
。Shift+F5
)📦 y3/ ├── 📁 演示/ ├── 📁 game/ │ ├── 📜 const.lua │ ├── 📜 game.lua │ ├── 📜 helper.lua │ ├── 📜 py_converter.lua │ ├── 📜 py_event_subscribe.lua ├── 📂 meta/ ├── 📂 object/ │ ├── 📁 editable_object/ │ ├── 📁 runtime_object/ │ ├── 📁 scene_object/ ├── 📂 tools/ ├── 📂 tools/ ├── 📜 debugger.lua └── 📜 init.lua