2012-04-22 4 views
-1

Я работаю над MUD с использованием C++ и Lua, и я пытаюсь создать набор функций для эмоций.Добавление синтаксиса функции Lua

Я написал:

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 
} 

Когда я и другие подключения к серверу с телнет, можно ввести:

сказать «привет» -> каждый видит привет, как хотелось бы.

Я могу напечатать:

сказать "привет" playerBob -> playerBob видит привет просто отлично

Однако, если я типа просто: dance я получаю сообщение об ошибке который отправляется, когда он не может распознать какие-либо глаголы. Я предположил, что add_atoms{ dance = 'verb' } исправил это, и все же ...

Неужели кто-нибудь знает, почему я не могу танцевать?

ответ

0

[РЕШИТЬ]

"add_atoms {танец = 'глагол'}" не идет в коде add_functions. Это должно быть сделано или, по крайней мере, может быть вне метода add_functions. Нравится (а):

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

add_functions 
{ 
... 
} 
+0

Если вы поняли свою проблему, вы можете отметить свой собственный ответ как правильный. – Kyle

+0

Да. Это заставляет меня ждать до завтра, прежде чем он примет меня, отметив ее как правильную. Но я бы хотел. –

Смежные вопросы