幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: 幻耶

[已解决] 这个ARPG血条脚本对游戏速度影响很大,有办法优化么?

[复制链接]

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-12-22 16:37:30 | 显示全部楼层
能不能告诉我哪个是39行?

我有个意见就是hp,mp可以做成实例变量 @hp @mp的。。干吗非要在事件的名字里面。。。

还有就是你写脚本写的太乱了。。。我建议你把基础学好了再说

你想告诉我哪个是39行吧。。。

编辑一下。。把39行变成红的字,蓝的字什么的,在反正就是能让人一下就能看出来这个是39行
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

40

主题

190

帖子

1635

积分

⑥精研

●~  ●~   ●

积分
1635
 楼主| 发表于 2009-12-23 10:05:57 | 显示全部楼层
终于上来了,就是这一行
    @sprite.x = self.x - 115
回复 支持 反对

使用道具 举报

40

主题

190

帖子

1635

积分

⑥精研

●~  ●~   ●

积分
1635
 楼主| 发表于 2009-12-23 10:09:36 | 显示全部楼层
if @character.name.include?("敌人"+/([1-20]+)/i+",")

这应该怎么写法?直接放进去好像不对啊

   if @character.name.include?("敌人"+/([1-20]+)/i+",")
       name = @character.name
       data = name.split(/,/)  #装载数据
       name = data
     if  @hp != data[1].to_i or @maxhp != data[2].to_i
       @hp = data[1].to_i
       @maxhp = data[2].to_i
       hp = HPSP血条长度/(data[2].to_f/data[1].to_f)
       if $game_switches[318] == true
         hp = 0
       end
       if @character.id > 0 && @character.id < 21
         @sprite.bitmap.clear
         @sprite.bitmap.fill_rect(100,100, hp, 2,  Color.new(255,  0, 51))
       end
     end
   end
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-12-23 12:02:09 | 显示全部楼层
20号以上的图片没有 @sprite.new。。。所以报错。。。

   if @character.name.include?("敌人"+/([1-20]+)/i+",")。。我刚才查书,我写错了。。。



       name = @character.name
       data = name.split(/,/)  #装载数据
       name = data
      if @character.name.include?("敌人")
        id = @character.name .delete("敌人").split(/,/)[0].to_i
   if id > 0 && id < 21
     if  @hp != data[1].to_i or @maxhp != data[2].to_i
       @hp = data[1].to_i
       @maxhp = data[2].to_i
       hp = HPSP血条长度/(data[2].to_f/data[1].to_f)
       if $game_switches[318] == true
         hp = 0
       end
       if @character.id > 0 && @character.id < 21 #and $game_variables[5] > 0
         @sprite = Sprite.new
         @sprite.bitmap = Bitmap.new(160, 220)
         @sprite.bitmap.clear
         @sprite.bitmap.fill_rect(100,100, hp, 2,  Color.new(255,  0, 51))
       end
     end
   end
    end
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-12-23 12:04:01 | 显示全部楼层
alias :update_hp_sp :update
  def update
    update_hp_sp
    @sprite.x = self.x - 115
    @sprite.y = self.y - 150
   
   if @character.name.include?("敌人20,")
       name = @character.name
       data = name.split(/,/)  #装载数据
       name = data
     if  @hp != data[1].to_i or @maxhp != data[2].to_i
       @hp = data[1].to_i
       @maxhp = data[2].to_i
       hp = HPSP血条长度/(data[2].to_f/data[1].to_f)
       if $game_switches[318] == true
         hp = 0
       end
       if @character.id > 0 && @character.id < 21 and $game_variables[5] > 0
    @sprite = Sprite.new
    @sprite.bitmap = Bitmap.new(160, 220)
         @sprite.bitmap.clear
         @sprite.bitmap.fill_rect(100,100, hp, 2,  Color.new(255,  0, 51))
       end
     end
   end

也按照上面的改。。。
    @sprite.x = self.x - 115
    @sprite.y = self.y - 150
放到 if 里面去
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

40

主题

190

帖子

1635

积分

⑥精研

●~  ●~   ●

积分
1635
 楼主| 发表于 2009-12-23 13:58:55 | 显示全部楼层
最后改成这样??还是出错了

class Game_Player < Game_Character
def name
  return $game_party.actors[0].name
end
end

# 添加上面,我就是为了做一个判断,只让主角显示HPSP,如果你是ARPG等都要显示 自己省略
class Sprite_Character < RPG::Sprite
  attr_accessor :character                # 角色
  
  def initialize(viewport, character = nil)
    super(viewport)
    @character = character
  
       name = @character.name
       data = name.split(/,/)  #装载数据
       name = data
    if @character.name.include?("敌人")
      id = @character.name .delete("敌人").split(/,/)[0].to_i
      if id > 0 && id < 21
        if  @hp != data[1].to_i or @maxhp != data[2].to_i
          @hp = data[1].to_i
          @maxhp = data[2].to_i
          hp = HPSP血条长度/(data[2].to_f/data[1].to_f)
          if $game_switches[318] == true
            hp = 0
          end
          if @character.id > 0 && @character.id < 21
            @sprite = Sprite.new
            @sprite.bitmap = Bitmap.new(160, 220)
            @sprite.bitmap.clear
            @sprite.bitmap.fill_rect(100,100, hp, 2,  Color.new(255,  0, 51))
          end
        end
      end
    end
end

    update
  end
  HPSP血条长度 = 30
   
  alias :update_hp_sp :update
  def update
    update_hp_sp
    @sprite.x = self.x - 115
    @sprite.y = self.y - 150
   
  alias :update_hp_sp :update
  def update
    update_hp_sp
   
   if @character.name.include?("敌人20,")
    @sprite.x = self.x - 115
    @sprite.y = self.y - 150
       name = @character.name
       data = name.split(/,/)  #装载数据
       name = data
     if  @hp != data[1].to_i or @maxhp != data[2].to_i
       @hp = data[1].to_i
       @maxhp = data[2].to_i
       hp = HPSP血条长度/(data[2].to_f/data[1].to_f)
       if $game_switches[318] == true
         hp = 0
       end
       if @character.id > 0 && @character.id < 21 and $game_variables[5] > 0
    @sprite = Sprite.new
    @sprite.bitmap = Bitmap.new(160, 220)
         @sprite.bitmap.clear
         @sprite.bitmap.fill_rect(100,100, hp, 2,  Color.new(255,  0, 51))
       end
     end
   end
   

end
end

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

40

主题

190

帖子

1635

积分

⑥精研

●~  ●~   ●

积分
1635
 楼主| 发表于 2009-12-23 14:00:49 | 显示全部楼层
41行是 update  
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-12-23 16:06:57 | 显示全部楼层
update怎么了?
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

40

主题

190

帖子

1635

积分

⑥精研

●~  ●~   ●

积分
1635
 楼主| 发表于 2009-12-23 16:39:14 | 显示全部楼层
就是说上面的脚本第41行出错了
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-12-23 16:47:29 | 显示全部楼层
删掉前面的end呢?。。。
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-15 00:31 , Processed in 0.024280 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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