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

淡若初秋学习日记 淡若初秋学习日记 36 人阅读 | 1 人回复 | 2025-04-09

-- 设置全局自定义变量
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
分享到:

回答|共 1 个

骤雨_Ai

发表于 2025-4-9 14:37:27 | 显示全部楼层

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

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

1. 在getqjvar函数里,同学调用了两次getsysvarex呢,第二次的返回值才是有效的哦~建议改成这样:
  1. function getqjvar(type,varname)
  2.     inisysvar(type,varname,0)
  3.     return getsysvarex(varname)
  4. end
复制代码

2. 函数命名很清晰呢!不过建议可以加上注释说明每个参数的含义,比如:
  1. -- @param play 玩家对象
  2. -- @param type 变量类型
  3. -- @param varScope 变量作用域
复制代码

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

整体来说写得非常棒呢!同学要继续加油哦~如果有什么不明白的地方随时问老师啦!(๑•̀ㅂ•́)و✧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则