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

Project1

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

[已经解决] [已经解决]为什么这个战斗中显示敌人血条的脚本为何出错

[复制链接]

Lv2.观梦者

梦石
0
星屑
918
在线时间
126 小时
注册时间
2017-1-30
帖子
122
跳转到指定楼层
1
发表于 2017-3-18 21:43:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 匿名RM爱好者 于 2017-3-18 23:15 编辑

测试时此脚本第45行出错

#==============================================================================
# F08 - 战斗敌人显示血条 - By芙蕾娅
#------------------------------------------------------------------------------
#  ★ - 新增  ☆ - 修改  ■ - 删除 ● - 无变更
#==============================================================================
module Freya
  # 隐藏HP的文本
  HideGaugeText = "Hide_Gauge"
  # 血条颜色
  EnemyHPGaugeColor1 = Color.new(64,128,96)
  EnemyHPGaugeColor2 = Color.new(96,192,160)
end
#==============================================================================
# ■ Sprite_Battler_HP
#------------------------------------------------------------------------------
#  显示战斗者的生命在战斗者的精灵下面。
#==============================================================================
class Sprite_Battler_HP < Sprite
  #--------------------------------------------------------------------------
  # ● 初始化对象
  #--------------------------------------------------------------------------
  def initialize(viewport,battler)
    super(viewport)
    @battler = battler
    @last_hp = 0
    create_bitmap
    update
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    self.bitmap.dispose
    super
  end
  #--------------------------------------------------------------------------
  # ● 生成位图
  #--------------------------------------------------------------------------
  def create_bitmap
    @last_hp = @battler.hp
    bw = 96
    bh = 6
    self.bitmap = Bitmap.new(bw, bh)
    self.bitmap.fill_rect(0, 0, bw, bh, Color.new(32,32,64))
    if Freya::Gauge_Type.nil? or Freya::Gauge_Type == 0
      hp = ((bw) * @battler.hp_rate).to_i
      self.bitmap.gradient_fill_rect(0, 0, hp, bh, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
    elsif Freya::Gauge_Type == 1
      hp = ((width - 2) * @battler.hp_rate).to_i
      self.bitmap.gradient_fill_rect(1, 1, hp, bh - 2, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
    elsif Freya::Gauge_Type == 2
      hp = ((width) * @battler.hp_rate).to_i
      self.bitmap.gradient_fill_rect(0, 0, hp / 2, bh, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
      self.bitmap.gradient_fill_rect(hp / 2, 0, hp / 2, bh, Freya::EnemyHPGaugeColor2, Freya::EnemyHPGaugeColor1)
    elsif Freya::Gauge_Type == 3
      hp = ((width - 2) * @battler.hp_rate).to_i
      self.bitmap.gradient_fill_rect(1, 1, hp / 2, bh - 2, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
      self.bitmap.gradient_fill_rect((hp / 2) + 1, 1, hp / 2, bh - 2, Freya::EnemyHPGaugeColor2, Freya::EnemyHPGaugeColor1)
    end
  end
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    super
    unless self.bitmap.nil?
      self.x = @battler.screen_x - self.width / 2
      self.y = @battler.screen_y
      create_bitmap if @last_hp != @battler.hp
      hide = $data_enemies[@battler.enemy_id].note.include?(Freya::HideGaugeText)
      if @battler.hp == 0 or hide
        self.opacity = 0
      elsif @battler.hp > 0 && !hide
        self.opacity = 255
      end
    end
  end
end

#==============================================================================
# ■ Sprite_Battler
#------------------------------------------------------------------------------
#  显示战斗者的精灵。根据 Game_Battler 类的实例自动变化。
#==============================================================================
class Sprite_Battler < Sprite_Base
  #--------------------------------------------------------------------------
  # ☆ 初始化对象
  #--------------------------------------------------------------------------
  alias initialize_freya_enemy_hp initialize
  def initialize(viewport, battler = nil)
    initialize_freya_enemy_hp(viewport, battler)
    if @battler.is_a?(Game_Enemy)
      @hp_gauge = Sprite_Battler_HP.new(viewport, battler)
    end
  end
  #--------------------------------------------------------------------------
  # ☆ 释放
  #--------------------------------------------------------------------------
  alias dispose_freya_enemy_hp dispose
  def dispose
    dispose_freya_enemy_hp
    unless @hp_gauge.nil?
      @hp_gauge.dispose
    end
  end
  #--------------------------------------------------------------------------
  # ☆ 更新画面
  #--------------------------------------------------------------------------
  alias update_freya_enemy_hp update
  def update
    update_freya_enemy_hp
    @hp_gauge.update unless @hp_gauge.nil?
  end
end

Lv4.逐梦者

梦石
10
星屑
7046
在线时间
644 小时
注册时间
2017-1-9
帖子
583

我没有哭开拓者

2
发表于 2017-3-18 22:03:25 | 只看该作者
这个我也在用,你删了你的复制我的过去看看?
如果还是45行出错那可能是脚本冲突了吧……?我瞎猜的,你就当没看见好了
  1. #==============================================================================
  2. # F08 - 战斗敌人显示血条 - By芙蕾娅
  3. #------------------------------------------------------------------------------
  4. #  ★ - 新增  ☆ - 修改  ■ - 删除 ● - 无变更
  5. #==============================================================================
  6. module Freya
  7.   # 隐藏HP的文本
  8.   HideGaugeText = "Hide_Gauge"
  9.   # 血条颜色
  10.   EnemyHPGaugeColor1 = Color.new(64,128,96)
  11.   EnemyHPGaugeColor2 = Color.new(96,192,160)
  12. end
  13. #==============================================================================
  14. # ■ Sprite_Battler_HP
  15. #------------------------------------------------------------------------------
  16. #  显示战斗者的生命在战斗者的精灵下面。
  17. #==============================================================================
  18. class Sprite_Battler_HP < Sprite
  19.   #--------------------------------------------------------------------------
  20.   # ● 初始化对象
  21.   #--------------------------------------------------------------------------
  22.   def initialize(viewport,battler)
  23.     super(viewport)
  24.     [url=home.php?mod=space&uid=133701]@battler[/url] = battler
  25.     @last_hp = 0
  26.     create_bitmap
  27.     update
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 释放
  31.   #--------------------------------------------------------------------------
  32.   def dispose
  33.     self.bitmap.dispose
  34.     super
  35.   end
  36.   #--------------------------------------------------------------------------
  37.   # ● 生成位图
  38.   #--------------------------------------------------------------------------
  39.   def create_bitmap
  40.     @last_hp = @battler.hp
  41.     bw = 96
  42.     bh = 6
  43.     self.bitmap = Bitmap.new(bw, bh)
  44.     self.bitmap.fill_rect(0, 0, bw, bh, Color.new(32,32,64))
  45.     if Freya::Gauge_Type.nil? or Freya::Gauge_Type == 0
  46.       hp = ((bw) * @battler.hp_rate).to_i
  47.       self.bitmap.gradient_fill_rect(0, 0, hp, bh, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
  48.     elsif Freya::Gauge_Type == 1
  49.       hp = ((width - 2) * @battler.hp_rate).to_i
  50.       self.bitmap.gradient_fill_rect(1, 1, hp, bh - 2, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
  51.     elsif Freya::Gauge_Type == 2
  52.       hp = ((width) * @battler.hp_rate).to_i
  53.       self.bitmap.gradient_fill_rect(0, 0, hp / 2, bh, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
  54.       self.bitmap.gradient_fill_rect(hp / 2, 0, hp / 2, bh, Freya::EnemyHPGaugeColor2, Freya::EnemyHPGaugeColor1)
  55.     elsif Freya::Gauge_Type == 3
  56.       hp = ((width - 2) * @battler.hp_rate).to_i
  57.       self.bitmap.gradient_fill_rect(1, 1, hp / 2, bh - 2, Freya::EnemyHPGaugeColor1, Freya::EnemyHPGaugeColor2)
  58.       self.bitmap.gradient_fill_rect((hp / 2) + 1, 1, hp / 2, bh - 2, Freya::EnemyHPGaugeColor2, Freya::EnemyHPGaugeColor1)
  59.     end
  60.   end
  61.   #--------------------------------------------------------------------------
  62.   # ● 更新画面
  63.   #--------------------------------------------------------------------------
  64.   def update
  65.     super
  66.     unless self.bitmap.nil?
  67.       self.x = @battler.screen_x - self.width / 2
  68.       self.y = @battler.screen_y
  69.       create_bitmap if @last_hp != @battler.hp
  70.       hide = $data_enemies[@battler.enemy_id].note.include?(Freya::HideGaugeText)
  71.       if @battler.hp == 0 or hide
  72.         self.opacity = 0
  73.       elsif @battler.hp > 0 && !hide
  74.         self.opacity = 255
  75.       end
  76.     end
  77.   end
  78. end

  79. #==============================================================================
  80. # ■ Sprite_Battler
  81. #------------------------------------------------------------------------------
  82. #  显示战斗者的精灵。根据 Game_Battler 类的实例自动变化。
  83. #==============================================================================
  84. class Sprite_Battler < Sprite_Base
  85.   #--------------------------------------------------------------------------
  86.   # ☆ 初始化对象
  87.   #--------------------------------------------------------------------------
  88.   alias initialize_freya_enemy_hp initialize
  89.   def initialize(viewport, battler = nil)
  90.     initialize_freya_enemy_hp(viewport, battler)
  91.     if @battler.is_a?(Game_Enemy)
  92.       @hp_gauge = Sprite_Battler_HP.new(viewport, battler)
  93.     end
  94.   end
  95.   #--------------------------------------------------------------------------
  96.   # ☆ 释放
  97.   #--------------------------------------------------------------------------
  98.   alias dispose_freya_enemy_hp dispose
  99.   def dispose
  100.     dispose_freya_enemy_hp
  101.     unless @hp_gauge.nil?
  102.       @hp_gauge.dispose
  103.     end
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ☆ 更新画面
  107.   #--------------------------------------------------------------------------
  108.   alias update_freya_enemy_hp update
  109.   def update
  110.     update_freya_enemy_hp
  111.     @hp_gauge.update unless @hp_gauge.nil?
  112.   end
  113. end
复制代码
这个B天天摸鱼,快点来个谁把他从被窝里拖出来
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
918
在线时间
126 小时
注册时间
2017-1-30
帖子
122
3
 楼主| 发表于 2017-3-18 22:09:54 | 只看该作者
世界第一中二 发表于 2017-3-18 22:03
这个我也在用,你删了你的复制我的过去看看?
如果还是45行出错那可能是脚本冲突了吧……?我瞎猜 ...

诶嘿~用了你的后成了24行出错

点评

仔细看看24行,有排版问题,你把多余的东西山区试试。  发表于 2017-3-21 19:16
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
10
星屑
7046
在线时间
644 小时
注册时间
2017-1-9
帖子
583

我没有哭开拓者

4
发表于 2017-3-18 22:20:22 | 只看该作者
迷,这个我也不懂了=。=
一般来说直接复制上去不会有错的哎,而且同样的脚本为啥会错不同的两处= =
坐等其他dalao{:2_251:}
这个B天天摸鱼,快点来个谁把他从被窝里拖出来
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
918
在线时间
126 小时
注册时间
2017-1-30
帖子
122
5
 楼主| 发表于 2017-3-18 22:21:35 | 只看该作者
世界第一中二 发表于 2017-3-18 22:20
迷,这个我也不懂了=。=
一般来说直接复制上去不会有错的哎,而且同样的脚本为啥会错不同的两处= =
坐等其 ...

挤一挤,一起坐等{:2_273:}
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
918
在线时间
126 小时
注册时间
2017-1-30
帖子
122
6
 楼主| 发表于 2017-3-18 22:30:55 | 只看该作者
世界第一中二 发表于 2017-3-18 22:20
迷,这个我也不懂了=。=
一般来说直接复制上去不会有错的哎,而且同样的脚本为啥会错不同的两处= =
坐等其 ...

挤一挤,一起坐等{:2_273:}
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
918
在线时间
126 小时
注册时间
2017-1-30
帖子
122
7
 楼主| 发表于 2017-3-18 22:39:16 | 只看该作者
世界第一中二 发表于 2017-3-18 22:20
迷,这个我也不懂了=。=
一般来说直接复制上去不会有错的哎,而且同样的脚本为啥会错不同的两处= =
坐等其 ...

挤一挤,一起坐等{:2_273:}
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
33397
在线时间
6551 小时
注册时间
2012-5-26
帖子
3178

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

8
发表于 2017-3-18 22:49:11 | 只看该作者
本帖最后由 百里_飞柳 于 2017-3-18 22:50 编辑

………………
24行
[url= home.php?mod=space&uid=133701 ]@ battler [//url] = battler
被论坛的自动检测at给荼毒了
改成
@battler = battler
回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
292 小时
注册时间
2009-10-30
帖子
24
9
发表于 2017-3-18 22:55:46 | 只看该作者
本帖最后由 graygod 于 2017-3-18 22:59 编辑

你沒做工課   問的要不是很基本
要不然就是你無法駕馭的腳本

最重要的是叫你講清楚你也不說明
勸你  先別用腳本  也不要做遊戲
去把說明   看清楚在說

本篇的答案


https://rpg.blue/thread-379898-1-1.html?_dsign=828aa40a


原因   原作者本來就少寫   Gauge_Type

在另外腳本才補上  如連結中的   另一腳本  就有寫 Gauge_Type = 3

评分

参与人数 1星屑 +250 收起 理由
RaidenInfinity + 250 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
918
在线时间
126 小时
注册时间
2017-1-30
帖子
122
10
 楼主| 发表于 2017-3-18 23:15:15 | 只看该作者
graygod 发表于 2017-3-18 22:55
你沒做工課   問的要不是很基本
要不然就是你無法駕馭的腳本

噢,那我就再翻一遍汉化F1
还有就是谢谢了,问题已解决{:2_249:}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-24 14:06

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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