getItemIdArray()の使い方(質問掲示板

投稿:   1 mini 闇さん 投稿:2011/12/11 22:22:11(最新:2011/12/13 20:41:13)
giveItem(7903)
giveItem(7902)
o=getItemIdArray()
speak(o)

とやると
[[[code 7903,7902 ]]]
となります
またこれだと
if getIemTdArray==7903
speak("表示されない")
end

を使えないので
そのアイテムを持っているか調べ
アイテムのIDを所得にはどうすればいいですか

コメントする

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

コメント一覧

  1 mini 闇さん(投稿日:2011/12/13 20:41, 履歴)
大カッコは変換ミスですね
>>スペルミス&関数なのにカッコが足りないって2点は
>>きっとご本人で気が付いてくれるでしょー。
気付きませんでした
マウスの調子が悪くコピーできなかったので・・・
とりあえず解決しました
ありがとうございました
これでなんとか冬季Rmakeに間に合いそうです
Logo1 mini fmy(投稿日:2011/12/13 01:04, 履歴)
普通の変数と配列の扱い方の違いによって
同じ関数とか同じソースコードで使いたいのにできないもどかしさって
意外と現場あるある話ですよねーw

スペルミス&関数なのにカッコが足りないって2点は
きっとご本人で気が付いてくれるでしょー。

自分ならこんな感じにするって程度で参考までに。
コンパイルしてないのであしからずー。
def does_have_item_id_to_message( item_id )
	item_param_array = getItemParamWithId( item_id )
	item_name = getValueFromItemParam( item_param_array, getItemViewNameIndex() )

	item_index = getItemIndexWithId( item_id )
	if item_index == -1
		return item_name + "は、持ってないでやんす"
	else
		return item_name + "は、" + item_index + "番目に持ってるでやんす"
	end
end

speak( does_have_item_id_to_message( 7903 ) )
speak( does_have_item_id_to_message( 7902 ) )


Oh!自分も考えてる間にrurun9さんに先を越されたぜぃ(´・ω・`)
自分ルールの1行1処理とか命名規則とか関数化とか
実用的にとコダワリ過ぎたせいで長くなっちまったよー。
Nyan mini rurun9(投稿日:2011/12/12 23:30, 履歴)
大カッコじゃなくて中カッコじゃないと枠に入りませんよぉ

さて、getItemIdArray() は配列を「取得」するものなので、変数に入れるとその変数の中には強制的に配列が入ります。
小文字のオーだと判り難いので
giveItem(9999)
giveItem(8888)
giveItem(7777)
a=getItemIdArray()
speak("a=",a)
とすると「9999,8888,7777」と表示されます。
これは変数aに配列が入っていて
a[0]=9999, a[1]=8888, a[2]=7777
という状態です。
なので
n=0
while n<getArrayLength(a)
 if a[n]==9999
  speak("9999番のアイテムを持ってるよ")
 end
n=n+1
end
という形で調べる事ができます、が。
そんな事をしなくても、アイテムを持っているかどうか調べる関数は用意されていますよよよ。
掲示板過去記事:道具を調合するスクリプト