Project1
标题:
按键加速跑,且换行走图和待机小动作脚本冲突
[打印本页]
作者:
zhli667
时间:
2020-8-29 14:12
标题:
按键加速跑,且换行走图和待机小动作脚本冲突
本帖最后由 zhli667 于 2020-8-29 14:20 编辑
按键加速功能正常,在移动中换行走图失效,似乎是被待机动作脚本更换回正常行走图了,望高人解答。
[移动加速脚本]
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
# ▼▲▼ XRXS25. ダッシュ機能 ver.2 ▼▲▼
# by 桜雅 在土 (基本、再改訂)
# Tetra-Z (改訂原案)
#==============================================================================
# □ カスタマイズポイント
#==============================================================================
module XRXS_Dash
#
# 按下加速键之后的速度増加量
#
PLUSPEED = 1
#
# 行走加速的按键
#
BUTTON = Input::A
end
#==============================================================================
# ■ Game_Player
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
alias xrxs25_update update
def update
# 例外補正
if @move_speed_arcadia == nil
@move_speed_arcadia = @move_speed
end
# 移動中、イベント実行中、移動ルート強制中、
# メッセージウィンドウ表示中、
# ダッシュボタン挿下中、のいずれでもない場合
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
# 速度の変更
if Input.press?(XRXS_Dash::BUTTON)
if @character_name == "主角"
@character_name = "主角跑"
end
@move_speed = @move_speed_arcadia + XRXS_Dash::PLUSPEED
else
if @character_name == "主角跑"
@character_name = "主角"
end
@move_speed = @move_speed_arcadia
end
end
# 呼び戻す
xrxs25_update
end
#--------------------------------------------------------------------------
# ○ 移動タイプ : カスタム [オーバーライド]
#--------------------------------------------------------------------------
def move_type_custom
# 例外補正
if @move_speed_arcadia == nil
@move_speed_arcadia = @move_speed
end
# 標準速度に戻す
@move_speed = @move_speed_arcadia
# 呼び戻す
super
# 速度の保存
@move_speed_arcadia = @move_speed
end
end
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
复制代码
[待机小动作脚本]
#==============================================================================
# ■ 待机动作系统(多种)
#------------------------------------------------------------------------------
# 企图改为随机的动态小动作...也就是更多的小动作...但尚未实现(原因:缺少素材)
# By 星子,whbm(修改随机动作)
#==============================================================================
class Game_Character
attr_accessor :time
attr_accessor :step_anime_in
#..........................................................................
attr_accessor :old_character
#..........................................................................
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
alias old_ini initialize
def initialize
old_ini
@old_character = ""
@time = 0
@step_anime_in = 0
end
TIME_LIMIT = 2 # 抓耳挠腮前的等待时间 (好象也不是帧…不知道是什么单位了)
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
def update
if self.is_a?(Game_Player)# or @event.name.split(/,/)[0]=="我军"
if @time == TIME_LIMIT
temp_rand = rand(2) + 1
@character_name = @old_character + "_W" + temp_rand.to_s
@step_anime_in = 1
if not @step_anime_must_off
@step_anime = true
end
@time = TIME_LIMIT + 1
elsif @time < TIME_LIMIT
@step_anime_in = 0
if not @step_anime_must_on
@step_anime = false
end
end
if moving? or @move_route_forcing or $game_system.map_interpreter.running?
@time = 0
@character_name = @old_character
end
if $game_temp.message_window_showing
if not @step_anime_must_on
@step_anime = false
end
end
unless moving?
@time += 1 if @time < TIME_LIMIT
end
end
# 跳跃中、移动中、停止中的分支
if jumping?
update_jump
elsif moving?
update_move
else
update_stop
end
# 动画计数超过最大值的情况下
# ※最大值等于基本值减去移动速度 * 1 的值
if @anime_count > 16 * 4/$c3_每一步的帧数 - @move_speed # * 2#18 - @move_speed * 2
# 停止动画为 OFF 并且在停止中的情况下
if not @step_anime and @stop_count > 0
# 还原为原来的图形
@pattern = @original_pattern
# 停止动画为 ON 并且在移动中的情况下
else
# 更新图形
@pattern = (@pattern + 1) % $c3_每一步的帧数
end
# 清除动画计数
@anime_count = 0
end
# 等待中的情况下
if @wait_count > 0
# 减少等待计数
@wait_count -= 1
return
end
# 强制移动路线的场合
if @move_route_forcing
# 自定义移动
move_type_custom
return
end
# 事件执行待机中并且为锁定状态的情况下
if @starting or lock?
# 不做规则移动
return
end
# 如果停止计数超过了一定的值(由移动频度算出)
if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
# 移动类型分支
case @move_type
when 1 # 随机
move_type_random
when 2 # 接近
move_type_toward_player
when 3 # 自定义
move_type_custom
end
end
end
end
class Game_Event < Game_Character
attr_reader :event
end
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
# 同伴人数为 0 的情况下
if $game_party.actors.size == 0
# 清除角色的文件名及对像
#......................................................................
@old_character = ""
#......................................................................
@character_name = ""
@character_hue = 0
# 分支结束
return
end
# 获取带头的角色
actor = $game_party.actors[0]
# 设置角色的文件名及对像
@character_name = actor.character_name
#........................................................................
@old_character = actor.character_name
#........................................................................
@character_hue = actor.character_hue
# 初始化不透明度和合成方式子
@opacity = 255
@blend_type = 0
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1