| 私はロデオマンモスです。
↓処理ここから
ItemMaking: Local Eval("$(Args(1))のIDナンバー前回最終値") If IsVarDefined(Eval("IDナンバー[$(Args(1))]")) = 1 Then Eval("$(Args(1))のIDナンバー前回最終値") = Eval("IDナンバー[$(Args(1))]") Else Eval("$(Args(1))のIDナンバー前回最終値") = 0 EndIf Switch Args(2) Case 装備 Item Args(1) Equip Args(3) Args(1) Eval("$(Args(1))のIDナンバー修正値") = 1 Eval("アイテム情報[Args(1),IDナンバー,$(Eval("$(Args(1))のIDナンバー前回最終値") + 1)]") = Eval("$(Args(1))のIDナンバー前回最終値") Eval("アイテム情報[Args(1),装備状況,$(Eval("$(Args(1))のIDナンバー前回最終値") + 1)]") = Args(3) If Args(4) <> 時間データ無し Then Eval("アイテム情報[Args(1),生成時期,$(Eval("$(Args(1))のIDナンバー前回最終値") + 1)]") = Args(4) If Call(アイテム詳細情報,Args(1),賞味期限) <> 0 Then Eval("アイテム情報[Args(1),賞味期限,$(Eval("$(Args(1))のIDナンバー前回最終値") + 1)]") = (Args(4) + Call(アイテム詳細情報,Args(1),賞味期限)) EndIf EndIf Eval("アイテム情報[Args(1),生成先データタイプ,$(Eval("$(Args(1))のIDナンバー前回最終値") + 1)]") = Args(5) Eval("アイテム情報[Args(1),存在状況,$(Eval("$(Args(1))のIDナンバー前回最終値") + 1)]") = 入手 Case 生成 Eval("$(Args(1))のIDナンバー修正値") = Args(3) For アイテム生成数 = 1 To Args(3) Item Args(1) Eval("アイテム情報[Args(1),IDナンバー,$(Eval("$(Args(1))のIDナンバー前回最終値") + アイテム生成数)]") = Eval("$(Args(1))のIDナンバー前回最終値") Eval("アイテム情報[Args(1),装備状況,$(Eval("$(Args(1))のIDナンバー前回最終値") + アイテム生成数)]") = 未装備 If Args(4) <> 時間データ無し Then Eval("アイテム情報[Args(1),生成時期,$(Eval("$(Args(1))のIDナンバー前回最終値") + アイテム生成数)]") = Args(4) If Call(アイテム詳細情報,Args(1),賞味期限) <> 0 Then Eval("アイテム情報[Args(1),賞味期限,$(Eval("$(Args(1))のIDナンバー前回最終値") + アイテム生成数)]") = (Args(4) + Call(アイテム詳細情報,Args(1),賞味期限)) EndIf EndIf Eval("アイテム情報[Args(1),生成先データタイプ,$(Eval("$(Args(1))のIDナンバー前回最終値") + アイテム生成数)]") = Args(5) Eval("アイテム情報[Args(1),存在状況,$(Eval("$(Args(1))のIDナンバー前回最終値") + アイテム生成数)]") = 入手 Next EndSw Eval("IDナンバー[$(Args(1))]") = Eval("$(Args(1))のIDナンバー前回最終値") + Eval("$(Args(1))のIDナンバー修正値") Return
↑処理ここまで
改良後の処理ですが、 式置換が行われず「Eval("$(Args(1))のIDナンバー前回最終値")」が不正だと言われてしまいます。 どうすればいいのでしょうか。 多次元配列を使おうにもやはりArgs関数は必要なわけです。 そしてIDも変数で管理してやらないといけません。 「式置換が行われない」ということ自体がバグに思えてなりません。
|