2

私は Crysis Wars 用に最初の公開サーバーの変更を行っており、誰も私のコードを盗まないようにするために、可能な限り C++ ベースの DLL (代替手段は Lua) 内に配置しています。これを行うには、コマンドを DLL に入れる必要があり、その一部には追加の変数が必要です。次に例を示します。

!ban [プレイヤー名] [時間] [理由]

変数 playername、time、および reason を取得するにはどうすればよいでしょうか。これらはすべて文字の長さが異なります。reason 変数には、ピックアップする必要がある複数の単語 (「攻撃的なメッセージと不正行為」など) が含まれる場合もあります。

Lua では、これは単純な「string.match」で行われます。いつでも Lua でメッセージの並べ替えを行って、それを C++ に送り返すことができると思いますが、これにより、chatcommand システム全体が混乱する可能性があります。

「const char *msg」から変数を抽出する必要があります。これは、送信されるすべてのメッセージでシステムによって分析されます。コマンドメッセージ(「!」で始まるもの)についてはすでに分析しています。これを行う最善の方法は何ですか?

例: !ban Con 5 スパム- これにより、プレイヤー 'Confl!ct' が 5 分間キックされます (部分的な名前を識別するための部分スキャン コードは既にあります)。

!ban Con spam - プレイヤーを永久に追放します 'Confl!ct'

4

1 に答える 1