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

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

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

■16949 / inTopicNo.1)  誰か助けてください!
  
□投稿者/ MASK -(2005/07/08(Fri) 21:46:34) [ID:mMqg14c1]
    MASKです。現在SRWOG2仕様の撃墜エースボーナスインクルを作っているのですが、また行き詰まってしまいました・・・ソースを載せておきますので見て、ここは違う、もしくはここをこうしたらもっと良くなる、などを厳しく指摘してください。ちなみに、現在行き詰まっているのは一人あたりの撃墜数を管理したいのですが、なぜか一括で管理されてしまいます。例としては、A君が敵を撃墜したのにBさんにも撃墜数が+1されている、と言った感じです。

    *破壊 全:

    If (Party(相手ユニットID) = 敵 Or Party(相手ユニットID) = 中立 Or Party(相手ユニットID) = NPC) Then
    Exit
    ElseIf 相手ユニット使用武器 = "" Then
    Exit
    EndIf
    Switch Pilot

    Case Pilot(アラド=バランガ)
    Global 撃墜数
    撃墜数[エース条件数] = 50
    Incr 撃墜数[アラド=バランガ]

    If 撃墜数[アラド=バランガ] = 撃墜数[エース条件数] Then
    SetSkill アラド=バランガ 闘争本能 -1 非表示
    SetSkill アラド=バランガ 資金獲得 2 非表示
    SetSkill アラド=バランガ 耐久 8 エースボーナスa
    EndIf

    Case Pilot(ユリウス=マリオネッティスタ)
    Global 撃墜数
    撃墜数[エース条件数] = 1
    Incr 撃墜数[ユリウス=マリオネッティスタ]

    If 撃墜数[ユリウス=マリオネッティスタ] = 撃墜数[エース条件数] Then
    SetSkill ユリウス=マリオネッティスタ 闘争本能 -1 非表示
    SetSkill ユリウス=マリオネッティスタ 資金獲得 2 非表示
    SetSkill ユリウス=マリオネッティスタ 再攻撃 8 エースボーナスb
    EndIf

    EndSw
    Exit

    ・・・・と、こんな感じです。版権、オリジナルが入り混じっていますが気にしないで下さい。これを見てくださった方、しつこいようですが厳しき意見、お願いいたします。でも、あまりにも厳しすぎるのはやめてください。
引用返信/返信 削除キー/
■16952 / inTopicNo.2)  Re[1]: 誰か助けてください!
□投稿者/ 某たわし -(2005/07/08(Fri) 23:06:48) [ID:0rQbrsJE]
    こんばんは、某たわしと申します。
    いくつか指摘がありますので書かせていただきます。

    最初に、
    >Switch Pilot

    この部分ですが、これでは誰を指定しているのかがきちんと判別されません。
    もし、上記のインクルードできちんとした動作をさせたいのなら、
    Switch Pilot を、
    Switch 相手パイロット に直してみてください。

    もう一箇所、
    >Pilot(アラド=バランガ)
    この部分も、Pilotを外して
    Case アラド=バランガ とすることで正常に動作します。

    ところで、Switchコマンドを使ってそれぞれのパイロットで分岐させているようですが、まさかこれで何人もの分を作るのでしょうか?
    短編ならこれでいいかもしれませんが、パイロットの数が増えると大変長くなります。

    そこで、
    *破壊 全:
    If (Party(相手ユニットID) = 敵 Or Party(相手ユニットID) = 中立 Or Party(相手ユニットID) = NPC) Then
    Exit
    ElseIf 相手ユニット使用武器 = "" Then
    Exit
    EndIf
    Global 撃墜数
    撃墜数[エース条件数] = 50
    Incr 撃墜数[相手パイロット]
    If 撃墜数[相手パイロット] = 撃墜数[エース条件数] Then
    SetSkill 相手パイロット 闘争本能 -1 非表示
    SetSkill 相手パイロット 資金獲得 2 非表示
    SetSkill 相手パイロット 耐久 8 エースボーナスa
    EndIf
    Exit

    このように直すと、これだけで何人分でも対応できます。
    もし、よくわからなければ私のページで撃墜数インクルードの解説を行っていますのでご覧ください。

    参考になれば幸いです、それでは失礼します。
引用返信/返信 削除キー/
■16957 / inTopicNo.3)  Re[1]: 誰か助けてください!
□投稿者/ シャアペン -(2005/07/09(Sat) 13:42:15) [ID:MYW74vbn]
http://charpen-web.hp.infoseek.co.jp
    2005/07/09(Sat) 13:45:28 編集(投稿者)

    書式面の話ですが……

    > If (Party(相手ユニットID) = 敵 Or Party(相手ユニットID) = 中立 Or Party(相手ユニットID) = NPC) Then

    でなくとも


    If Not (Party(相手ユニットID) = 味方 Then


    でもよろしいかと思います。まったく同じ意味ならば短いほうがスマートになりますし。


    あと……

    > 撃墜数[エース条件数] = 50

    となっておりますが、ここは別変数で管理したほうが誤動作を防止でき、後々分かりやすくなるかと思います。例えば、ACE[カツ=コバヤシ]といった感じに。

    エースボーナス判定の際も

    If 撃墜数[相手パイロット] = ACE[相手パイロット] Then

    としておくほうが一括でできるかと思います。


    それと……


    > 記事のTitleは記事の内容を示すものでお願いします。


    という注意書きがあります。一目で内容の分からないタイトルでは返答がいただけない可能性がありますので今後は気をつけるようお願いします。
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -