查看: 2397|回复: 3

[已经解决] 事件左侧的移动路线里面是否能执行独立开关

[复制链接]
梦石
0
星屑
1428
在线时间
1705 小时
注册时间
2011-8-17
回帖
651
发表于 2014-9-25 10:43:48 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
事件左侧移动方式改为自定义后在里面用脚本选项执行打开独立开关的命令是否可行?可行的话求一下打开独立开关的脚本语句
roguelike求生RPG研发中....

闇吼者の災悪眷族

梦石
0
星屑
1366
在线时间
2881 小时
注册时间
2014-7-29
回帖
6408
发表于 2014-9-25 11:52:50 | 显示全部楼层
移动路线中是可以操作开关的(理论上应该所有脚本操作都是可以的吧

句子是这样的
  1. $game_self_switches[[1, 1,"A"]] = true
复制代码
意思是打开 地图1的1号事件的独立开关A

点评

另外独立开关和普通的开关本来差别就不大,唯一区别就是本事件用的而已……  发表于 2014-9-25 14:55
事件操作的独立开关就等于完成上面那个脚本,只是它能够自己识别是本事件吧  发表于 2014-9-25 14:42
额。。。好吧。。。  发表于 2014-9-25 14:31
脚本可没有那么方的方法,你的关键独立变量做,用变量来控制哪个地图的哪个事件  发表于 2014-9-25 14:06
这种不行啊。。事件太多了。。这种和打开开关的效果差别不大,要打开当前事件的独立开关才有用。。  发表于 2014-9-25 14:04

评分

参与人数 1星屑 +132 收起 理由
taroxd + 132 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2014-9-25 11:57:14 | 显示全部楼层
本帖最后由 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
的説明
00-00 (1) (1) (1).jpg
[pre lang="ruby" line="1"]=begin

▼ 移動ルートの条件分岐 ver. 1.0

RPGツクールVXAce用スクリプト

制作 : 木星ペンギン
URL  : http://woodpenguin.blog.fc2.com/

------------------------------------------------------------------------------
概要

□ 移動ルートの設定で条件分岐が使用できるようになります。

------------------------------------------------------------------------------
使い方

・ 移動ルート設定のスクリプトで、以下の文字列を入力すると条件分岐を行えます。
  
   if 条件              => 条件が真の場合の処理
   else                 => 上記での条件に当てはまらない場合の処理
   end                  => 条件分岐の終了

・ unless や elsif のような機能はありません。

・ 基本的にRubyの条件分岐と同じです。

・ 条件分岐中に別の条件分岐を入れることは可能です。

・ 条件では s でスイッチ、v で変数を参照できます。

・ セルフ変数も使用できます。
    併用する場合はこちらのスクリプトを下にしてください。

=end

module WdTk
module RouteBranch
#//////////////////////////////////////////////////////////////////////////////
#
# 設定項目
#
#//////////////////////////////////////////////////////////////////////////////
  
  #--------------------------------------------------------------------------
  # ● 移動ルートの処理改善
  #     1 フレームに一行しか処理されない移動ルートの処理を
  #     1 フレーム内に可能な限り処理を行うように変更します。
  #--------------------------------------------------------------------------
  RouteEX = true
  

#//////////////////////////////////////////////////////////////////////////////
#
# 以降、変更する必要なし
#
#//////////////////////////////////////////////////////////////////////////////

end

  @material ||= []
  @material << :RouteBranch
  def self.include?(sym)
    @material.include?(sym)
  end
  
end

#==============================================================================
# ■ Game_Character
#==============================================================================
class Game_Character
if WdTk::RouteBranch::RouteEX
  #--------------------------------------------------------------------------
  # ◯ ルートに沿った移動の更新
  #--------------------------------------------------------------------------
  alias _wooden_ex_update_routine_move update_routine_move
  def update_routine_move
    if @wait_count > 0
      @wait_count -= 1
    else
      _wooden_ex_update_routine_move
      if @move_route_forcing && @move_succeed && stopping? &&
        @wait_count == 0 && @move_route_index >= 0
        update_routine_move
      end
    end
  end
end # if WdTk::RouteBranch::RouteEX
  #--------------------------------------------------------------------------
  # ◯ 移動コマンドの処理
  #--------------------------------------------------------------------------
  alias _wdtk_routeb_process_move_command process_move_command
  def process_move_command(command)
    if command.code == ROUTE_SCRIPT
      case command.parameters[0]
      when /if\s+(.+)/
        command_skip(/else|end/) unless route_eval($1)
        return
      when "else"
        command_skip("end")
        return
      when "end"
        return
      end
    end
    _wdtk_routeb_process_move_command(command)
  end
  #--------------------------------------------------------------------------
  # ● 移動ルート用
  #--------------------------------------------------------------------------
  def route_eval(formula)
    s, v = $game_switches, $game_variables
    begin
      eval(formula)
    rescue
      msgbox "以下の条件判定でエラーが出ました。\n\n", formula
      true
    end
  end
  #--------------------------------------------------------------------------
  # ● コマンドスキップ
  #--------------------------------------------------------------------------
  def command_skip(text)
    @move_route_index += 1
    loop do
      command = @move_route.list[@move_route_index]
      case command.code
      when ROUTE_END
        @move_route_index -= 1
        return
      when ROUTE_SCRIPT
        case command.parameters[0]
        when /^if\s/
          command_skip("end")
        when text
          return
        end
      end
      @move_route_index += 1
    end
  end
end

#==============================================================================
# ■ Game_Event
#==============================================================================
if WdTk.include?(:SelfVar)
class Game_Event
  #--------------------------------------------------------------------------
  # ● ルートに沿った移動の更新
  #--------------------------------------------------------------------------
  def update_routine_move
    $game_variables.set_key(@map_id, @id)
    super
    $game_map.interpreter.initiative_selfvar
  end
end
end # if WdTk.include?(:SelfVar)
[/pre]

点评

我可能誤會了  发表于 2014-9-25 12:17
回复

使用道具 举报

梦石
0
星屑
1428
在线时间
1705 小时
注册时间
2011-8-17
回帖
651
 楼主| 发表于 2014-9-25 15:59:27 | 显示全部楼层
来个版主把这贴关了吧,这帖不需要了

@taroxd  @VIPArcher
roguelike求生RPG研发中....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部