新手搭建VV引擎开发环境的几点建议——少走弯路
建议1:本地开发用 VS Code + Lua 插件,不要直接在服务器上改文件推荐安装:
- sumneko.lua(Lua语言服务,有语法检查、自动补全)
- actboy168.lua-debug(本地调试)
在 .vscode/settings.json 加上引擎的全局函数声明,避免满屏"未定义变量"警告:
{
"Lua.workspace.globals": [
"SetTimer", "GiveItem", "GetPlayerAttr",
"SendPlayerMsg", "SendNotice", "BroadcastMap",
"SpawnMonster", "GetPlayerByName"
]
}
本地写好、检查无误再上传,比在服务器上边改边重启效率高很多。
---
建议2:脚本文件用 UTF-8 无 BOM 编码,否则中文注释导致莫名报错
Windows 默认保存文本是 GBK 或 UTF-8 with BOM,很多新手遇到
"脚本加载报错但看不出哪里有问题",根本原因就是编码问题。
VS Code 右下角点击编码 → 选 UTF-8 → 保存。
Notepad++ 的话:编码菜单 → 以UTF-8无BOM格式编码。
---
建议3:养成用 pcall 包裹不确定的逻辑
❌ 一个回调报错,整个事件链中断:
function OnMonsterDie(name, killer)
DropSystem.roll(name) -- 这里报错
LogSystem.write(name) -- 这行就不会执行了
end
✅ 用 pcall 隔离,报错不影响后续逻辑:
function OnMonsterDie(name, killer)
local ok, err = pcall(DropSystem.roll, name)
if not ok then print(" " .. tostring(err)) end
pcall(LogSystem.write, name)-- 独立执行,互不影响
end
服务端脚本一旦抛出未捕获的错误,轻则单次逻辑中断,重则影响整个事件系统。
pcall 是生产环境的基本防御。
服务端脚本一旦抛出未捕获的错误,轻则单次逻辑中断,重则影响整个事件系统。
pcall 是生产环境的基本防御。
页:
[1]