[解決済] 装備のID(質問掲示板)
投稿: ミカエル
投稿:2015/02/04 20:35:04(最新:2015/02/05 00:12:05)
質問があります。
2DアクションRPGについてです。
装備する武器や防具のIDを取得して呼び出したいのですが
装備がたくさんあり、それぞれ装備してるものが違うので、
その点でつまづいております。
例えば、A,B,C,D,の武器があるとします。
①AかBかCを装備
②AかBかCを消去
③Dを装備
④Dを消去
⑤AかBかCを元に戻して装備。
・・・ということをしたいのです。
ひとつの装備ならばIDはこちらでわかるので
それを装備させてあげればいいのですが、
プレイヤーが何を装備してるのかわからないので
その元の武器を装備させるにはどのように記憶したらよいでしょうか。
よろしければどなたかアドバイスをお願いします。
OS:windows7
ブラウザ:IE10
Flash:
ツイート
2DアクションRPGについてです。
装備する武器や防具のIDを取得して呼び出したいのですが
装備がたくさんあり、それぞれ装備してるものが違うので、
その点でつまづいております。
例えば、A,B,C,D,の武器があるとします。
①AかBかCを装備
②AかBかCを消去
③Dを装備
④Dを消去
⑤AかBかCを元に戻して装備。
・・・ということをしたいのです。
ひとつの装備ならばIDはこちらでわかるので
それを装備させてあげればいいのですが、
プレイヤーが何を装備してるのかわからないので
その元の武器を装備させるにはどのように記憶したらよいでしょうか。
よろしければどなたかアドバイスをお願いします。
getEquipmentIdArray
OS:windows7
ブラウザ:IE10
Flash:
コメントする
コメントするには、ログインする必要があります。
コメント一覧
池ちゃん(翡翠ヶ池)(投稿日:2015/02/04 22:02,
履歴)
葵さんの言うとおり通常変数に保管して管理するのが楽かも。
とりあえずプレーヤーが装備しているアイテムのIDの配列を取得(して表示)するスクリプト貼っておきますね。
とりあえずプレーヤーが装備しているアイテムのIDの配列を取得(して表示)するスクリプト貼っておきますね。
a = createArray() a = getEquipmentIdArray() #返り値 #0 武器 #1 盾 #2 鎧 #3 頭 #4 足 #5~8 装飾品 #9~15 魔法 s = "武器=" + a[0] + " 盾=" + a[1] + " 鎧=" + a[2] + " 頭=" + a[3] + " 足=" + a[4] + "\n" l = 5 while l <= 8 s = s + " 装飾品[" + (l - 4) + "番目]=" + a[l] l = l + 1 end s = s + "\n" l = 9 while l <= 15 s = s + " 魔法[" + (l - 8) + "番目]=" + a[l] l = l + 1 end speakFullScreen(true, s)
実はクリティカル攻撃ができる武器を装備させたくて
持たせるまでは良かったのですが、元の武器を装備させようとすると
エラーがでてしまいます。何度もすみません。
line: 16 not defined variable : a
1st argument is not array. line : 16
not register item.登録されていないアイテムです(null)
持たせるまでは良かったのですが、元の武器を装備させようとすると
エラーがでてしまいます。何度もすみません。
line: 16 not defined variable : a
1st argument is not array. line : 16
not register item.登録されていないアイテムです(null)
i = 0 i = rand(7) if i == 0 a = createArray() a = getEquipmentIdArray() removeEquipmentWithIndex(0) giveEquipment(19134) setBaseTime() setFlag("クリティカル", true) end if getFlag("クリティカル") if getTime() >= 1000 removeEquipmentWithIndex(0) giveEquipment(a[0]) #こういうのはダメでしょうか? setFlag("クリティカル", false) end end
池ちゃん(翡翠ヶ池)(投稿日:2015/02/04 23:58,
履歴)
ローカル変数だとイベントが終わった後にデータが消えてしまいますので、変数aの部分を通常変数(setVariable・getVariableとか)にすれば大丈夫のはずです
#開始スクリプト等にあらかじめ設定しておく。 setVariable("a", 0) #イベント i = 0 i = rand(7) if i == 0 setVariable("a", getEquipmentIdArray()) removeEquipmentWithIndex(0) giveEquipment(17256) setBaseTime() setFlag("クリティカル", true) end if getFlag("クリティカル") if getTime() >= 1000 removeEquipmentWithIndex(0) giveEquipment(getVariable("a")[0]) #こういうのはダメでしょうか? okです。 setFlag("クリティカル", false) end end
おお!できました。
ご丁寧にご説明ありがとうございました。
これで完成に一歩近づきました。
本当にありがとうございました。