设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1490|回复: 3
打印 上一主题 下一主题

[已经过期] Npc头上显示姓名得姓名文字如何赋Z值

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
70 小时
注册时间
2014-10-11
帖子
50
跳转到指定楼层
1
发表于 2015-2-12 21:49:38 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 风晴生 于 2015-2-12 22:39 编辑

RT 我用了头上显示姓名的脚本  出现了这种情况

  大家看 上面 "士兵" 两个字把路易斯的身体遮住了  这样是不是很奇怪呢?

我希望 姓名和行走图一样 有一个 z 坐标 为所处屏幕的z坐标  

我记得以前实现过 后来又忘了该怎么办了 忘大神们赐教。

附上脚本
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Game_Event
  3. #------------------------------------------------------------------------------
  4. #  处理事件的类。条件判断、事件页的切换、并行处理、执行事件功能
  5. # 在 Game_Map 类的内部使用。
  6. #==============================================================================
  7. class Game_Event < Game_Character
  8. #——————————————————————————————————————
  9. # 用来返回名称
  10. #——————————————————————————————————————
  11. def name
  12.    return @event.name
  13. end   
  14. def name=(newname)
  15.    @event.name = newname
  16. end
  17. end
  18.  
  19. class Sprite_Character < RPG::Sprite
  20.   #--------------------------------------------------------------------------
  21. attr_accessor :character                # 角色
  22.  
  23.   def initialize(viewport, character = nil)
  24.     name = character.name
  25.    # @character = character
  26.     super(viewport)
  27.     @showsprite = Sprite.new
  28.     @showsprite.bitmap = Bitmap.new(100, 48)
  29.     @showsprite.bitmap.font.name = (["微软雅黑"])
  30.     @showsprite.bitmap.font.size = 16
  31.     @showsprite.bitmap.font.bold = true
  32.     @character = character
  33.    @actor = $game_party.actors[0]
  34.         if not  @character.is_a?(Game_Player)
  35.     @arpg_hp = character.arpg_hp
  36.     @arpg_hpmax = character.arpg_hpmax
  37.   else
  38.     @arpg_hp = @actor.hp
  39.     @arpg_hpmax = @actor.maxhp
  40.  
  41.     @arpg_sp = @actor.sp
  42.     @arpg_spmax = @actor.maxsp
  43.     end
  44.     @evname = name
  45.  
  46.     if @character.is_a?(Game_Player)
  47.       @old_hp = @actor.hp
  48.       else
  49.       @old_hp = character.arpg_hp# @arpg_hp#@actor.hp
  50.       end
  51.       @old_sp = @actor.sp
  52.       @old_level = @actor.level
  53.       draw_character_bar
  54. #   end
  55.     @showsprite.x = self.x-76
  56.     @showsprite.y = self.y-self.oy-45
  57.     @showsprite.z = self.y
  58.     @showsprite.visible = true#@character.is_a?(Game_Player) ? (@actor.dead? ?
  59.                         #false : true) : false
  60.     update
  61.   end
  62.  
  63.   def draw_character_bar
  64.     @character = character
  65.         if not  @character.is_a?(Game_Player)
  66.     @arpg_hp = character.arpg_hp
  67.     @arpg_hpmax = character.arpg_hpmax
  68.   else
  69.     @arpg_hp = @actor.hp
  70.     @arpg_hpmax = @actor.maxhp
  71.  
  72.     @arpg_sp = @actor.sp
  73.     @arpg_spmax = @actor.maxsp
  74.     end
  75.  
  76.     @showsprite = Sprite.new
  77.     @showsprite.bitmap = Bitmap.new(150, 148)# 100 48
  78.     @showsprite.bitmap.font.name = (["微软雅黑"])
  79.     @showsprite.bitmap.font.size = 17  
  80.     @showsprite.bitmap.font.bold = true
  81.     #self.z = @showsprite.z
  82.      if not  @character.is_a?(Game_Player)
  83.     txt =  @evname#@actor.name
  84.   else
  85.     txt =  @actor.name
  86.     end
  87. #if $game_switches[9] == false
  88. #   txt = ""
  89. #   end
  90.     if txt != "" and @evname[0, 2]!="EV" and @evname[0, 2]!="Cs"
  91.    #   txt += " (Lv " + @actor.level.to_s + ")"   
  92.    #  if not  @character.is_a?(Game_Player) and character.arpg_hp > 0
  93.          txt = character.name #+ " L.v.5"  #$data_enemies[@event.id].name
  94.    #    else
  95.      #    txt = ""
  96.     #   end
  97.       @showsprite.bitmap.font.color.set(255, 255, 255)
  98.    if character.name.split(/,/)[1] != nil   #name.split(/,/)[0]
  99.      case character.name.split(/,/)[1]   # g绿 y黄 r红
  100.      when "g"
  101.         @showsprite.bitmap.font.color.set(50, 255, 50)
  102.       when "y"
  103.         @showsprite.bitmap.font.color.set(255, 255, 50)     
  104.        when "r"
  105.         @showsprite.bitmap.font.color.set(255, 0, 0)        
  106.       end
  107.      end
  108.       @showsprite.bitmap.draw_text2(-5, 85, 160, 36, txt.split(/,/)[0], 1)
  109.      # @sprite.bitmap.draw_text2(-5, 85, 160, 36, txt.split(/,/)[0], 1)
  110.     end
  111.  
  112.  
  113.    if @arpg_hp > 0   #and 1==2# @wait_count > 0an
  114.      if    @character.is_a?(Game_Player) #and 1==2
  115.     @showsprite.bitmap.fill_rect(55, 30, 42, 1, Color.new(0, 0, 0,230))
  116.     @showsprite.bitmap.fill_rect(55, 30, 1, 5, Color.new(0, 0, 0,230))
  117.     @showsprite.bitmap.fill_rect(55, 34, 42, 1, Color.new(0, 0, 0,230))
  118.     @showsprite.bitmap.fill_rect(96, 30, 1, 5, Color.new(0, 0, 0,230))
  119.     w = @arpg_hp  * 4000 / (@arpg_hpmax) / 100
  120.     @showsprite.bitmap.fill_rect(56, 31, 40, 3, Color.new(0, 0, 0))
  121.     @showsprite.bitmap.fill_rect(56, 31, w, 3, Color.new(0, 255, 20))
  122.               else
  123.                 if @character.Jzjs > 0 #$game_variables[50] == @character.id  and @character.Jzjs > 0
  124.     @showsprite.bitmap.fill_rect(55, 30, 42, 1, Color.new(0, 0, 0,230))
  125.     @showsprite.bitmap.fill_rect(55, 30, 1, 5, Color.new(0, 0, 0,230))
  126.     @showsprite.bitmap.fill_rect(55, 34, 42, 1, Color.new(0, 0, 0,230))
  127.     @showsprite.bitmap.fill_rect(96, 30, 1, 5, Color.new(0, 0, 0,230))      
  128.                   w = @arpg_hp  * 4000 / (@arpg_hpmax) / 100
  129.                   @showsprite.bitmap.fill_rect(56, 31, 40, 3, Color.new(0, 0, 0))      
  130.                   @showsprite.bitmap.fill_rect(56, 31, w, 3, Color.new(0, 255, 20))     
  131.                  # txt =  @character.name
  132.                  #  @showsprite.bitmap.font.color.set(0, 255, 0)
  133.                 #@showsprite.bitmap.draw_text(40, 10, 160, 12, txt, 1)        
  134.                   end
  135.           end
  136.             #    @showsprite.bitmap.font.color.set(255, 255, 255)
  137.             #    @showsprite.bitmap.draw_text(0, 30, 160, 12, "123", 1)
  138.       if   @character.is_a?(Game_Player) #and 1==
  139.        w = @arpg_sp  * 4000 / (@arpg_spmax) / 100
  140.     @showsprite.bitmap.fill_rect(55, 36, 42, 1, Color.new(0, 0, 0,230))
  141.     @showsprite.bitmap.fill_rect(55, 36, 1, 5, Color.new(0, 0, 0,230))
  142.     @showsprite.bitmap.fill_rect(55, 40, 42, 1, Color.new(0, 0, 0,230))
  143.     @showsprite.bitmap.fill_rect(96, 36, 1, 5, Color.new(0, 0, 0,230))
  144.     @showsprite.bitmap.fill_rect(56, 37, w, 3, Color.new(20, 0, 255))
  145.     end
  146.   end
  147.   end
  148.   #--------------------------------------------------------------------------
  149.  
  150.   #--------------------------------------------------------------------------
  151.   def update
  152.     super
  153.     # 元件 ID、文件名、色相与现在的情况存在差异的情况下
  154.         @character = character
  155.         if not  @character.is_a?(Game_Player)
  156.          @arpg_hp = character.arpg_hp
  157.         @wait_count = character.wait_count
  158.           else
  159.        @arpg_hp = @actor.hp
  160.        @arpg_sp = @actor.sp
  161.         @wait_count = 1
  162.       end
  163.     if @tile_id != @character.tile_id or
  164.        @character_name != @character.character_name or
  165.        @character_hue != @character.character_hue
  166.       # 记忆元件 ID 与文件名、色相
  167.       @tile_id = @character.tile_id
  168.       @character_name = @character.character_name
  169.       @character_hue = @character.character_hue
  170.       # 元件 ID 为有效值的情况下
  171.       if @tile_id >= 384
  172.         self.bitmap = RPG::Cache.tile($game_map.tileset_name,
  173.           @tile_id, @character.character_hue)
  174.         self.src_rect.set(0, 0, 32, 32)
  175.         self.ox = 16
  176.         self.oy = 32
  177.       # 元件 ID 为无效值的情况下
  178.       else
  179.         self.bitmap = RPG::Cache.character(@character.character_name,
  180.           @character.character_hue)
  181.         @cw = bitmap.width / 4
  182.         @ch = bitmap.height / 4
  183.       if  @character_name.include?("one")
  184.         @cw = bitmap.width
  185.         @ch = bitmap.height
  186.         end
  187.         self.ox = @cw / 2
  188.         self.oy = @ch
  189.       end
  190.     end
  191.     # 设置可视状态
  192.     self.visible = (not @character.transparent)
  193.     # 图形是角色的情况下
  194.     if @tile_id == 0
  195.       # 设置传送目标的矩形
  196.       sx = @character.pattern * @cw
  197.       sy = (@character.direction - 2) / 2 * @ch
  198.       self.src_rect.set(sx, sy, @cw, @ch)
  199.     end
  200.   #  if @character.is_a?(Game_Player)
  201.      if  @old_hp != @arpg_hp  or ( @character.is_a?(Game_Player) and @old_sp != @arpg_sp)
  202.         @showsprite.dispose
  203.         @actor = $game_party.actors[0]
  204.         if not  @character.is_a?(Game_Player)
  205.     @arpg_hp = character.arpg_hp
  206.     @arpg_hpmax = character.arpg_hpmax
  207.   else
  208.     @arpg_hp = @actor.hp
  209.     @arpg_hpmax = @actor.maxhp
  210.   end
  211.         #@old_hp = @actor.hp
  212.         @old_sp = @actor.sp
  213.         @old_level = @actor.level
  214.         draw_character_bar
  215.        # update
  216.       end
  217. #  end
  218.     @showsprite.x = self.x-76
  219.     @showsprite.y = self.y-100
  220.    # if [email protected]_a?(Game_Player)
  221.       #  @showsprite.x = 350
  222.     #    @showsprite.y = 180
  223.     #  end
  224.        if @character.name[0, 2]!="EV"  #and @arpg_hp > 0 @evname
  225.    @showsprite.visible = true
  226.    #   if (not  @character.is_a?(Game_Player)) and @character.Jzjs <= 0#($game_variables[50] != @character.id)
  227.    #       @showsprite.visible = false   
  228.   #      end
  229. else
  230.    @showsprite.visible = false
  231.    end
  232.  
  233.   #  @showsprite.visible = true#@character.is_a?(Game_Player) ? (@actor.dead? ?
  234.                           #false : true) : false
  235.  
  236.     # 设置脚本的坐标
  237.     self.x = @character.screen_x
  238.     self.y = @character.screen_y
  239.     self.z = @character.screen_z(@ch)
  240.     # 设置不透明度、合成方式、茂密
  241.     self.opacity = @character.opacity
  242.     self.blend_type = @character.blend_type
  243.     self.bush_depth = @character.bush_depth
  244.     # 动画
  245.     if @character.animation_id != 0
  246.       animation = $data_animations[@character.animation_id]
  247.       animation(animation, true)
  248.       @character.animation_id = 0
  249.     end
  250.   end
  251. end
  252. #==============================================================================
  253. class Game_Player < Game_Character
  254. def name
  255.    return $game_party.actors[0].name# "afa"
  256. end
  257. end


Lv5.捕梦者

梦石
0
星屑
33488
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

2
发表于 2015-2-13 16:15:51 | 只看该作者
在 219 行后面加一句试试:
  1. @showsprite.z = self.y + 1
复制代码
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
70 小时
注册时间
2014-10-11
帖子
50
3
 楼主| 发表于 2015-2-13 17:59:27 | 只看该作者
芯☆淡茹水 发表于 2015-2-13 16:15
在 219 行后面加一句试试:

没用............
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33488
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

4
发表于 2015-2-13 18:59:19 | 只看该作者
那就改成:
  1. @showsprite.z = self.z
复制代码
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-27 11:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表