普通の道具と装備品の分類(質問掲示板)
投稿:
退会したユーザー
投稿: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
これはどうすれば・・・?
コメントする
コメントするには、ログインする必要があります。
コメント一覧
げ、
getItemParamWithId関数ってマップに登録しないと動かないのか・・・
getItemParamWithId関数ってマップに登録しないと動かないのか・・・
気になったところがあるので少し書かせていただきます。
所持アイテムから作られた
アイテムID配列に対してループをおこなっていて、
その中でアイテムを削除するということをおこなっている
様に見えました。
そうすると所持アイテムが減るので、getItemIdArray()の
返り値の内容は変わりますが(配列が短くなる)
削除前のアイテムID配列を使っていることと
削除を考慮した変数iの操作をしていないため
問題は起こるだろうなと思います。
参考になれば幸いです。
よろしくお願いします。