#encoding:utf-8
#==============================================================================
# ■ 人物动态待机
# (仅支持png中只包含一个角色的图)
#
# 这是一个《多帧4_8方图,4_8向行走》插件的配套插件
# 会自动寻找待机图片(依据行走图文件)
# 当有待机图片时,在角色等待时会播放待机图片动画
# 当没有待机图片时,在角色等待时不会播放任何动画,也不会提示。
#
#------------------------------------------------------------------------------
#使用说明:
# 必须与行走图文件配套,注意校准
# 行走图文件名:name@D#DD%DD.png 其中%DD可选
# 待机图文件名:name_w@D#DD%DD.png 其中%DD可选
#
# 以上name必须相同(大小写也要相同),D或DD的值可以不同。
#
# 待机图文件放在characters文件夹下。
#
# ★停下多久播放待机动画,在代码开头设置
#
# 配套插件须放在主插件《多帧4_8方图,4_8向行走》之下
#------------------------------------------------------------------------------
# by rmav (有任何问题请毫无顾忌滴提出)
#
# v1.09 配合跑步插件
#==============================================================================
$imported ||= {}
$imported[:rmav_walk_wait] = 20140204.1
module Rmav
#--------待机选项---------#
Opt_wait={
#停下多久播放待机动画,默认为90约1.5秒左右
stop_count: 15, #推荐取值范围12至120
play_speed: 0.5, #播放速度,越大越快
#要开启事件人物待机动画,建议把上面stop_count设小,如5或15
all_wait_anime: true, #是否开启所有人物待机效果(含事件人物)
}
end
class Game_CharacterBase
alias_method :init_org_charBase_rmav_2, :initialize
def initialize
init_org_charBase_rmav_2
init_waiting
end
def init_waiting(wait_enable=Rmav::Opt_wait[:all_wait_anime])
@wait_enable=wait_enable
@waiting_name=nil
@character_name_org=nil
@waiting_name=nil
end
def waiting?
@wait_enable&&stopping? &&!@character_name.empty? \
&& @stop_count>Rmav::Opt_wait[:stop_count]
end
def waiting_play?
waiting? && @waiting_name
end
#--------------------------------------------------------------------------
# ● 更新等待、跑步、行走
#--------------------------------------------------------------------------
def update_charName_wrw
if waiting?
if @waiting_name
@character_name=@waiting_name
elsif @waiting_name==nil
@waiting_name=false
@character_name_org||=@character_name
@character_name_org=~%r{(.+)\@\d{1,2}\#\d{1,2}}
if $1
@waiting_name=Rmav::CharNames[:wait][$1]
if @waiting_name
@character_name=@waiting_name
else
@waiting_name=false
end
end
end
elsif $imported[:rmav_walk_run]&&running_play?
@character_name=@running_name
else
@character_name=@character_name_org if @character_name_org
end
end
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
alias_method :update_org_charBase_rmav_2,:update
def update
update_charName_wrw
update_org_charBase_rmav_2
end
#--------------------------------------------------------------------------
# ● 更新步行/踏步动画
#--------------------------------------------------------------------------
alias_method :update_animation_org_rmav_2,:update_animation
def update_animation
if waiting_play?
@wait_anime=true
else
@wait_anime=false
end
update_animation_org_rmav_2
end
#--------------------------------------------------------------------------
# ● 更新动画计数
#--------------------------------------------------------------------------
alias_method :update_anime_count_org_rmav_2,:update_anime_count
def update_anime_count
if @wait_anime
@anime_count += Rmav::Opt_wait[:play_speed]
return
end
update_anime_count_org_rmav_2
end
#--------------------------------------------------------------------------
# ● 更新动画图案
#--------------------------------------------------------------------------
alias_method :update_anime_pattern_org_rmav_2,:update_anime_pattern
def update_anime_pattern
if @wait_anime
@pattern = (@pattern + 1) % (@fmt_sign?@fmt_sign[1]:4)
return
end
update_anime_pattern_org_rmav_2
end
end
class Game_Player
alias_method :initialize_org_rmav_2,:initialize
def initialize
initialize_org_rmav_2
@wait_enable=true
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias_method :refresh_org_rmav_2,:refresh
def refresh
init_waiting(true)
refresh_org_rmav_2
end
end
class Game_Follower
alias_method :follower_initialize_org_rmav_2, :initialize
def initialize(member_index, preceding_character)
follower_initialize_org_rmav_2(member_index, preceding_character)
@wait_enable=true
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias_method :refresh_org_rmav_2,:refresh
def refresh
init_waiting(true)
refresh_org_rmav_2
end
end
class Game_Event
#--------------------------------------------------------------------------
# ● 清除事件页的设置
#--------------------------------------------------------------------------
alias_method :clear_page_settings_org_rmav_2,:clear_page_settings
def clear_page_settings
clear_page_settings_org_rmav_2
init_waiting
end
#--------------------------------------------------------------------------
# ● 设置事件页的设置
#--------------------------------------------------------------------------
alias_method :setup_page_settings_org_rmav_2,:setup_page_settings
def setup_page_settings
setup_page_settings_org_rmav_2
init_waiting
end
end