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

Project1

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

【XP】求教哪個系統內定的變量可以判斷角色是否在隊伍中

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
跳转到指定楼层
1
发表于 2011-12-10 07:29:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 sai90306 于 2011-12-10 19:00 编辑

想請問在使用角色跟隨腳本的前提下
利用離隊腳本將角色離隊
並且使離隊的腳色留在原地要怎作到呢?

目前想到的方法是建一個新腳本 調用腳色跟隨腳本中的"角色位置變數" ,將這個角色位置的變數存起來,如下
    class Save_Loc < Game_Party_Actor #Save_Loc是我自己新建的類別,Game_Party_Actor是角色跟隨腳本中的類別
      def loc_save(new_x,new_y) #new_x,new_y是角色跟隨腳本中最後得到的腳色位置
        @save_x = new_x
        @save_y = new_y
        super
      end
     end #我是腳本苦手+小白中的小白...不知有沒有打錯...

然後接著判斷角色是否在隊伍中
不在的話讓該角色(或該事件)的位置設定為從角色跟隨腳本取得的位置(save_x,save_y),這樣子...

不過我不知道調用系統內建的哪個數據才能判斷"角色是否在隊伍中"
有沒有哪位大神能幫忙呢? 感謝!!



附上我借用的離隊腳本和角色跟隨系統腳本
  1.     #==============================================================================
  2.     # ■ Scene_Menu
  3.     #------------------------------------------------------------------------------
  4.     #  处理菜单画面的类。
  5.     #==============================================================================

  6.     class Scene_Menu
  7.     #--------------------------------------------------------------------------
  8.     # ● 初始化对像
  9.     #     menu_index : 命令光标的初期位置
  10.     #--------------------------------------------------------------------------
  11.     def initialize(menu_index = 0)
  12.        @menu_index = menu_index
  13.     end
  14.     #--------------------------------------------------------------------------
  15.     # ● 主处理
  16.     #--------------------------------------------------------------------------
  17.     def main
  18.        # 生成命令窗口
  19.        s1 = $data_system.words.item
  20.        s2 = $data_system.words.skill
  21.        s3 = $data_system.words.equip
  22.        s4 = "状态"
  23.        s5 = "存档"
  24.        s6 = "结束游戏"
  25.        s7 = "离队"
  26.        @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
  27.        @command_window.index = @menu_index
  28.        # 同伴人数为 0 的情况下
  29.        if $game_party.actors.size == 0
  30.          # 物品、特技、装备、状态无效化
  31.          @command_window.disable_item(0)
  32.          @command_window.disable_item(1)
  33.          @command_window.disable_item(2)
  34.          @command_window.disable_item(3)
  35.        end
  36.        if $game_switches[1]
  37.          @command_window.disable_item(6)
  38.          end
  39.        # 禁止存档的情况下
  40.        if $game_system.save_disabled
  41.          # 存档无效
  42.          @command_window.disable_item(4)
  43.        end
  44.        # 生成游戏时间窗口
  45.        @playtime_window = Window_PlayTime.new
  46.        @playtime_window.x = 0
  47.        @playtime_window.y = 320
  48.        # 生成步数窗口
  49.        #@steps_window = Window_Steps.new
  50.        #@steps_window.x = 0
  51.        #@steps_window.y = 320
  52.        # 生成金钱窗口
  53.        @gold_window = Window_Gold.new
  54.        @gold_window.x = 0
  55.        @gold_window.y = 416
  56.        # 生成状态窗口
  57.        @status_window = Window_MenuStatus.new
  58.        @status_window.x = 160
  59.        @status_window.y = 0
  60.        # 执行过渡
  61.        Graphics.transition
  62.        # 主循环
  63.        loop do
  64.          # 刷新游戏画面
  65.          Graphics.update
  66.          # 刷新输入信息
  67.          Input.update
  68.          # 刷新画面
  69.          update
  70.          # 如果切换画面就中断循环
  71.          if $scene != self
  72.            break
  73.          end
  74.        end
  75.        # 准备过渡
  76.        Graphics.freeze
  77.        # 释放窗口
  78.        @command_window.dispose
  79.        @playtime_window.dispose
  80.        #@steps_window.dispose
  81.        @gold_window.dispose
  82.        @status_window.dispose
  83.     end
  84.     #--------------------------------------------------------------------------
  85.     # ● 刷新画面
  86.     #--------------------------------------------------------------------------
  87.     def update
  88.        # 刷新窗口
  89.        @command_window.update
  90.        @playtime_window.update
  91.        #@steps_window.update
  92.        @gold_window.update
  93.        @status_window.update
  94.        # 命令窗口被激活的情况下: 调用 update_command
  95.        if @command_window.active
  96.          update_command
  97.          return
  98.        end
  99.        # 状态窗口被激活的情况下: 调用 update_status
  100.        if @status_window.active
  101.          update_status
  102.          return
  103.        end
  104.     end
  105.     #--------------------------------------------------------------------------
  106.     # ● 刷新画面 (命令窗口被激活的情况下)
  107.     #--------------------------------------------------------------------------
  108.     def update_command
  109.        # 按下 B 键的情况下
  110.        if Input.trigger?(Input::B)
  111.          # 演奏取消 SE
  112.          $game_system.se_play($data_system.cancel_se)
  113.          # 切换的地图画面
  114.          $scene = Scene_Map.new
  115.          return
  116.        end
  117.        # 按下 C 键的情况下
  118.        if Input.trigger?(Input::C)
  119.          # 同伴人数为 0、存档、游戏结束以外的场合
  120.          if $game_party.actors.size == 0 and @command_window.index < 4
  121.            # 演奏冻结 SE
  122.            $game_system.se_play($data_system.buzzer_se)
  123.            return
  124.          end
  125.          # 命令窗口的光标位置分支
  126.          case @command_window.index
  127.          when 0  # 物品
  128.            # 演奏确定 SE
  129.            $game_system.se_play($data_system.decision_se)
  130.            # 切换到物品画面
  131.            $scene = Scene_Item.new
  132.          when 1  # 特技
  133.            # 演奏确定 SE
  134.            $game_system.se_play($data_system.decision_se)
  135.            # 激活状态窗口
  136.            @command_window.active = false
  137.            @status_window.active = true
  138.            @status_window.index = 0
  139.          when 2  # 装备
  140.            # 演奏确定 SE
  141.            $game_system.se_play($data_system.decision_se)
  142.            # 激活状态窗口
  143.            @command_window.active = false
  144.            @status_window.active = true
  145.            @status_window.index = 0
  146.          when 3  # 状态
  147.            # 演奏确定 SE
  148.            $game_system.se_play($data_system.decision_se)
  149.            # 激活状态窗口
  150.            @command_window.active = false
  151.            @status_window.active = true
  152.            @status_window.index = 0
  153.          when 4  # 存档
  154.            # 禁止存档的情况下
  155.            if $game_system.save_disabled
  156.              # 演奏冻结 SE
  157.              $game_system.se_play($data_system.buzzer_se)
  158.              return
  159.            end
  160.            # 演奏确定 SE
  161.            $game_system.se_play($data_system.decision_se)
  162.            # 切换到存档画面
  163.            $scene = Scene_Save.new
  164.          when 5  # 游戏结束
  165.            # 演奏确定 SE
  166.            $game_system.se_play($data_system.decision_se)
  167.            # 切换到游戏结束画面
  168.            $scene = Scene_End.new
  169.          when 6
  170.            if $game_switches[1]
  171.              $game_system.se_play($data_system.buzzer_se)
  172.            else
  173.            $game_system.se_play($data_system.decision_se)
  174.            @command_window.active = false
  175.            @status_window.active = true
  176.            @status_window.index = 0
  177.            end
  178.          end
  179.          return
  180.        end
  181.     end
  182.     #--------------------------------------------------------------------------
  183.     # ● 刷新画面 (状态窗口被激活的情况下)
  184.     #--------------------------------------------------------------------------
  185.     def update_status
  186.        # 按下 B 键的情况下
  187.        if Input.trigger?(Input::B)
  188.          # 演奏取消 SE
  189.          $game_system.se_play($data_system.cancel_se)
  190.          # 激活命令窗口
  191.          @command_window.active = true
  192.          @status_window.active = false
  193.          @status_window.index = -1
  194.          return
  195.        end
  196.        # 按下 C 键的情况下
  197.        if Input.trigger?(Input::C)
  198.          # 命令窗口的光标位置分支
  199.          case @command_window.index
  200.          when 1  # 特技
  201.            # 本角色的行动限制在 2 以上的情况下
  202.            if $game_party.actors[@status_window.index].restriction >= 2
  203.              # 演奏冻结 SE
  204.              $game_system.se_play($data_system.buzzer_se)
  205.              return
  206.            end
  207.            # 演奏确定 SE
  208.            $game_system.se_play($data_system.decision_se)
  209.            # 切换到特技画面
  210.            $scene = Scene_Skill.new(@status_window.index)
  211.          when 2  # 装备
  212.            # 演奏确定 SE
  213.            $game_system.se_play($data_system.decision_se)
  214.            # 切换的装备画面
  215.            $scene = Scene_Equip.new(@status_window.index)
  216.          when 3  # 状态
  217.            # 演奏确定 SE
  218.            $game_system.se_play($data_system.decision_se)
  219.            # 切换到状态画面
  220.            $scene = Scene_Status.new(@status_window.index)
  221.          when 6
  222.           if @status_window.index == 0
  223.            $game_system.se_play($data_system.buzzer_se)
  224.          else
  225.            @actor = $game_party.actors[@status_window.index]
  226.            if  @actor.id == 7
  227.              $game_system.se_play($data_system.buzzer_se)
  228.            else
  229.               $game_system.se_play($data_system.decision_se)
  230.            $game_party.actors.delete(@actor)
  231.            $game_player.refresh
  232.            $scene = Scene_Menu.new(6)
  233.            end
  234.            end
  235.          end
  236.          return
  237.        end
  238.     end
  239.     end
复制代码
  1.     # ▼▲▼ XRXS13. Train_Actor ▼▲▼
  2.     # by fukuyama
  3.     #
  4.     # [email protected]
  5.     # http://www4.big.or.jp/~fukuyama/
  6.     #

  7.     # ●透明状態用スイッチ設定
  8.     # true だとスイッチ制御を行う
  9.     # TRAIN_ACTOR_TRANSPARENT_SWITCH = true
  10.     TRAIN_ACTOR_TRANSPARENT_SWITCH = true

  11.     # ●透明状態用スイッチ番号
  12.     # この番号のスイッチがONだと透明になる
  13.     #設定跟隨系統的開關
  14.     TRAIN_ACTOR_TRANSPARENT_SWITCHES_INDEX = 1

  15.     # ●アクターの最大数
  16.     # 将来的に多人数パーティが出来るようになったら…
  17.     TRAIN_ACTOR_SIZE_MAX = 4

  18.     # 定数
  19.     #Input::DOWN = 2 # この辺はちゃんと定数あった…
  20.     #Input::LEFT = 4
  21.     #Input::RIGHT = 6
  22.     #Input::UP = 8
  23.     DOWN_LEFT = 1
  24.     DOWN_RIGHT = 3
  25.     UP_LEFT = 7
  26.     UP_RIGHT = 9
  27.     JUMP = 5

  28.     class Game_Party_Actor < Game_Character
  29.     def initialize
  30.     super()
  31.     @through = true
  32.     end
  33.     def setup(actor)
  34.     # キャラクターのファイル名と色相を設定
  35.     if actor != nil
  36.     @character_name = actor.character_name
  37.     @character_hue = actor.character_hue
  38.     else
  39.     @character_name = ""
  40.     @character_hue = 0
  41.     end
  42.     # 不透明度と合成方法を初期化
  43.     @opacity = 255
  44.     @blend_type = 0
  45.     end
  46.     def screen_z(height = 0)
  47.     if $game_player.x == @x and $game_player.y == @y
  48.     return $game_player.screen_z(height) - 1
  49.     end
  50.     super(height)
  51.     end
  52.     #--------------------------------------------------------------------------
  53.     # ● 下に移動
  54.     # turn_enabled : その場での向き変更を許可するフラグ
  55.     #--------------------------------------------------------------------------
  56.     def move_down(turn_enabled = true)
  57.     # 下を向く
  58.     if turn_enabled
  59.     turn_down
  60.     end
  61.     # 通行可能な場合
  62.     if passable?(@x, @y, Input::DOWN)
  63.     # 下を向く
  64.     turn_down
  65.     # 座標を更新
  66.     @y += 1
  67.     end
  68.     end
  69.     #--------------------------------------------------------------------------
  70.     # ● 左に移動
  71.     # turn_enabled : その場での向き変更を許可するフラグ
  72.     #--------------------------------------------------------------------------
  73.     def move_left(turn_enabled = true)
  74.     # 左を向く
  75.     if turn_enabled
  76.     turn_left
  77.     end
  78.     # 通行可能な場合
  79.     if passable?(@x, @y, Input::LEFT)
  80.     # 左を向く
  81.     turn_left
  82.     # 座標を更新
  83.     @x -= 1
  84.     end
  85.     end
  86.     #--------------------------------------------------------------------------
  87.     # ● 右に移動
  88.     # turn_enabled : その場での向き変更を許可するフラグ
  89.     #--------------------------------------------------------------------------
  90.     def move_right(turn_enabled = true)
  91.     # 右を向く
  92.     if turn_enabled
  93.     turn_right
  94.     end
  95.     # 通行可能な場合
  96.     if passable?(@x, @y, Input::RIGHT)
  97.     # 右を向く
  98.     turn_right
  99.     # 座標を更新
  100.     @x += 1
  101.     end
  102.     end
  103.     #--------------------------------------------------------------------------
  104.     # ● 上に移動
  105.     # turn_enabled : その場での向き変更を許可するフラグ
  106.     #--------------------------------------------------------------------------
  107.     def move_up(turn_enabled = true)
  108.     # 上を向く
  109.     if turn_enabled
  110.     turn_up
  111.     end
  112.     # 通行可能な場合
  113.     if passable?(@x, @y, Input::UP)
  114.     # 上を向く
  115.     turn_up
  116.     # 座標を更新
  117.     @y -= 1
  118.     end
  119.     end
  120.     #--------------------------------------------------------------------------
  121.     # ● 左下に移動
  122.     #--------------------------------------------------------------------------
  123.     def move_lower_left
  124.     # 向き固定でない場合
  125.     unless @direction_fix
  126.     # 右向きだった場合は左を、上向きだった場合は下を向く
  127.     @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction)
  128.     end
  129.     # 下→左、左→下 のどちらかのコースが通行可能な場合
  130.     if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
  131.     (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
  132.     # 座標を更新
  133.     @x -= 1
  134.     @y += 1
  135.     end
  136.     end
  137.     #--------------------------------------------------------------------------
  138.     # ● 右下に移動
  139.     #--------------------------------------------------------------------------
  140.     def move_lower_right
  141.     # 向き固定でない場合
  142.     unless @direction_fix
  143.     # 左向きだった場合は右を、上向きだった場合は下を向く
  144.     @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction)
  145.     end
  146.     # 下→右、右→下 のどちらかのコースが通行可能な場合
  147.     if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
  148.     (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
  149.     # 座標を更新
  150.     @x += 1
  151.     @y += 1
  152.     end
  153.     end
  154.     #--------------------------------------------------------------------------
  155.     # ● 左上に移動
  156.     #--------------------------------------------------------------------------
  157.     def move_upper_left
  158.     # 向き固定でない場合
  159.     unless @direction_fix
  160.     # 右向きだった場合は左を、下向きだった場合は上を向く
  161.     @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction)
  162.     end
  163.     # 上→左、左→上 のどちらかのコースが通行可能な場合
  164.     if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
  165.     (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
  166.     # 座標を更新
  167.     @x -= 1
  168.     @y -= 1
  169.     end
  170.     end
  171.     #--------------------------------------------------------------------------
  172.     # ● 右上に移動
  173.     #--------------------------------------------------------------------------
  174.     def move_upper_right
  175.     # 向き固定でない場合
  176.     unless @direction_fix
  177.     # 左向きだった場合は右を、下向きだった場合は上を向く
  178.     @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction)
  179.     end
  180.     # 上→右、右→上 のどちらかのコースが通行可能な場合
  181.     if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
  182.     (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
  183.     # 座標を更新
  184.     @x += 1
  185.     @y -= 1
  186.     end
  187.     end

  188.     attr_writer :move_speed
  189.     end

  190.     module Train_Actor_Spriteset_Map_Module
  191.     def setup_actor_character_sprites?
  192.     return @setup_actor_character_sprites_flag != nil
  193.     end
  194.     def setup_actor_character_sprites(characters)
  195.     if !setup_actor_character_sprites?
  196.     index_game_player = 0
  197.     @character_sprites.each_index do |i|
  198.     if @character_sprites[i].character.instance_of?(Game_Player)
  199.     index_game_player = i
  200.     break
  201.     end
  202.     end
  203.     for character in characters.reverse
  204.     @character_sprites.unshift(
  205.     Sprite_Character.new(@viewport1, character)
  206.     )
  207.     end
  208.     @setup_actor_character_sprites_flag = true
  209.     end
  210.     end
  211.     end

  212.     module Train_Actor_Scene_Map_Module
  213.     def setup_actor_character_sprites(characters)
  214.     @spriteset.setup_actor_character_sprites(characters)
  215.     end
  216.     end

  217.     module Train_Actor_Game_Party_Module
  218.     def set_transparent_actors(transparent)
  219.     @transparent = transparent
  220.     end
  221.     def setup_actor_character_sprites
  222.     if @characters == nil
  223.     @characters = []
  224.     for i in 1 ... TRAIN_ACTOR_SIZE_MAX
  225.     @characters.push(Game_Party_Actor.new)
  226.     end
  227.     end
  228.     for i in 1 ... TRAIN_ACTOR_SIZE_MAX
  229.     @characters[i - 1].setup(actors[i])
  230.     end
  231.     if $scene.instance_of?(Scene_Map)
  232.     $scene.setup_actor_character_sprites(@characters)
  233.     end
  234.     end
  235.     def update_party_actors
  236.     setup_actor_character_sprites
  237.     transparent = $game_player.transparent
  238.     if transparent == false
  239.     if TRAIN_ACTOR_TRANSPARENT_SWITCH
  240.     transparent = $game_switches[TRAIN_ACTOR_TRANSPARENT_SWITCHES_INDEX]
  241.     end
  242.     end
  243.     for character in @characters
  244.     character.transparent = transparent
  245.     character.move_speed = $game_player.move_speed
  246.     character.update
  247.     end
  248.     end
  249.     def moveto_party_actors( x, y )
  250.     setup_actor_character_sprites
  251.     for character in @characters
  252.     character.moveto( x, y )
  253.     end
  254.     if @move_list == nil
  255.     @move_list = []
  256.     end
  257.     move_list_setup
  258.     end
  259.     def move_party_actors
  260.     if @move_list == nil
  261.     @move_list = []
  262.     move_list_setup
  263.     end
  264.     @move_list.each_index do |i|
  265.     if @characters[i] != nil
  266.     case @move_list[i].type
  267.     when Input::DOWN
  268.     @characters[i].move_down(@move_list[i].args[0])
  269.     when Input::LEFT
  270.     @characters[i].move_left(@move_list[i].args[0])
  271.     when Input::RIGHT
  272.     @characters[i].move_right(@move_list[i].args[0])
  273.     when Input::UP
  274.     @characters[i].move_up(@move_list[i].args[0])
  275.     when DOWN_LEFT
  276.     @characters[i].move_lower_left
  277.     when DOWN_RIGHT
  278.     @characters[i].move_lower_right
  279.     when UP_LEFT
  280.     @characters[i].move_upper_left
  281.     when UP_RIGHT
  282.     @characters[i].move_upper_right
  283.     when JUMP
  284.     @characters[i].jump(@move_list[i].args[0],@move_list[i].args[1])
  285.     end
  286.     end
  287.     end
  288.     end
  289.     class Train_Actor_Move_List_Element
  290.     def initialize(type,args)
  291.     @type = type
  292.     @args = args
  293.     end
  294.     def type() return @type end
  295.     def args() return @args end
  296.     end
  297.     def move_list_setup
  298.     for i in 0 .. TRAIN_ACTOR_SIZE_MAX
  299.     @move_list[i] = nil
  300.     end
  301.     end
  302.     def add_move_list(type,*args)
  303.     @move_list.unshift(Train_Actor_Move_List_Element.new(type,args)).pop
  304.     end
  305.     def move_down_party_actors(turn_enabled = true)
  306.     move_party_actors
  307.     add_move_list(Input::DOWN,turn_enabled)
  308.     end
  309.     def move_left_party_actors(turn_enabled = true)
  310.     move_party_actors
  311.     add_move_list(Input::LEFT,turn_enabled)
  312.     end
  313.     def move_right_party_actors(turn_enabled = true)
  314.     move_party_actors
  315.     add_move_list(Input::RIGHT,turn_enabled)
  316.     end
  317.     def move_up_party_actors(turn_enabled = true)
  318.     move_party_actors
  319.     add_move_list(Input::UP,turn_enabled)
  320.     end
  321.     def move_lower_left_party_actors
  322.     move_party_actors
  323.     add_move_list(DOWN_LEFT)
  324.     end
  325.     def move_lower_right_party_actors
  326.     move_party_actors
  327.     add_move_list(DOWN_RIGHT)
  328.     end
  329.     def move_upper_left_party_actors
  330.     move_party_actors
  331.     add_move_list(UP_LEFT)
  332.     end
  333.     def move_upper_right_party_actors
  334.     move_party_actors
  335.     add_move_list(UP_RIGHT)
  336.     end
  337.     def jump_party_actors(x_plus, y_plus)
  338.     move_party_actors
  339.     add_move_list(JUMP,x_plus, y_plus)
  340.     end
  341.     end

  342.     module Train_Actor_Game_Player_Module
  343.     def update
  344.     $game_party.update_party_actors
  345.     super
  346.     end
  347.     def moveto( x, y )
  348.     $game_party.moveto_party_actors( x, y )
  349.     super( x, y )
  350.     end
  351.     def move_down(turn_enabled = true)
  352.     if passable?(@x, @y, Input::DOWN)
  353.     $game_party.move_down_party_actors(turn_enabled)
  354.     end
  355.     super(turn_enabled)
  356.     end
  357.     def move_left(turn_enabled = true)
  358.     if passable?(@x, @y, Input::LEFT)
  359.     $game_party.move_left_party_actors(turn_enabled)
  360.     end
  361.     super(turn_enabled)
  362.     end
  363.     def move_right(turn_enabled = true)
  364.     if passable?(@x, @y, Input::RIGHT)
  365.     $game_party.move_right_party_actors(turn_enabled)
  366.     end
  367.     super(turn_enabled)
  368.     end
  369.     def move_up(turn_enabled = true)
  370.     if passable?(@x, @y, Input::UP)
  371.     $game_party.move_up_party_actors(turn_enabled)
  372.     end
  373.     super(turn_enabled)
  374.     end
  375.     def move_lower_left
  376.     # 下→左、左→下 のどちらかのコースが通行可能な場合
  377.     if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
  378.     (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
  379.     $game_party.move_lower_left_party_actors
  380.     end
  381.     super
  382.     end
  383.     def move_lower_right
  384.     # 下→右、右→下 のどちらかのコースが通行可能な場合
  385.     if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
  386.     (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
  387.     $game_party.move_lower_right_party_actors
  388.     end
  389.     super
  390.     end
  391.     def move_upper_left
  392.     # 上→左、左→上 のどちらかのコースが通行可能な場合
  393.     if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
  394.     (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
  395.     $game_party.move_upper_left_party_actors
  396.     end
  397.     super
  398.     end
  399.     def move_upper_right
  400.     # 上→右、右→上 のどちらかのコースが通行可能な場合
  401.     if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
  402.     (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
  403.     $game_party.move_upper_right_party_actors
  404.     end
  405.     super
  406.     end
  407.     def jump(x_plus, y_plus)
  408.     # 新しい座標を計算
  409.     new_x = @x + x_plus
  410.     new_y = @y + y_plus
  411.     # 加算値が (0,0) の場合か、ジャンプ先が通行可能な場合
  412.     if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)
  413.     $game_party.jump_party_actors(x_plus, y_plus)
  414.     end
  415.     super(x_plus, y_plus)
  416.     end

  417.     # -----------------------------------------------
  418.     # move_speed を外から見れるように
  419.     # -----------------------------------------------
  420.     attr_reader :move_speed
  421.     end

  422.     class Game_Party
  423.     include Train_Actor_Game_Party_Module
  424.     end

  425.     class Game_Player
  426.     include Train_Actor_Game_Player_Module
  427.     end

  428.     class Spriteset_Map
  429.     include Train_Actor_Spriteset_Map_Module
  430.     end

  431.     class Scene_Map
  432.     include Train_Actor_Scene_Map_Module
  433.     end

  434.     # Train_Actor
复制代码

点评

请查看1L答案对您是否有帮助,有疑问请回复,达到效果请认可  发表于 2011-12-11 09:38

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

2
发表于 2011-12-11 09:12:31 | 只看该作者
  1. $game_party.members.include?($game_actors[x])
复制代码
x号角色是否在队伍中

点评

感謝!這個太實用了!繼續研究再來發問  发表于 2011-12-11 10:04

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
仲秋启明 + 200 + 2 认可答案

查看全部评分

我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
3
 楼主| 发表于 2011-12-11 10:18:47 | 只看该作者
亿万星辰 发表于 2011-12-11 09:12
x号角色是否在队伍中

想一想之後發現衍生了兩個問題 #1 和#2 麻煩請大大指教!!
  1. class Save_Location < Game_Party_Actor #新建類別
  2.   def loc_save(new_x,new_y) #取得角色離隊前位置
  3.     @save_x  = new_x
  4.     @save_y  = new_y
  5.     super
  6.   end
  7.   def move_to_save
  8.     @actor = #1.這裡要怎麼寫才能定義為選中要離隊的腳色呢?
  9.     if $game_party.members.include?($game_actors[@actor]) #角色不再對五中的話 把角色移動到(@save_x,@save_y)座標上
  10.     else
  11.       $game_actors[@actor].moveto(@save_x,@save_y)] #2.用moveto移動game_actor對嗎?還是這裡要換成charactor呢?
  12.     end
  13. end
复制代码
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

4
发表于 2011-12-12 08:53:17 | 只看该作者
sai90306 发表于 2011-12-11 10:18
想一想之後發現衍生了兩個問題 #1 和#2 麻煩請大大指教!!

默认的离队指令针对的是某个角色的Game_Actor的对象,你也可以直接通过$game_party.members.include?(该角色的Game_Actor的对象)来判断其是否在队伍中,其实默认的判断里就有角色是否在队伍中的判断。
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
5
 楼主| 发表于 2011-12-13 01:32:10 | 只看该作者
亿万星辰 发表于 2011-12-12 08:53
默认的离队指令针对的是某个角色的Game_Actor的对象,你也可以直接通过$game_party.members.include?(该 ...

感謝大大幫忙!!我會去試試看的
不過最近手邊工作太多 可能會幾天不在66
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
6
 楼主| 发表于 2011-12-17 23:28:33 | 只看该作者
亿万星辰 发表于 2011-12-12 08:53
默认的离队指令针对的是某个角色的Game_Actor的对象,你也可以直接通过$game_party.members.include?(该 ...

謝謝!問題解決了!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-24 06:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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