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

Project1

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

[已经过期] 请教下战斗时敌人显示名字的问题

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
293 小时
注册时间
2010-7-21
帖子
574
跳转到指定楼层
1
发表于 2011-1-21 19:33:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 【紫雨】 于 2011-1-21 19:39 编辑

关于战斗敌人显示脚本时,名字总是覆盖在身上如:

我要的效果是:把名字显示在图片下面
                                                       会的帮下!谢谢


【紫雨】于2011-1-21 19:40补充以下内容:
忘记脚本代码了!
不好意思!
  1. #==============================================================================
  2. module PLAN_HPSP_DRAW
  3.   FONT_NAME         = ["宋体"]    # フォント
  4.   FONT_SIZE         =  16                               # フォントサイズ
  5.   FONT_BOLD         = true                              # 太字
  6.   FONT_ITALIC       = false #true                              # 斜体

  7.   DRAW_NAME         = true                              # 名前の描画
  8.   DRAW_HP           = false                             # HP の描画
  9.   DRAW_SP           = false                              # SP の描画

  10.   DRAW_WIDTH        = 80                              # 描画幅
  11.   DRAW_HEIGHT       = 3 * 32                            # 描画高さ
  12.   DRAW_SPACE        = 0                              # 行間
  13.   DRAW_Y            = 24                               # Y 座標修正値
  14. end


  15. #==============================================================================
  16. # ■ Sprite_Battler
  17. #==============================================================================

  18. class Sprite_Battler < RPG::Sprite
  19.   #--------------------------------------------------------------------------
  20.   # ● オブジェクト初期化
  21.   #--------------------------------------------------------------------------
  22.   alias plan_enemy_hpsp_draw_initialize initialize
  23.   def initialize(viewport, battler = nil)
  24.     # 元のメソッドに戻す
  25.     plan_enemy_hpsp_draw_initialize(viewport, battler)
  26.     # エネミーの場合
  27.     if @battler.is_a?(Game_Enemy)
  28.       width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32
  29.       height = PLAN_HPSP_DRAW::DRAW_HEIGHT + 32
  30.       x = @battler.screen_x - width / 2
  31.       y = @battler.screen_y - height + 32 + PLAN_HPSP_DRAW::DRAW_Y
  32.       @enemy_hpsp_window = Window_Base.new(x, y, width, height)
  33.       @enemy_hpsp_window.contents = Bitmap.new(width - 32, height - 32)
  34.       @enemy_hpsp_window.contents.font.name = PLAN_HPSP_DRAW::FONT_NAME
  35.       @enemy_hpsp_window.contents.font.size = PLAN_HPSP_DRAW::FONT_SIZE
  36.       @enemy_hpsp_window.contents.font.bold = PLAN_HPSP_DRAW::FONT_BOLD
  37.       @enemy_hpsp_window.contents.font.italic = PLAN_HPSP_DRAW::FONT_ITALIC
  38.       y = 0
  39.       @old_enemy_hpsp = []
  40.       one_line = ((PLAN_HPSP_DRAW::FONT_SIZE * 100 / 28) * 32) / 100
  41.       if PLAN_HPSP_DRAW::DRAW_NAME
  42.         @enemy_hpsp_window.draw_actor_name(@battler, 0, y, width - 32)
  43.         y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE
  44.         @old_enemy_hpsp.push(@battler.name)
  45.       end
  46.       if PLAN_HPSP_DRAW::DRAW_HP
  47.         @enemy_hpsp_window.draw_actor_hp(@battler, 0, y, width - 32)
  48.         y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE
  49.         @old_enemy_hpsp.push(@battler.hp)
  50.       end
  51.       if PLAN_HPSP_DRAW::DRAW_SP
  52.         @enemy_hpsp_window.draw_actor_sp(@battler, 0, y, width - 32)
  53.         @old_enemy_hpsp.push(@battler.sp)
  54.       end
  55.       @enemy_hpsp_window.opacity = 0
  56.       @enemy_hpsp_window.contents_opacity = 0
  57.       @enemy_hpsp_window.z = -2
  58.     end
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 解放
  62.   #--------------------------------------------------------------------------
  63.   alias plan_enemy_hpsp_draw_dispose dispose
  64.   def dispose
  65.     # エネミーの場合
  66.     if @battler.is_a?(Game_Enemy)
  67.       @enemy_hpsp_window.dispose
  68.     end
  69.     # 元のメソッドに戻す
  70.     plan_enemy_hpsp_draw_dispose
  71.   end
  72.   #--------------------------------------------------------------------------
  73.   # ● フレーム更新
  74.   #--------------------------------------------------------------------------
  75.   alias plan_enemy_hpsp_draw_update update
  76.   def update
  77.     # 元のメソッドに戻す
  78.     plan_enemy_hpsp_draw_update
  79.     # エネミーの場合
  80.     if @battler.is_a?(Game_Enemy)
  81.       @enemy_hpsp_window.visible = @battler_visible
  82.     # スプライトの座標を設定
  83.       width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32
  84.       @enemy_hpsp_window.x = self.x - width / 2 - 410
  85.       @enemy_hpsp_window.y = self.y - 133
  86.       @now_enemy_hpsp = []
  87.       if PLAN_HPSP_DRAW::DRAW_NAME
  88.         @now_enemy_hpsp.push(@battler.name)
  89.       end
  90.       if PLAN_HPSP_DRAW::DRAW_HP
  91.         @now_enemy_hpsp.push(@battler.hp)
  92.       end
  93.       if PLAN_HPSP_DRAW::DRAW_SP
  94.         @now_enemy_hpsp.push(@battler.sp)
  95.       end
  96.       if @old_enemy_hpsp != @now_enemy_hpsp and $game_temp.enemy_hpsp_refresh
  97.         @old_enemy_hpsp = @now_enemy_hpsp
  98.         @enemy_hpsp_window.contents.clear
  99.         y = 0
  100.         width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32
  101.         one_line = ((PLAN_HPSP_DRAW::FONT_SIZE * 100 / 28) * 32) / 100
  102.         if PLAN_HPSP_DRAW::DRAW_NAME
  103.           @enemy_hpsp_window.draw_actor_name(@battler, 0, y, width - 32)
  104.           y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE
  105.         end
  106.         if PLAN_HPSP_DRAW::DRAW_HP
  107.           @enemy_hpsp_window.draw_actor_hp(@battler, 0, y, width - 32)
  108.           y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE
  109.         end
  110.         if PLAN_HPSP_DRAW::DRAW_SP
  111.           @enemy_hpsp_window.draw_actor_sp(@battler, 0, y, width - 32)
  112.         end
  113.         Graphics.frame_reset
  114.       end
  115.     end
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● visible の設定
  119.   #--------------------------------------------------------------------------
  120.   if !method_defined?("plan_enemy_hpsp_draw_visible=")
  121.     alias plan_enemy_hpsp_draw_visible= visible=
  122.   end
  123.   def visible=(bool)
  124.     # エネミーの場合
  125.     if @battler.is_a?(Game_Enemy)
  126.       @enemy_hpsp_window.visible = bool
  127.     end
  128.     # 元のメソッドに戻す
  129.     self.plan_enemy_hpsp_draw_visible=(bool)
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● 不透明度の設定
  133.   #--------------------------------------------------------------------------
  134.   if !method_defined?("plan_enemy_hpsp_draw_opacity=")
  135.     alias plan_enemy_hpsp_draw_opacity= opacity=
  136.   end
  137.   def opacity=(n)
  138.     # 元のメソッドに戻す
  139.     self.plan_enemy_hpsp_draw_opacity=(n)
  140.     # エネミーの場合
  141.     if @battler.is_a?(Game_Enemy)
  142.       @enemy_hpsp_window.contents_opacity = n
  143.     end
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ● ダメージ
  147.   #--------------------------------------------------------------------------
  148.   def damage(value, critical)
  149.     super(value, critical)
  150.     bitmap = @_damage_sprite.bitmap
  151.     @_damage_sprite.dispose
  152.     @_damage_sprite = ::Sprite.new(Viewport.new(0, 0, 640, 480))
  153.     @_damage_sprite.bitmap = bitmap
  154.     @_damage_sprite.ox = 80
  155.     @_damage_sprite.oy = 20
  156.     @_damage_sprite.x = self.x
  157.     @_damage_sprite.y = self.y - self.oy / 2
  158.     @_damage_sprite.viewport.z = self.viewport.z + 1
  159.     @_damage_sprite.z = 3000
  160.     @_damage_duration = 40
  161.   end
  162.   #--------------------------------------------------------------------------
  163.   # ● ダメージ解放
  164.   #--------------------------------------------------------------------------
  165.   def dispose_damage
  166.     if @_damage_sprite != nil
  167.       @_damage_sprite.viewport.dispose
  168.     end
  169.     super
  170.   end
  171. end
  172. #==============================================================================
  173. # ■ Game_Temp
  174. #==============================================================================

  175. class Game_Temp
  176.   #--------------------------------------------------------------------------
  177.   # ● 公開インスタンス変数
  178.   #--------------------------------------------------------------------------
  179.   attr_accessor :enemy_hpsp_refresh
  180.   #--------------------------------------------------------------------------
  181.   # ● オブジェクト初期化
  182.   #--------------------------------------------------------------------------
  183.   alias plan_enemy_hpsp_draw_initialize initialize
  184.   def initialize
  185.     # 元のメソッドに戻す
  186.     plan_enemy_hpsp_draw_initialize
  187.     @enemy_hpsp_refresh = false
  188.   end
  189. end

  190. #==============================================================================
  191. # ■ Scene_Battle
  192. #==============================================================================

  193. class Scene_Battle
  194.   #--------------------------------------------------------------------------
  195.   # ● プレバトルフェーズ開始 (エネミー名+アルファベット用)
  196.   #--------------------------------------------------------------------------
  197.   alias plan_enemy_hpsp_draw_start_phase1 start_phase1
  198.   def start_phase1
  199.     $game_temp.enemy_hpsp_refresh = true
  200.     # 元のメソッドに戻す
  201.     plan_enemy_hpsp_draw_start_phase1
  202.   end
  203.   #--------------------------------------------------------------------------
  204.   # ● パーティコマンドフェーズ開始 (エネミー名+アルファベット用)
  205.   #--------------------------------------------------------------------------
  206.   alias plan_enemy_hpsp_draw_start_phase2 start_phase2
  207.   def start_phase2
  208.     $game_temp.enemy_hpsp_refresh = false
  209.     # 元のメソッドに戻す
  210.     plan_enemy_hpsp_draw_start_phase2
  211.   end
  212.   #--------------------------------------------------------------------------
  213.   # ● フレーム更新 (メインフェーズ ステップ 5 : ダメージ表示)
  214.   #--------------------------------------------------------------------------
  215.   alias plan_enemy_hpsp_draw_update_phase4_step5 update_phase4_step5
  216.   def update_phase4_step5
  217.     # 元のメソッドに戻す
  218.     plan_enemy_hpsp_draw_update_phase4_step5
  219.     $game_temp.enemy_hpsp_refresh = true
  220.   end
  221.   #--------------------------------------------------------------------------
  222.   # ● フレーム更新 (メインフェーズ ステップ 6 : リフレッシュ)
  223.   #--------------------------------------------------------------------------
  224.   alias plan_enemy_hpsp_draw_update_phase4_step6 update_phase4_step6
  225.   def update_phase4_step6
  226.     # 元のメソッドに戻す
  227.     plan_enemy_hpsp_draw_update_phase4_step6
  228.     $game_temp.enemy_hpsp_refresh = false
  229.   end
  230. end
  231. #==============================================================================
  232. # ■ Window_Base
  233. #==============================================================================
  234. class Window_Base < Window
  235.   #--------------------------------------------------------------------------
  236.   # ● 名前の描画
  237.   #--------------------------------------------------------------------------
  238.   def draw_actor_name(actor, x, y, width = 120, align = 0)
  239.     self.contents.font.color = Color.new(0, 220, 0)
  240.     align = 1 if $scene.is_a?(Scene_Battle)
  241.     self.contents.draw_text(x, y, width, 32, actor.name, align)
  242.   end
  243. end
复制代码

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2011-1-14
帖子
262
2
发表于 2011-1-21 20:27:03 | 只看该作者
  1. #==============================================================================

  2. # ■ Window_Base

  3. #==============================================================================

  4. class Window_Base < Window

  5.   #--------------------------------------------------------------------------

  6.   # ● 名前の描画

  7.   #--------------------------------------------------------------------------

  8.   def draw_actor_name(actor, x, y, width = 120, align = 0)

  9.     self.contents.font.color = Color.new(0, 220, 0)

  10.     align = 1 if $scene.is_a?(Scene_Battle)

  11.     self.contents.draw_text(x, y, width, 32, actor.name, align)

  12.   end

  13. end
复制代码
self.contents.draw_text(x, y, width, 32, actor.name, align)
这里的……
或者另两处
@enemy_hpsp_window.draw_actor_name(@battler, 0, y, width - 32)

把上面红字的部分改掉应该可以吧……

感觉上这脚本有些地方似乎行不通的样子……

点评

貌似不行的样子?  发表于 2011-1-22 08:56
话说,熟人变少了,还是马甲变多了?
我将乘风而去,万丈深渊。新生命阻止我的冲动……好吧,我再活一年,但是……这是最后的一年……
……强烈支持国产游戏……

遵冥冥之意,然果有奇效!
我好像玩够了,该走了……

强烈反对国产脑残动画片在电视台播出……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
293 小时
注册时间
2010-7-21
帖子
574
3
 楼主| 发表于 2011-1-22 17:57:39 | 只看该作者
救命啊··    来些脚本份子吧。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2011-1-14
帖子
262
4
发表于 2011-1-22 21:13:48 | 只看该作者
昨天没注意看,其实在这里改应该就可以了……
DRAW_Y            = 24                               # Y 座標修正値

如果还不行,我建议你上工程,你那脚本用在默认战斗模式里和横版战斗模式,都只是在角色HP上方的正中央……与你图上不符……


赤夜玄魔于2011-1-22 21:17补充以下内容:
另外,我这边测试后……
代码复制
  1. class Window_Base < Window
  2.   #--------------------------------------------------------------------------
  3.   # ● 名前の描画
  4.   #--------------------------------------------------------------------------
  5.   def draw_actor_name(actor, x, y, width = 120, align = 0)
  6.     self.contents.font.color = Color.new(0, 220, 0)
  7.     align = 1 if $scene.is_a?(Scene_Battle)
  8.     self.contents.draw_text(x, y, width, 32, actor.name, align)
  9.   end
  10. end
把上面的[quote]self.contents.draw_text(x, y, width, 32, actor.name, align)[/quote]改成[quote]self.contents.draw_text(x, y+48, width, 32, actor.name, align)[/quote]确实移位了,LZ确认脚本没发错?

点评

发原帖给你看下  发表于 2011-1-23 10:08
话说,熟人变少了,还是马甲变多了?
我将乘风而去,万丈深渊。新生命阻止我的冲动……好吧,我再活一年,但是……这是最后的一年……
……强烈支持国产游戏……

遵冥冥之意,然果有奇效!
我好像玩够了,该走了……

强烈反对国产脑残动画片在电视台播出……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
28 小时
注册时间
2011-1-14
帖子
262
5
发表于 2011-1-23 18:10:54 | 只看该作者
天啊……这脚本似乎就是改下颜色而已吧?就像是日本那边的RM默认脚本一样……


赤夜玄魔于2011-1-24 12:23补充以下内容:
你那截图确认是你工程里的吗?我晕了。能不能说清楚?

点评

晕啊,那您有没有显示敌人名字脚本?可发个给我?  发表于 2011-1-23 18:40
话说,熟人变少了,还是马甲变多了?
我将乘风而去,万丈深渊。新生命阻止我的冲动……好吧,我再活一年,但是……这是最后的一年……
……强烈支持国产游戏……

遵冥冥之意,然果有奇效!
我好像玩够了,该走了……

强烈反对国产脑残动画片在电视台播出……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-20 17:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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