普通の道具と装備品の分類(質問掲示板

投稿: User icon mini 退会したユーザー 投稿:2011/11/21 23:22:21(最新:2011/11/23 19:08:23)
#アイテムを預かる,返す
def Itemback(NO)
  case NO
    when 0 #預かる
      sv("ItemIDParam", createArray());  Param = getItemIdArray()
      i = 0;  a = 0
      while i < getArrayLength(Param)
        if getValueFromItemParam(getItemParamWithId(Param[i]),
           getItemTypeIdIndex()) == 0
          removeItemWithIndex(getItemIndexWithId(Param[i]))
          gv("ItemIDParam")[a] = Param[i]
          a = a + 1
        end
        i = i + 1
      end
    when 1 #引き取る
      i = 0
      while i < getArrayLength(gv("ItemIDParam"))
        giveItem(gv("ItemIDParam")[i])
        i = i + 1
      end
      sv("ItemIDParam", 0)#配列の内容を削除
  end
end

どうしても50種類はオーバーするので、
通常アイテム以外は最初から預からないようにしたかったのですが、
通常アイテム以外が入るとどうしてもエラーが出ます・・・
getValueFromItemParamの第1引数は配列でなければなりません。 line : 7

これはどうすれば・・・?

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Zararu128x128 mini dycoon(投稿日:2011/11/23 19:08, 履歴)
Rmakeのご利用ありがとうございます。

気になったところがあるので少し書かせていただきます。

所持アイテムから作られた
アイテムID配列に対してループをおこなっていて、
その中でアイテムを削除するということをおこなっている
様に見えました。

そうすると所持アイテムが減るので、getItemIdArray()の
返り値の内容は変わりますが(配列が短くなる)
削除前のアイテムID配列を使っていることと
削除を考慮した変数iの操作をしていないため
問題は起こるだろうなと思います。

参考になれば幸いです。

よろしくお願いします。

User icon mini 退会したユーザー(投稿日:2011/11/23 12:57, 履歴)
げ、
getItemParamWithId関数ってマップに登録しないと動かないのか・・・