[解決済み] WoW Lua - 1.13でスペルランクを取得する方法 (クラシック)
質問
呪文のランクを取得したいのですが、GetSpellInfoは第2パラメータ(rank)を返しません。実行すると
/dump GetSpellInfo( 5782 )
私は
[1]="Fear"
[3]="136813"
[4]="1500"
[5]="0"
[6]="20"
[7]="5782"
呪文とランクの組み合わせは、それぞれ固有のIDを持っているようです。
5185 = Healing Touch (rank1)
5186 = Healing Touch (rank2)
5187 = Healing Touch (rank3)
5188 = Healing Touch (rank4)
5189 = Healing Touch (rank5)
6778 = Healing Touch (rank6)
8903 = Healing Touch (rank7)
9758 = Healing Touch (rank8)
IDで指定したスペルランクを取得するにはどうしたらいいですか?
私が開発しているMOD(LunarSphere)は、スペルブックからドラッグを取得します。
それをボタンのSetAttributeで使っているんです。
self:SetAttribute("*spell-S01", "Healing Touch")
最高ランクの場合や
self:SetAttribute("*spell-S01", "Healing Touch(rank 3)")
特定のランクについて
ありがとうございます。
解決方法は?
異なる呪文に過ぎない。そのため、同じ呪文の異なるランクと見なしがちなある種のものには厄介なことになります。
ランク付けされた呪文のDBを作成し、アドオンが提供するサービス全体の一部として、独自のテーブルでルックアップを行う必要がありそうです。
<ブロッククオートhttps://wowwiki.fandom.com/wiki/API_GetSpellInfo
rank (string) - 呪文のツールチップにあるランク行、例えば "Rank 2" です。他の分類 (召喚術の場合は "Summon" のような) を返します。 の呪文)、またはランクがない場合は空文字列となる。
つまり、その呪文のために行を追加したい場合、その行をUIに表示するためだけのものです。
UI API の多くのものと同様に、それらは UI をサポートするために存在するだけで、ほとんどは実用的で WoW UI 機能を表示または実行するために必要なものだけです。
local subTextOrRank = GetSpellSubtext(spellId)
これは、新しいエンジンがスペル情報と共に返さないかもしれないランクの表示行を取得します。'GetSpellSubtext'は、呪文がクライアントにキャッシュされているかどうか、またはそれが毎回動作するのを見て終わるかもしれない場合、ランクテキストを返すかどうかを指定します。
私は過去にこの呪文リストをクイックリファレンスとして使用したことがあります。
<ブロッククオートhttp://kyle.13th-floor.org/wow/spells/spells_2_4_0.txt
クライアントが静的に利用可能なデータに関する多くの質問に答えるため。
以下は、現在のバージョンのWoW ClassicにあるクライアントのSpellNameテーブルの例です。
<ブロッククオートhttps://wow.tools/dbc/?dbc=spellname&build=1.13.3.32836#search=&page=1
同じWoW Classic版のSpellテーブルを紹介します。
<ブロッククオートhttps://wow.tools/dbc/?dbc=spell&build=1.13.3.32836#search=&page=1
ID, NameSubtext_lang, Description_lang, AuraDescription_lang
1
3
4
5, , Instantly Kills the target. I hope you feel good about yourself now.....
7
10, Rank 1, Ice shards pelt the target area doing $o1 Frost damage over $d.
11
ここでは、文字通りUIに必要なものを表にしたもので、これ以上複雑で深い意味はないことがわかるでしょう。
また、リストを読み進めていくと、基本的に手作業で行われているため、間違いがあったり、ランクの説明欄には役立つが一貫性が損なわれるテキストがあったりすることが想像できます。これは、もしあなたがプログラム上の目的でテーブルの文字列フィールドに依存しようとしているならば、ランクに関するテストに例外を意識して追加する必要があることに注意することが重要です。
ロード時にスペルリストをロールオーバーして、その場でランクリストを作成することもできますが、そのテーブルには21,000ものスペルがあることに留意してください。もし、あなたがプレイヤーの呪文だけを心配しているなら、あなた自身のアドオン用のテーブルとして保存されたミニ構築済みリストを作ることができ、それは数百のテーブルだけになるでしょう。また、"Spirit "は "Spirit "ではなく、"Spirit "です。
私は、'GetSpellSubtext'をループして、ローカルクライアントでLuaテーブルを吐き出し、テーブルと組み合わせて小さなDBをロールバックすることで、ログジャムを解消することができると思います。
関連
-
[解決済み】<eof>は'end'の近くで期待される。
-
[解決済み] nil と文字列の連結を試みる Roblox
-
[解決済み] Lua 5.1の__callメタメソッドは、実際にはどのように動作するのでしょうか?
-
[解決済み] attempt to index upvalue」の意味を教えてください。
-
[解決済み] Luaイベントハンドラ
-
lua 5.2 で発生する可能性のあるいくつかのエラー
-
luaのエラーまとめ
-
Lua基本関数 type、tonumber、tostring、pcall、print
-
[解決済み] excavate 5」のようなコンピュタークラフトプログラムを実行するには?
-
[解決済み] luaテーブルのエントリーをキーで削除する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Lua: グローバルな 'mapfinishes' (nil 値) に対して演算を実行しようとした。
-
[解決済み] Luaテーブルのすべての要素を削除する方法は?
-
[解決済み] nil と文字列の連結を試みる Roblox
-
[解決済み] Luaにおける演算子~=の意味とは?
-
[解決済み] "Unable to cast value to Object" エラーメッセージ
-
[解決済み] WoW Lua - 1.13でスペルランクを取得する方法 (クラシック)
-
[解決済み] Luaのテーブルが空かどうかを判断する最も効率的な方法は?
-
[解決済み] 何をするのか? for i=1,select('#',...)
-
lua loadlib 関数がグローバルな 'loadlib' (nil 値) を呼び出そうとする
-
[解決済み] Luaはstdoutをコンソールウィンドウにリダイレクトします。