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

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

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

■20424 / inTopicNo.1)  クリティカルヒット時のみ相手を一撃で倒す
  
□投稿者/ WAY -(2007/10/30(Tue) 22:48:52) [ID:03YUtKIP]
    こちらの攻撃がクリティカルヒットになった時のみ、
    相手を一撃で倒す、という事がやりたいのですが、できるでしょうか?
    あ、あとボスなどにはその能力は効かない、という風にしたいです。
引用返信/返信 削除キー/
■20425 / inTopicNo.2)  Re[1]: クリティカルヒット時のみ相手を一撃で倒す
□投稿者/ WAY -(2007/10/30(Tue) 23:00:50) [ID:03YUtKIP]
    訂正
    戦闘システムをちょっといじっていましたので、
    クリティカルヒット時というより、必殺判定が出たときでした。
    とりあえず、下に必殺判定の出し方を書きました。
    見ずらくてすみません。

    攻撃処理:
    Set クリティカル判定 0
    If Args(1) = 先手 Then
    If 先手命中率 >= Random(100) Then
    Set 命中判定 "命中"
    ダメージ = 先手威力
    If 耐久[装備武器[PilotID(先手側ID)]] Then
    耐久[装備武器[PilotID(先手側ID)]] = 耐久[装備武器[PilotID(先手側ID)]] - 1
    SetSkill Pilot(先手側ID) Info(装備武器[PilotID(先手側ID)] ,アイテムクラス) (Skill(Pilot(先手側ID), Info(装備武器[PilotID(先手側ID)] ,アイテムクラス)) + 1) 非表示

    If 耐久[装備武器[PilotID(先手側ID)]] < 1 Then
    Set 武器壊れる 1
    EndIf
    EndIf
    If 先手必殺率 >= Random(100) Then
    ダメージ = ダメージ * 3
    Set クリティカル判定 1
    EndIf
    Else
    Set 命中判定 "回避"
    ダメージ = ""
    EndIf

引用返信/返信 削除キー/
■20426 / inTopicNo.3)  「即」属性ではだめですか?
□投稿者/ 雑魚 -(2007/10/30(Tue) 23:40:51) [ID:CjvJuEUv]
    クリティカルすると敵を即死させるというのは、ドラゴンクエストのザラキやウィザードリィの首切断みたいな物ということでよろしいでしょうか?
    ならば複雑なサブルーチンを使わなくてもそのものずばりの「即」という武器属性があります。この属性による即死効果はBossRank適用ユニットには無効なので、即死しては困るユニットにはBossRankを付けるか、「特殊効果無効化=即」を付ければ、お求めの条件を満足すると思います。いかがでしょうか?
    詳細はヘルプの武器属性の項をご覧ください。

引用返信/返信 削除キー/
■20427 / inTopicNo.4)  Re[2]: 「即」属性ではだめですか?
□投稿者/ WAY -(2007/10/31(Wed) 00:14:16) [ID:03YUtKIP]
    せっかく教えていただいたのですが、
    従来の戦闘システムとは別の方式の戦闘システムのeveファイルをつくり、
    そちらを読み込ませて戦闘を行っているため、
    即属性などが使えないのです。

    If 先手必殺率 >= Random(100) Then
    ダメージ = ダメージ * 3
    Set クリティカル判定 1
    EndIf

    それと、クリティカル判定時ではなく、必殺判定時なのは、
    先手必殺率 = Min(Max((Info(ユニット, 先手側ID, 武器, 対象ユニット使用武器, クリティカル率) + Int(Skill(先手側ID, 技) / 2) + 先手支援効果 * 5 + 先手必殺修正 - Skill(後手側ID, 幸運) - 後手支援効果 * 5), 0), 100)
    ↑このように必殺率をだしているので、クリティカル率はその一部でしかないからです。
    これだと、必殺がでてもクリティカル判定にはならないと思うのですが(なるんですかね?)

引用返信/返信 削除キー/
■20428 / inTopicNo.5)  これは失礼
□投稿者/ 雑魚 -(2007/10/31(Wed) 02:09:53) [ID:CjvJuEUv]
    見当違いの返答をしてしまったようでごめんなさい。
    さて、全く独自の戦闘システムとなると全貌が判らないままで考えるのは結構難しそうです。クリティカル及び即死の条件は以下のような物で良いでしょうか?

    ・先手必殺率の値は0〜100の間になる
    ・クリティカルが出るとダメージ三倍。Random(100)が先手必殺率以下なら発動
    ・ダメージ三倍とは別に即死の判定を行う。即死の判定式は仮に、Random(100)が先手必殺率以下なら発動とする。
    ・ボスには即死が発動しない

    以上の条件なら、こんな風にしてはいかがでしょう

    攻撃処理:
    If Args(1) = 先手 Then
    If 先手命中率 >= Random(100) Then
    Set 命中判定 "命中"
    Call 命中処理
    #Random(100)が先手命中率以下ならば命中と判定する。命中の場合は命中判定を「命中」とし、ダメージを決定するための
    #サブルーチンを呼び出した後、メインルーチンに戻る
    Else
    Set 命中判定 "回避"
    ダメージ = ""
    #Random(100)が先手命中率より大きければ回避と判定する。命中判定に「回避」、ダメージに空文字列を入れてメインルーチンに戻る
    EndIf
    Endif
    Return


    命中処理:
    #必殺判定及びダメージ判定を行う。即死と判定された場合、ダメージは後手側HPプラス1(つまり破壊される)とする。
    #ボスキャラにはパイロット用特殊能力「ボス」を付けておくと、判定式の左辺は必ずゼロ以下になるので即死しない。
    #(ボスキャラかどうかの判定はBossRankを使う方法もありますが、BossRank 0の場合の処理が面倒なのでこの形で)
    #即死しなかった場合はクリティカル判定を行う。クリティカルが出ればダメージは先手威力の3倍、出なければ
    #ダメージは先手威力の1倍となる

    If (先手必殺率 -Skill(後手側ID, ボス) * 100) >= Random(100) Then
    Set クリティカル判定 即死
    ダメージ = HP(後手側ID) + 1
    Elseif 先手必殺率 >= Random(100) Then
    Set クリティカル判定 1
    ダメージ = 先手威力 * 3
    Else
    Set クリティカル判定 0
    ダメージ = 先手威力
    EndIf

    #(ここに武器破壊判定が入りますが、長くなるので省略)

    Return

    前後の処理が判らないので、このままでは使えないかもしれませんが、多少なりとも何かの参考になれば幸いです。


引用返信/返信 削除キー/
■20429 / inTopicNo.6)  Re[4]: これは失礼
□投稿者/ WAY -(2007/10/31(Wed) 16:18:33) [ID:03YUtKIP]
    ありがとうございます。
    理想の戦闘システムができました。

    それと、たびたび質問して申し訳ないのですが、
    特定のユニットにこのシステムを適応する、といったことはできるでしょうか?

    (例えば、A というユニットだけがこの即死を使える・という感じです)
引用返信/返信 削除キー/
■20430 / inTopicNo.7)  Re[5]: これは失礼
□投稿者/ 雑魚 -(2007/10/31(Wed) 21:53:21) [ID:CjvJuEUv]
    可能です。即死判定の前にもう一つIfを作ってAというユニットのみ即死判定を行うようにしても良いですし、「ボスは即死しない」の処理と同じようにAというユニット以外では即死の発生確率がゼロになるように、判定式に細工しても良いでしょう
引用返信/返信 削除キー/
■20433 / inTopicNo.8)  Re[6]: これは失礼
□投稿者/ WAY -(2007/11/01(Thu) 07:37:34) [ID:03YUtKIP]
    ありがとうございました。
    理想のユニットができました。
引用返信/返信 削除キー/
■20435 / inTopicNo.9)  すみません また質問します。
□投稿者/ WAY -(2007/11/03(Sat) 00:52:12) [ID:03YUtKIP]
    攻撃処理:
    Set クリティカル判定 0
    If Args(1) = 先手 Then
    If 先手命中率 >= Random(100) Then
    Set 命中判定 "命中"
    ダメージ = 先手威力
    If 耐久[装備武器[PilotID(先手側ID)]] Then
    耐久[装備武器[PilotID(先手側ID)]] = 耐久[装備武器[PilotID(先手側ID)]] - 1
    SetSkill Pilot(先手側ID) Info(装備武器[PilotID(先手側ID)] ,アイテムクラス) (Skill(Pilot(先手側ID), Info(装備武器[PilotID(先手側ID)] ,アイテムクラス)) + 1) 非表示

    If 耐久[装備武器[PilotID(先手側ID)]] < 1 Then
    Set 武器壊れる 1
    EndIf
    If 先手必殺率 - Int(Skill(後手側ID, ボス) * 100) - 100 + Int(Skill(先手側ID, 瞬殺) * 100)>= Random(100) Then
    ダメージ = 999
    Set クリティカル判定 1
    EndIf
    If 先手必殺率 >= Random(100) Then
    ダメージ = ダメージ * 3
    Set クリティカル判定 1
    EndIf
    Else
    Set 命中判定 "回避"
    ダメージ = ""
    EndIf

    Call 武器アニメセット 先手武器名称 先手武器種類

    If クリティカル判定 Then
    PlayEffect 光噴出 先手側ID ホワイト
    EndIf

    AttackDemo 先手側ID 武器アニメ 後手側ID 命中判定 武器アニメオプション 武器アニメオプション2

    If クリティカル判定 Then
    PlayEffect 発光 後手側ID ホワイト
    EndIf
    EndIf
    Select 後手側ID



    このようにしました。瞬殺がでるのはいいのですが、
    どのユニットでやっても瞬殺がでてしまいます。
    瞬殺 という特殊能力を持つユニットだけにつかわせたいのですが、
    どこがちがっているでしょうか???
引用返信/返信 削除キー/
■20436 / inTopicNo.10)  Re[8]: すみません また質問します。
□投稿者/ 中箱 -(2007/11/03(Sat) 15:15:08) [ID:8NrUE61r]
    >瞬殺がでるのはいいのですが、
    >どのユニットでやっても瞬殺がでてしまいます。


    >If 先手必殺率 - Int(Skill(後手側ID, ボス) * 100) - 100 + Int(Skill(先手側ID, 瞬殺) * 100)>= Random(100) Then

    これの「>=」の前に半角スペース無いせいでIfが機能していないのでは
引用返信/返信 削除キー/
■20437 / inTopicNo.11)  Re[9]: すみません また質問します。
□投稿者/ WAY -(2007/11/03(Sat) 15:44:29) [ID:03YUtKIP]
    そうでした ありがとうございます
引用返信/返信 削除キー/



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

このトピックに書きこむ

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

Pass/

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

- Child Tree -
- Antispam Version -