Project1
标题:
请教关于队列脚本的修改问题
[打印本页]
作者:
御姐樣
时间:
2008-7-8 09:49
提示:
作者被禁止或删除 内容自动屏蔽
作者:
火鸡三毛老大
时间:
2008-7-8 18:38
好像要改很多处...
等等吧...
我改改看
作者:
风林火山
时间:
2008-7-8 18:40
以下引用
火鸡三毛老大于2008-7-8 10:38:30
的发言:
好像要改很多处...
等等吧...
我改改看
不是在忙net版本么……居然还有时间……算了我可能被无视了。
作者:
火鸡三毛老大
时间:
2008-7-8 18:48
倒...
我改成的是...让队伍后3人在地图上乱跑....
我把要改的地方告诉你吧...
# Train_Actor::Spriteset_Map_Module
# Spriteset_Map用隊列歩行モジュール
# Author:: fukuyama
# Date:: 2007/12/31
# Copyright:: Copyright (C) 2005-2007 rgss-lib
module Train_Actor
module Spriteset_Map_Module
def setup_actor_character_sprites
for character in $game_party.characters.reverse
@character_sprites.unshift(Sprite_Character.new(@viewport1, character))
end
end
end
end
class Spriteset_Map
include Train_Actor::Spriteset_Map_Module
alias train_actor_create_characters create_characters
def create_characters
train_actor_create_characters
setup_actor_character_sprites
end
end
# Train_Actor::Game_Party_Actor
# マップ上のパーティ用キャラクター
# Author:: fukuyama
# Date:: 2007/12/31
# Copyright:: Copyright (C) 2005-2007 rgss-lib
module Train_Actor
class Game_Party_Actor < Game_Character
def initialize(train_index)
super()
@train_index = train_index
@character_wait = 0
@through = true
# 不透明度と合成方法を初期化
@opacity = 255
@blend_type = 0
@move_list = []
end
def setup(actor)
# キャラクターのファイル名と色相を設定
if actor.nil?
@character_name = ""
elsif not actor.dead? # 死んでる場合とりあえず、消しとこ…
@character_name = actor.character_name
@character_index = actor.character_index
else
@character_name = DEAD_CHARACTER_NAME
@character_index = DEAD_CHARACTER_INDEX
end
end
def dash?
return false if $game_map.disable_dash?
# return false if $game_player.move_route_forcing
return Input.press?(Input::A)
end
def update
@move_speed = $game_player.move_speed
@step_anime = $game_player.step_anime
@opacity = $game_player.opacity
@blend_type = $game_player.blend_type
@direction_fix = $game_player.direction_fix
if @direction_fix
@direction = $game_player.direction
end
update_move_list()
super
end
def screen_z(height = 0)
if $game_player.x == @x and $game_player.y == @y
super() - 1
else
super()
end
end
def add_move_list_element(element)
@move_list.push(element)
if @move_list.size == 1
update_move_list()
end
end
def move_list_size
return @move_list.size
end
def update_move_list()
return if moving?
return if @move_list.empty?
if @move_list[0].type == STOP
if @train_index != 0
character = $game_party.characters[@train_index - 1]
if character.x == @x and character.y == @y and character.direction == @direction
distance = (2 ** @move_speed)
distance *= 2 if dash?
@character_wait = 256 / distance + 1
while character.move_list_size < @move_list.size and @move_list[0].type == STOP
@move_list.shift
end
end
end
else
@character_wait = 0
end
if @character_wait > 0
if dash?
@character_wait -= 2
else
@character_wait -= 1
end
return
end
element = @move_list.shift
case element.type
when Input::DOWN
move_down(element.args[0])
when Input::LEFT
move_left(element.args[0])
when Input::RIGHT
move_right(element.args[0])
when Input::UP
move_up(element.args[0])
when DOWN_LEFT
move_lower_left
when DOWN_RIGHT
move_lower_right
when UP_LEFT
move_upper_left
when UP_RIGHT
move_upper_right
when JUMP
jump(element.args[0],element.args[1])
when STOP
update_move_list()
end
end
def moveto( x, y )
@move_list.clear
super(x, y)
end
#--------------------------------------------------------------------------
# ● 下に移動
# turn_enabled : その場での向き変更を許可するフラグ
#--------------------------------------------------------------------------
def move_down(turn_enabled = true)
# 下を向く
if turn_enabled
turn_down
end
# 通行可能な場合
if passable?(@x, @y + 2)
# 下を向く
turn_down
# 座標を更新
@y += 2
end
end
#--------------------------------------------------------------------------
# ● 左に移動
# turn_enabled : その場での向き変更を許可するフラグ
#--------------------------------------------------------------------------
def move_left(turn_enabled = true)
# 左を向く
if turn_enabled
turn_left
end
# 通行可能な場合
if passable?(@x - 2, @y)
# 左を向く
turn_left
# 座標を更新
@x -= 2
end
end
#--------------------------------------------------------------------------
# ● 右に移動
# turn_enabled : その場での向き変更を許可するフラグ
#--------------------------------------------------------------------------
def move_right(turn_enabled = true)
# 右を向く
if turn_enabled
turn_right
end
# 通行可能な場合
if passable?(@x + 2, @y)
# 右を向く
turn_right
# 座標を更新
@x += 2
end
end
#--------------------------------------------------------------------------
# ● 上に移動
# turn_enabled : その場での向き変更を許可するフラグ
#--------------------------------------------------------------------------
def move_up(turn_enabled = true)
# 上を向く
if turn_enabled
turn_up
end
# 通行可能な場合
if passable?(@x, @y - 2)
# 上を向く
turn_up
# 座標を更新
@y -= 2
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+2) and passable?(@x-2, @y+2)) or
(passable?(@x-2, @y) and passable?(@x-2, @y+2))
# 座標を更新
@x -= 2
@y += 2
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+2) and passable?(@x+2, @y+2)) or
(passable?(@x+2, @y) and passable?(@x+2, @y+2))
# 座標を更新
@x += 2
@y += 2
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-2) and passable?(@x-2, @y-2)) or
(passable?(@x-2, @y) and passable?(@x-2, @y-2))
# 座標を更新
@x -= 2
@y -= 2
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-2) and passable?(@x+2, @y-2)) or
(passable?(@x+1, @y) and passable?(@x+2, @y-2))
# 座標を更新
@x += 2
@y -= 2
end
end
def sync_with_player
@x = $game_player.x
@y = $game_player.y
@real_x = $game_player.real_x
@real_y = $game_player.real_y
@direction = $game_player.direction
update_bush_depth
end
end
end
复制代码
只要带有 X Y的部分...你都可以改...
只要把几个部分改成 2 就可以了 ...不是所有地方
作者:
御姐樣
时间:
2008-7-9 03:27
提示:
作者被禁止或删除 内容自动屏蔽
作者:
dbshy
时间:
2008-7-9 18:45
一个比较偷懒的办法
两个队员有一个透明的队员
(不是GAME_PARTY,把队列脚本看懂就知道我所说的意思)
for i in 1 ... Game_Party::MAX_MEMBERS
@characters.push(Game_Party_Actor.new(i - 1))
end
先改上面,家个判断
然后class Game_Party_Actor < Game_Character
def initialize(train_index)
super()
@train_index = train_index
@character_wait = 1
@through = true
# 不透明度と合成方法を初期化
#===================================================
if @train_index % 2 == 0 then
@opacity = 0
else
@opacity = 255
end
#====================================================
@blend_type = 0
@move_list = []
end
def update
@opacity = $game_player.opacity
删掉
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1