コメント

このコメントは、【トピック】物を売るスクリプトへのコメントです。

コメントの内容

Nyan mini rurun9(投稿日:2011/06/18 16:06/18/11)
関数リファレンスのアイテム関連のあたりに並んでいる関数を駆使しましょー。
配列変数について知らない場合は、頑張って理解するかキッパリ諦めましょー。ただしnaoki様が今更、素人のフリをしても説得力がありませんw

持ち物には「装備しているもの」と「持っているだけのもの」があります。
これを、それぞれを配列で取得できます。
getEquipmentIdArray()
getItemIdArray()

まずは店で売る場合に、持ち物配列を選択肢として表示してみましょー。
a=getItemIdArray()
speak(a)
このままだとアイテムID番号のままです。
なので、何番が何なのか文字に変換する処理を作りましょー。
a=getItemIdArray()
b=createArray()

n=0
while n<getArrayLength(a)
 #アイテムID配列からアイテムの名前にしたものを配列bに並べる
 #アイテム名は、アイテムのパラメータから拾う事ができます
 z=getValueFromItemParam(getItemParamWithId(a[n]),
   getItemViewNameIndex()
  )
 pushArray(b,z)
n=n+1
end

pushArray(b,"やめる") #選択肢最後にやめるを追加

#変数cに何番目の選択肢を選んだかを入れる
c=speakWithSelectArray(b,"何を売ってくれるんだーい")
if c==getArrayLength(b)-1
 #配列は0番目があるから最後の選択肢は(長さ-1)番目
 speak("ひやかしかっ")
else
 case a[c] #選んだアイテムID番号から値段を決める
 when 1234 d=500
 when 5678 d=100
 when 9999 d=60
 end
 case speakWithSelect(2,
  "売る","やめる",b[c]+"なら"+d+"円で買い取るよん"
 )
 when 0
  #お金にd加える処理をこのへんに
  removeItemWithIndex(c) #売ったアイテムを消す
  speak("まいど。")
 when 1
  speak("ひやかしかっ")
 end
end

という感じになるかと思います。
お金の表示とかも加えるとより親切でしょう。

当然ながらコレは「持っているだけのもの」の場合で、「装備しているもの」は同じような処理を別に作る事になります。
また、ゲーム中で存在するアイテムのうち、店が買い取るもの全てを各マップのリソースに登録していないといけません。
アイテムの値段はアイテムパラメータにはない情報なので、図鑑のように開始スクリプトで基本変数配列に格納しておく方が良いかも。

とここまで書いてみて、wikiと何が違うのか疑問に思った。
既に完成してる店の形が公開されてるんだから、気合いで理解するしかないと思います…

コメントの内容(一番最初の投稿)

Nyan mini rurun9(投稿日:2011/06/18 16:06/18/11)
関数リファレンスのアイテム関連のあたりに並んでいる関数を駆使しましょー。
配列変数について知らない場合は、頑張って理解するかキッパリ諦めましょー。ただしnaoki様が今更、素人のフリをしても説得力がありませんw

持ち物には「装備しているもの」と「持っているだけのもの」があります。
これを、それぞれを配列で取得できます。
getEquipmentIdArray()
getItemIdArray()

まずは店で売る場合に、持ち物配列を選択肢として表示してみましょー。
a=getItemIdArray()
speak(a)
このままだとアイテムID番号のままです。
なので、何番が何なのか文字に変換する処理を作りましょー。
a=getItemIdArray()
b=createArray()

n=0
while n<getArrayLength(a)
 #アイテムID配列からアイテムの名前にしたものを配列bに並べる
 #アイテム名は、アイテムのパラメータから拾う事ができます
 z=getValueFromItemParam(getItemParamWithId(a[n]),
   getItemViewNameIndex()
  )
 pushArray(b,z)
n=n+1
end

pushArray(b,"やめる") #選択肢最後にやめるを追加

#変数cに何番目の選択肢を選んだかを入れる
c=speakWithSelectArray(b,"何を売ってくれるんだーい")
if c==getArrayLength(b)-1
 #配列は0番目があるから最後の選択肢は(長さ-1)番目
 speak("ひやかしかっ")
else
 case a[c] #選んだアイテムID番号から値段を決める
 when 1234 d=500
 when 5678 d=100
 when 9999 d=60
 end
 case speakWithSelect(2,
  "売る","やめる",b[c]+"なら"+d+"円で買い取るよん"
 )
 when 0
  #お金にd加える処理をこのへんに
  removeItemWithIndex(c) #売ったアイテムを消す
  speak("まいど。")
 when 1
  speak("ひやかしかっ")
 end
end

という感じになるかと思います。
お金の表示とかも加えるとより親切でしょう。

当然ながらコレは「持っているだけのもの」の場合で、「装備しているもの」は同じような処理を別に作る事になります。
また、ゲーム中で存在するアイテムのうち、店が買い取るもの全てを各マップのリソースに登録していないといけません。
アイテムの値段はアイテムパラメータにはない情報なので、図鑑のように開始スクリプトで基本変数配列に格納しておく方が良いかも。

とここまで書いてみて、wikiと何が違うのか疑問に思った。
既に完成してる店の形が公開されてるんだから、気合いで理解するしかないと思います…