赞 | 5 |
VIP | 71 |
好人卡 | 22 |
积分 | 6 |
经验 | 32145 |
最后登录 | 2013-8-9 |
在线时间 | 184 小时 |
Lv2.观梦者 天仙
- 梦石
- 0
- 星屑
- 620
- 在线时间
- 184 小时
- 注册时间
- 2008-4-15
- 帖子
- 5023
|
来源:
http://www.rpgrevolution.com/forums/?showtopic=8040
脚本:
- class Game_Player
- #--------------------------------------------------------------------------
- # * Move Down
- # turn_enabled : a flag permits direction change on that spot
- #--------------------------------------------------------------------------
- def move_down(turn_enabled = true)
- super(turn_enabled)
- end
- #--------------------------------------------------------------------------
- # * Move Left
- # turn_enabled : a flag permits direction change on that spot
- #--------------------------------------------------------------------------
- def move_left(turn_enabled = true)
- super(turn_enabled)
- end
- #--------------------------------------------------------------------------
- # * Move Right
- # turn_enabled : a flag permits direction change on that spot
- #--------------------------------------------------------------------------
- def move_right(turn_enabled = true)
- super(turn_enabled)
- end
- #--------------------------------------------------------------------------
- # * Move up
- # turn_enabled : a flag permits direction change on that spot
- #--------------------------------------------------------------------------
- def move_up(turn_enabled = true)
- super(turn_enabled)
- end
- #--------------------------------------------------------------------------
- # * Move Lower Left
- #--------------------------------------------------------------------------
- def move_lower_left
- super
- end
- #--------------------------------------------------------------------------
- # * Move Lower Right
- #--------------------------------------------------------------------------
- def move_lower_right
- super
- end
- #--------------------------------------------------------------------------
- # * Move Upper Left
- #--------------------------------------------------------------------------
- def move_upper_left
- super
- end
- #--------------------------------------------------------------------------
- # * Move Upper Right
- #--------------------------------------------------------------------------
- def move_upper_right
- super
- end
- end
- class Game_Follower < Game_Character
- #--------------------------------------------------------------------------
- # * Public Instance Variables
- #--------------------------------------------------------------------------
- attr_reader :actor
- attr_accessor :move_speed
- #--------------------------------------------------------------------------
- # * Object Initialization
- #--------------------------------------------------------------------------
- def initialize(actor)
- super()
- @through = true
- @actor = actor
- end
- #--------------------------------------------------------------------------
- # * Set Actor
- #--------------------------------------------------------------------------
- def actor=(actor)
- @actor = actor
- setup
- end
- #--------------------------------------------------------------------------
- # * Setup
- #--------------------------------------------------------------------------
- def setup
- if @actor != nil
- @character_name = $game_actors[@actor].character_name
- @character_index = $game_actors[@actor].character_index
- else
- @character_name = ""
- @character_index = 0
- end
- @opacity = 255
- @blend_type = 0
- @priority_type = 0
- end
- #--------------------------------------------------------------------------
- # * Screen Z
- #--------------------------------------------------------------------------
- def screen_z
- if $game_player.x == @x and $game_player.y == @y
- return $game_player.screen_z - 1
- end
- super
- end
- #--------------------------------------------------------------------------
- # * Same Position Starting Determinant (Disabled)
- #--------------------------------------------------------------------------
- def check_event_trigger_here(triggers)
- result = false
- return result
- end
- #--------------------------------------------------------------------------
- # * Front Envent Starting Determinant (Disabled)
- #--------------------------------------------------------------------------
- def check_event_trigger_there(triggers)
- result = false
- return result
- end
- #--------------------------------------------------------------------------
- # * Touch Event Starting Determinant (Disabled)
- #--------------------------------------------------------------------------
- def check_event_trigger_touch(x, y)
- result = false
- return result
- end
- end
- class Spriteset_Map
- alias_method :spriteset_map_create_characters, :create_characters
- def create_characters
- spriteset_map_create_characters
- $game_party.followers.each do |char|
- @character_sprites << Sprite_Character.new(@viewport1, char)
- end
- end
- end
- class Game_Party
- #--------------------------------------------------------------------------
- # * Constants
- #--------------------------------------------------------------------------
- MAX_SIZE = 8
- CATERPILLAR = 2
- #--------------------------------------------------------------------------
- # * Public Instance Variables
- #--------------------------------------------------------------------------
- attr_reader :followers
- #--------------------------------------------------------------------------
- # * Object Initialization
- #--------------------------------------------------------------------------
- alias_method :trick_caterpillar_party_initialize, :initialize
- def initialize
- trick_caterpillar_party_initialize
- @followers = Array.new(MAX_SIZE - 1) {Game_Follower.new(nil)}
- @move_list = []
- end
- #--------------------------------------------------------------------------
- # * Update Followers
- #--------------------------------------------------------------------------
- def update_followers
- flag = $game_player.transparent || $game_switches[CATERPILLAR]
- @followers.each_with_index do |char, i|
- char.actor = @actors[i + 1]
- char.move_speed = $game_player.move_speed
- if $game_player.dash?
- char.move_speed += 1
- end
- char.update
- char.transparent = flag
- end
- end
- #--------------------------------------------------------------------------
- # * Move To Party
- #--------------------------------------------------------------------------
- def moveto_party(x, y)
- @followers.each {|char| char.moveto(x, y)}
- @move_list.clear
- end
- #--------------------------------------------------------------------------
- # * Move Party
- #--------------------------------------------------------------------------
- def move_party
- @move_list.each_index do |i|
- if @followers[i] == nil
- @move_list[i...@move_list.size] = nil
- next
- end
- case @move_list[i].type
- when 2
- @followers[i].move_down(*@move_list[i].args)
- when 4
- @followers[i].move_left(*@move_list[i].args)
- when 6
- @followers[i].move_right(*@move_list[i].args)
- when 8
- @followers[i].move_up(*@move_list[i].args)
- when j
- @followers[i].move_lower_left
- when 3
- @followers[i].move_lower_right
- when 7
- @followers[i].move_upper_left
- when 9
- @followers[i].move_upper_right
- when 5
- @followers[i].jump(*@move_list[i].args)
- end
- end
- end
- #--------------------------------------------------------------------------
- # * Add Move List
- #--------------------------------------------------------------------------
- def update_move(type, *args)
- move_party
- @move_list.unshift(Game_MoveListElement.new(type, args))
- end
- end
- class Game_MoveListElement
- #--------------------------------------------------------------------------
- # * Object Initialization
- #--------------------------------------------------------------------------
- def initialize(type, args)
- @type = type
- @args = args
- end
- #--------------------------------------------------------------------------
- # * Type
- #--------------------------------------------------------------------------
- def type
- return @type
- end
- #--------------------------------------------------------------------------
- # * Args
- #--------------------------------------------------------------------------
- def args
- return @args
- end
- end
- class Game_Player
- #--------------------------------------------------------------------------
- # * Public Instance Variables
- #--------------------------------------------------------------------------
- attr_reader :move_speed
- #--------------------------------------------------------------------------
- # * Update
- #--------------------------------------------------------------------------
- alias_method :trick_caterpillar_player_update, :update
- def update
- $game_party.update_followers
- trick_caterpillar_player_update
- end
- #--------------------------------------------------------------------------
- # * Moveto
- #--------------------------------------------------------------------------
- alias_method :trick_caterpillar_player_moveto, :moveto
- def moveto(x, y)
- $game_party.moveto_party(x, y)
- trick_caterpillar_player_moveto(x, y)
- end
- #--------------------------------------------------------------------------
- # * Move Down
- #--------------------------------------------------------------------------
- alias_method :trick_caterpillar_player_move_down, :move_down
- def move_down(turn_enabled = true)
- if passable?(@x, @y+1)
- $game_party.update_move(2, turn_enabled)
- end
- trick_caterpillar_player_move_down(turn_enabled)
- end
- #--------------------------------------------------------------------------
- # * Move Left
- #--------------------------------------------------------------------------
- alias_method :trick_caterpillar_player_move_left, :move_left
- def move_left(turn_enabled = true)
- if passable?(@x-1, @y)
- $game_party.update_move(4, turn_enabled)
- end
- trick_caterpillar_player_move_left(turn_enabled)
- end
- #--------------------------------------------------------------------------
- # * Move Right
- #--------------------------------------------------------------------------
- alias_method :trick_caterpillar_player_move_right, :move_right
- def move_right(turn_enabled = true)
- if passable?(@x+1, @y)
- $game_party.update_move(6, turn_enabled)
- end
- trick_caterpillar_player_move_right(turn_enabled)
- end
- #--------------------------------------------------------------------------
- # * Move Up
- #--------------------------------------------------------------------------
- alias_method :trick_caterpillar_player_move_up, :move_up
- def move_up(turn_enabled = true)
- if passable?(@x, @y-1)
- $game_party.update_move(8, turn_enabled)
- end
- trick_caterpillar_player_move_up(turn_enabled)
- end
- #--------------------------------------------------------------------------
- # * Move Lower Left
- #--------------------------------------------------------------------------
- alias_method :trick_caterpillar_player_move_lower_left, :move_lower_left
- def move_lower_left
- if passable?(@x - 1, @y) and passable?(@x, @y + 1)
- $game_party.update_move(1)
- end
- trick_caterpillar_player_move_lower_left
- end
- #--------------------------------------------------------------------------
- # * Move Lower Right
- #--------------------------------------------------------------------------
- alias_method :trick_caterpillar_player_move_lower_right, :move_lower_right
- def move_lower_right
- if passable?(@x + 1, @y) and passable?(@x, @y + 1)
- $game_party.update_move(3)
- end
- trick_caterpillar_player_move_lower_right
- end
- #--------------------------------------------------------------------------
- # * Move Upper Left
- #--------------------------------------------------------------------------
- alias_method :trick_caterpillar_player_move_upper_left, :move_upper_left
- def move_upper_left
- if passable?(@x - 1, @y) and passable?(@x, @y - 1)
- $game_party.update_move(7)
- end
- trick_caterpillar_player_move_upper_left
- end
- #--------------------------------------------------------------------------
- # * Move Upper Right
- #--------------------------------------------------------------------------
- alias_method :trick_caterpillar_player_move_upper_right, :move_upper_right
- def move_upper_right
- if passable?(@x + 1, @y) and passable?(@x, @y - 1)
- $game_party.update_move(9)
- end
- trick_caterpillar_player_move_upper_right
- end
- #--------------------------------------------------------------------------
- # * Jump
- #--------------------------------------------------------------------------
- alias_method :trick_caterpillar_player_jump, :jump
- def jump(x_plus, y_plus)
- new_x = @x + x_plus
- new_y = @y + y_plus
- if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y)
- $game_party.update_move(5, x_plus, y_plus)
- end
- trick_caterpillar_player_jump(x_plus, y_plus)
- end
- end###########
- ###########
- ###########
复制代码 |
|