スイッチ(質問掲示板

投稿: User icon mini 退会したユーザー 投稿:2009/08/15 20:57:15(最新:2009/08/21 07:06:21)
ゲームで道具を受け取ったりすると、もう受け取れなくなるようにするにはどうするのですか?
また、それを応用して、スイッチみたいに一度押すと、アイコンが変わり、もう押せないみたいな機能はありますか?

 __
| |  → __
| |   | |
              •   -------

コメントする

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

コメント一覧

User icon mini 退会したユーザー(投稿日:2009/08/21 07:06, 履歴)
ありがとうございます
Zararu128x128 mini dycoon(投稿日:2009/08/20 20:37, 履歴)
アイコンの件に関しては失礼しました。

スイッチや宝箱の場合のように扉でも同様のことはできると
思います。
方法としては扉のところに開いた状態の扉を
マップとして置いておくことで可能です。
扉の絵によってはキャラクターのほうの扉の絵を
不透明にするなどの工夫は必要かもしれません。

よろしくお願いします。
User icon mini 退会したユーザー(投稿日:2009/08/20 19:19, 履歴)
よくみたらこのトピックが「スイッチ」でした。
下から2番目の記事です
User icon mini 退会したユーザー(投稿日:2009/08/20 19:19, 履歴)
アイコンが変わるというのは、「スイッチ」のトピックに書いてあります。

Zararu128x128 mini dycoon(投稿日:2009/08/20 18:01, 履歴)
表示が崩れてしまっているようなので
以下のようにかかれたものとして返事を書かせていただきます。

実行内容
# スイッチを押したときの処理うんたらかんたら
setFlag("宝箱を開けたよ",true)

if getFlag("普通の剣を手に入れた")
speak("もう何も入っていない)
else
speak("ガチャッ")
speak("普通の剣が入っていた")

# アイテムを渡す処理
giveItem(1)

setFlag("普通の剣を取った",true)
end

有効条件
!getFlag("宝箱を開けたよ")



フラグの名前が判定するときと設定するときで
"普通の剣を手に入れた"と"普通の剣を取った"で、
違ってしまっているため希望の動作が得られてないと思われます。

アイコンの変更とはイベントの表示キャラクターの変更ということでしょうか?
その場合現在は実現する方法はないと思われます。
今後の修正でできるようにするかどうか検討したいと思います。

よろしくお願いします。
User icon mini 退会したユーザー(投稿日:2009/08/20 17:35, 履歴)
もう一つ書き忘れました。
扉で開いたらアイコンが変わるという方法もお願いします。
User icon mini 退会したユーザー(投稿日:2009/08/20 17:34, 履歴)
すみません修正します

今、スイッチと同じように宝箱でやってみたんですが、うまくできませんでした。間違っているところを教えていただきますか?

実行内容

# スイッチを押したときの処理うんたらかんたら
setFlag("宝箱を開けたよ",true)

if getFlag("普通の剣を手に入れた")
speak("もう何も入っていない)
else
speak("ガチャッ")
speak("普通の剣が入っていた")

# アイテムを渡す処理
giveItem(1)

有効条件



getFlag("宝箱を開けたよ")

setFlag("普通の剣を取った",true)
end


お願いします


User icon mini 退会したユーザー(投稿日:2009/08/20 17:33, 履歴)
今、スイッチと同じように宝箱でやってみたんですが、うまくできませんでした。間違っているところを教えていただきますか?

実行内容

# スイッチを押したときの処理うんたらかんたら
setFlag("宝箱を開けたよ",true)

if getFlag("普通の剣を手に入れた")
speak("もう何も入っていない)
else
speak("ガチャッ")
speak("普通の剣が入っていた")

# アイテムを渡す処理
giveItem(1)

有効条件

getFlag("宝箱を開けたよ")


お願いします


setFlag("普通の剣を取った",true)
end
User icon mini 退会したユーザー(投稿日:2009/08/17 13:01, 履歴)
わかりました
Material 6858 mini akasata(投稿日:2009/08/17 12:36, 履歴)
waitTime関数を使ったあとにwarpで戻る場合は以下のように
書くことができます。

# 1秒待つ
waitTime(1000)
# スイッチをオフにする
setFlag("スイッチを押したよ",false)
# 今のマップに戻る
warp(3, 1, 1)


ただ、waitTime関数で待っている間、プレイヤーは入力を行う
ことができないで、時間制限イベントが作れないですね。。。
User icon mini 退会したユーザー(投稿日:2009/08/17 12:02, 履歴)
waitTime関数のことなんですけど、時間がたった後、ワープしてやり直しというのは可能ですか?
Material 6858 mini akasata(投稿日:2009/08/16 16:07, 履歴)
>ちなみに今はマップチップ制作しています

おお、マップチップは不足しがちな素材なので
とても楽しみですね!
User icon mini 退会したユーザー(投稿日:2009/08/16 15:51, 履歴)
わかりました!
ちなみに今はマップチップ制作しています
Material 6858 mini akasata(投稿日:2009/08/16 15:42, 履歴)
スイッチを押したら制限時間内に洞窟を脱出というような
仕掛けを作るのは、今のRmakeだと、まだちょっと難しい
ですね。。。

waitTime関数はスクリプトの処理を指定時間分停止する
ための関数です。

たとえば、画像Aを表示 → waitTime → 画像Bの表示
というように、紙芝居というかオートスライド的なことをするための
関数だったりします。

いろいろと行き届かなくて申し訳ありません。
時間制限についてはできるようにしたいところです。

あるいはダメージを与える床みたいなものを作って擬似的に
制限を作るのは良いかもしれません。
User icon mini 退会したユーザー(投稿日:2009/08/16 15:21, 履歴)
もう一つありあすが、
スイッチを押したら時間制限が始まるみたいのは、
スイッチの関数などのあとに「waitTime(1000)」を入れるんですか?
それか、ボタンの次のマスに「waitTime(1000)」をいれ、もうこのイベントが起きないようにするんですか?
Material 6858 mini akasata(投稿日:2009/08/16 11:20, 履歴)
>今ダンジョン系のを作ろうかと思って考えていたんですよ!

楽しみですね!
がんばって下さい!!
User icon mini 退会したユーザー(投稿日:2009/08/16 08:42, 履歴)
ありがとうございます。
今ダンジョン系のを作ろうかと思って考えていたんですよ!
Material 6858 mini akasata(投稿日:2009/08/16 00:47, 履歴)
Rmakeのご利用ありがとうございます!

一度人から受け取ったアイテムをもう受け取れないようにするには、
if文とgetFlag関数とsetFlag関数を組み合わせる必要があります。

以下のように書いてみてください。

if getFlag("アイテムを受け取った")
  speak("もうアイテムは渡したよ!")
else
  speak("アイテムをやろう。")
  # アイテムを渡す処理は省略します。。。
  setFlag("アイテムを受け取った",true)
end


上記を簡単に解説すると、(1) setFlag関数でアイテムを受け取った
ことを記録する、(2) getFlag関数とif文で受け取っているかどうかを
確認する、という処理を行っています。

if文については以下を参照してください。

スクリプト言語のマニュアル
http://rmake.jp/document/script_manual

スイッチや宝箱のように、アイコンを変わるようにするのは
もう少し難しくなります。手順としては、以下のようになります。

(1) キャラクタとマップチップにスイッチを準備する

キャラクタ画像に押されていないスイッチを準備します。次に、
マップチップに押したあとのスイッチを準備します。

マップ上に、まずマップチップで押したあとのスイッチを表示し、
その上からキャラクタ画像で押されていないスイッチを上乗せ
します。(つまり、押されていないスイッチの上に押されている
スイッチを乗せるということです。)

(2) イベントエディタの「有効条件(スクリプト)」を使う

イベントエディタの「有効条件(スクリプト)」に以下のように
書きます。

!getFlag("スイッチを押したよ")


getFlag関数の前に「!」が入っていることに注意してください。
「!」は否定を意味していて、スイッチを押していないことを
表現しています。

有効条件を設定すると、条件を満たしていないとそのイベント
キャラクタは表示されなくなります。つまり、これを設定する
ことによって、押されていないスイッチを消去して押されている
スイッチを表示することになります。

(3) 「イベント実行内容(スクリプト)」を書く

あとは、「イベント実行内容(スクリプト)」で、フラグを
設定します。

# スイッチを押したときの処理うんたらかんたら
setFlag("スイッチを押したよ",true)


以上で、設定完了です。
User icon mini 退会したユーザー(投稿日:2009/08/15 20:57, 履歴)
上のAA失敗しました