-1

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 でサーバーに接続すると、次のように入力できます。

「こんにちは」と言う --> 誰もが望むように「こんにちは」と表示されます。

私は文字が打てます:

playerBob に「こんにちは」と言う --> playerBob はこんにちはと認識しています

ただし、単純に入力するとdance 、動詞を認識できない場合に送信されるエラー メッセージが表示されます。私はadd_atoms{ dance = 'verb' }それを修正したと思っていましたが、それでも...

なぜ私がダンスを始められないのか誰か知っていますか?

4

1 に答える 1

0

[解決済み]

「add_atoms { dance = 'verb' }」は add_functions コードには入りません。add_functions メソッドの外で作成する必要があるか、少なくとも作成することができます。そのようです:

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

add_functions
{
...
}
于 2012-04-22T20:30:49.630 に答える