Appendix

広告

Entries

コメントお返事

> T さん
イベント処理改善スクリプトについて。
確認してみたところ、そのあたりの説明がまったく書いてありませんでしたね・・・

「ページ更新禁止」は各ページに入れる必要があります。
コモンイベント呼び出しを使用した場合は、コモンイベントにも入れる必要があります。
本スクリプトに入っている「別ページの実行内容を呼び出す」機能を使った場合も、入れる必要があります。

つまりは実行内容の一番上から開始する時点で、「ページ更新禁止」フラグは立っていない状態です。

インタプリタごとにフラグを管理してるので、こんな仕様になっちゃってます。
また何かいい方法が浮かんだら調整してみようと思います。

コメントお返事

> T さん
こんにちは、いらっしゃいませ~。
ちょっといろいろと試してみたのですが、VXに対応させるのは結構修正が要ります。

1. イベント処理改善スクリプト(以下本スクリプト)の94行目~163行目までを削除。

2. 上記で削除した場所に、以下のスクリプトを入れてください。

  #--------------------------------------------------------------------------
  # ◯ イベントコマンドの実行
  #--------------------------------------------------------------------------
  alias _wooden_event_execute_command execute_command
  def execute_command
    if @index >= @list.size-1
      command_end
      return true
    else
      @params = @list[@index].parameters
      @indent = @list[@index].indent
      case @list[@index].code
      when 108 # 注釈
        return command_108
      else
        return _wooden_event_execute_command
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 注釈
  #--------------------------------------------------------------------------
  def command_108
    comments = [@params[0]]
    while @list[@index + 1].code == 408
      @index += 1
      comments.push(@list[@index].parameters[0])
    end
    comments.each do |comment|
      if comment == WdTk::EvEX::DISABLE_TEXT
        @map_refresh_disabled = true
      elsif comment == WdTk::EvEX::ENABLE_TEXT
        @map_refresh_disabled = false
      end
    end
    return true
  end
  #--------------------------------------------------------------------------
  # ◯ スイッチの操作
  #--------------------------------------------------------------------------
  alias _wooden_event_command_121 command_121
  def command_121
    last_need_refresh = $game_map.need_refresh if @map_refresh_disabled
    _wooden_event_command_121
    $game_map.need_refresh = last_need_refresh if @map_refresh_disabled
    return true
  end
  #--------------------------------------------------------------------------
  # ◯ 変数の操作
  #--------------------------------------------------------------------------
  alias _wooden_event_command_122 command_122
  def command_122
    last_need_refresh = $game_map.need_refresh if @map_refresh_disabled
    _wooden_event_command_122
    $game_map.need_refresh = last_need_refresh if @map_refresh_disabled
    return true
  end
  #--------------------------------------------------------------------------
  # ● ページ呼び出し
  #--------------------------------------------------------------------------
  def call_page(index)
    # 別のページをコモンイベントのように呼び出す
    event = get_character(0)
    page = event ? event.get_page(index - 1) : nil
    if page
      @child_interpreter = Game_Interpreter.new(@depth + 1)
      @child_interpreter.setup(page.list, @event_id)
    end
    return true
  end


軽く動作確認しただけなので、もしかしたらうまく動かないかもしれません。
たぶん大丈夫だとは思いますが・・・

VXのスクリプトは忘れてる箇所が多いので、申し訳ないですがこれ以上の対応は難しいです。

スクリプトの更新

下記のスクリプトを更新しました。

選択肢拡張
レスポンス向上

不具合報告ありがとうございます。
たぶん修正できたと思います。

選択肢拡張の方はついでに余計な機能付けてみました。
また何か不具合が起こりそうなめんどくさいスクリプト組んだので少し不安です。

「移動ルートの設定」の簡略化

久しぶりの小ネタです。

イベントなどを作るとき、キャラを移動させるのに「移動ルートの設定」が使われます。

で、その移動ルートを設定しているとき、こんな風になったことは無いでしょうか?
140118a.jpg

移動させる距離が長いと、その分同じ移動コマンドが何度も続いてしまいます。

歩数を数えなければならないし、そのうちキャラの位置関係とかわからなくなってしまいます。


でも実はこれ、スクリプトを使えば簡略化できちゃいます。


例えば、X座標 12 まで移動したい場合

140118c.jpg
と、移動ルートのスクリプトで @x12 を入れれば、
座標軸で移動先を設定することが出来ちゃいます。

そうではなく、左に5歩進みたいって場合は、@x -= 5 と入力すればOK。

140118b.jpg
こんな感じで簡略化可能です。


ただし、気をつける点がいくつかあります。


まずは、これを使うとキャラが移動方向に向きを変えません。
向きを変えてから移動させる必要があります。

それから、衝突判定も行われません。
指定した座標に全てすり抜けて移動します。

あとついでに、マップのループ移動にも対応していません。

まあ、どれも大したものではないです。
思ったとおりに動けばいいんですよ!


ちなみに、これを使って移動先の座標を画面の外に設定すると、
なんと通常では移動させられない画面外に、イベントを移動させることが可能です。

これもちょっと使えるテクニックです。
ぜひ試してみてね!



以下、コメントお返事。

スクリプトの更新

下記のスクリプトを更新しました。

簡易マップ標示

簡易マップを標示していないマップで、メニュー開いたりするとエラーが発生する不具合を修正しました。

報告頂いた不具合です。たぶん、これで治ったと思います。
ありがとうございました。

簡易マップ標示

明けまして一週間が経ちました、おめでとうございます。
特別書くことも無いので、あとはいつも通り。



【簡易マップ標示】

連休使って作ってみました、マップ標示スクリプト。
ゼロからスクリプト書いたので、改変とかではないです。

とにかく持てる技術はすべてつぎ込んだ
――ら、案の定設定項目が多くなってしまいました。

使い方がわからなかったり、おかしな部分があるようでしたら
コメントいただければお答えします。


どんな感じのスクリプトかというと・・・
140108a.jpg
もちろん、乗り物擬似3D化に対応していますし、

140108b.jpg
さらに向きにあわせてマップ画像が回転するようなのも作ってみたり、

140108c.jpg
マップ画像を指定して使うことも出来ます。

新年一発目のスクリプト素材としては、満足いくものが出来たかなーっと思います。

Appendix

プロフィール

木星ペンギン

Author:木星ペンギン
ほぼツクールのことばかり書いてます。
名前は↑から取りました。
木製ですが木星です。
トカゲは関係ありません。

ゲーム

  • 箱庭の勇者たち(体験版)
  • アクイ ト アイ
  • ぼくらの大革命!
  • 勇者がやらねば俺がやる!
  • 3Turn Battle!
  • 3TurnBattle!2nd 体験版

メールフォーム

wood_penguin@yahoo.co.jp

名前:
メール:
件名:
本文: