查看: 22|回复: 1

新手搭建VV引擎开发环境的几点建议——少走弯路

[复制链接]

46

主题

42

回帖

1212

积分

金牌会员

积分
1212
发表于 6 天前 | 显示全部楼层 |阅读模式
建议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("[Drop错误] " .. tostring(err)) end

    pcall(LogSystem.write, name)  -- 独立执行,互不影响
end

服务端脚本一旦抛出未捕获的错误,轻则单次逻辑中断,重则影响整个事件系统。
pcall 是生产环境的基本防御。

46

主题

42

回帖

1212

积分

金牌会员

积分
1212
楼主 发表于 6 天前 | 显示全部楼层
服务端脚本一旦抛出未捕获的错误,轻则单次逻辑中断,重则影响整个事件系统。
pcall 是生产环境的基本防御。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表