| 
 
| 赞 | 0 |  
| VIP | 0 |  
| 好人卡 | 0 |  
| 积分 | 0 |  
| 经验 | 0 |  
| 最后登录 | 2011-2-25 |  
| 在线时间 | 4 小时 |  
 Lv1.梦旅人 
	梦石0 星屑250 在线时间4 小时注册时间2010-12-5帖子3 | 
| 
本帖最后由 八神鸥子 于 2010-12-6 16:05 编辑
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  
 使用了下面这两个脚本,结果出现一个问题,即使调整队伍后,假如把原本的领队A调到了第二个位置,而在行走画面上,领队仍然是A,第二个人也是A,也就是说领队被固定了,但是领队的那个角色仍然可以下调。。。。作为一个日文盲以及脚本盲,我研究弄了半天没搞明白冲突在哪里。。。请各位高手帮忙看看。
 
 # ————————————————————————————————————
 
 # ▼▲▼ XRXS13. パーティ列车移动 ver.1.02 ▼▲▼
 # by fukuyama
 
 #
 # Train_Actor
 #
 # [email protected]
 # http://www4.big.or.jp/~fukuyama/rgss/Train_Actor.txt
 #
 
 module Train_Actor
 
 
 
 
 #是否使用停止跟随的方法,也就是说,这里false改为true的时候,如果TRANSPARENT_SWITCHES_INDEX
 #开关打开,跟随的人物就消失了(其实只是变成透明而已)
 TRANSPARENT_SWITCH = false
 TRANSPARENT_SWITCHES_INDEX = 1000
 #举例:第一个为true,第二个为20,则打开20号开关,后面的人都没了。
 
 
 
 
 
 #跟随人数的最大数目,可以更改为2、3什么的。
 TRAIN_ACTOR_SIZE_MAX = 4
 
 
 
 
 
 # 定数
 #Input::DOWN = 2
 #Input::LEFT = 4
 #Input::RIGHT = 6
 #Input::UP = 6
 DOWN_LEFT = 1
 DOWN_RIGHT = 3
 UP_LEFT = 7
 UP_RIGHT = 9
 JUMP = 5
 
 class Game_Party_Actor < Game_Character
 def initialize
 super()
 @through = true
 end
 def setup(actor)
 # キャラクターのファイル名と色相を设定
 if actor != nil
 @character_name = actor.character_name
 @character_hue = actor.character_hue
 else
 @character_name = ""
 @character_hue = 0
 end
 # 不透明度と合成方法を初期化
 @opacity = 255
 @blend_type = 0
 end
 def screen_z(height = 0)
 if $game_player.x == @x and $game_player.y == @y
 return $game_player.screen_z(height) - 1
 end
 super(height)
 end
 #--------------------------------------------------------------------------
 # ● 下に移动
 # turn_enabled : その场での向き変更を许可するフラグ
 #--------------------------------------------------------------------------
 def move_down(turn_enabled = true)
 # 下を向く
 if turn_enabled
 turn_down
 end
 # 通行可能な场合
 if passable?(@x, @y, Input::DOWN)
 # 下を向く
 turn_down
 # 座标を更新
 @y += 1
 end
 end
 #--------------------------------------------------------------------------
 # ● 左に移动
 # turn_enabled : その场での向き変更を许可するフラグ
 #--------------------------------------------------------------------------
 def move_left(turn_enabled = true)
 # 左を向く
 if turn_enabled
 turn_left
 end
 # 通行可能な场合
 if passable?(@x, @y, Input::LEFT)
 # 左を向く
 turn_left
 # 座标を更新
 @x -= 1
 end
 end
 #--------------------------------------------------------------------------
 # ● 右に移动
 # turn_enabled : その场での向き変更を许可するフラグ
 #--------------------------------------------------------------------------
 def move_right(turn_enabled = true)
 # 右を向く
 if turn_enabled
 turn_right
 end
 # 通行可能な场合
 if passable?(@x, @y, Input::RIGHT)
 # 右を向く
 turn_right
 # 座标を更新
 @x += 1
 end
 end
 #--------------------------------------------------------------------------
 # ● 上に移动
 # turn_enabled : その场での向き変更を许可するフラグ
 #--------------------------------------------------------------------------
 def move_up(turn_enabled = true)
 # 上を向く
 if turn_enabled
 turn_up
 end
 # 通行可能な场合
 if passable?(@x, @y, Input::UP)
 # 上を向く
 turn_up
 # 座标を更新
 @y -= 1
 end
 end
 #--------------------------------------------------------------------------
 # ● 左下に移动
 #--------------------------------------------------------------------------
 def move_lower_left
 # 向き固定でない场合
 unless @direction_fix
 # 右向きだった场合は左を、上向きだった场合は下を向く
 @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::UP ? Input::DOWN : @direction)
 end
 # 下→左、左→下 のどちらかのコースが通行可能な场合
 if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
 (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
 # 座标を更新
 @x -= 1
 @y += 1
 end
 end
 #--------------------------------------------------------------------------
 # ● 右下に移动
 #--------------------------------------------------------------------------
 def move_lower_right
 # 向き固定でない场合
 unless @direction_fix
 # 左向きだった场合は右を、上向きだった场合は下を向く
 @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::UP ? Input::DOWN : @direction)
 end
 # 下→右、右→下 のどちらかのコースが通行可能な场合
 if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
 (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
 # 座标を更新
 @x += 1
 @y += 1
 end
 end
 #--------------------------------------------------------------------------
 # ● 左上に移动
 #--------------------------------------------------------------------------
 def move_upper_left
 # 向き固定でない场合
 unless @direction_fix
 # 右向きだった场合は左を、下向きだった场合は上を向く
 @direction = (@direction == Input::RIGHT ? Input::LEFT : @direction == Input::DOWN ? Input::UP : @direction)
 end
 # 上→左、左→上 のどちらかのコースが通行可能な场合
 if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
 (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
 # 座标を更新
 @x -= 1
 @y -= 1
 end
 end
 #--------------------------------------------------------------------------
 # ● 右上に移动
 #--------------------------------------------------------------------------
 def move_upper_right
 # 向き固定でない场合
 unless @direction_fix
 # 左向きだった场合は右を、下向きだった场合は上を向く
 @direction = (@direction == Input::LEFT ? Input::RIGHT : @direction == Input::DOWN ? Input::UP : @direction)
 end
 # 上→右、右→上 のどちらかのコースが通行可能な场合
 if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
 (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
 # 座标を更新
 @x += 1
 @y -= 1
 end
 end
 attr_writer :move_speed
 attr_writer :step_anime
 end
 module Spriteset_Map_Module
 def setup_actor_character_sprites?
 return @setup_actor_character_sprites_flag != nil
 end
 def setup_actor_character_sprites(characters)
 if !setup_actor_character_sprites?
 index_game_player = 0
 @character_sprites.each_index do |i|
 if @character_sprites.character.instance_of?(Game_Player)
 index_game_player = i
 break
 end
 end
 for character in characters.reverse
 @character_sprites.unshift(
 Sprite_Character.new(@viewport1, character)
 )
 end
 @setup_actor_character_sprites_flag = true
 end
 end
 end
 module Scene_Map_Module
 def setup_actor_character_sprites(characters)
 @spriteset.setup_actor_character_sprites(characters)
 end
 end
 module Game_Party_Module
 def return_char(i)
 return @characters
 end
 def set_transparent_actors(transparent)
 @transparent = transparent
 end
 def setup_actor_character_sprites
 if @characters == nil
 @characters = []
 for i in 1 ... TRAIN_ACTOR_SIZE_MAX
 @characters.push(Game_Party_Actor.new)
 end
 end
 for i in 1 ... TRAIN_ACTOR_SIZE_MAX
 @characters[i - 1].setup(actors)
 end
 if $scene.class.method_defined?('setup_actor_character_sprites')
 $scene.setup_actor_character_sprites(@characters)
 end
 end
 def update_party_actors
 setup_actor_character_sprites
 transparent = $game_player.transparent
 if transparent == false
 if TRANSPARENT_SWITCH
 transparent = $game_switches[TRANSPARENT_SWITCHES_INDEX]
 end
 end
 for character in @characters
 character.transparent = transparent
 character.move_speed = $game_player.move_speed
 character.step_anime = $game_player.step_anime
 character.update
 end
 end
 def moveto_party_actors( x, y )
 setup_actor_character_sprites
 for character in @characters
 character.moveto( x, y )
 end
 if @move_list == nil
 @move_list = []
 end
 move_list_setup
 end
 def move_party_actors
 if @move_list == nil
 @move_list = []
 move_list_setup
 end
 @move_list.each_index do |i|
 if @characters != nil
 case @move_list.type
 when Input::DOWN
 @characters.move_down(@move_list.args[0])
 when Input::LEFT
 @characters.move_left(@move_list.args[0])
 when Input::RIGHT
 @characters.move_right(@move_list.args[0])
 when Input::UP
 @characters.move_up(@move_list.args[0])
 when DOWN_LEFT
 @characters.move_lower_left
 when DOWN_RIGHT
 @characters.move_lower_right
 when UP_LEFT
 @characters.move_upper_left
 when UP_RIGHT
 @characters.move_upper_right
 when JUMP
 @characters.jump(@move_list.args[0],@move_list.args[1])
 end
 end
 end
 end
 class Move_List_Element
 def initialize(type,args)
 @type = type
 @args = args
 end
 def type() return @type end
 def args() return @args end
 end
 def move_list_setup
 for i in 0 .. TRAIN_ACTOR_SIZE_MAX
 @move_list = nil
 end
 end
 def add_move_list(type,*args)
 @move_list.unshift(Move_List_Element.new(type,args)).pop
 end
 def move_down_party_actors(turn_enabled = true)
 move_party_actors
 add_move_list(Input::DOWN,turn_enabled)
 end
 def move_left_party_actors(turn_enabled = true)
 move_party_actors
 add_move_list(Input::LEFT,turn_enabled)
 end
 def move_right_party_actors(turn_enabled = true)
 move_party_actors
 add_move_list(Input::RIGHT,turn_enabled)
 end
 def move_up_party_actors(turn_enabled = true)
 move_party_actors
 add_move_list(Input::UP,turn_enabled)
 end
 def move_lower_left_party_actors
 move_party_actors
 add_move_list(DOWN_LEFT)
 end
 def move_lower_right_party_actors
 move_party_actors
 add_move_list(DOWN_RIGHT)
 end
 def move_upper_left_party_actors
 move_party_actors
 add_move_list(UP_LEFT)
 end
 def move_upper_right_party_actors
 move_party_actors
 add_move_list(UP_RIGHT)
 end
 def jump_party_actors(x_plus, y_plus)
 move_party_actors
 add_move_list(JUMP,x_plus, y_plus)
 end
 end
 module Game_Player_Module
 def update
 $game_party.update_party_actors
 super
 end
 def moveto( x, y )
 $game_party.moveto_party_actors( x, y )
 super( x, y )
 end
 def move_down(turn_enabled = true)
 if passable?(@x, @y, Input::DOWN)
 $game_party.move_down_party_actors(turn_enabled)
 end
 super(turn_enabled)
 end
 def move_left(turn_enabled = true)
 if passable?(@x, @y, Input::LEFT)
 $game_party.move_left_party_actors(turn_enabled)
 end
 super(turn_enabled)
 end
 def move_right(turn_enabled = true)
 if passable?(@x, @y, Input::RIGHT)
 $game_party.move_right_party_actors(turn_enabled)
 end
 super(turn_enabled)
 end
 def move_up(turn_enabled = true)
 if passable?(@x, @y, Input::UP)
 $game_party.move_up_party_actors(turn_enabled)
 end
 super(turn_enabled)
 end
 def move_lower_left
 # 下→左、左→下 のどちらかのコースが通行可能な场合
 if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::LEFT)) or
 (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::DOWN))
 $game_party.move_lower_left_party_actors
 end
 super
 end
 def move_lower_right
 # 下→右、右→下 のどちらかのコースが通行可能な场合
 if (passable?(@x, @y, Input::DOWN) and passable?(@x, @y + 1, Input::RIGHT)) or
 (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::DOWN))
 $game_party.move_lower_right_party_actors
 end
 super
 end
 def move_upper_left
 # 上→左、左→上 のどちらかのコースが通行可能な场合
 if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::LEFT)) or
 (passable?(@x, @y, Input::LEFT) and passable?(@x - 1, @y, Input::UP))
 $game_party.move_upper_left_party_actors
 end
 super
 end
 def move_upper_right
 # 上→右、右→上 のどちらかのコースが通行可能な场合
 if (passable?(@x, @y, Input::UP) and passable?(@x, @y - 1, Input::RIGHT)) or
 (passable?(@x, @y, Input::RIGHT) and passable?(@x + 1, @y, Input::UP))
 $game_party.move_upper_right_party_actors
 end
 super
 end
 def jump(x_plus, y_plus)
 # 新しい座标を计算
 new_x = @x + x_plus
 new_y = @y + y_plus
 # 加算値が (0,0) の场合か、ジャンプ先が通行可能な场合
 if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y, 0)
 $game_party.jump_party_actors(x_plus, y_plus)
 end
 super(x_plus, y_plus)
 end
 attr_reader :move_speed
 attr_reader :step_anime
 end
 end # module Train_Actor
 class Game_Party
 include Train_Actor::Game_Party_Module
 end
 class Game_Player
 include Train_Actor::Game_Player_Module
 end
 class Spriteset_Map
 include Train_Actor::Spriteset_Map_Module
 end
 class Scene_Map
 include Train_Actor::Scene_Map_Module
 end
 
 #==============================================================================
 # 本脚本来自www.66RPG.com,使用和转载请保留此信息
 #==============================================================================
 
 #==============================================================================
 # ■ Window_MenuStatus
 #------------------------------------------------------------------------------
 #  显示菜单画面和同伴状态的窗口。
 #==============================================================================
 
 class Window_MenuStatus < Window_Selectable
 #--------------------------------------------------------------------------
 # ● 初始化目标
 #--------------------------------------------------------------------------
 def initialize
 super(0, 0, 480, 480)
 self.contents = Bitmap.new(width - 32,  $game_party.actors.size*112)
 refresh
 @top_row = 0
 self.active = false
 self.index = -1
 end
 #--------------------------------------------------------------------------
 # ● 刷新
 #--------------------------------------------------------------------------
 def refresh
 self.contents.clear
 @item_max = $game_party.actors.size
 for i in 0...$game_party.actors.size
 x = 64
 y = i * 112
 if i <=3
 self.contents.font.color = Color.new(255,255,0,255)
 self.contents.draw_text(x,y,340,32,"[出战]",2)
 self.contents.font.color = normal_color
 else
 self.contents.font.color = Color.new(128,128,128,255)
 self.contents.draw_text(x,y,340,32,"[待机]",2)
 self.contents.font.color = normal_color
 end
 actor = $game_party.actors
 draw_actor_graphic(actor, x - 40, y + 80)
 draw_actor_name(actor, x, y)
 draw_actor_class(actor, x + 144, y)
 draw_actor_level(actor, x, y + 32)
 draw_actor_state(actor, x + 90, y + 32)
 draw_actor_exp(actor, x, y + 64)
 draw_actor_hp(actor, x + 236, y + 32)
 draw_actor_sp(actor, x + 236, y + 64)
 end
 end
 #--------------------------------------------------------------------------
 # ● 刷新光标矩形
 #--------------------------------------------------------------------------
 def update_cursor_rect
 if @index < 0
 self.cursor_rect.empty
 else
 tpy = @index * 112 - self.oy
 self.cursor_rect.set(0, tpy, self.width - 32, 96)
 if @index < @top_row
 @top_row = @index
 self.oy = @top_row *112
 end
 if @index > @top_row+3
 @top_row = @index-3
 self.oy = @top_row *112
 end
 end
 end
 end
 
 class Scene_Menu
 # --------------------------------
 def initialize(menu_index = 0)
 @menu_index = menu_index
 @changer = 0
 @where = 0
 @checker = 0
 end
 # --------------------------------
 def main
 s1 = $data_system.words.item
 s2 = $data_system.words.skill
 s3 = $data_system.words.equip
 s4 = "状态"
 s5 = "储存进度"
 s6 = "离开游戏"
 s7 = "调整队伍"
 @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
 @command_window.index = @menu_index
 if $game_party.actors.size == 0
 @command_window.disable_item(0)
 @command_window.disable_item(1)
 @command_window.disable_item(2)
 @command_window.disable_item(3)
 end
 if $game_system.save_disabled
 @command_window.disable_item(4)
 end
 if $game_party.actors.size == 1
 @command_window.disable_item(6)
 end
 @playtime_window = Window_PlayTime.new
 @playtime_window.x = 0
 @playtime_window.y = 320
 @gold_window = Window_Gold.new
 @gold_window.x = 0
 @gold_window.y = 416
 @status_window = Window_MenuStatus.new
 @status_window.x = 160
 @status_window.y = 0
 Graphics.transition
 loop do
 Graphics.update
 Input.update
 update
 if $scene != self
 break
 end
 end
 Graphics.freeze
 @command_window.dispose
 @playtime_window.dispose
 @gold_window.dispose
 @status_window.dispose
 end
 # --------------------------------
 def update
 @command_window.update
 @playtime_window.update
 @gold_window.update
 @status_window.update
 if @command_window.active
 update_command
 return
 end
 if @status_window.active
 update_status
 return
 end
 end
 # --------------------------------
 def update_command
 if Input.trigger?(Input::B)
 $game_system.se_play($data_system.cancel_se)
 $scene = Scene_Map.new
 return
 end
 if Input.trigger?(Input::C)
 if $game_party.actors.size == 0 and @command_window.index < 4
 $game_system.se_play($data_system.buzzer_se)
 return
 end
 if $game_party.actors.size == 1 and @command_window.index ==6
 $game_system.se_play($data_system.buzzer_se)
 return
 end
 case @command_window.index
 when 0
 $game_system.se_play($data_system.decision_se)
 $scene = Scene_Item.new
 when 1
 $game_system.se_play($data_system.decision_se)
 @command_window.active = false
 @status_window.active = true
 @status_window.index = 0
 when 2
 $game_system.se_play($data_system.decision_se)
 @command_window.active = false
 @status_window.active = true
 @status_window.index = 0
 when 3
 $game_system.se_play($data_system.decision_se)
 @command_window.active = false
 @status_window.active = true
 @status_window.index = 0
 when 4
 if $game_system.save_disabled
 $game_system.se_play($data_system.buzzer_se)
 return
 end
 $game_system.se_play($data_system.decision_se)
 $scene = Scene_Save.new
 when 5
 $game_system.se_play($data_system.decision_se)
 $scene = Scene_End.new
 when 6
 $game_system.se_play($data_system.decision_se)
 @checker = 0
 @command_window.active = false
 @status_window.active = true
 @status_window.index = 0
 when 7
 $game_system.se_play($data_system.decision_se)
 @command_window.active = false
 @status_window.active = true
 @status_window.index = 0
 when 8
 $game_system.se_play($data_system.decision_se)
 @command_window.active = false
 @status_window.active = true
 @status_window.index = 0
 end
 return
 end
 end
 # --------------------------------
 def update_status
 if Input.trigger?(Input::B)
 $game_system.se_play($data_system.cancel_se)
 @command_window.active = true
 @status_window.active = false
 @status_window.index = -1
 return
 end
 if Input.trigger?(Input::C)
 case @command_window.index
 when 1
 if $game_party.actors[@status_window.index].restriction >= 2
 $game_system.se_play($data_system.buzzer_se)
 return
 end
 $game_system.se_play($data_system.decision_se)
 $scene = Scene_Skill.new(@status_window.index)
 when 2
 $game_system.se_play($data_system.decision_se)
 $scene = Scene_Equip.new(@status_window.index)
 when 3
 $game_system.se_play($data_system.decision_se)
 $scene = Scene_Status.new(@status_window.index)
 when 6
 $game_system.se_play($data_system.decision_se)
 if @checker == 0
 @changer = $game_party.actors[@status_window.index]
 @where = @status_window.index
 @checker = 1
 else
 $game_party.actors[@where] = $game_party.actors[@status_window.index]
 $game_party.actors[@status_window.index] = @changer
 @checker = 0
 @status_window.refresh
 end
 when 7
 $game_system.se_play($data_system.decision_se)
 $scene = Scene_Lvup.new(@status_window.index)
 when 8
 $game_system.se_play($data_system.decision_se)
 $scene = Scene_Charactor.new(@status_window.index)
 end
 return
 end
 end
 end
 
 #==============================================================================
 # 本脚本来自www.66RPG.com,使用和转载请保留此信息
 #==============================================================================
 
 
 | 
 |