SRC質問掲示板Mk2
(現在 過去ログ32 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■6020 / inTopicNo.1)  対戦相手をランダムにだぶらず選ばせるには?
  
□投稿者/ necross -(2002/11/02(Sat) 02:01:41)
    はじめまして。
    今、ランダム戦闘でのテストをしているのですが、ランダムに出てきてもだぶらずに1度でたものはゲーム終了時まで出てこないようにするにはどうすればいいでしょうか?

    他シナリオを参考に作ってみました。if以外で登録されている対戦相手をランダムにだぶらず選ぶようにするにはどうすればいいでしょうか?

    If 戦闘回数 Mod 10 = 0 Then
    r = Random(2)
    If r = 1 Then
    enen = Call(対戦相手_テストロボ1)
    Else
    enen2 = Call(対戦相手_テストロボ2)
    EndIf
    Talk システム
    今回の対戦者は$(enen)だ
    End
    Exit


引用返信/返信 削除キー/
■6022 / inTopicNo.2)  Re[1]: 対戦相手をランダムにだぶらず選ばせるには?
□投稿者/ 幻魔の公子 -(2002/11/02(Sat) 02:20:42)
     幻魔の公子です。

     サブルーチンがないのでどんな内容なのか今ひとつわかりません。誤解があるようならご容赦を。

     配列変数に相手キャラの名称を全て格納しておいて、その中から対戦相手を選ぶようにすればよろしいかと。
     それで、一度選ばれた相手の変数を削除して、変数を詰めるようにしておけば、ダブらずに選べるかと。
     詳しくは、HELPの配列変数の項目を参照してみて下さい。

     それでは。

引用返信/返信 削除キー/
■6046 / inTopicNo.3)  Re[1]: 対戦相手をランダムにだぶらず選ばせるには?
□投稿者/ necross -(2002/11/02(Sat) 15:30:30)
    書式はこんな感じです。

    スタート:
    Local enen,enen2
    r = Random(3)
    If r = 1 Then
    ChangeMap map.map
    ElseIf r = 2 Then
    ChangeMap map2.map
    ElseIf r = 3 Then
    ChangeMap map3.map
    EndIf

    If 選択ライダー = "ryuki" Then
    Call "使用 城戸真司 変身" Return
    Call プレイヤー配置 龍騎
    ElseIf 選択ライダー = "kight" then
    Call "使用 秋山蓮 変身" Return
    Call プレイヤー配置 ナイト
    ElseIf 選択ライダー = "scissors" then
    Call "使用 須藤雅史 変身" Return
    Call プレイヤー配置 シザース
    ElseIf 選択ライダー = "zolda" then
    Call "使用 北岡秀一 変身" Return
    Call プレイヤー配置 ゾルダ
    ElseIf 選択ライダー = "raia" then
    Call "使用 手塚海之 変身" Return
    Call プレイヤー配置 ライア
    ElseIf 選択ライダー = "gai" then
    Call "使用 芝浦淳 変身" Return
    Call プレイヤー配置 ガイ
    ElseIf 選択ライダー = "ohja" then
    Call "使用 浅倉威 変身" Return
    Call プレイヤー配置 王蛇

    If 戦闘回数 Mod 10 = 0 Then
    r = Random(2)
    If r = 1 Then
    enen = Call(対戦相手_仮面ライダー)
    Else
    enen2 = Call(対戦相手_仮面ライダー)
    EndIf
    Talk システム
    今回の対戦者は$(enen)だ
    End
    Exit

    前の説明がちょっと説明不足でしたので今回詳しく説明いたします。

    全部で7人居るうちから1人選び残りの6人とランダムで戦う(だぶりなしで)
    6人と戦い終わったらインターミッションへ。

    というものを作りたいのですが、キャラセレクトは出来ているのですが残りの部分がいまいちわかりません。ランダムに戦うことはできるのですがだぶってしまったり6人と戦い終えても終わらないので。

    この辺の回答をよろしくお願いします。
引用返信/返信 削除キー/
■6047 / inTopicNo.4)  Re[2]: 対戦相手をランダムにだぶらず選ばせるには?
□投稿者/ 幻魔の公子 -(2002/11/02(Sat) 18:11:48)
     幻魔の公子です。

     えーと、私が聞きたいのは『対戦相手_仮面ライダー』なるサブルーチンなのですが。
    というか、どうせ書くなら不要に削らず全文あげて下さい。半端に書かれても結局理解できないので、無駄です。

     6戦で終わらせるには、戦闘が始まるたびに適当な変数を増やしていき、戦闘終了後にそれが6であった場合終了する、とすればよろしいでしょう。『戦闘回数』という変数でチェックしているのなら、それが6(ないし、初期値が0でなかったり増やしているのが1ずつでないのなら6戦後に入っているはずの値を)になった場合終了する、とすれば良いのです。
     ダブらないようにするのは……えーと、既に言ったとおりです。でなければ、既に戦った相手を記録しておいて、ランダムに選んだ後それを参照、既に戦った相手なら選び直すか。

     それでは。

引用返信/返信 削除キー/
■6048 / inTopicNo.5)  データ載せました
□投稿者/ necross -(2002/11/02(Sat) 18:43:32)
    こんなかんじです。

    スタート:
    Local enen,enen2
    r = Random(3)
    If r = 1 Then
    ChangeMap map.map
    ElseIf r = 2 Then
    ChangeMap map2.map
    ElseIf r = 3 Then
    ChangeMap map3.map
    EndIf

    If 選択ライダー = "ryuki" Then
    Call "使用 城戸真司 変身" Return
    Call プレイヤー配置 龍騎
    ElseIf 選択ライダー = "kight" then
    Call "使用 秋山蓮 変身" Return
    Call プレイヤー配置 ナイト
    ElseIf 選択ライダー = "scissors" then
    Call "使用 須藤雅史 変身" Return
    Call プレイヤー配置 シザース
    ElseIf 選択ライダー = "zolda" then
    Call "使用 北岡秀一 変身" Return
    Call プレイヤー配置 ゾルダ
    ElseIf 選択ライダー = "raia" then
    Call "使用 手塚海之 変身" Return
    Call プレイヤー配置 ライア
    ElseIf 選択ライダー = "gai" then
    Call "使用 芝浦淳 変身" Return
    Call プレイヤー配置 ガイ
    Else
    Talk 神崎志郎
    start.eve を先に読みこませないと戦いには参加出来ないぞ
    End
    GameClear
    EndIf

    If 戦闘回数 Mod 2 = 0 Then
    r = Random(2)
    If r = 1 Then
    enen = Call(対戦相手_仮面ライダー)
    Else
    enen2 = Call(対戦相手_仮面ライダー)
    EndIf
    Talk 神崎志郎
    今回のお前の相手は$(enen)だ
    End
    Exit

    プレイヤー配置:
    Launch Args(1) 9 9
    LV = Info(Args(1), レベル)
    Return

    全滅 敵:
    Continue battle.eve
    Exit

    全滅 味方:
    GameOver
    Exit

    勝利条件:
    Talk 神崎志郎
    勝利条件と敗北条件?難しいルールは無い。生き残った者が勝者だ
    End
    Exit

    エピローグ:
    戦闘回数 = 戦闘回数 + 1
    Exit

    対戦相手_位置:
    Local r
    r = Random(8)
    If r = 1 Then
    Return ("08 01")
    ElseIf r = 2 Then
    Return ("10 01")
    ElseIf r = 3 Then
    Return ("17 08")
    ElseIf r = 4 Then
    Return ("17 10")
    ElseIf r = 5 Then
    Return ("08 17")
    ElseIf r = 6 Then
    Return ("10 17")
    ElseIf r = 7 Then
    Return ("01 08")
    ElseIf r = 8 Then
    Return ("01 10")
    EndIf
    Exit



    対戦相手_仮面ライダー:
    top_対戦相手_仮面ライダー:
    Local r,reroll
    r = Random(6)
    If r = 1 and 選択ライダー = "ryuki" Then
    reroll = 1
    ElseIf r = 2 and 選択ライダー = "kight" then
    reroll = 1
    ElseIf r = 3 and 選択ライダー = "scissors" then
    reroll = 1
    ElseIf r = 4 and 選択ライダー = "zolda" then
    reroll = 1
    ElseIf r = 5 and 選択ライダー = "raia" then
    reroll = 1
    ElseIf r = 6 and 選択ライダー = "gai" then
    reroll = 1
    EndIf
    If reroll = 1 Then
    Goto top_対戦相手_仮面ライダー
    EndIf

    EnemyN[1] = 龍騎
    EnemyN[2] = ナイト
    EnemyN[3] = シザース
    EnemyN[4] = ゾルダ
    EnemyN[5] = ライア
    EnemyN[6] = ガイ
    xy = Call(対戦相手_位置)
    x = Mid(xy,1,2)
    y = Mid(xy,4,2)
    rr = Random(6)
    If rr = 1 Then
    l = LV + 3
    ElseIf rr = 2 or rr = 3 Then
    l = LV + 2
    ElseIf rr = 4 or rr = 5 or rr = 6 Then
    l = LV + 1
    EndIf
    Create 敵 "仮面ライダー$(EnemyN[r])" 0 EnemyN[r] l x y
    If r = 1 Then
    Call Cpu_龍騎
    ElseIf r = 2 Then
    Call Cpu_ナイト
    ElseIf r = 3 Then
    Call Cpu_シザース
    ElseIf r = 4 Then
    Call Cpu_ゾルダ
    ElseIf r = 5 Then
    Call Cpu_ライア
    ElseIf r = 6 Then
    Call Cpu_ガイ
    EndIf
    Return ("仮面ライダー$(EnemyN[r])")
    Return


引用返信/返信 削除キー/
■6049 / inTopicNo.6)  Re[4]: データ載せました
□投稿者/ 幻魔の公子 -(2002/11/02(Sat) 19:19:03)
     幻魔の公子です。

     ふむ、大体わかりました。返答は前回のレスで書いているとおりでいいということが。
     細かい部分は、HELPの該当の項目を探して参照してみて下さい。

     戦闘回数は初期値0ですね? では、戦闘回数 = 6のときに、エピローグ内で分岐するようにすればいいでしょう。システム変数『次ステージ』はSetコマンドで変えられ、これを変えると次に読み込むイベントが変わります。
     もしくは、戦闘回数 = 5のとき、Continueする先を変えるか。

     ダブらないようにするには、言ったとおり、戦った相手を適当な変数に記録しておいて、既に戦った相手だった場合も選び直すようにするか、配列変数で管理して最初から選ばないようにするだけです。

     それでは。

解決済み!
引用返信/返信 削除キー/
■6050 / inTopicNo.7)  Re[5]: データ載せました
□投稿者/ necross -(2002/11/02(Sat) 19:29:19)
    いろいろとわかりやすく説明していただきありがとうございました。

    あとは、HELPを参照しながらやってみます。

    ありがとうございました。
解決済み!
引用返信/返信 削除キー/
■6052 / inTopicNo.8)  1つ分からない事が・・・
□投稿者/ necross -(2002/11/02(Sat) 23:29:07)
    解決済みなのですが、ちょっと分からない所があったので。

    >一度選ばれた相手の変数を削除して、変数を詰めるようにしておけば

    この場合の書式がよくわからないのですが。

    ご返答よろしくお願いします。
引用返信/返信 削除キー/
■6053 / inTopicNo.9)  Re[6]: 1つ分からない事が・・・
□投稿者/ 幻魔の公子 -(2002/11/03(Sun) 00:30:27)
     幻魔の公子です。

     えーと、結構ガラッと変えることになります。

     まず、準備用のイベントがあるようですが、そちらで

    Global 選択可能キャラ
    Set 選択可能キャラ[1] 龍騎
    Set 選択可能キャラ[2] ナイト
    Set 選択可能キャラ[3] シザーズ
    Set 選択可能キャラ[4] ゾルダ
    Set 選択可能キャラ[5] ライア
    Set 選択可能キャラ[6] ガイ

     という風に変数を作っておきます。
     で、味方なり敵なりで選ばせた際に、(えーと、「r」という変数にランダムな数を入れているようなので、rを使います)以下のようにするわけです。

    For i = r To (Count(選択可能キャラ) - 1)
    Set 選択可能キャラ[i] 選択可能キャラ[(i + 1)]
    Next

    UnSet 選択可能キャラ[Count(選択可能キャラ)]

     このようにしておいて、敵選択時のRandom関数の引数にも、Count(選択可能キャラ)を指定します。
     後、EnemyN[X]などの変数の使い方を変えたり、「Call CPU_龍騎」などを「Call ("CPU_" & 選択可能キャラ[r])」という風に変えたりなど、色々と変えましょう。この辺は、細かいことは省きます。

     そんな感じです。
     それでは。

引用返信/返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Pass/

HOME HELP 新規作成 新着記事 トピック表示 検索 掲示板新着情報RSS配信新着情報 過去ログ

- Child Tree -
- Antispam Version -