久々に質問。(質問掲示板

投稿: User icon mini 退会したユーザー 投稿:2012/06/19 19:13:19(最新:2012/06/23 17:22:23)
指定のアイテムを持っているかどうかは
どうやってやればいいんでしょうか?
アイテム関連のリファレンスも一通り目を通しましたが、
私がやりたいことは書いていなかったです。

どうやればいいかのスクリプトを聞いているんではなくて、
どの関数なのかを知りたいんです。

お願いします。

コメントする

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

コメント一覧

Nyan mini rurun9(投稿日:2012/06/22 17:58, 履歴)
んー。
1年以上前から一貫して「配列は理解不能」と書き続けてるのが気になって。

スクリプト/はじめてのRmakeスクリプト / 第04回 配列変数をマスターしよう
スクリプト/配列

このふたつを読んだ上で、ワカラナイのは何なのか、を教えて欲しいです
使い方?書き方?必要性?
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/06/22 18:28, 履歴)
切り込みますか(w

「やってみたい」という気持ちがないと
楽しくないでしょうからスルーしていたのですが。
User icon mini 退会したユーザー(投稿日:2012/06/22 22:30, 履歴)
んーこれなんて言うんしょうかねぇ。。。
一言で言うとそのまま「意味がわからない」です。
どこでどんな作業をしたらどうなるのか、
そこ自体わかんないんです。
Nyan mini rurun9(投稿日:2012/06/23 13:09, 履歴)
普通の変数が『箱』だとしたら
配列変数てのは『タンス』みたいなもの
箱にはひとつしか中に入れる事ができないけど、タンス状なら引き出しの数だけ中にモノを入れる事ができる
だから名前の後ろに「何番目」かをくっつけて書くのね

ここまでは配列って何?に対する考え方の説明

でタンスになると何が便利なのかというと、「何番目か」を指定する数字を、別の変数で書く事ができる、だけ
a=5 #箱aに、数値5を入れたお

a="ア" #でも文字アを入れ直すと、以前の数5は忘れやがります

a=createArray() #タンスにしてしまえ~

a[0]=5 #引き出しにどんどん入れるよ
a[1]="ア"
#今回は、わざと2番には何も入れないでみる実験
a[3]=true

#配列にしても、それは変数である事には変わりない
speak(" a=", a)
#表示されるのは
# a=5,ア,,true

変数はひとつなのに、たくさんの事を記録しておける、さすがタンスは便利だぜ!という感じ
ここまでは意味がワカル筈。てゆーかワカレ


さて、繰り返しのwhile~endの使い方は把握しているね?
例えば10回繰り返したいなら
n=0
while n<10
 speak("rand(10)=", rand(10))
n=n+1
end
なんて感じで、今何回目か、を使い捨ての変数を用意して数えたりする事がある
そんなときに配列なら
a=createArray()

n=0
while n<10
 a[n]=rand(10)
n=n+1
end

speak("a=", a)
という事ができちゃう
単に繰り返しただけでなく、何回目の結果がいくつだったのか覚えてるんだから、やっぱり箱よりタンスの方が便利ってワケよ

あぁ、そんな事もできるんだ、程度に覚えておけば良いのだけど
実際問題としては「ローカル変数と基本変数の書き方の違い」の部分で意味がワカラナクなり易いと思う
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/06/23 14:02, 履歴)
タンスという考え方は
例えとして分かりやすいですね。
User icon mini 退会したユーザー(投稿日:2012/06/23 17:22, 履歴)
あ!わかりました!
そういう意味だったんですね、ありがとうございます!
たとえられるとやはりわかりやすいですね、
本当に有難うございました!
       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2012/06/23 14:06, 履歴)
僕の場合は
if getItemIndexWithId(11229) >= 0 
speak("スライムグミを持っている")
else
speak("スライムグミを持っていない")
end


ってやりました

ただアイテムを消したりしようとするとこれを
改良する必要があるかな?
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/06/23 15:21, 履歴)
その関数でもチェックすることが可能ですね。

ここで戻り値として受け取る値が
所持アイテム配列の番号というわけです。
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/06/19 21:44, 履歴)
所有アイテムの調べ方
アイテムの有無
道具を調合するスクリプト

装備品の調べ方
アイテムのIDからアイテムの所持数を取得
装備を強制的に外す

試していないですが
このあたりに回答につながる
ヒントがあると思います
User icon mini 退会したユーザー(投稿日:2012/06/20 14:42, 履歴)
なるほど、わかりました。
ありがとうございました。
User icon mini 退会したユーザー(投稿日:2012/06/20 15:02, 履歴)
getItemParamWithId(32)ではダメなのでしょうか?
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/06/20 16:39, 履歴)
まず、装備品でない手持ちアイテムのみであれば
アイテムのIDからアイテムの所持数を取得の記事より
getItemIdArray関数を使用することで
手持ちアイテムIDの一覧が配列として
取得できることがわかります

後は、配列に対象のIDが含まれているか
検索すればいいわけです
スクリプト/汎用関数/配列を検索する
User icon mini 退会したユーザー(投稿日:2012/06/20 16:58, 履歴)
やはり配列は理解不能です。。。
あきらめることにします。
User icon mini 退会したユーザー(投稿日:2012/06/19 21:08, 履歴)
誰かわかる方いますか?
きちんとリファレンスも調べたのですが、
文章が意味わからなかったんです。

とりあえず自分でやれってことですかね・・・