| 赞 | 0  | 
 
| VIP | 0 | 
 
| 好人卡 | 0 | 
 
| 积分 | 1 | 
 
| 经验 | 3857 | 
 
| 最后登录 | 2016-9-13 | 
 
| 在线时间 | 70 小时 | 
 
 
 
 
 
Lv1.梦旅人 
	- 梦石
 - 0 
 
        - 星屑
 - 50 
 
        - 在线时间
 - 70 小时
 
        - 注册时间
 - 2014-10-11
 
        - 帖子
 - 50
 
 
 
 | 
	
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员  
 
x
 
 本帖最后由 风晴生 于 2015-2-12 22:39 编辑  
 
RT 我用了头上显示姓名的脚本  出现了这种情况 
 
 
  大家看 上面 "士兵" 两个字把路易斯的身体遮住了  这样是不是很奇怪呢? 
 
我希望 姓名和行走图一样 有一个 z 坐标 为所处屏幕的z坐标   
 
我记得以前实现过 后来又忘了该怎么办了 忘大神们赐教。 
 
附上脚本 
#==============================================================================  # ■ Game_Event  #------------------------------------------------------------------------------  #  处理事件的类。条件判断、事件页的切换、并行处理、执行事件功能  # 在 Game_Map 类的内部使用。  #==============================================================================  class Game_Event < Game_Character   #——————————————————————————————————————   # 用来返回名称   #——————————————————————————————————————   def name     return @event.name   end     def name=(newname)     @event.name = newname   end  end    class Sprite_Character < RPG::Sprite   #--------------------------------------------------------------------------  attr_accessor :character                # 角色      def initialize(viewport, character = nil)     name = character.name     # @character = character     super(viewport)     @showsprite = Sprite.new     @showsprite.bitmap = Bitmap.new(100, 48)     @showsprite.bitmap.font.name = (["微软雅黑"])     @showsprite.bitmap.font.size = 16      @showsprite.bitmap.font.bold = true     @character = character    @actor = $game_party.actors[0]         if not  @character.is_a?(Game_Player)     @arpg_hp = character.arpg_hp     @arpg_hpmax = character.arpg_hpmax   else     @arpg_hp = @actor.hp     @arpg_hpmax = @actor.maxhp       @arpg_sp = @actor.sp     @arpg_spmax = @actor.maxsp     end     @evname = name       if @character.is_a?(Game_Player)       @old_hp = @actor.hp       else       @old_hp = character.arpg_hp# @arpg_hp#@actor.hp       end       @old_sp = @actor.sp       @old_level = @actor.level       draw_character_bar  #   end     @showsprite.x = self.x-76     @showsprite.y = self.y-self.oy-45     @showsprite.z = self.y      @showsprite.visible = true#@character.is_a?(Game_Player) ? (@actor.dead? ?                          #false : true) : false     update   end     def draw_character_bar     @character = character         if not  @character.is_a?(Game_Player)     @arpg_hp = character.arpg_hp     @arpg_hpmax = character.arpg_hpmax   else     @arpg_hp = @actor.hp     @arpg_hpmax = @actor.maxhp       @arpg_sp = @actor.sp     @arpg_spmax = @actor.maxsp     end       @showsprite = Sprite.new     @showsprite.bitmap = Bitmap.new(150, 148)# 100 48     @showsprite.bitmap.font.name = (["微软雅黑"])     @showsprite.bitmap.font.size = 17       @showsprite.bitmap.font.bold = true     #self.z = @showsprite.z       if not  @character.is_a?(Game_Player)     txt =  @evname#@actor.name   else     txt =  @actor.name     end  #if $game_switches[9] == false  #   txt = ""  #   end     if txt != "" and @evname[0, 2]!="EV" and @evname[0, 2]!="Cs"    #   txt += " (Lv " + @actor.level.to_s + ")"        #  if not  @character.is_a?(Game_Player) and character.arpg_hp > 0          txt = character.name #+ " L.v.5"  #$data_enemies[@event.id].name    #    else      #    txt = ""     #   end       @showsprite.bitmap.font.color.set(255, 255, 255)    if character.name.split(/,/)[1] != nil   #name.split(/,/)[0]      case character.name.split(/,/)[1]   # g绿 y黄 r红      when "g"          @showsprite.bitmap.font.color.set(50, 255, 50)       when "y"          @showsprite.bitmap.font.color.set(255, 255, 50)             when "r"          @showsprite.bitmap.font.color.set(255, 0, 0)               end      end       @showsprite.bitmap.draw_text2(-5, 85, 160, 36, txt.split(/,/)[0], 1)      # @sprite.bitmap.draw_text2(-5, 85, 160, 36, txt.split(/,/)[0], 1)     end        if @arpg_hp > 0   #and 1==2# @wait_count > 0an      if    @character.is_a?(Game_Player) #and 1==2     @showsprite.bitmap.fill_rect(55, 30, 42, 1, Color.new(0, 0, 0,230))     @showsprite.bitmap.fill_rect(55, 30, 1, 5, Color.new(0, 0, 0,230))     @showsprite.bitmap.fill_rect(55, 34, 42, 1, Color.new(0, 0, 0,230))     @showsprite.bitmap.fill_rect(96, 30, 1, 5, Color.new(0, 0, 0,230))     w = @arpg_hp  * 4000 / (@arpg_hpmax) / 100      @showsprite.bitmap.fill_rect(56, 31, 40, 3, Color.new(0, 0, 0))     @showsprite.bitmap.fill_rect(56, 31, w, 3, Color.new(0, 255, 20))               else                 if @character.Jzjs > 0 #$game_variables[50] == @character.id  and @character.Jzjs > 0     @showsprite.bitmap.fill_rect(55, 30, 42, 1, Color.new(0, 0, 0,230))     @showsprite.bitmap.fill_rect(55, 30, 1, 5, Color.new(0, 0, 0,230))     @showsprite.bitmap.fill_rect(55, 34, 42, 1, Color.new(0, 0, 0,230))     @showsprite.bitmap.fill_rect(96, 30, 1, 5, Color.new(0, 0, 0,230))                          w = @arpg_hp  * 4000 / (@arpg_hpmax) / 100                    @showsprite.bitmap.fill_rect(56, 31, 40, 3, Color.new(0, 0, 0))                         @showsprite.bitmap.fill_rect(56, 31, w, 3, Color.new(0, 255, 20))                       # txt =  @character.name                  #  @showsprite.bitmap.font.color.set(0, 255, 0)                 #@showsprite.bitmap.draw_text(40, 10, 160, 12, txt, 1)                           end           end             #    @showsprite.bitmap.font.color.set(255, 255, 255)             #    @showsprite.bitmap.draw_text(0, 30, 160, 12, "123", 1)        if   @character.is_a?(Game_Player) #and 1==        w = @arpg_sp  * 4000 / (@arpg_spmax) / 100      @showsprite.bitmap.fill_rect(55, 36, 42, 1, Color.new(0, 0, 0,230))     @showsprite.bitmap.fill_rect(55, 36, 1, 5, Color.new(0, 0, 0,230))     @showsprite.bitmap.fill_rect(55, 40, 42, 1, Color.new(0, 0, 0,230))     @showsprite.bitmap.fill_rect(96, 36, 1, 5, Color.new(0, 0, 0,230))     @showsprite.bitmap.fill_rect(56, 37, w, 3, Color.new(20, 0, 255))     end   end   end   #--------------------------------------------------------------------------     #--------------------------------------------------------------------------   def update     super     # 元件 ID、文件名、色相与现在的情况存在差异的情况下         @character = character         if not  @character.is_a?(Game_Player)          @arpg_hp = character.arpg_hp         @wait_count = character.wait_count           else        @arpg_hp = @actor.hp        @arpg_sp = @actor.sp         @wait_count = 1       end     if @tile_id != @character.tile_id or        @character_name != @character.character_name or        @character_hue != @character.character_hue       # 记忆元件 ID 与文件名、色相       @tile_id = @character.tile_id       @character_name = @character.character_name       @character_hue = @character.character_hue       # 元件 ID 为有效值的情况下       if @tile_id >= 384         self.bitmap = RPG::Cache.tile($game_map.tileset_name,           @tile_id, @character.character_hue)         self.src_rect.set(0, 0, 32, 32)         self.ox = 16         self.oy = 32       # 元件 ID 为无效值的情况下       else         self.bitmap = RPG::Cache.character(@character.character_name,           @character.character_hue)         @cw = bitmap.width / 4         @ch = bitmap.height / 4       if  @character_name.include?("one")          @cw = bitmap.width          @ch = bitmap.height          end         self.ox = @cw / 2         self.oy = @ch       end     end     # 设置可视状态     self.visible = (not @character.transparent)     # 图形是角色的情况下     if @tile_id == 0       # 设置传送目标的矩形       sx = @character.pattern * @cw       sy = (@character.direction - 2) / 2 * @ch       self.src_rect.set(sx, sy, @cw, @ch)     end   #  if @character.is_a?(Game_Player)      if  @old_hp != @arpg_hp  or ( @character.is_a?(Game_Player) and @old_sp != @arpg_sp)         @showsprite.dispose         @actor = $game_party.actors[0]         if not  @character.is_a?(Game_Player)     @arpg_hp = character.arpg_hp     @arpg_hpmax = character.arpg_hpmax   else     @arpg_hp = @actor.hp     @arpg_hpmax = @actor.maxhp   end         #@old_hp = @actor.hp         @old_sp = @actor.sp         @old_level = @actor.level         draw_character_bar        # update       end  #  end     @showsprite.x = self.x-76     @showsprite.y = self.y-100       #  @showsprite.x = 350     #    @showsprite.y = 180     #  end        if @character.name[0, 2]!="EV"  #and @arpg_hp > 0 @evname    @showsprite.visible = true    #   if (not  @character.is_a?(Game_Player)) and @character.Jzjs <= 0#($game_variables[50] != @character.id)    #       @showsprite.visible = false       #      end  else    @showsprite.visible = false    end      #  @showsprite.visible = true#@character.is_a?(Game_Player) ? (@actor.dead? ?                            #false : true) : false       # 设置脚本的坐标     self.x = @character.screen_x     self.y = @character.screen_y     self.z = @character.screen_z(@ch)     # 设置不透明度、合成方式、茂密     self.opacity = @character.opacity     self.blend_type = @character.blend_type     self.bush_depth = @character.bush_depth     # 动画     if @character.animation_id != 0       animation = $data_animations[@character.animation_id]       animation(animation, true)       @character.animation_id = 0     end   end end #============================================================================== class Game_Player < Game_Character   def name     return $game_party.actors[0].name# "afa"   end  end 
 
 #==============================================================================   
# ■ Game_Event   
#------------------------------------------------------------------------------   
#  处理事件的类。条件判断、事件页的切换、并行处理、执行事件功能   
# 在 Game_Map 类的内部使用。   
#==============================================================================   
class Game_Event < Game_Character   
 #——————————————————————————————————————   
 # 用来返回名称   
 #——————————————————————————————————————   
 def name   
   return @event.name   
 end     
 def name=(newname)   
   @event.name = newname   
 end   
end   
   
class Sprite_Character < RPG::Sprite  
  #--------------------------------------------------------------------------  
 attr_accessor :character                # 角色   
   
  def initialize(viewport, character = nil)  
    name = character.name   
   # @character = character  
    super(viewport)  
    @showsprite = Sprite.new  
    @showsprite.bitmap = Bitmap.new(100, 48)  
    @showsprite.bitmap.font.name = (["微软雅黑"])  
    @showsprite.bitmap.font.size = 16   
    @showsprite.bitmap.font.bold = true  
    @character = character  
   @actor = $game_party.actors[0]  
        if not  @character.is_a?(Game_Player)  
    @arpg_hp = character.arpg_hp  
    @arpg_hpmax = character.arpg_hpmax  
  else  
    @arpg_hp = @actor.hp  
    @arpg_hpmax = @actor.maxhp  
   
    @arpg_sp = @actor.sp  
    @arpg_spmax = @actor.maxsp  
    end  
    @evname = name  
   
    if @character.is_a?(Game_Player)  
      @old_hp = @actor.hp  
      else  
      @old_hp = character.arpg_hp# @arpg_hp#@actor.hp  
      end  
      @old_sp = @actor.sp  
      @old_level = @actor.level  
      draw_character_bar  
 #   end  
    @showsprite.x = self.x-76  
    @showsprite.y = self.y-self.oy-45  
    @showsprite.z = self.y   
    @showsprite.visible = true#@character.is_a?(Game_Player) ? (@actor.dead? ?   
                        #false : true) : false  
    update  
  end  
   
  def draw_character_bar  
    @character = character  
        if not  @character.is_a?(Game_Player)  
    @arpg_hp = character.arpg_hp  
    @arpg_hpmax = character.arpg_hpmax  
  else  
    @arpg_hp = @actor.hp  
    @arpg_hpmax = @actor.maxhp  
   
    @arpg_sp = @actor.sp  
    @arpg_spmax = @actor.maxsp  
    end  
   
    @showsprite = Sprite.new  
    @showsprite.bitmap = Bitmap.new(150, 148)# 100 48  
    @showsprite.bitmap.font.name = (["微软雅黑"])  
    @showsprite.bitmap.font.size = 17    
    @showsprite.bitmap.font.bold = true  
    #self.z = @showsprite.z   
     if not  @character.is_a?(Game_Player)  
    txt =  @evname#@actor.name  
  else  
    txt =  @actor.name  
    end  
 #if $game_switches[9] == false  
 #   txt = ""  
 #   end  
    if txt != "" and @evname[0, 2]!="EV" and @evname[0, 2]!="Cs"  
   #   txt += " (Lv " + @actor.level.to_s + ")"      
   #  if not  @character.is_a?(Game_Player) and character.arpg_hp > 0  
         txt = character.name #+ " L.v.5"  #$data_enemies[@event.id].name  
   #    else  
     #    txt = ""  
    #   end  
      @showsprite.bitmap.font.color.set(255, 255, 255)  
   if character.name.split(/,/)[1] != nil   #name.split(/,/)[0]  
     case character.name.split(/,/)[1]   # g绿 y黄 r红  
     when "g"   
        @showsprite.bitmap.font.color.set(50, 255, 50)  
      when "y"   
        @showsprite.bitmap.font.color.set(255, 255, 50)       
       when "r"   
        @showsprite.bitmap.font.color.set(255, 0, 0)          
      end  
     end  
      @showsprite.bitmap.draw_text2(-5, 85, 160, 36, txt.split(/,/)[0], 1)  
     # @sprite.bitmap.draw_text2(-5, 85, 160, 36, txt.split(/,/)[0], 1)  
    end  
   
   
   if @arpg_hp > 0   #and 1==2# @wait_count > 0an  
     if    @character.is_a?(Game_Player) #and 1==2  
    @showsprite.bitmap.fill_rect(55, 30, 42, 1, Color.new(0, 0, 0,230))  
    @showsprite.bitmap.fill_rect(55, 30, 1, 5, Color.new(0, 0, 0,230))  
    @showsprite.bitmap.fill_rect(55, 34, 42, 1, Color.new(0, 0, 0,230))  
    @showsprite.bitmap.fill_rect(96, 30, 1, 5, Color.new(0, 0, 0,230))  
    w = @arpg_hp  * 4000 / (@arpg_hpmax) / 100   
    @showsprite.bitmap.fill_rect(56, 31, 40, 3, Color.new(0, 0, 0))  
    @showsprite.bitmap.fill_rect(56, 31, w, 3, Color.new(0, 255, 20))  
              else  
                if @character.Jzjs > 0 #$game_variables[50] == @character.id  and @character.Jzjs > 0  
    @showsprite.bitmap.fill_rect(55, 30, 42, 1, Color.new(0, 0, 0,230))  
    @showsprite.bitmap.fill_rect(55, 30, 1, 5, Color.new(0, 0, 0,230))  
    @showsprite.bitmap.fill_rect(55, 34, 42, 1, Color.new(0, 0, 0,230))  
    @showsprite.bitmap.fill_rect(96, 30, 1, 5, Color.new(0, 0, 0,230))         
                  w = @arpg_hp  * 4000 / (@arpg_hpmax) / 100   
                  @showsprite.bitmap.fill_rect(56, 31, 40, 3, Color.new(0, 0, 0))        
                  @showsprite.bitmap.fill_rect(56, 31, w, 3, Color.new(0, 255, 20))       
                 # txt =  @character.name  
                 #  @showsprite.bitmap.font.color.set(0, 255, 0)  
                #@showsprite.bitmap.draw_text(40, 10, 160, 12, txt, 1)          
                  end  
          end  
            #    @showsprite.bitmap.font.color.set(255, 255, 255)  
            #    @showsprite.bitmap.draw_text(0, 30, 160, 12, "123", 1)   
      if   @character.is_a?(Game_Player) #and 1==  
       w = @arpg_sp  * 4000 / (@arpg_spmax) / 100   
    @showsprite.bitmap.fill_rect(55, 36, 42, 1, Color.new(0, 0, 0,230))  
    @showsprite.bitmap.fill_rect(55, 36, 1, 5, Color.new(0, 0, 0,230))  
    @showsprite.bitmap.fill_rect(55, 40, 42, 1, Color.new(0, 0, 0,230))  
    @showsprite.bitmap.fill_rect(96, 36, 1, 5, Color.new(0, 0, 0,230))  
    @showsprite.bitmap.fill_rect(56, 37, w, 3, Color.new(20, 0, 255))  
    end  
  end  
  end  
  #--------------------------------------------------------------------------  
   
  #--------------------------------------------------------------------------  
  def update  
    super  
    # 元件 ID、文件名、色相与现在的情况存在差异的情况下  
        @character = character  
        if not  @character.is_a?(Game_Player)  
         @arpg_hp = character.arpg_hp  
        @wait_count = character.wait_count  
          else  
       @arpg_hp = @actor.hp  
       @arpg_sp = @actor.sp  
        @wait_count = 1  
      end  
    if @tile_id != @character.tile_id or  
       @character_name != @character.character_name or  
       @character_hue != @character.character_hue  
      # 记忆元件 ID 与文件名、色相  
      @tile_id = @character.tile_id  
      @character_name = @character.character_name  
      @character_hue = @character.character_hue  
      # 元件 ID 为有效值的情况下  
      if @tile_id >= 384  
        self.bitmap = RPG::Cache.tile($game_map.tileset_name,  
          @tile_id, @character.character_hue)  
        self.src_rect.set(0, 0, 32, 32)  
        self.ox = 16  
        self.oy = 32  
      # 元件 ID 为无效值的情况下  
      else  
        self.bitmap = RPG::Cache.character(@character.character_name,  
          @character.character_hue)  
        @cw = bitmap.width / 4  
        @ch = bitmap.height / 4  
      if  @character_name.include?("one")   
        @cw = bitmap.width   
        @ch = bitmap.height   
        end  
        self.ox = @cw / 2  
        self.oy = @ch  
      end  
    end  
    # 设置可视状态  
    self.visible = (not @character.transparent)  
    # 图形是角色的情况下  
    if @tile_id == 0  
      # 设置传送目标的矩形  
      sx = @character.pattern * @cw  
      sy = (@character.direction - 2) / 2 * @ch  
      self.src_rect.set(sx, sy, @cw, @ch)  
    end  
  #  if @character.is_a?(Game_Player)  
     if  @old_hp != @arpg_hp  or ( @character.is_a?(Game_Player) and @old_sp != @arpg_sp)  
        @showsprite.dispose  
        @actor = $game_party.actors[0]  
        if not  @character.is_a?(Game_Player)  
    @arpg_hp = character.arpg_hp  
    @arpg_hpmax = character.arpg_hpmax  
  else  
    @arpg_hp = @actor.hp  
    @arpg_hpmax = @actor.maxhp  
  end  
        #@old_hp = @actor.hp  
        @old_sp = @actor.sp  
        @old_level = @actor.level  
        draw_character_bar  
       # update  
      end  
 #  end  
    @showsprite.x = self.x-76  
    @showsprite.y = self.y-100  
 
      #  @showsprite.x = 350  
    #    @showsprite.y = 180  
    #  end  
       if @character.name[0, 2]!="EV"  #and @arpg_hp > 0 @evname  
   @showsprite.visible = true  
   #   if (not  @character.is_a?(Game_Player)) and @character.Jzjs <= 0#($game_variables[50] != @character.id)  
   #       @showsprite.visible = false      
  #      end  
 else  
   @showsprite.visible = false  
   end   
   
  #  @showsprite.visible = true#@character.is_a?(Game_Player) ? (@actor.dead? ?   
                          #false : true) : false  
   
    # 设置脚本的坐标  
    self.x = @character.screen_x  
    self.y = @character.screen_y  
    self.z = @character.screen_z(@ch)  
    # 设置不透明度、合成方式、茂密  
    self.opacity = @character.opacity  
    self.blend_type = @character.blend_type  
    self.bush_depth = @character.bush_depth  
    # 动画  
    if @character.animation_id != 0  
      animation = $data_animations[@character.animation_id]  
      animation(animation, true)  
      @character.animation_id = 0  
    end  
  end  
end  
#==============================================================================  
class Game_Player < Game_Character   
 def name   
   return $game_party.actors[0].name# "afa"   
 end   
end  
 
  
 
  |   
 
 
 
 |