//////////////////////////////////////////////////////////////////////////////// // // ユーザーvsゴーストバトルスクリプト「文バトラー」Ver1.00 // 前提 : 文 version 5.7 fix3以降を搭載 // 日時 : 2005/04/29 // 作者 : くーぷらん // 機能 : ユーザーとゴーストとの一対一バトル。 // 特徴 : 簡単に台詞を書き換え可能。 //    : 各種行動の発動確率もそこそこ簡単に変更可能。 // 備考 : 耳の人氏作「美坂バトラー」Ver1.01を、文に移植したものです。 // パブリックドメインとして自由に改変、再配布可 // // すぺしゃるさんくす(敬称略) : 耳の人、C.Ponapalt // //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// // スクリプトの解説 //////////////////////////////////////////////////////////////////////////// // //1.導入 // (1)このファイルを組み込みたいゴーストのghost/masterフォルダに入れ、aya5.txtに //   dic, Ayabattler.dic //  の一行を追加。 //  そして台詞をゴーストに合うよう書き換える。 // (2)aya_menu.dic内のOnChoiceSelectの中身を // OnChoiceSelect // { // EVAL(reference0) // } //  のようにに書き換える。 //2.バトルを仕掛ける方法 // メニューに"\q[ゴーストと対戦,AyaBattler]"を追加する。 // //3.対戦方法 // バトルはターン制でユーザーとゴーストは交互に攻撃を行う。 // 選べる攻撃は"弱攻撃"、"中攻撃"、"強攻撃"の三つで、弱は命中率が高く、強は威力 //が高い。 // 攻撃を見切った(見切られた)場合はカウンターか防御をを選択。 // カウンターは相手の攻撃をそのまま返すが成功率は低く、防御は高い確率で/攻撃を //無効化する。 // どちらかのHPが0になるとバトルは終了。 //////////////////////////////////////////////////////////////////////////////// // 初期設定 //////////////////////////////////////////////////////////////////////////////// // 戦闘開始&初期設定 AyaBattler { user_HP = 100 ghost_HP =100 "\t%(battle_start_sentence)\x\c%(Choice_user_turn)" } //////////////////////////////////////////////////////////////////////////////// // ユーザーのターン //////////////////////////////////////////////////////////////////////////////// // ユーザーのコマンド選択 Choice_user_turn { "\q[弱攻撃,OnChoiceUserTurn,1]\n/ \q[中攻撃,OnChoiceUserTurn,2]\n/ \q[強攻撃,OnChoiceUserTurn,3]\e" } OnChoiceUserTurn { Choice_user_attack(TOINT(reference0)) } Choice_user_attack { _u = RAND(100) if _u <= attack_rate(_argv[0],0) { //攻撃成功 _damage = damage_value(_argv[0],1) ghost_HP = ghost_HP - _damage "\t\1%(user_attack_sentence(_argv[0]))\x\c\1%selfnameに%(_damage)のダメージを与えた!\x\c%(win_lose(1))\e" } else { //ゴーストが攻撃に反応 _g = RAND(100) if _g <= (100 - attack_rate(_argv[0],1)) //成功率の逆で試みる { // ゴーストのカウンター _c = RAND(100) if _c <= attack_rate(_argv[0],1) { // カウンター成功 _damage = damage_value(_argv[0],0) user_HP = user_HP - _damage "\t%(ghost_reaction_sentence)\x\1%(ghost_counter_sentence(_argv[0]))\x\c\1%usernameに%(_damage)のダメージを与えた!\x\c%(win_lose(1))" } else { // カウンター失敗 _damage = damage_value(_argv[0],1) ghost_HP = ghost_HP - _damage "\t%(ghost_reaction_sentence)\x\1%(ghost_misscounter_sentence)\x\c\1%selfnameに%(_damage)のダメージを与えた!\x\c%(win_lose(1))" } } else { // ゴーストが攻撃を防御 _d = RAND(100) if _d <= 20 { //防御成功 "\t%(ghost_defense_sentence)\x\c%(win_lose(1))" } else { //防御失敗 _damage = damage_value(_argv[0],1) ghost_HP = ghost_HP - _damage "\t%(ghost_reaction_sentence)\x\1%(ghost_missdefense_sentence)\x\c\1%selfnameに%(_damage)のダメージを与えた!\x\c%(win_lose(1))" } } } } //////////////////////////////////////////////////////////////////////////////// // ゴーストのターン //////////////////////////////////////////////////////////////////////////////// Choice_ghost_turn { "\t\0%(ghost_sentence)\x\c%(ghost_action)" } ghost_action { Choice_ghost_attack(RAND(3) + 1) } Choice_user_counter_select { user_reaction_sentence -- '\0\n\n' -- "\q[カウンター,Choice_user_counter]\n" -- "\q[防御,Choice_user_defence]\n" } // ゴースト攻撃 Choice_ghost_attack { _u = RAND(100) if _u <= attack_rate(_argv[0],1) { //攻撃成功 _damage = damage_value(_argv[0],0) user_HP = user_HP - _damage "\t\1%(ghost_attack_sentence(_argv[0]))\x\c\1%usernameに%(_damage)のダメージを与えた!\x\c%(win_lose(0))\e" } else { last_ghost_attack = _argv[0] Choice_user_counter_select } } // ユーザーのカウンター Choice_user_counter { _c = RAND(100) if _c <= attack_rate(last_ghost_attack,0) { // カウンター成功 _damage = damage_value(last_ghost_attack,1) ghost_HP = ghost_HP - _damage "\t\1%(user_counter_sentence(last_ghost_attack))\x\c\1%selfnameに%(_damage)のダメージを与えた!\x\c%(win_lose(0))" } else { // カウンター失敗 _damage = damage_value(last_ghost_attack,0) user_HP = user_HP - _damage "\t\1%(user_misscounter_sentence)\x\c\1%usernameに%(_damage)のダメージを与えた!\x\c%(win_lose(0))" } } // ユーザーが攻撃を防御 Choice_user_defence { _d = RAND(100) if _d <= 20 { //防御成功 "\t%(user_defense_sentence)\x\c%(win_lose(0))" } else { //防御失敗 _damage = damage_value(last_ghost_attack,0) user_HP = user_HP - _damage "\t\1%(user_missdefense_sentence)\x\c\1%usernameに%(_damage)のダメージを与えた!\x\c%(win_lose(0))" } } //////////////////////////////////////////////////////////////////////////////// // 勝敗 //////////////////////////////////////////////////////////////////////////////// // 勝敗判定 // _argv[0] = 0 -> 次ユーザーターン = 1 -> 次ゴーストターン win_lose { if user_HP <= 0 { ghost_win_sentence ERASEVAR('last_ghost_attack') return } if ghost_HP <= 0 { user_win_sentence ERASEVAR('last_ghost_attack') return } if _argv[0] { "\t\1%usernameのHP:%(user_HP)/100\n%selfnameのHP:%(ghost_HP)/100\x\c%(Choice_ghost_turn)" } else { "\t\1%usernameのHP:%(user_HP)/100\n%selfnameのHP:%(ghost_HP)/100\x\c%(Choice_user_turn)" } } // // ↓文にあまり詳しくない人はこれ以降のデータだけを書き換えるといいかも。 // //////////////////////////////////////////////////////////////////////////////// // ダメージ数値定義 //////////////////////////////////////////////////////////////////////////////// //_argv[0] = 1で弱 2で中 3で強 //_argv[1] = 0でユーザー 1でゴースト damage_value { ///////ゴースト側/////// if _argv[1] { case _argv[0] { when 1 { // 弱ダメージ(1〜14) RAND(13) + 1 } when 2 { // 中ダメージ(11〜22) RAND(11)+11 } when 3 { // 強ダメージ(21〜30) RAND(10)+21 } } } ///////ユーザー側/////// else { case _argv[0] { when 1 { // 弱ダメージ(1〜14) RAND(13) + 1 } when 2 { // 中ダメージ(11〜22) RAND(11)+11 } when 3 { // 強ダメージ(21〜30) RAND(10)+21 } } } } //////////////////////////////////////////////////////////////////////////////// // 攻撃成功率の定義 //////////////////////////////////////////////////////////////////////////////// //_argv[0] = 1で弱 2で中 3で強 //_argv[1] = 0でユーザー 1でゴースト attack_rate { ///////ゴースト側/////// if _argv[1] { case _argv[0] { when 1 { // 弱% 90 } when 2 { // 中% 60 } when 3 { // 強% 30 } } } ///////ユーザー側/////// else { case _argv[0] { when 1 { // 弱% 90 } when 2 { // 中% 60 } when 3 { // 強% 30 } } } } //////////////////////////////////////////////////////////////////////////////// // 台詞(全般) //////////////////////////////////////////////////////////////////////////////// // バトル開始 battle_start_sentence { "\1バトルスタート!\w8\0さあいくよ!" } // ユーザー勝利 user_win_sentence { "\1あなたの勝ちです。\w8\0くやし〜!\e" } // ゴースト勝利 ghost_win_sentence { "\1%selfnameの勝ちです。\w8\0やったー!\e" } // ユーザーのターン開始(攻撃コマンド選択時) user_sentence { "\0さあ来いっ!" } // ゴーストのターン開始 ghost_sentence { "\0今度はこっちの番だよ!" } //////////////////////////////////////////////////////////////////////////////// // 台詞(ユーザーの行動) //////////////////////////////////////////////////////////////////////////////// // ユーザー攻撃 user_attack_sentence { case _argv[0] { when 1 { //弱攻撃 "\1%usernameの弱攻撃。\w8\0むむっ、やったわね!" } when 2 { //中攻撃 "\1%usernameの中攻撃。\w8\0痛っ!" } when 3 { //強攻撃 "\1%usernameの強攻撃。\w8\0きゃぁぁぁぁ!" } } } // ユーザーカウンター攻撃 user_counter_sentence { case _argv[0] { when 1 { //弱カウンター攻撃 "\1%usernameの弱カウンター攻撃。\w8\0むむっ、やったわね!" } when 2 { //中カウンター攻撃 "\1%usernameの中カウンター攻撃。\w8\0痛っ!" } when 3 { //強カウンター攻撃 "\1%usernameの強カウンター攻撃。\w8\0きゃぁぁぁぁ!" } } } // ユーザーカウンター失敗 user_misscounter_sentence { "\1%usernameはカウンターに失敗。\w8\0隙だらけだよ!" } // ユーザー防御 user_defense_sentence { "\1%usernameは%selfnameの攻撃をかわした。\w8\0ああっ、惜しい!" } // ユーザー防御失敗 user_missdefense_sentence { "\1%usernameは防御に失敗した。\w8\0そんなガード、無駄だよ!" } // ユーザーが攻撃に反応 user_reaction_sentence { "\1しかし%usernameは%selfnameの攻撃に反応していた。\w8\0!?" } //////////////////////////////////////////////////////////////////////////////// // 台詞(ゴーストの行動) //////////////////////////////////////////////////////////////////////////////// // ゴースト攻撃 ghost_attack_sentence { case _argv[0] { when 1 { //弱攻撃 "\1%selfnameの弱攻撃。\w8\0それ、パンチ、パンチ、キック!" } when 2 { //中攻撃 "\1%selfnameの中攻撃。\w8\0波動拳!" } when 3 { //強攻撃 "\1%selfnameの強攻撃。\w8\0しんくぅ〜、波動拳!" } } } // ゴーストカウンター攻撃 ghost_counter_sentence { case _argv[0] { when 1 { //弱カウンター攻撃 "\1%selfnameの弱カウンター攻撃。\w8\0それ、パンチ、パンチ、キック!" } when 2 { //中カウンター攻撃 "\1%selfnameの中カウンター攻撃。\w8\0波動拳!" } when 3 { //強カウンター攻撃 "\1%selfnameの強カウンター攻撃。\w8\0しんくぅ〜、波動拳!" } } } // ゴーストカウンター失敗 ghost_misscounter_sentence { "\1%selfnameはカウンターに失敗。\w8\0しまった!" } // ゴースト防御 ghost_defense_sentence { "\1%selfnameは%usernameの攻撃をかわした。\w8\0そんなの当たらないよ!" } // ゴースト防御失敗 ghost_missdefense_sentence { "\1%selfnameは防御に失敗。\w8\0避けたと思ったのに〜!" } // ゴーストが攻撃に反応 ghost_reaction_sentence { "\1しかし%selfnameは%usernameの攻撃に反応していた。\w8\0見切った!" } //////////////////////////////////////////////////////////////////////////////// // えんいー ////////////////////////////////////////////////////////////////////////////////