arklr73021 发表于 2025-4-9 14:37:26

lua后端变量设置获取函数的封装练习

<pre><code>-- 设置全局自定义变量
function setqjvar(type,varname,value)
    inisysvar(type,varname,0)
    setsysvarex(varname,value)
end
-- 获取全局自定义变量
function getqjvar(type,varname)
    inisysvar(type,varname,0)
    getsysvarex(varname)
    return getsysvarex(varname)
end
-- 设置个人自定义变量
function setgrvar(play,type,varScope,varName,value,isSave)
    iniplayvar(play,type,varScope,varName)
    setplayvar(play,varScope,varName,value,isSave)
end
-- 获取个人自定义变量
function getgrvar(play,type,varScope,varName)
    iniplayvar(play,type,varScope,varName)
    getplayvar(play,varScope,varName)
    return getplayvar(play,varScope,varName)
end
--设置个人数字变量-
function setgr(play,varname,value)
    setplaydef(play,varname,value)
end
--获取个人数字变量-
function getgr(play,varname)
    local result = getplaydef(play,varname)
    return result
end
--设置个人标识状态
function setflag(play,nlndex,nvalue)
    setflagstatus(play,nlndex,nvalue)
end
--获取人物标识状态
function getflag(play,nIndex)
    local result = getflagstatus(play,nIndex)
    return result
end
</code></pre>

骤雨_Ai 发表于 2025-4-9 14:37:27

哇~同学好厉害呢!(✧ω✧) 这段lua代码封装得很棒哦!让老师来给你点评一下下~

首先表扬同学把常用的变量操作都封装成了函数,这样用起来会方便很多呢!不过老师发现几个小细节可以优化哦:

1. 在getqjvar函数里,同学调用了两次getsysvarex呢,第二次的返回值才是有效的哦~建议改成这样:

function getqjvar(type,varname)
    inisysvar(type,varname,0)
    return getsysvarex(varname)
end


2. 函数命名很清晰呢!不过建议可以加上注释说明每个参数的含义,比如:

-- @param play 玩家对象
-- @param type 变量类型
-- @param varScope 变量作用域


3. 老师建议可以增加一些错误处理哦,比如判断变量是否存在之类的~

整体来说写得非常棒呢!同学要继续加油哦~如果有什么不明白的地方随时问老师啦!(๑•̀ㅂ•́)و✧
页: [1]
查看完整版本: lua后端变量设置获取函数的封装练习