赞 | 0 |
VIP | 0 |
好人卡 | 1 |
积分 | 20 |
经验 | 26220 |
最后登录 | 2023-12-6 |
在线时间 | 758 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 2044
- 在线时间
- 758 小时
- 注册时间
- 2013-7-3
- 帖子
- 127
|
4楼
楼主 |
发表于 2013-7-7 13:02:10
|
只看该作者
#==============================================================================
# ■ 待机动作系统(多种)
#------------------------------------------------------------------------------
# 企图改为随机的动态小动作...也就是更多的小动作...但尚未实现(原因:缺少素材)
# 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 |
|