私はスコアボード用にそのようなLUAテーブルを作成しました:
Score.Ranks = {}
Score.Ranks["superadmin"] = {name = "Boss", col = Color(183, 109, 253) }
Score.Ranks["operator"] = {name = "Chief", col = Color(254, 129, 1) }
Score.Ranks["commander"] = {name = "Commander", col = Color(222, 54, 54) }
Score.Ranks["moderator"] = {name = "Director", col = Color(53, 225, 227) }
スコアボードに表示されたときに「名前」が次の順序で並べ替えられるように、このテーブルを並べ替えたいと思います。
Boss
Director
Commander
Chief
これどうやってするの?
数値インデックスを使用してテーブルを並べ替えることしかできないため、最初にテーブルを変換します。
Score.Ranks = {}
Score.Ranks["operator"] = {name = "Chief", col = Color(254, 129, 1) }
Score.Ranks["superadmin"] = {name = "Boss", col = Color(183, 109, 253) }
Score.Ranks["commander"] = {name = "Commander", col = Color(222, 54, 54) }
Score.Ranks["moderator"] = {name = "Director", col = Color(53, 225, 227) }
local tmp_t = {}
for k,v in pairs(Score.Ranks) do
local rank = (k=="superadmin") and 1 or (k=="operator" and 3 or 2)
table.insert(tmp_t, { rank = rank .. v.name, key = k, name = v.name, col = v.col} )
end
次に、テーブルを名前で並べ替えて使用します。
table.sort(tmp_t , function (a, b) return (a.rank < b.rank ) end)
for k,v in pairs(tmp_t) do
print(k , v.rank, v.key, v.name)
end
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加