忍者ブログ
RPG製作情報など
[2]  [3]  [4]  [5]  [6]  [7]  [8]  [9
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

『ぬすむ』・・・最近のRPGには必須とも言える技だ!

そこで、hideも『ぬすむ』スクリプトを作ってみた。
他所でも、使い古されたスクリプトなので、いまさら感は拭えないが...
hide流のアプローチで記述してみようと思う。(パクリとか言われるから?)

それともうひとつ、『へんか』って技も組み込んでみた。
『へんか』って技は、HP10%以下のモンスターを、
アイテムに変化させて倒す、って技(市販RPGには既に有るが...)

盗むアイテムを設定する場所って、エネミー名の後ろに記述するやり方もアリだけど、
module ってので、データベースを作る方が、たくさん設定を詰め込めるから。

スクリプト1 の中↓

module Enemy_Ex
  #--------------------------------------------------------------------------
  # Ex[エネミーID] = {1=>[盗むアイテム/盗むレア/変化アイテム]}
  # "i(ID)" :アイテム  "w(ID)" :武器 "a(ID)" :防具 "g(金額)" :お金  "" :無しの場合 
  #--------------------------------------------------------------------------
  Ex = []
  Ex[0] = {1=>["","",""]} # エネミーID未設定の場合
 
  Ex[1] = {1=>["","g1000","a1"]} # ゴースト
  Ex[2] = {1=>["i1","w1",""]} # バジリスク

エネミーID3の、サハギンなら、Ex[3] = {1=>["i1","w1",""]}  ってのを、
Ex[2] = {1=>["i1","w1",""]} # バジリスク の真下に挿入していくって感じ♪

まとめ...
スキルの準備・・・名前:ぬすむ、へんか 効果範囲:敵単体

①『ぬすむ』・・・エネミー単体から、アイテムを盗む(ノーマル&レア)の2種類設定。

②『ぬすむ』・・・盗み確率は、器用さに依存、レアになる確率は10分の1に固定。
※装備品(装飾品)で盗む確率&レア率UP!
スクリプト2 の# ■装備品による補正 ってところで、アイテムの名前を指定する。

      # 盗み確率UP!
      if $data_armors[actor.armor4_id].name == "盗み確率UP" ←ココの名前(盗み確率UP)

④『へんか』・・・HP10%以下のエネミーをアイテム化(即死)
※装備品(装飾品)で残りHPが25%以下でも『へんか』が有効に!

⑤『へんか』・・・『へんか』したエネミーからは、お金、EXP、落とすアイテムは無し。

⑥共通・・・○○を盗んだ! っていうメッセージに、そのアイテムのアイコンを描画。
----------------------------------

例の如く、簡易版(バグ有り?版)を公開!って言うか、
自作RPGには、こんな機能があるよっていう紹介でした♪

今回は、長~いスクリプト!
興味のある方は、『スクリプト1』、『スクリプト2』、『スクリプト3』を
Main の真上に上から、1,2,3の順番で、挿入してね。
PR
ツクールXPで、バトル中に『仲間を呼ぶモンスター』を作るなら、一般的に、
①データベースのトループ→②イベントコマンド→③エネミーの出現 っていう流れだろう。
他には、スキルにコモンイベントを設定する ってパターンかな?

別にこれでも良いのだが、けっきょく、最大8体までしかエネミーを出現させられないので、
たくさん仲間を呼ぶ奴、を表現できないよね。
ドラ○エのマドバンドみたいな奴(ゴーレムは呼べないけど)

そこで、スクリプトを作ってみた! 
今回は、alias とか使って、RGSS素材? っぽくしてみた♪

内容はズバリ!
①・・・エネミー専用のスキルを作り、バトルで使わせる(普通...)
スキル名を、 仲間を呼ぶ
効果範囲を、自分自身 に設定

②・・・途中から出現 にチェックの入ったエネミーを出現させる(普通...)

③・・・『戦闘不能』のエネミーも呼ぶ(蘇生の処理を、仲間を呼ぶっぽくする)

④・・・③で呼び出されたエネミーの、お金、EXP,落とすアイテムを獲得する

⑤・・・呼び出せるエネミーは、トループで設定したエネミーのみ
(途中から出現エネミー&通常エネミー)

⑥・・・ランダムに⑤からエネミーを決定、失敗もスクリプトに依存(スキルの命中率ではない)

⑦・・・『逃げる』と『仲間を呼ぶ』の両方を使うエネミーは、想定外

⑧・・・簡易版なので、バグるかも(使用は自己責任♪)

つまり、死んだ奴(戦闘不能)を、生き返らせて、
そいつの経験値も格納して、バトル勝利後に獲得するってこと。

一応、無限に呼び出しが可能(8体以上画面に現れることはできないが...)
↓の部分を全て、コメントアウトすると、無限呼び出しが可能!(初期設定では24体まで)

        # 無限に仲間を呼ぶことを禁止(最大数24)
        if $call_enemies.size >= 24
          # 変数の初期化
          user.enemy_call = [false,nil]
          # 元の処理を呼び出し
          hidesp_skill_effect(user, skill)
          return
        end

興味のある方は、『仲間を呼ぶ』スクリプトをコピーして、新規で作ったスクリプトに貼り付けて、
Main の真上に置いてみてね。
-----------------------------------------------------
自作RPGでは、呼び出すエネミーの種類とか、
個別にエネミーを設定できるバージョンを使用。
根本を改造しているのと、設定が面倒なので、公開は無理...
デフォルトの設定では、バトル中にアクター達が、「逃げる」を選択すると、
成功、失敗にかかわらず、何事もなかったように過ぎ去る。
せめて、「逃げる」を失敗したときくらいは、何か表示して欲しいものだ。
「逃走失敗」 とか...

バトル中に文章を表示させるには、@help_window.set_text を使うわけだが、
「逃走失敗」の場合は簡単で、Scene_Battle 2 の 124行目の真下に、
↓スクリプトを挿入するだけ。

      # □ヘルプウィンドウに描画
      @help_window.set_text("逃走失敗", 1)
      @wait_count = 20

「逃走成功」の場合は、面倒なのだ。
116行目に、”逃走失敗”を”逃走成功”に書き換えたものを、
挿入するだけでは、ダメだから...

なぜなら、@wait_count が機能しないからだ!
@wait_count ってのは、待ち時間のことで、これを設定しないと、
ウィンドウが一瞬で閉じちゃうから。

とりあえず、「逃走成功」の表示は、書くと長くなるので割愛! ←また?

興味のある方は、『逃走メッセージ表示』スクリプトをコピーして、
Scene_Battle 2 の真下に置いてみてね。
スリップダメージってのは、”毒”に代表される、徐々にダメージという奴だ。
このスリップダメージを表示するタイミングって、おかしくない?

まず、①毒ステートになる→②次のターンになる→③本人が行動する、

スリップダメージの効果が現れる。
これだと、毒ステートのキャラが行動する前に、エネミーを全滅させたり、
毒ステートを治療したりすると、スリップダメージを受けなくなってしまう。

例の如く、気に入らない。

気に入らないⅠ...個別にエフェクト(アニメとか、ダメージ表示、HP減)がおこる

気に入らないⅡ...効果の現れるタイミング

スリップダメージのエフェクトは、 Scene_Battle 4 の129~133行目に記述してあるので、
全て#を頭に付けてコメントアウト!

    # スリップダメージ
#    if @active_battler.hp > 0 and @active_battler.slip_damage?
#      @active_battler.slip_damage_effect
#      @active_battler.damage_pop = true
#    end

次に、↓のスクリプトをScene_Battle 4 の def start_phase4 37行目の
# エネミーアクション作成 の真上くらいに挿入。

    # ■[スリップダメージ]の実行(アクター+エネミー)
    for x in $game_troop.enemies + $game_party.actors
      if x.hp > 0 && x.slip_damage?
        x.slip_damage_effect
        x.damage_pop = true
      end
    end
    @status_window.refresh

これで、全アクターと全エネミーに対して、同時にスリップダメージのエフェクトを表示できるし、
効果の現れるタイミングは、ターンの最後(戦う、逃げるコマンドが出る前)にできるのだ。

ただ、def start_phase4 に挿入の場合、アクターの行動を決めた後にダメージなので、
行動前にHPが0で死んじゃうという、リスクがある。(バトル難易度UP!)

Scene_Battle 2 で def start_phase2 の真下に挿入ってのも有りで、
こちらは、アクターが毒ステートのままバトルに突入すると、いきなりダメージを受けるのだが、
アクターが行動を決める前なので、回復や治療などを効率良く行う事ができるかな?
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新コメント
[08/04 Faust]
[05/26 takku]
[11/12 ぱんだ]
[06/28 AntwerpBlue]
[06/28 AntwerpBlue]
[02/07 ジャリン]
[02/07 ジャリン]
[02/05 白豆]
[11/28 I・S]
[11/26 I・S]
プロフィール
管理人
hide
ホームページ
ブログ内検索
カウンター
忍者アナライズ
忍者ブログ [PR]