0

テキストファイルがユーザーに使用を許可するかどうかに応じて、使用する機能を有効/無効にしようとしています!commands(このゲームのコマンド(Command and Conquer:Renegade)には常に接頭辞が付いています)。!互換性と統合のために、コードが Lua にあることを探しています。例えば:

Harry1 は使用できます!spectate
Harry2 は使用できません!spectate

ただし、各ユーザーは最大 3 つの「オプション」を選択でき、これらの「オプション」の残りの部分は、ユーザーの 1 つとして選択していないユーザーにはアクセスできないため、これは無限の数のユーザーに適用される可能性があります。 3. 例:

Harry1 が選んだ!spectate, !cookie, !pizza
Harry2 が選んだ!cookie, !icecream,!chocolate

したがって、Harry1 は or を使用できず、Harry2 は or を使用でき!icecreamませ!chocolateん。!spectate!pizza

プレイヤー ID の取得は によって使用されGet_Player_ID(pID)ます。

4

1 に答える 1

0

最初にデータのレイアウトを設計することをお勧めします。Lua はデータ記述言語としても設計されているため、ネイティブの構文を使用するのが自然なので、choices ファイルは次のようになります。

user {
    name: "Harry1",
    choices: {["spectate"]=true, ["cookie"]=true, ["pizza"]=true},
}

user {
    name: "Harry2",
    choices: {["cookie"]=true, ["icecream"]=true, ["chocolate"]=true},
}

次に、コードで次の操作を実行できます。

users = {}

function user_docommand(user, command)
    if users[user].choices[command] == true do
        --- do the command
    end
end

do
    function user(u)
        if users[u.name] == nil then
             users[u.name] = {}
        end
        users[u.name].choices = u.choices
    end
    --- perharps use a safer function than dofile here
    dofile("choices.lua")
end

10.1 - PIL 第 1 版のデータの説明も参照してください。

于 2012-08-03T11:44:28.977 に答える