添加Lua函数语法

时间:2012-04-22 09:25:00

标签: scripting syntax lua

我正在使用C ++和Lua开发MUD,我正在尝试为表情创建一组函数。

我写过:

add_functions
{
   ['subject-bind-search say'] = 'none',
   ['player say string-type'] = function(player, msg)
      player_text(player, 'You say "' .. msg.string .. '".')
      witness_text(player, M('indefinite', player) .. ' says "' .. msg.string .. '".')
   end,
   ['subject-bind-search say-to'] = 'none',
   ['player say-to string-type thing'] = function(player, msg, thing)
      player_text(player, 'You say "' .. msg.string .. '" to ' .. M('definite',thing) .. '.')
      witness_text(player, M('indefinite', player) .. ' says "' .. msg.string .. '" to ' .. M('indefinite', thing) .. '.')
      end,
      ['player dance'] = function(player)
        player_text(player, 'You burst into dance.')
        witness_text(player, M('indefinite', player)..' bursts into dance.')
        add_atoms{dance='verb'}
        end 
}

当我和其他人用telnet连接到服务器时,我可以输入:

  

说“hi” - >每个人都希望如你所愿。

我可以输入:

  

向玩家说“嗨” - > playerBob看到你很好

但是,如果我输入简单:dance 我收到一条错误消息,当它无法识别任何动词时发送。 我假设add_atoms{ dance = 'verb' }已经解决了这个问题,但是......

有没有人碰巧知道我为什么不能跳舞呢?

1 个答案:

答案 0 :(得分:0)

[解决]

“add_atoms {dance ='verb'}”不会出现在add_functions代码中。 它必须在add_functions方法之外,或者至少可以在add_functions方法之外。 像这样:

add_atoms{[{'say', 'dance', 'apologize', 'bark', 'flex'}]='verb', to='preposition'}

add_functions
{
...
}