2

オンラインゲーム用に開発している修正スクリプトで、数値の現在のパーセンテージを表示しようとしています。

function()
    local z = math.max(0, UnitPower("player")) / math.max(1, UnitPowerMax("player")) * 100;
    return string.format("%.f", z);
end

上記のコードは、パーセンテージを正しく表示します。

ただし、どこにでもエラーをスローせずに実際のパーセント記号を表示するのに苦労しています。

関数を終了する前と関数の後に追加しようとしましprint("%%")たが、機能しないようです。

4

2 に答える 2

9

この関数は、Cの場合string.formatと同様printfに、逐語的に使用する場合はパーセント記号を2倍にする必要があります。これは、または関数には当てはまりません。printio.write

だからあなたは確かにこれが欲しいです:

function()
  local z = math.max(0, UnitPower("player")) / math.max(1, UnitPowerMax("player")) * 100;
  return string.format("%.f %%", z);
end
于 2012-10-17T05:25:29.963 に答える
2

理解した。

function()
    local z = math.max(0, UnitPower("player")) / math.max(1, UnitPowerMax("player")) * 100;
    return string.format("%.f", z) .. "%%";
end

追加したばかり.. "%%"; 表示される値は100%になりました(100は現在のパーセンテージです)。

超後期編集:
これは、ビデオゲームWorld of Warcraftのアドオンに入力されたカスタムコードの一部でした。これは、作成者がstring.format()「カスタムコード」入力を呼び出していたため、私が達成したかった目標の解決策です。標準的な解決策については、この質問の他の回答を参照してくださいLua

于 2012-10-17T03:46:37.997 に答える