Project1

标题: 事件左侧的移动路线里面是否能执行独立开关 [打印本页]

作者: 黑舞嗜    时间: 2014-9-25 10:43
标题: 事件左侧的移动路线里面是否能执行独立开关
事件左侧移动方式改为自定义后在里面用脚本选项执行打开独立开关的命令是否可行?可行的话求一下打开独立开关的脚本语句
作者: 三途亚梦    时间: 2014-9-25 11:52
移动路线中是可以操作开关的(理论上应该所有脚本操作都是可以的吧

句子是这样的
  1. $game_self_switches[[1, 1,"A"]] = true
复制代码
意思是打开 地图1的1号事件的独立开关A
作者: tseyik    时间: 2014-9-25 11:57
本帖最后由 tseyik 于 2014-9-25 12:08 编辑

移動ルートの条件分岐応用
http://woodpenguin.web.fc2.com/rgss3/route_branch.html

    条件分岐可使用 if 。
    unless /elsif 不能使用使用。
    条件是使用 eval 判定、所以and / or 可以使用。
      如屏幕截圖所示,可以用條件做條件分支。
    ,你可以用開關S/變量v的條件。
    セルフ変数(脚本)対応。(http://woodpenguin.web.fc2.com/rgss3/self_variable.html
    同時使用這二個脚本時,請把移動ルートの条件分岐脚本放在セルフ変数(脚本)下
詳細応用方法請參考
http://woodpenguin.web.fc2.com/rgss3/route_branch.html
的説明

RUBY 代码复制
  1. =begin
  2.  
  3.  ▼ 移動ルートの条件分岐 ver. 1.0
  4.  
  5.  RPGツクールVXAce用スクリプト
  6.  
  7.  制作 : 木星ペンギン
  8.  URL  : [url]http://woodpenguin.blog.fc2.com/[/url]
  9.  
  10. ------------------------------------------------------------------------------
  11.  概要
  12.  
  13.  □ 移動ルートの設定で条件分岐が使用できるようになります。
  14.  
  15. ------------------------------------------------------------------------------
  16.  使い方
  17.  
  18.  ・ 移動ルート設定のスクリプトで、以下の文字列を入力すると条件分岐を行えます。
  19.  
  20.    if 条件              => 条件が真の場合の処理
  21.    else                 => 上記での条件に当てはまらない場合の処理
  22.    end                  => 条件分岐の終了
  23.  
  24.  ・ unless や elsif のような機能はありません。
  25.  
  26.  ・ 基本的にRubyの条件分岐と同じです。
  27.  
  28.  ・ 条件分岐中に別の条件分岐を入れることは可能です。
  29.  
  30.  ・ 条件では s でスイッチ、v で変数を参照できます。
  31.  
  32.  ・ セルフ変数も使用できます。
  33.     併用する場合はこちらのスクリプトを下にしてください。
  34.  
  35. =end
  36.  
  37. module WdTk
  38. module RouteBranch
  39. #//////////////////////////////////////////////////////////////////////////////
  40. #
  41. # 設定項目
  42. #
  43. #//////////////////////////////////////////////////////////////////////////////
  44.  
  45.   #--------------------------------------------------------------------------
  46.   # ● 移動ルートの処理改善
  47.   #     1 フレームに一行しか処理されない移動ルートの処理を
  48.   #     1 フレーム内に可能な限り処理を行うように変更します。
  49.   #--------------------------------------------------------------------------
  50.   RouteEX = true
  51.  
  52.  
  53. #//////////////////////////////////////////////////////////////////////////////
  54. #
  55. # 以降、変更する必要なし
  56. #
  57. #//////////////////////////////////////////////////////////////////////////////
  58.  
  59. end
  60.  
  61.   @material ||= []
  62.   @material << :RouteBranch
  63.   def self.include?(sym)
  64.     @material.include?(sym)
  65.   end
  66.  
  67. end
  68.  
  69. #==============================================================================
  70. # ■ Game_Character
  71. #==============================================================================
  72. class Game_Character
  73. if WdTk::RouteBranch::RouteEX
  74.   #--------------------------------------------------------------------------
  75.   # ◯ ルートに沿った移動の更新
  76.   #--------------------------------------------------------------------------
  77.   alias _wooden_ex_update_routine_move update_routine_move
  78.   def update_routine_move
  79.     if @wait_count > 0
  80.       @wait_count -= 1
  81.     else
  82.       _wooden_ex_update_routine_move
  83.       if @move_route_forcing && @move_succeed && stopping? &&
  84.         @wait_count == 0 && @move_route_index >= 0
  85.         update_routine_move
  86.       end
  87.     end
  88.   end
  89. end # if WdTk::RouteBranch::RouteEX
  90.   #--------------------------------------------------------------------------
  91.   # ◯ 移動コマンドの処理
  92.   #--------------------------------------------------------------------------
  93.   alias _wdtk_routeb_process_move_command process_move_command
  94.   def process_move_command(command)
  95.     if command.code == ROUTE_SCRIPT
  96.       case command.parameters[0]
  97.       when /if\s+(.+)/
  98.         command_skip(/else|end/) unless route_eval($1)
  99.         return
  100.       when "else"
  101.         command_skip("end")
  102.         return
  103.       when "end"
  104.         return
  105.       end
  106.     end
  107.     _wdtk_routeb_process_move_command(command)
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 移動ルート用
  111.   #--------------------------------------------------------------------------
  112.   def route_eval(formula)
  113.     s, v = $game_switches, $game_variables
  114.     begin
  115.       eval(formula)
  116.     rescue
  117.       msgbox "以下の条件判定でエラーが出ました。\n\n", formula
  118.       true
  119.     end
  120.   end
  121.   #--------------------------------------------------------------------------
  122.   # ● コマンドスキップ
  123.   #--------------------------------------------------------------------------
  124.   def command_skip(text)
  125.     @move_route_index += 1
  126.     loop do
  127.       command = @move_route.list[@move_route_index]
  128.       case command.code
  129.       when ROUTE_END
  130.         @move_route_index -= 1
  131.         return
  132.       when ROUTE_SCRIPT
  133.         case command.parameters[0]
  134.         when /^if\s/
  135.           command_skip("end")
  136.         when text
  137.           return
  138.         end
  139.       end
  140.       @move_route_index += 1
  141.     end
  142.   end
  143. end
  144.  
  145. #==============================================================================
  146. # ■ Game_Event
  147. #==============================================================================
  148. if WdTk.include?(:SelfVar)
  149. class Game_Event
  150.   #--------------------------------------------------------------------------
  151.   # ● ルートに沿った移動の更新
  152.   #--------------------------------------------------------------------------
  153.   def update_routine_move
  154.     $game_variables.set_key(@map_id, @id)
  155.     super
  156.     $game_map.interpreter.initiative_selfvar
  157.   end
  158. end
  159. end # if WdTk.include?(:SelfVar)

作者: 黑舞嗜    时间: 2014-9-25 15:59
来个版主把这贴关了吧,这帖不需要了

@taroxd  @VIPArcher





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1