~店のやりとり。アクションRPG~(質問掲示板)
投稿: 雷雲
投稿:2011/08/23 20:13:23(最新:2011/08/23 21:09:23)
アクションRPGで自分、店を使いたいと思ったのですが、どうしてもエラーが出たり、店を開いた右上の表示に変な文字が現れたりします;
・・・・どゆこと?
誰かお願いします~
設定しているお金の名前はギル。短縮のものはGです。
店のイベントの例をコピペしておきました。
#データなど
setVariable("店で使える通貨の変数名", "お金")
a = createArray()
a[0] = createArray()
a[0][0] = 1 #id
a[0][1] = 100 #価格
a[1] = createArray()
a[1][0] = 3
a[1][1] = 200
a[2] = createArray()
a[2][0] = 15
a[2][1] = 100
setVariable("店にあるアイテム", a)
a = createArray()
a[0] = createArray()
a[0][0] = 1
a[0][1] = 50
a[1] = createArray()
a[1][0] = 3
a[1][1] = 100
a[2] = createArray()
a[2][0] = 15
a[2][1] = 50
a[3] = createArray()
a[3][0] = 34
a[3][1] = 100
a[4] = createArray()
a[4][0] = 35
a[4][1] = 50
setVariable("売れるアイテム", a)
#お店処理
selectX = getSelectWindowX()
selectY = getSelectWindowY()
selectWidth = getSelectWindowWidth()
selectHeight = getSelectWindowHeight()
textId = createText(512 - 160, 16, 160, 64)
setSelectWindowRect(256, 100, 240, 200)
loop = true
speak("いらっしゃいませ。")
gold = getVariable(getVariable("店で使える通貨の変数名"))
items = getVariable("店にあるアイテム")
sellItems = getVariable("売れるアイテム")
itemList = createArray()
i = 0
while i < getArrayLength(items)
param = getItemParamWithId(items[i][0])
itemList[i] = getValueFromItemParam(param, getItemViewNameIndex()) + " " + toString(items[i][1])
i = i + 1
end
pushArray(itemList, "買わない")
while loop
setText(textId, getVariable("店で使える通貨の変数名") + " " + toString(gold))
case speakWithSelect(3,"買う","売る","店を出る",
"いかがいたしますか?")
when 0
buyIndex = -1
buyIndex = speakWithSelectArray(itemList,
"どちらをお買い上げになりますか?")
if buyIndex >= getArrayLength(itemList) - 1
buyIndex = -1
end
if buyIndex >= 0
param = getItemParamWithId(items[buyIndex][0])
if items[buyIndex][1] > gold
speak("お金が足りません。")
elsif getValueFromItemParam(param, getItemTypeIdIndex()) == 0
if !giveItem(items[buyIndex][0])
speak("持ち物がいっぱいです")
else
speak("お買い上げありがとうございます。")
gold = gold - items[buyIndex][1]
end
else
if !giveEquipment(items[buyIndex][0])
speak("装備できませんでした。")
else
speak("お買い上げありがとうございます。")
gold = gold - items[buyIndex][1]
end
end
end
when 1
case speakWithSelect(3,"装備を売る","持ち物を売る","やめる",
"どれを売っていただけるのでしょうか?")
when 0
i = 0
ct = 0
a = getEquipmentIdArray()
el = createArray()
ei = createArray()
while i < getArrayLength(a)
if a[i] >= 0
me = getEquipmentParamWithIndex(i)
el[ct] = getValueFromItemParam(me, getItemViewNameIndex())
ei[ct] = i
ct = ct + 1
end
i = i + 1
end
el[ct] = "やめる"
idx2 = speakWithSelectArray(el, "どの装備を売っていただけるのでしょうか?")
if idx2 == ct
else
price = 0
i = 0
priceLoopEnd = false
while i < getArrayLength(sellItems) && !priceLoopEnd
if sellItems[i][0] == a[ei[idx2]]
price = sellItems[i][1]
priceLoopEnd = true
end
i = i + 1
end
if priceLoopEnd
case speakWithSelect(2,"はい","いいえ",
toString(price) + "になりますが売っていただけますか?")
when 0
speak("売っていただきありがとうございます。")
gold = gold + price
removeEquipmentWithIndex(ei[idx2])
when 1
speak("まだ手放されないのですね。了解しました。")
end
else
speak("まだ手放されないのですね。了解しました。")
end
end
when 1
a = getItemIdArray()
il = createArray()
ii = createArray()
i = 0
ct = 0
while i < getArrayLength(a)
if a[i] >= 0
mi = getItemParamWithIndex(i)
il[ct] = getValueFromItemParam(mi, getItemViewNameIndex())
ii[ct] = i
ct = ct + 1
end
i = i + 1
end
il[ct] = "やめる"
idx = speakWithSelectArray(il, "どちらのアイテムを売っていただけますか?")
if idx == ct
else
price = 0
i = 0
priceLoopEnd = false
while i < getArrayLength(sellItems) && !priceLoopEnd
if sellItems[i][0] == a[ii[idx]]
price = sellItems[i][1]
priceLoopEnd = true
end
i = i + 1
end
if priceLoopEnd
case speakWithSelect(2,"はい","いいえ",
toString(price) + "になりますが売っていただけますか?")
when 0
speak("売っていただきありがとうございます。")
gold = gold + price
removeItemWithIndex(ii[idx])
when 1
speak("まだ手放されないのですね。了解しました。")
end
else
speak("まだ手放されないのですね。了解しました。")
end
end
when 2
end
when 2
speak("またのご来店をお待ちしています。")
loop = false
end
end
setVariable(getVariable("店で使える通貨の変数名"), gold)
setSelectWindowRect(selectX, selectY, selectWidth, selectHeight)
deleteText(textId)
ツイート
・・・・どゆこと?
誰かお願いします~
設定しているお金の名前はギル。短縮のものはGです。
店のイベントの例をコピペしておきました。
#データなど
setVariable("店で使える通貨の変数名", "お金")
a = createArray()
a[0] = createArray()
a[0][0] = 1 #id
a[0][1] = 100 #価格
a[1] = createArray()
a[1][0] = 3
a[1][1] = 200
a[2] = createArray()
a[2][0] = 15
a[2][1] = 100
setVariable("店にあるアイテム", a)
a = createArray()
a[0] = createArray()
a[0][0] = 1
a[0][1] = 50
a[1] = createArray()
a[1][0] = 3
a[1][1] = 100
a[2] = createArray()
a[2][0] = 15
a[2][1] = 50
a[3] = createArray()
a[3][0] = 34
a[3][1] = 100
a[4] = createArray()
a[4][0] = 35
a[4][1] = 50
setVariable("売れるアイテム", a)
#お店処理
selectX = getSelectWindowX()
selectY = getSelectWindowY()
selectWidth = getSelectWindowWidth()
selectHeight = getSelectWindowHeight()
textId = createText(512 - 160, 16, 160, 64)
setSelectWindowRect(256, 100, 240, 200)
loop = true
speak("いらっしゃいませ。")
gold = getVariable(getVariable("店で使える通貨の変数名"))
items = getVariable("店にあるアイテム")
sellItems = getVariable("売れるアイテム")
itemList = createArray()
i = 0
while i < getArrayLength(items)
param = getItemParamWithId(items[i][0])
itemList[i] = getValueFromItemParam(param, getItemViewNameIndex()) + " " + toString(items[i][1])
i = i + 1
end
pushArray(itemList, "買わない")
while loop
setText(textId, getVariable("店で使える通貨の変数名") + " " + toString(gold))
case speakWithSelect(3,"買う","売る","店を出る",
"いかがいたしますか?")
when 0
buyIndex = -1
buyIndex = speakWithSelectArray(itemList,
"どちらをお買い上げになりますか?")
if buyIndex >= getArrayLength(itemList) - 1
buyIndex = -1
end
if buyIndex >= 0
param = getItemParamWithId(items[buyIndex][0])
if items[buyIndex][1] > gold
speak("お金が足りません。")
elsif getValueFromItemParam(param, getItemTypeIdIndex()) == 0
if !giveItem(items[buyIndex][0])
speak("持ち物がいっぱいです")
else
speak("お買い上げありがとうございます。")
gold = gold - items[buyIndex][1]
end
else
if !giveEquipment(items[buyIndex][0])
speak("装備できませんでした。")
else
speak("お買い上げありがとうございます。")
gold = gold - items[buyIndex][1]
end
end
end
when 1
case speakWithSelect(3,"装備を売る","持ち物を売る","やめる",
"どれを売っていただけるのでしょうか?")
when 0
i = 0
ct = 0
a = getEquipmentIdArray()
el = createArray()
ei = createArray()
while i < getArrayLength(a)
if a[i] >= 0
me = getEquipmentParamWithIndex(i)
el[ct] = getValueFromItemParam(me, getItemViewNameIndex())
ei[ct] = i
ct = ct + 1
end
i = i + 1
end
el[ct] = "やめる"
idx2 = speakWithSelectArray(el, "どの装備を売っていただけるのでしょうか?")
if idx2 == ct
else
price = 0
i = 0
priceLoopEnd = false
while i < getArrayLength(sellItems) && !priceLoopEnd
if sellItems[i][0] == a[ei[idx2]]
price = sellItems[i][1]
priceLoopEnd = true
end
i = i + 1
end
if priceLoopEnd
case speakWithSelect(2,"はい","いいえ",
toString(price) + "になりますが売っていただけますか?")
when 0
speak("売っていただきありがとうございます。")
gold = gold + price
removeEquipmentWithIndex(ei[idx2])
when 1
speak("まだ手放されないのですね。了解しました。")
end
else
speak("まだ手放されないのですね。了解しました。")
end
end
when 1
a = getItemIdArray()
il = createArray()
ii = createArray()
i = 0
ct = 0
while i < getArrayLength(a)
if a[i] >= 0
mi = getItemParamWithIndex(i)
il[ct] = getValueFromItemParam(mi, getItemViewNameIndex())
ii[ct] = i
ct = ct + 1
end
i = i + 1
end
il[ct] = "やめる"
idx = speakWithSelectArray(il, "どちらのアイテムを売っていただけますか?")
if idx == ct
else
price = 0
i = 0
priceLoopEnd = false
while i < getArrayLength(sellItems) && !priceLoopEnd
if sellItems[i][0] == a[ii[idx]]
price = sellItems[i][1]
priceLoopEnd = true
end
i = i + 1
end
if priceLoopEnd
case speakWithSelect(2,"はい","いいえ",
toString(price) + "になりますが売っていただけますか?")
when 0
speak("売っていただきありがとうございます。")
gold = gold + price
removeItemWithIndex(ii[idx])
when 1
speak("まだ手放されないのですね。了解しました。")
end
else
speak("まだ手放されないのですね。了解しました。")
end
end
when 2
end
when 2
speak("またのご来店をお待ちしています。")
loop = false
end
end
setVariable(getVariable("店で使える通貨の変数名"), gold)
setSelectWindowRect(selectX, selectY, selectWidth, selectHeight)
deleteText(textId)
コメントする
コメントするには、ログインする必要があります。
コメント一覧
雷雲(投稿日:2011/08/23 21:09,
履歴)
なんか・・・すいません。悪いことしちゃったみたいで・・・
退会したユーザー(投稿日:2011/08/23 20:39,
履歴)
別にsetItemToShop関数とかを素直に使えばいいものを。
(何それって思うなら関数リファンスへ)
それとも改造でもするんですか?
(何それって思うなら関数リファンスへ)
それとも改造でもするんですか?