设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3493|回复: 2
打印 上一主题 下一主题

[已经过期] 怎么编写移动路线的高级脚本

[复制链接]

Lv2.观梦者

梦石
0
星屑
266
在线时间
122 小时
注册时间
2010-12-23
帖子
179
跳转到指定楼层
1
发表于 2014-10-9 17:36:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
例如下面的图片那样的基础效果

但是我希望可以泛用

EV0003变为变量1来控制
EV0004变成变量2控制

DOC[@B@18UB9O))%[email protected] (120.84 KB, 下载次数: 43)

DOC[@B@18UB9O))%V1DG@BF.jpg
- -作图太麻烦了,又是PS又是素材的
还不如玩游戏实际- -嗯嗯,娱乐就好!!

=====================
神马都简单,但是需要时间&精力,虽然我时间很多,但是专注一样东西的精力- -
====================

Lv5.捕梦者

梦石
0
星屑
22973
在线时间
8639 小时
注册时间
2011-12-31
帖子
3367
2
发表于 2014-10-9 17:54:54 | 只看该作者
本帖最后由 tseyik 于 2014-10-9 18:01 编辑

移動ルートの条件分岐
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)

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
266
在线时间
122 小时
注册时间
2010-12-23
帖子
179
3
 楼主| 发表于 2014-10-9 18:47:26 | 只看该作者
本帖最后由 双叶GL 于 2014-10-9 18:53 编辑
tseyik 发表于 2014-10-9 17:54
移動ルートの条件分岐
http://woodpenguin.web.fc2.com/rgss3/route_branch.html
支持自變量(セルフ変数)。 ...


= =啊!!虽然这个可以用变量控制移动路线,但是我想知道的是,

变量怎么控制移动单位


例如我想做一个事件战斗


角色3攻击 敌人后退
这只是一个人

但是角色3攻击的敌人是3号怎么办?想要简化下过程

虽然可以直接用条件代替啦
- -作图太麻烦了,又是PS又是素材的
还不如玩游戏实际- -嗯嗯,娱乐就好!!

=====================
神马都简单,但是需要时间&精力,虽然我时间很多,但是专注一样东西的精力- -
====================
回复 支持 0 反对 1

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-26 10:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表