Project1

标题: 战斗显名字,但是名字在法术之上,怎么修改? [打印本页]

作者: hgfor    时间: 2009-2-1 04:47
标题: 战斗显名字,但是名字在法术之上,怎么修改?


   在战斗中显示敌人的名字,但是名字会显示在法术之上,怎么修改在法术之下?




  脚本:
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================
  4. # ■ エネミーHP&SP(ver 0.98)

  5. # □ カスタマイズポイント
  6. #==============================================================================
  7. module PLAN_HPSP_DRAW
  8. FONT_NAME         = ["宋体"]    # フォント
  9. FONT_SIZE         =  16                               # フォントサイズ
  10. FONT_BOLD         = true                              # 太字
  11. FONT_ITALIC       = false                              # 斜体

  12. DRAW_NAME         = true                              # 名前の描画
  13. DRAW_HP           = false                              # HP の描画
  14. DRAW_SP           = false                              # SP の描画

  15. DRAW_WIDTH        =  80                               # 描画幅
  16. DRAW_HEIGHT       = 3 * 32                            # 描画高さ
  17. DRAW_SPACE        =  0                                # 行間
  18. DRAW_Y            =  54                               # Y 座標修正値
  19. end

  20. #==============================================================================
  21. # ■ Sprite_Battler
  22. #==============================================================================

  23. class Sprite_Battler < RPG::Sprite
  24. #--------------------------------------------------------------------------
  25. # ● オブジェクト初期化
  26. #--------------------------------------------------------------------------
  27. alias plan_enemy_hpsp_draw_initialize initialize
  28. def initialize(viewport, battler = nil)
  29.    # 元のメソッドに戻す
  30.    plan_enemy_hpsp_draw_initialize(viewport, battler)
  31.    
  32.    # エネミーの場合
  33.    if @battler.is_a?(Game_Enemy)
  34.      width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32
  35.      height = PLAN_HPSP_DRAW::DRAW_HEIGHT + 32
  36.      
  37.      x = @battler.screen_x - width / 2
  38.      y = @battler.screen_y - height + 32 + PLAN_HPSP_DRAW::DRAW_Y
  39.      
  40.      @enemy_hpsp_window = Window_Base.new(x, y, width, height)
  41.      @enemy_hpsp_window.contents = Bitmap.new(width - 32, height - 32)
  42.      @enemy_hpsp_window.contents.font.color = Color.new(2, 112, 16, 255)
  43.      @enemy_hpsp_window.contents.font.name = PLAN_HPSP_DRAW::FONT_NAME
  44.      @enemy_hpsp_window.contents.font.size = PLAN_HPSP_DRAW::FONT_SIZE
  45.      @enemy_hpsp_window.contents.font.bold = PLAN_HPSP_DRAW::FONT_BOLD
  46.      @enemy_hpsp_window.contents.font.italic = PLAN_HPSP_DRAW::FONT_ITALIC
  47.      
  48.      y = 0
  49.      @old_enemy_hpsp = []
  50.      one_line = ((PLAN_HPSP_DRAW::FONT_SIZE * 100 / 28) * 32) / 100
  51.    
  52.      if PLAN_HPSP_DRAW::DRAW_NAME
  53.        @enemy_hpsp_window.draw_actor_name(@battler, -15, y, width - 32)
  54.        y += one_line + PLAN_HPSP_DRAW::DRAW_SPACE
  55.        @old_enemy_hpsp.push(@battler.name)
  56.      end

  57.      @enemy_hpsp_window.opacity = 255
  58.      @enemy_hpsp_window.contents_opacity = 255
  59.      @enemy_hpsp_window.z = - 1
  60.      
  61.    end
  62. end
  63. #--------------------------------------------------------------------------
  64. # ● 解放
  65. #--------------------------------------------------------------------------
  66. alias plan_enemy_hpsp_draw_dispose dispose
  67. def dispose
  68.    # エネミーの場合
  69.    if @battler.is_a?(Game_Enemy)
  70.      @enemy_hpsp_window.dispose
  71.    end
  72.    # 元のメソッドに戻す
  73.    plan_enemy_hpsp_draw_dispose
  74. end
  75. #--------------------------------------------------------------------------
  76. # ● フレーム更新
  77. #--------------------------------------------------------------------------
  78. alias plan_enemy_hpsp_draw_update update
  79. def update
  80.    # 元のメソッドに戻す
  81.    plan_enemy_hpsp_draw_update
  82.    # エネミーの場合
  83.    if @battler.is_a?(Game_Enemy)
  84.      @enemy_hpsp_window.visible = @battler_visible
  85.    # スプライトの座標を設定
  86.      width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32
  87.      @enemy_hpsp_window.x = self.x - width / 2
  88.      
  89.      @now_enemy_hpsp = []
  90.      
  91.      if PLAN_HPSP_DRAW::DRAW_NAME
  92.        @now_enemy_hpsp.push(@battler.name)
  93.      end
  94.    
  95.      if @old_enemy_hpsp != @now_enemy_hpsp and $game_temp.enemy_hpsp_refresh
  96.        @old_enemy_hpsp = @now_enemy_hpsp
  97.        @enemy_hpsp_window.contents.clear
  98.        y = 0
  99.        width = PLAN_HPSP_DRAW::DRAW_WIDTH + 32
  100.        one_line = ((PLAN_HPSP_DRAW::FONT_SIZE * 100 / 28) * 32) / 100
  101.      
  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.        Graphics.frame_reset
  107.      end
  108.      
  109.    end
  110. end

  111. end



  112. #==============================================================================
  113. # ■ Window_Base
  114. #==============================================================================
  115. class Window_Base < Window
  116. #--------------------------------------------------------------------------
  117. # ● 名前の描画
  118. #--------------------------------------------------------------------------
  119. def draw_actor_name(actor, x, y, width = 120, align = 0)
  120.   if $scene.is_a?(Scene_Battle)
  121.     align = 1
  122.     self.contents.font.color = Color.new(43, 212, 43, 255)
  123.   else
  124.     self.contents.font.color = normal_color
  125.   end
  126.   self.contents.draw_text(x, y, width, 32, actor.name, align)
  127. end
  128. end
复制代码




[LINE]1,#dddddd[/LINE]此贴于 2009-2-3 7:31:20 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 后知后觉    时间: 2009-2-1 07:50
这样感觉也蛮不错的啊{/hx}
真的想改的话……
先调整Z,不管用就换Viewport

游戏系统做了多少了呢!?等着玩呢{/hx}
作者: goahead    时间: 2009-2-1 17:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: hgfor    时间: 2009-2-1 18:09

这样修改会出错, 调整z坐标 -1 以下 名字就会看不见了.

以下引用goahead于2009-2-1 9:18:00的发言:

试试这样:
@enemy_hpsp_window.z = - 1这句改成@enemy_hpsp_window.viewport = viewport


作者: goahead    时间: 2009-2-2 01:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: hgfor    时间: 2009-2-2 03:16
进入战斗提示

undefined method 'viewport=' for #<window_base:0x335df20>

没有定义?
作者: redant    时间: 2009-2-2 18:28
http://rpg.blue/viewthread.php?tid=113281

类似这种效果 是吧? [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: hgfor    时间: 2009-2-2 18:57
  按照那个修改也没效果啊, 名字的Z坐标 总是比 法术图 和 伤害数值 更高.

  在哪里修改让名字的Z坐标比它们低?
作者: redant    时间: 2009-2-2 19:50
效果就是在法术的下面吧

法术伤害和名字好像不太一样啊
恩 做个工程来看下吧
作者: goahead    时间: 2009-2-3 01:07
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1