幻想森林

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

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

[复制链接]

550

主题

9116

帖子

214748万

积分

超级版主

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

Rank: 8Rank: 8

积分
2147483647
发表于 2009-12-23 19:55:14 | 显示全部楼层
引用第58楼secondsen于2009-12-23 19:49发表的  :
那1号~20号都是什么开关?
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

40

主题

190

帖子

1635

积分

⑥精研

●~  ●~   ●

积分
1635
 楼主| 发表于 2009-12-23 19:59:21 | 显示全部楼层
是指1~20号事件?

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

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

Rank: 8Rank: 8

积分
2147483647
发表于 2009-12-23 20:22:42 | 显示全部楼层
if $game_switches[194+6*@character.id]  代替那些个开关
  1. class Game_Player < Game_Character
  2.   def name
  3.     return $game_party.actors[0].name
  4.   end
  5. end
  6. # 添加上面,我就是为了做一个判断,只让主角显示HPSP,如果你是ARPG等都要显示 自己省略
  7. class Sprite_Character < RPG::Sprite
  8.   attr_accessor :character                # 角色
  9.   HPSP血条长度 = 30
  10.   def initialize(viewport, character = nil)
  11.     super(viewport)
  12.     @character = character
  13.     if @character.name.include?("敌人")
  14.       id = @character.name.delete("敌人").split(/,/)[0].to_i
  15.       if id > 0 && id < 21
  16.         name = @character.name
  17.         data = name.split(/,/)  #装载数据
  18.         name = data
  19.         if  @hp != data[1].to_i or @maxhp != data[2].to_i
  20.           @hp = data[1].to_i
  21.           @maxhp = data[2].to_i
  22.           hp = HPSP血条长度/(data[2].to_f/data[1].to_f)
  23.           if @character.id > 0 && @character.id < 21
  24.             @sprite = Sprite.new
  25.             @sprite.bitmap = Bitmap.new(160, 220)
  26.             @sprite.bitmap.fill_rect(100,100, hp, 2,  Color.new(255,  0, 51))
  27.           end
  28.         end
  29.       end
  30.     end
  31.     update
  32.   end
  33.   alias :update_hp_sp :update
  34.   def update
  35.     update_hp_sp
  36.     if @character.name.include?("敌人")
  37.       id = @character.name.delete("敌人").split(/,/)[0].to_i
  38.       if $game_switches[194+6*id]
  39.         @sprite.opacity = 0
  40.         return
  41.       end
  42.       if id > 0 && id < 21
  43.         @sprite.x = self.x - 115
  44.         @sprite.y = self.y - 150
  45.         name = @character.name
  46.         data = name.split(/,/)  #装载数据
  47.         name = data
  48.         if  @hp != data[1].to_i or @maxhp != data[2].to_i
  49.           @hp = data[1].to_i
  50.           @maxhp = data[2].to_i
  51.           hp = HPSP血条长度/(data[2].to_f/data[1].to_f)
  52.           if @character.id > 0 && @character.id < 21 && $game_variables[5] > 0
  53.             @sprite.bitmap.clear
  54.             @sprite.bitmap.fill_rect(100,100, hp, 2,  Color.new(255,  0, 51))
  55.           end
  56.         end
  57.       end
  58.     end
  59.   end
  60. end
复制代码
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

40

主题

190

帖子

1635

积分

⑥精研

●~  ●~   ●

积分
1635
 楼主| 发表于 2009-12-23 20:26:41 | 显示全部楼层
咦!?现在改好了,之前的脚本打死一个敌人后再打中第二个,第二个敌人的血条就直接消失了
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

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

Rank: 8Rank: 8

积分
2147483647
发表于 2009-12-23 21:04:52 | 显示全部楼层
因为你的开关始终用的是 318号。。我和事件号关联起来了。。。
还是不太对。我在改一下
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

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

Rank: 8Rank: 8

积分
2147483647
发表于 2009-12-23 21:08:13 | 显示全部楼层
  1. class Game_Player < Game_Character
  2.   def name
  3.     return $game_party.actors[0].name
  4.   end
  5. end
  6. # 添加上面,我就是为了做一个判断,只让主角显示HPSP,如果你是ARPG等都要显示 自己省略
  7. class Sprite_Character < RPG::Sprite
  8.   attr_accessor :character                # 角色
  9.   HPSP血条长度 = 30
  10.   def initialize(viewport, character = nil)
  11.     super(viewport)
  12.     @character = character
  13.     if @character.name.include?("敌人")
  14.       id = @character.name.delete("敌人").split(/,/)[0].to_i
  15.       if id > 0 && id < 21
  16.         data = @character.name.split(/,/)  #装载数据
  17.         if  @hp != data[1].to_i or @maxhp != data[2].to_i
  18.           @hp = data[1].to_i
  19.           @maxhp = data[2].to_i
  20.           hp = HPSP血条长度/(data[2].to_f/data[1].to_f)
  21.           if @character.id > 0 && @character.id < 21
  22.             @sprite = Sprite.new
  23.             @sprite.bitmap = Bitmap.new(160, 220)
  24.             @sprite.bitmap.fill_rect(100,100, hp, 2,  Color.new(255,  0, 51))
  25.           end
  26.         end
  27.       end
  28.     end
  29.     update
  30.   end
  31.   alias :update_hp_sp :update
  32.   def update
  33.     update_hp_sp
  34.     if @character.name.include?("敌人")
  35.       id = @character.name.delete("敌人").split(/,/)[0].to_i
  36.       if id > 0 && id < 21
  37.         if $game_switches[194+6*id]
  38.           @sprite.opacity = 0
  39.           return
  40.         end
  41.         @sprite.x = self.x - 115
  42.         @sprite.y = self.y - 150
  43.         data = @character.name.split(/,/)  #装载数据
  44.         if  @hp != data[1].to_i or @maxhp != data[2].to_i
  45.           @hp = data[1].to_i
  46.           @maxhp = data[2].to_i
  47.           hp = HPSP血条长度/(data[2].to_f/data[1].to_f)
  48.           if @character.id > 0 && @character.id < 21 && $game_variables[5] > 0
  49.             @sprite.bitmap.clear
  50.             @sprite.bitmap.fill_rect(100,100, hp, 2,  Color.new(255,  0, 51))
  51.           end
  52.         end
  53.       end
  54.     end
  55.   end
  56. end
复制代码
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

40

主题

190

帖子

1635

积分

⑥精研

●~  ●~   ●

积分
1635
 楼主| 发表于 2009-12-23 22:04:54 | 显示全部楼层
引用第64楼secondsen于2009-12-23 21:04发表的  :
因为你的开关始终用的是 318号。。我和事件号关联起来了。。。
还是不太对。我在改一下


其实原脚本里我都写了,发上来怕太长看着累,所以把敌人2~敌人19的刷新部分全部删了,就留了两个
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 02:38 , Processed in 0.018123 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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