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

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

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

■21805 / inTopicNo.1)  ザコや汎用を除外する方法
  
□投稿者/ 夜叉 -(2009/12/16(Wed) 14:45:32) [ID:ieYK4nIL]
    今現在全てのユニットが攻撃するたびにカウントが上昇し
    そのカウントが最大値のとき最後に攻撃を仕掛けたユニットが
    特殊状態になるというのを作成したのですが
    これを汎用やザコの敵は除外するようにするにはどのようにすれば良いでしょうか?

    攻撃後 全 全:
    #30未満であればカウント上昇
    if CT < 30 Then
    incr CT
    #30の場合『個人能力の解放』を発動しその後カウントをリセット
    elseif CT = 30 Then
    個人能力の解放
    unset CT
    endif
    exit

    個人能力の解放:

    PlaySound Thunderbolt.wav
    PaintPicture Anime\Line\EFFECT_LongBeamWire(Yellow)01.bmp 0 100 保持
    PaintPicture Anime\Line\EFFECT_LongBeamWire(Yellow)01.bmp 0 300 保持
    PaintString - - "Capacity_Liberation"
    refresh
    wait click
    setstatus 対象ユニットID Capacity_Liberation 3
    redraw
    return

引用返信/返信 削除キー/
■21807 / inTopicNo.2)  Re[1]: ザコや汎用を除外する方法
□投稿者/ 中箱 -(2009/12/16(Wed) 19:50:21) [ID:XAPi9INn]
    >今現在全てのユニットが攻撃するたびにカウントが上昇し
    >そのカウントが最大値のとき最後に攻撃を仕掛けたユニットが
    >特殊状態になるというのを作成したのですが
    >これを汎用やザコの敵は除外するようにするにはどのようにすれば良いでしょうか?

    パイロット名称の最後が "(汎用)"or"(ザコ)" の場合を除外すれば良のではないかと。
引用返信/返信 削除キー/
■21809 / inTopicNo.3)  Re[2]: ザコや汎用を除外する方法
□投稿者/ 夜叉 -(2009/12/16(Wed) 22:22:57) [ID:ieYK4nIL]

    > パイロット名称の最後が "(汎用)"or"(ザコ)" の場合を除外すれば良のではないかと。

    早速書きえてみましたがダメでした以下がその内容です

    攻撃後 全 全:
    if CT < 30 Then
    incr CT
    elseif CT = 30 Then
    if Info(パイロットデータ,対象パイロット,名称) = "(汎用)" or _
    Info(パイロットデータ,対象パイロット,名称) = "(ザコ)" exit else
    個人能力の解放
    unset CT
    endif
    endif
    exit
    汎用のところをモンスター(ザコ)や兵士(汎用)に変えてもだめでした
引用返信/返信 削除キー/
■21810 / inTopicNo.4)  Re[3]: ザコや汎用を除外する方法
□投稿者/ 夜叉 -(2009/12/16(Wed) 22:24:33) [ID:ieYK4nIL]
    > パイロット名称の最後が "(汎用)"or"(ザコ)" の場合を除外すれば良のではないかと。

    間違えて投稿していたので修正
    早速書きえてみましたがダメでした以下がその内容です

    攻撃後 全 全:
    if CT < 30 Then
    incr CT
    elseif CT = 30 Then
    if Info(パイロットデータ,対象パイロット,名称) = "(汎用)" or _
    Info(パイロットデータ,対象パイロット,名称) = "(ザコ)" exit
    else
    個人能力の解放
    unset CT
    endif
    endif
    exit
    汎用のところをモンスター(ザコ)や兵士(汎用)に変えてもだめでした
引用返信/返信 削除キー/
■21811 / inTopicNo.5)  Re[4]: ザコや汎用を除外する方法
□投稿者/ 中箱 -(2009/12/16(Wed) 22:56:48) [ID:XAPi9INn]
    2009/12/16(Wed) 23:06:24 編集(投稿者)
    2009/12/16(Wed) 23:04:05 編集(投稿者)

    >if CT < 30 Then
    >incr CT
    >elseif CT = 30 Then
    >if Info(パイロットデータ,対象パイロット,名称) = "(汎用)" or _
    >Info(パイロットデータ,対象パイロット,名称) = "(ザコ)" exit
    >else
    >個人能力の解放
    >unset CT
    >endif
    >endif

    修正前後ともに、これじゃ読み込み時にエラー吐きますよ。
    コピペミスでなければIfコマンドの書式の再確認をしたほうがいいです。(Ifコマンドの書式1の場合、ElseもEndIfも使えません)



    さて、それはさておき、

    >Info(パイロットデータ,対象パイロット,名称) = "(汎用)"
    Info関数のデータ区分が"パイロットデータ"の場合、
    データにはパイロットIDではなくてパイロット名称を指定する必要があります。
    (システム変数「対象パイロット」の中身はパイロットIDです)

    データ区分が"パイロット"であれば、データにはパイロットIDを指定しているままで大丈夫です。


    あと、パイロット名称そのものとではなくて、パイロット名称の「最後」を比較しないと。
    Len関数と、InStrRev関数(InStr関数)かRight関数を使う事になると思います。


    PS.投稿時に削除キーを入れておけば、後から修正が可能です。
    投稿直後にミスを見つけたような場合には、わざわざ新たな記事を作らずに元の記事を修正してしまった方が分かり易いかもしれません。
引用返信/返信 削除キー/
■21812 / inTopicNo.6)  Re[5]: ザコや汎用を除外する方法
□投稿者/ 夜叉 -(2009/12/17(Thu) 07:09:14) [ID:ieYK4nIL]
    以下のように直してみましたが出来ませんでした

    if Right("対象パイロット",1) = "(汎用)" or Right("対象パイロット",1) = "(ザコ)" exit

引用返信/返信 削除キー/
■21813 / inTopicNo.7)  Re[6]: ザコや汎用を除外する方法
□投稿者/ 中箱 -(2009/12/17(Thu) 11:11:19) [ID:XAPi9INn]
    >Right("対象パイロット",1)
    えーっと、
    ヘルプのRight関数の説明を読み直し、
    さらに、使い慣れていないのであれば慣れるために適当にいろいろ試した方がいいですよ?


    ヘルプのRight関数の説明は
    >Right(文字列,文字数)
    >文字列の右から指定した文字数の文字列を取り出して返します。
    です。

    これは例えば
     Right("ぱいろっと(偽)",4)
    なら、
     "と(偽)"
    が返るということです。


     Right("対象パイロット",1)
    であれば、これは
     "対象パイロット"という文字列の右から1文字取り出して返す
    ということです。
    つまり返ってくるのは常に
     "ト"
    です。

    出来なくて当たり前ですね?




    あと、前回No21811に書いたことですが
    >システム変数「対象パイロット」の中身はパイロットIDです

    そして、それより上で
    >パイロットIDではなくてパイロット名称を指定する
    と書いたとおり、パイロットIDとパイロット名称とは別のものです。

    パイロットIDが必要な所にパイロット名称を入れたり、
    パイロット名称が必要な所にパイロットIDを入れたりする間違いは、誤動作の原因となります。
引用返信/返信 削除キー/
■21814 / inTopicNo.8)  Re[7]: ザコや汎用を除外する方法
□投稿者/ 夜叉 -(2009/12/17(Thu) 14:01:20) [ID:ieYK4nIL]
    ということは以下のようで良いのでしょうか?

    攻撃後 全 全:
    if CT < 30 Then
    incr CT
    elseif CT = 30 Then
    if Right("兵士(汎用)",4) or Right("モンスター(ザコ)",4) exit
    イベント
    unset CT
    endif
    exit


引用返信/返信 削除キー/
■21815 / inTopicNo.9)  Re[8]: ザコや汎用を除外する方法
□投稿者/ デスラー -(2009/12/17(Thu) 16:57:58) [ID:rK3UXI0q]
    >if Right("兵士(汎用)",4) or Right("モンスター(ザコ)",4) exit
    Right関数は文字列の語尾から指定数分の文字を取り出すものなので、上記の形では参照する肝心の文字が記されていません。
    それに、"兵士(汎用)"とか入れてしまうとどんなキャラが攻撃してもイベントが発生してしまいます。
    ここは、対象ユニットIDを使って作ってください。

    ぶっちゃけ書いてしまうとこんな感じ。

    if Right(Pilot(対象ユニットID), 4) = "(汎用)" or Right(Pilot(対象ユニットID), 4) = "(ザコ)" exit

    Pilot()関数は対象ユニットIDで指定されたユニットに乗っているパイロット名称を読み込むものです。
    これならうまくいくのではないでしょうか?
引用返信/返信 削除キー/
■21818 / inTopicNo.10)  Re[9]: ザコや汎用を除外する方法
□投稿者/ 夜叉 -(2009/12/17(Thu) 19:23:41) [ID:ieYK4nIL]

    > Right関数は文字列の語尾から指定数分の文字を取り出すものなので、上記の形では参照する肝心の文字が記されていません。
    > それに、"兵士(汎用)"とか入れてしまうとどんなキャラが攻撃してもイベントが発生してしまいます。
    > ここは、対象ユニットIDを使って作ってください。

    デスラーさんありがとうございます
    おかげで思ったように動いてくれました
    ありがとうございます
解決済み!
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -