色々な質問(質問掲示板

投稿: User icon mini tarutaru82 投稿:2011/03/06 12:20:06(最新:2011/03/08 14:29:08)
質問
1、たとえば、Aさんと話したらBさんの話が変わる、というスクリプトはどうすればいいのかせつめいしてください
2、宿屋のスクリプトってどんな風にすればいいのかせうめいしてください
3、たとえば、そのマップに居るモンスターをすべて倒したら、扉が開くというスクリプトはどうすればいいのかせつめいしてください
4、お店のスクリプトを分かりやすくせつめいしてください
5、たとえば、1度アイテムをもらったらもう二度と貰えないというスクリプトをわかりやすくせつめいおねがいします。
と、以上の事がしつもんです。分かる方はコメントお願いします。

コメントする

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

コメント一覧

User icon mini tarutaru82(投稿日:2011/03/08 14:29, 履歴)
rurun9さん、tdakeikakuさんありがとうございました!
   mini ___(投稿日:2011/03/07 20:16, 履歴)
全滅判定関数…そういうのもあるのか!
Nyan mini rurun9(投稿日:2011/03/07 19:19, 履歴)
を。
有効条件は
!getFlag("敵全部倒したか")

ですね。

半角ビックりで太字になるとか、掲示板も侮れぬようで…
Nyan mini rurun9(投稿日:2011/03/07 19:17, 履歴)
宿のようなHP全快にしたいときは
addPlayerHP( getPlayerMaxHP() )

で大丈夫だと思いますよん


3:マップ上の全ての敵を倒したら扉が開く

・扉をキャラクターとして作成して配置。
通り抜け不可にしておき、この扉キャラの「有効条件」をフラグにします

getFlag("敵全部倒したか")


・マップ上のどこか1マスに、キャラ無しの「自動開始」イベントを設置
if isEnemyWipedOut()
 setFlag("敵全部倒したか",true)
end

としておけば全滅させたら扉のフラグが変わる=扉キャラが非表示になります。
関数リファレンスをよく読むと、trueまたはfalseを返す関数が意外と多いのだけど、そうだと気付けば簡単です。


4:お店は買うだけなら
wikiスクリプト/コツ/お店の作り方

例によって配列、そしてユーザー定義関数を扱える事が条件です。
その辺の根本的な書き方なんかは結局
wikiスクリプト/つくってみよう0
のリンクから順に一通り覚えていかないと何のこっちゃワカランかもしれません。
逆に、どこまで理解してして、どの辺りがわかりにくいか、を伝えてもらえると改善の余地もあるんですが。
User icon mini tarutaru82(投稿日:2011/03/06 17:37, 履歴)
有難うございます!
これからは質問ひとつをひとつのトピックに書きたいと思います^^
   mini ___(投稿日:2011/03/06 16:02, 履歴)
…。
四角囲みで見切れている文章は…。
仕様です。特にたいしたことが書かれているわけではありません。
……う~む。
   mini ___(投稿日:2011/03/06 15:59, 履歴)
リアクション早い…驚きましたw
もうひとつの方にリンクを張っていますが、
ひとつの質問に対し、ひとつトピックを作っていただくとありがたいようです。
(個人的にはあまり細々とした事が並んでほしくない気も…。)

さて。
1.と5.については、「フラグ」を使うことで解決できると思います。
フラグについては、以下を参照してください。
  スクリプト/フラグ

2.と4.についてですが、特にお店の方は複雑だと思います。
お店は既にスクリプト例が出来上がっていますので、こちらをご覧ください。
これに関しては、私はさっぱり分かりませんので申し訳ありません。
  スクリプト/コツ/売ったり買ったりできるお店処理
宿屋は、例えば以下のようなものが考えられます。
   # とりあえず一人で無料の宿屋。
  # お金・パーティなどの概念が絡んでくると、より複雑になると思います。
   
speak("宿主「タダで泊まっていきなよ!」")
case speakWithSelect(2, "はい", "いいえ",   
   "ありがたく泊まりますか?")             
  when 0   # 以下"はい"の場合
    speak("宿主「そうか、ゆっくりしてけ!」")
   # ここに回復処理を書いていきます。
   # 例えば、(HP最大値-現在のHP)がHPの減少値ですので、これをHPに加える。
   # すなわち、addPlayerHP(getPlayerMaxHP() - getPlayerHP()) となります。
   # MPも同様にできると思いますが、もっとスマートな方法は無いものでしょうか…。
   # 画面の暗転、SEを鳴らす、等するとそれっぽいですよね。
  speak("おはよう!いい朝だな。")   # この会話の後イベント終了
  when 1   # 以下"いいえ"の場合
    speak("宿主「寝たくなったら遠慮するなよ?」")   # この会話の後イベント終了
end

ノベル以外など先ほどかじった程度ですので、
より詳しい方がおられたら修正・補足などお願いいたします。

3.については、また色々方法が考えられます。
そのマップに入ったときに、変数cを0にリセットして、
敵を一匹倒すごとにcを1ずつ増やしてあげます。
そして、cが30(敵の数を30として)になったとき、
(閉まった扉であるための有効条件が c != 30  あるいは
  開いた扉であるための有効条件が c == 30  など )
扉を開ける。

というのも方法の一つですね。

とまあ、これまた長々と失礼いたしました。