#==============================================================================
# ■ RMXP
#--------------------------------------------------------------------------
# 作者:刺夜之枪
#==============================================================================
#==============================================================================
# ■ Sprite_Character
#==============================================================================
class Sprite_Character < RPG::Sprite
#--------------------------------------------------------------------------
# ● 参数设置 正太君改
#--------------------------------------------------------------------------
# 设置图片文件名.不想要底图就让底图完全透明或设置为 ""
# 图片放在 Graphics/Pictures/ 文件夹下
TeamTagFileName = "大脚"#团队组标记文件名
# 设置显示友军标记的开关号
TeamTagBar = 10
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
#别名hzhj旧初始化使标记初始化
alias hzhj_old_init_make_tag initialize
#定义初始化参数
def initialize(*args)
#@团队标记精灵= 精灵新建(参数[0])
@team_tag_sprite = Sprite.new(args[0])
@tags_sprites = [] #@标记精灵=[]
#@标记精灵 << @团队标记精灵
@tags_sprites << @team_tag_sprite
# @团队标记精灵位图 = RPG::缓存。图片(团队标记文件名)
@team_tag_sprite.bitmap = RPG::Cache.picture(TeamTagFileName)
#队旗精灵=精灵.new(参数[0])
@team_flag_sprite = Sprite.new(args[0])
# 团队旗帜精灵位图= RPG::缓存。图片("队标")
@team_flag_sprite.bitmap = RPG::Cache.picture("队标")
# @team_flag_sprite.bitmap = RPG::Cache.icon(Figter_data::CHARACTER_NAME)
# if args == [2]RPG::Cache.icon(Figter_data::CHARACTER_NAME[@selected_units[@index][i]])
# @team_flag_sprite.bitmap = RPG::Cache.Icons("E_HeavyInfantry")
# end
#@标记精灵 << @团队旗帜精灵
@tags_sprites << @team_flag_sprite
@count = 0 #@计数=0
@wait_count = 0#@等待计数=0
#hzhj旧初始化使用标记(*参数)
hzhj_old_init_make_tag(*args)
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
#别名hzhj旧的布置使标记布置除非$@
alias hzhj_old_dispose_make_tag dispose unless $@
def dispose#定义布置
# @标记精灵。每个{|精灵|精灵.布置}
@tags_sprites.each{|sprite|sprite.dispose}
#hzhj旧的布置使用标志
hzhj_old_dispose_make_tag
end
#--------------------------------------------------------------------------
# ● 获取事件 HP # 正太君改
#--------------------------------------------------------------------------
def event_hp#定义事件hp
return 0 if @character.nil?#如果@角色,则返回0。无
#如果@角色,则返回0。是a吗?(游戏玩家)
return 0 if @character.is_a?(Game_Player)
#返回@角色hp
return @character.hp
end
=begin
#--------------------------------------------------------------------------
# ● 判断是否显示队友标记
#--------------------------------------------------------------------------
def show_team_tag?
#under construct
return false if @character.is_a?(Game_Player)
return false if $scene.group_lisenter == nil
selected = $scene.group_lisenter.include?(@character.group)
return $game_switches[TeamTagBar]
else
return false
end
end
=end
#--------------------------------------------------------------------------
# ● 判断是否显示队长旗子
#--------------------------------------------------------------------------
def show_team_flag?#是否定义显示队长旗子?
#如果@角色.是_a?则返回假的?(游戏玩家)
return false if @character.is_a?(Game_Player)
#如果@角色.是_a?则返回假的?(EFS英雄)
return false if @character.is_a?(EFS_Hero)
#如果$场景可以用的队组 == 无 则返回假的
return false if $scene.group_lisenter == nil
#挑选选着=$场景。小组成员。包括?(@角色队组)
selected = $scene.group_lisenter.include?(@character.group)
# cp队长=场景。小组[@角色.队组-1].队长
cp = $scene.team_groups[@character.group-1].captain
if cp == @character #如果队长==@角色
#返回$游戏开关[TeamTagBar]
return $game_switches[TeamTagBar]
else#否则
return false#返回假的
end
# cp = $scene.team_groups[@character.group-1].captain
# if cp == @character
# bitmap = nil
# @character.id= Figter_data::data_id
# case @character.id
# 队长 id 为 2 显示 E_HeavyInfantry
# when 2 then bitmap = RPG::Cache.Icons("E_HeavyInfantry")
# end
# @team_flag_sprite.bitmap = bitmap if bitmap
# end
end
#--------------------------------------------------------------------------
# ● 判断是否显示队友标记
#--------------------------------------------------------------------------
def show_team_tag?#是否定义显示队友标记?
#under construct
#如果@角色.是_a?则返回假的?(游戏玩家)
return false if @character.is_a?(Game_Player)
#如果$场景可以用的队组 == 无 则返回假的
return false if $scene.group_lisenter == nil
#挑选选着=$场景。小组成员。包括?(@角色队组)
@selected = $scene.group_lisenter.include?(@character.group)
#如果事件hp>0且@角色.团队==1且@角色已删除
if event_hp > 0 and @character.team == 1 and !@character.removed # and selected
##返回$游戏开关[TeamTagBar]
return $game_switches[TeamTagBar]
else#否者
return false#返回假的
end
end
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
#别名hzhj旧更新使标记更新
alias hzhj_old_update_make_tag update
def update#定义更新
hzhj_old_update_make_tag#hzhj旧更新标记
#如果@角色.is_a?(EFS_Battler)和@角色.is_a?(游戏玩家)
if !@character.is_a?(EFS_Battler) and !@character.is_a?(Game_Player)
#@标记精灵。每个{|sprite|sprite.可见=false}
@tags_sprites.each{|sprite|sprite.visible = false}
else#否则
if show_team_flag?#如果展示队旗?
# @队旗精灵。可见=真
@team_flag_sprite.visible = true
else #否则
@team_flag_sprite.visible = false # @队旗精灵。可见=假
end
# 刷新 标记 可见状态
if show_team_tag?
# @队旗精灵。可见=真
@team_tag_sprite.visible = true
if @selected#如果@选定
# @标记精灵。每个do|精灵|
@tags_sprites.each do |sprite|
sprite.ox = sprite.bitmap.width / 2
sprite.oy = sprite.bitmap.height
sprite.z = z
# 精灵.x = @角色。屏幕_x
#sprite.x = @character.screen_x
sprite.x = @character.screen_x
#blink_on
# 函数键=@角色。是使用权限
shif = @character.is_cal
if @character.ammo>0#如果@角色。弹药>0
#精灵y=函数键?@角色屏幕y-92:@角色。屏幕y-60
sprite.y = shif ? @character.screen_y-92 : @character.screen_y-60
else#否者
#精灵y=函数键?@角色屏幕y-82:@角色。屏幕y-50
sprite.y = shif ? @character.screen_y-82 : @character.screen_y-50
end
sprite.opacity = 255#精灵不透明度=255
end#loop
else
# 刷新坐标
@tags_sprites.each do |sprite|#@标记精灵。每个do|sprite|
#sprite.zoom_y = 1
sprite.ox = sprite.bitmap.width / 2
sprite.oy = sprite.bitmap.height
sprite.z = z
# 精灵.x = @角色。屏幕_x
sprite.x = @character.screen_x
#blink_on
# 函数键=@角色。是使用权限
shif = @character.is_cal
if @character.ammo>0#如果@角色。弹药>0\
#精灵y=函数键?@角色屏幕y-92:@角色。屏幕y-60
sprite.y = shif ? @character.screen_y-92 : @character.screen_y-60
else#否者
#精灵y=函数键?@角色屏幕y-82:@角色。屏幕y-50
sprite.y = shif ? @character.screen_y-82 : @character.screen_y-50
end
sprite.opacity = 125#精灵不透明度=125
end#loop
end #if include
else#否者
#@标记精灵。每个{|sprite|sprite.可见度=假的}
@tags_sprites.each{|sprite|sprite.visible = false}
end
end
end
end