Re: バグ報告スレッド 15 [ No.172 ]
メンテ
 2025/04/30 23:05
 YADO
ウディタ[3.592]で動作確認。

■隠しコード「DBのタイプAの項目Bが「文字列」項目なら0、「数値」項目なら1を返す」について

▼ ▼ユーザーDB[4:防具]の項目[0:防具の名前](文字列タイプ)
■文字列操作:S1[]=<隠しコード実行>"<<GET_ISNUMBER_UDB_ITEM/TYPE=4/ITEM=0>>"
▼ ▼システムDB[7:位置設定リスト]の項目[2:Y座標(マップ位置)](数値タイプ)
■文字列操作:S2[]=<隠しコード実行>"<<GET_ISNUMBER_SDB_ITEM/TYPE=7/ITEM=2>>"
■文章:\s[1]\n\s[2]
WoditorEvCOMMAND_START
[103][0,1]<0>()("▼ユーザーDB[4:防具]の項目[0:防具の名前](文字列タイプ)")
[122][3,1]<0>(3000001,262656,0)("<<GET_ISNUMBER_UDB_ITEM/TYPE=4/ITEM=0>>")
[103][0,1]<0>()("▼システムDB[7:位置設定リスト]の項目[2:Y座標(マップ位置)](数値タイプ)")
[122][3,1]<0>(3000002,262656,0)("<<GET_ISNUMBER_SDB_ITEM/TYPE=7/ITEM=2>>")
[101][0,1]<0>()("\s[1]<\n>\s[2]")
WoditorEvCOMMAND_END

上記設定なら項目が存在しているので、エラーは発生しないと思いますが、
実際に実行してみると両方でエラーが発生します。

エラーのmax値を見る限り、どうも…
「ユーザーDBの項目数 → 同じタイプ番号のシステムDBから取得」
「システムDBの項目数 → 同じタイプ番号のユーザーDBから取得」
と言った感じで処理されている事が原因のようです。


あと、
▼ ▼ユーザーDB[0:技能]の項目[1:説明](文字列タイプ)
■文字列操作:S1[]=<隠しコード実行>"<<GET_ISNUMBER_UDB_ITEM/TYPE=0/ITEM=1>>"
▼ ▼システムDB[0:マップ設定]の項目[1:BGM番号(リスト読込)](数値タイプ)
■文字列操作:S2[]=<隠しコード実行>"<<GET_ISNUMBER_SDB_ITEM/TYPE=0/ITEM=1>>"
■文章:\s[1]\n\s[2]
WoditorEvCOMMAND_START
[103][0,1]<0>()("▼ユーザーDB[0:技能]の項目[1:説明](文字列タイプ)")
[122][3,1]<0>(3000001,262656,0)("<<GET_ISNUMBER_UDB_ITEM/TYPE=0/ITEM=1>>")
[103][0,1]<0>()("▼システムDB[0:マップ設定]の項目[1:BGM番号(リスト読込)](数値タイプ)")
[122][3,1]<0>(3000002,262656,0)("<<GET_ISNUMBER_SDB_ITEM/TYPE=0/ITEM=1>>")
[101][0,1]<0>()("\s[1]<\n>\s[2]")
WoditorEvCOMMAND_END
と言ったように、同じタイプ番号、同じ項目番号で、
「ユーザーDB=文字列」「システムDB=数値」になるようにタイプ[0]項目[1]で設定した場合、
両方とも「0」になりました。(ユーザーDBの方は正常)

同じく「ユーザーDB=文字列」「システムDB=数値」になるタイプ[3]項目[1]に変えると、
両方とも「1」になりました。(システムDBの方は正常)

どうも正常な結果が出たり出なかったりします。(正常な結果も実は偶然の結果である可能性があるかも)
また同じ数値になるので、項目数の時のように、処理が入れ替わっているような事でも無いようです。

なお、可変DBの方は正常に処理されているようです。