お店でエラーが出ます。(質問掲示板)
投稿: kiriya
投稿:2014/01/15 14:33:15(最新:2014/01/15 21:35:15)
2DRPGでお店を作ったのですが、エラーが出ます。
getValueFromItemParamの第1引数は配列でなければなりません。 line : 64
というエラーが出て、買うのほうに設定した商品が出ず、null2000という表示が出ます。
64行目はgetValueFromItemParamではないのですが・・・
以下にスクリプトを載せます。
addPartyMember("25664")
addPartyMember("24868")
isPartyMember("playerCharacter")
isPartyMember("25664")
isPartyMember("24868")
getPartyMemberParam("playerCharacter")
getPartyMemberParam("24664")
getPartyMemberParam("24868")
#指数関数(aのb乗を返します。)
def powFunc(a, b)
v = 1.0
i = 0
while(i < b)
v = v * a
i = i + 1
end
return v
end
#個々の敵キャラの経験値をidから求めます。
def getEnemyExperience(id)
case id
when 26872
return 10
when 2615
return 12
when 2618 ←(ここが64行目です。)
return 20
when 2620
return 26
when 2617
return 14
#敵キャラを増やしたら、ここに敵のIDから経験値を求める処理を加えていきます。
end
end
#経験値の計算
def getTotalExperience(killCounts)
exp = 0
i = 0
while i < getArrayLength(killCounts)
#倒した敵の種類と数から経験値を計算
exp = exp + getEnemyExperience(killCounts[i][0]) * killCounts[i][1]
i = i + 1
end
return exp
end
# レベルアップのチェック
def levelUpCheck()
i = 0
while i < 4
member = getPartyMember(i)
if member == "playerCharacter" || member >= 0
#メンバーがいる場合倒した敵の数と種類から経験値を計算。
killCounts = getKillCountPartyMember(member)
exp = getTotalExperience(killCounts)
#レベルアップの判定
while exp - powFunc(2, getLevelPartyMember(member) - 1) * 10 >
powFunc(2, getLevelPartyMember(member)) * 10
levelUpPartyMember(member)
speak("レベルアップしました。level = ", getLevelPartyMember(member),
"経験値 = ", exp)
setPartyMemberHealingAll()
end
end
i = i + 1
end
end
#装備
giveEquipment(5413)
giveEquipment(16536)
giveEquipment(16467)
giveEquipmentPartyMember(25664, 16537)
giveEquipmentPartyMember(24868, 16537)
def tukuru()
#テキスト表示場所作成
setTextFontColor(192,192,0)
setVariable("t",createText(256,0,256,40))
setTextFontColor(255,255,255)
#テキストイベントフラグ
setFlag("テキスト作成",false); setFlag("テキスト",true)
end #tukuru()終
def kaku()
setText(getVariable("t"),getMoney()+getDenomination())
setFlag("テキスト",false)
end #kaku()終
setFlag("テキスト作成",true)
addMoney(100); setFlag("テキスト",true)
# ID:753のアイテムを、お店は10Goldで買い取ります
# アイテムの販売金額を設定しているわけではありません。
# ご注意ください!
setSalePrice(16665, 10)
setSalePrice(16667, 20)
setSalePrice(16668, 30)
ちなみにスクリプトは【スクリプト/お金・お店・宿屋の処理】のところを参考にしました。
初心者な質問で申し訳ありませんが、よろしくお願いします。
ツイート
getValueFromItemParamの第1引数は配列でなければなりません。 line : 64
というエラーが出て、買うのほうに設定した商品が出ず、null2000という表示が出ます。
64行目はgetValueFromItemParamではないのですが・・・
以下にスクリプトを載せます。
addPartyMember("25664")
addPartyMember("24868")
isPartyMember("playerCharacter")
isPartyMember("25664")
isPartyMember("24868")
getPartyMemberParam("playerCharacter")
getPartyMemberParam("24664")
getPartyMemberParam("24868")
#指数関数(aのb乗を返します。)
def powFunc(a, b)
v = 1.0
i = 0
while(i < b)
v = v * a
i = i + 1
end
return v
end
#個々の敵キャラの経験値をidから求めます。
def getEnemyExperience(id)
case id
when 26872
return 10
when 2615
return 12
when 2618 ←(ここが64行目です。)
return 20
when 2620
return 26
when 2617
return 14
#敵キャラを増やしたら、ここに敵のIDから経験値を求める処理を加えていきます。
end
end
#経験値の計算
def getTotalExperience(killCounts)
exp = 0
i = 0
while i < getArrayLength(killCounts)
#倒した敵の種類と数から経験値を計算
exp = exp + getEnemyExperience(killCounts[i][0]) * killCounts[i][1]
i = i + 1
end
return exp
end
# レベルアップのチェック
def levelUpCheck()
i = 0
while i < 4
member = getPartyMember(i)
if member == "playerCharacter" || member >= 0
#メンバーがいる場合倒した敵の数と種類から経験値を計算。
killCounts = getKillCountPartyMember(member)
exp = getTotalExperience(killCounts)
#レベルアップの判定
while exp - powFunc(2, getLevelPartyMember(member) - 1) * 10 >
powFunc(2, getLevelPartyMember(member)) * 10
levelUpPartyMember(member)
speak("レベルアップしました。level = ", getLevelPartyMember(member),
"経験値 = ", exp)
setPartyMemberHealingAll()
end
end
i = i + 1
end
end
#装備
giveEquipment(5413)
giveEquipment(16536)
giveEquipment(16467)
giveEquipmentPartyMember(25664, 16537)
giveEquipmentPartyMember(24868, 16537)
def tukuru()
#テキスト表示場所作成
setTextFontColor(192,192,0)
setVariable("t",createText(256,0,256,40))
setTextFontColor(255,255,255)
#テキストイベントフラグ
setFlag("テキスト作成",false); setFlag("テキスト",true)
end #tukuru()終
def kaku()
setText(getVariable("t"),getMoney()+getDenomination())
setFlag("テキスト",false)
end #kaku()終
setFlag("テキスト作成",true)
addMoney(100); setFlag("テキスト",true)
# ID:753のアイテムを、お店は10Goldで買い取ります
# アイテムの販売金額を設定しているわけではありません。
# ご注意ください!
setSalePrice(16665, 10)
setSalePrice(16667, 20)
setSalePrice(16668, 30)
ちなみにスクリプトは【スクリプト/お金・お店・宿屋の処理】のところを参考にしました。
初心者な質問で申し訳ありませんが、よろしくお願いします。
コメントする
コメントするには、ログインする必要があります。
コメント一覧
違っていたらすみませんが、
見たところ質問に書かれたスクリプトは
開始スクリプトであり、エラーとまったく関係ない気が…
質問は
「マップ内にお店のイベントスクリプトを作ったのに
販売されるはずの商品がうまく表示されない」
という事でしょうか?
そうであれば、お店のイベントスクリプトの方を載せないと誰も答えられないと思います。
また、スクリプトはRmake記法を使うと見やすいです。
見たところ質問に書かれたスクリプトは
開始スクリプトであり、エラーとまったく関係ない気が…
質問は
「マップ内にお店のイベントスクリプトを作ったのに
販売されるはずの商品がうまく表示されない」
という事でしょうか?
そうであれば、お店のイベントスクリプトの方を載せないと誰も答えられないと思います。
また、スクリプトはRmake記法を使うと見やすいです。
これまでの色々な要素がてんこ盛りで一部謎ががが。
3~5行目、isPartyMember()は単体では意味がありません。削除しても可
6~8行目、getPartyMemberParam()も単体では意味がありません
ちなみに【スクリプト/お金・お店・宿屋の処理】の記事ではgetValueFromItemParam()を一切使用していないので
何か別の事をやってる部分でおかしいと思われます
アイテムのパラメータ情報を弄るのは、お店を丸ごと自分でスクリプトを組み立てたりした場合の話です
runShop()で動くお店なら、直前にいくつかsetItemToShop(アイテム番号, 価格)を並べておくだけで良いのですよよよ
3~5行目、isPartyMember()は単体では意味がありません。削除しても可
6~8行目、getPartyMemberParam()も単体では意味がありません
ちなみに【スクリプト/お金・お店・宿屋の処理】の記事ではgetValueFromItemParam()を一切使用していないので
何か別の事をやってる部分でおかしいと思われます
アイテムのパラメータ情報を弄るのは、お店を丸ごと自分でスクリプトを組み立てたりした場合の話です
runShop()で動くお店なら、直前にいくつかsetItemToShop(アイテム番号, 価格)を並べておくだけで良いのですよよよ
64行目~というのに気をとられていて、変な勘違いしてました、申し訳ないです。
お店のイベントスクリプトの方を何度かいじったらエラーは出なくなりました。
たくさんの助言ありがとうございます!なんとかお店のスクリプト完成できそうです。
cdv30200さん、rurun9さん、ありがとうございました。><