如何改进一长串的elseif陈述?

Ugg*_*ggo 2 lua

我有大约100个if语句,我能以更好的方式做到这一点吗?

function onSay (cid, words, param)
    mark = string.lower(param)
    if mark == "kojo" then
        moveTo(cid, {x=32838, y=31926, z=7})
        sendEffect({x=32838, y=31926, z=7}, 10)
    elseif mark == "habala" then
        moveTo(cid, {x=32838, y=31926, z=7})
        sendEffect({x=32838, y=31926, z=7}, 10)
    end
    -- and so on.....
end
Run Code Online (Sandbox Code Playgroud)

Jef*_*ffK 9

使用mark键作为键创建表,其中每个元素都是一个包含四个参数(x,yz,以及最后10表示的内容)的表.然后,您的onSay方法可以实现为表查找,然后调用moveTosendEffect使用已标识元素中的值.您仍然需要构建表,但是您可以从文件中读取它或将其移动到单独的模块中,因此它不会占用您的onSay方法.