Project1

标题: 30VIP.请人做个事件头上显示hp,sp [打印本页]

作者: pudding    时间: 2009-11-7 01:01
标题: 30VIP.请人做个事件头上显示hp,sp
本帖最后由 pudding 于 2009-11-9 21:27 编辑

当事件的名字为Enemy , pet时   [attach]10566[/attach]
在事件头上显示生命(注意:生命要和事件同步移动   """"""""事件就是敌人)
然后可以在事件里设置 :变量1 == 事件的HP  变量2 == 事件的SP
(可以不这样设置...但我不知道该怎么控制事件的生命...)

如:
作者: 「旅」    时间: 2009-11-7 01:01
  1. class Game_Event < Game_Character
  2. def name
  3.    return @event.name
  4. end  
  5. end
  6. class Sprite_Character
  7.   alias old_initialize initialize
  8.   def initialize(a,b)
  9.     old_initialize(a,b)
  10.     @namesprite = Sprite.new
  11.     @namesprite.bitmap = Bitmap.new(160, 100)
  12.     @namesprite.z = 0
  13.     @namesprite.bitmap.font.name = "黑体"
  14.     @namesprite.bitmap.font.size = 17
  15.     @namesprite.bitmap.font.color.set(255, 255, 255)
  16.     @hp = 0
  17.     @sp = 0
  18.   end
  19.   alias old_update update
  20.   def update
  21.     old_update
  22.     if [email protected]_a?(Game_Player) and @namesprite != nil and (@character.name.include?("Enemy") or
  23.       @character.name.include?("Pet"))
  24.       @namesprite.x = self.x-80
  25.       @namesprite.y = self.y-self.oy-34
  26.       if $game_variables[@character.id*4+1] != @hp or $game_variables[@character.id*4+2] != @sp
  27.         @sp = $game_variables[@character.id*4+2]
  28.         @hp = $game_variables[@character.id*4+1]
  29.         name = @character.name.clone.delete("Enemy")
  30.         name.delete("Pet")
  31.         @namesprite.bitmap.clear
  32.         @namesprite.bitmap.draw_text(0, 8, 160, 36, name, 1)
  33.         width = 40
  34.         x = 60
  35.         y = 55
  36.         @namesprite.bitmap.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255))
  37.         w = width * @hp / [$game_variables[@character.id*4+3],1].max
  38.         @namesprite.bitmap.fill_rect(x, y+28, w,1, Color.new(255, 96, 96, 255))
  39.         @namesprite.bitmap.fill_rect(x, y+29, w,1, Color.new(255, 0, 0, 255))
  40.         @namesprite.bitmap.fill_rect(x, y+30, w,1, Color.new(128, 0, 0, 255))
  41.         @namesprite.bitmap.fill_rect(x, y+31, w,1, Color.new(0, 0, 0, 255))
  42.         width = 40
  43.         x = 60
  44.         y = 60
  45.         @namesprite.bitmap.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255))
  46.         w = width * @sp / [$game_variables[@character.id*4+4],1].max
  47.         @namesprite.bitmap.fill_rect(x, y+28, w,1, Color.new(128, 255, 255, 255))
  48.         @namesprite.bitmap.fill_rect(x, y+29, w,1, Color.new(0, 255, 255, 255))
  49.         @namesprite.bitmap.fill_rect(x, y+30, w,1, Color.new(0, 192, 192, 255))
  50.         @namesprite.bitmap.fill_rect(x, y+31, w,1, Color.new(0, 128, 128, 255))
  51.       end
  52.     else
  53.         return if @namesprite == nil
  54.         @namesprite.x = self.x-80
  55.         @namesprite.y = self.y-self.oy-34
  56.         @sp = $game_party.actors[0].sp
  57.         @hp = $game_party.actors[0].hp
  58.         @namesprite.bitmap.clear
  59.         width = 40
  60.         x = 60
  61.         y = 55
  62.         @namesprite.bitmap.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255))
  63.         w = width * @hp / [$game_party.actors[0].maxhp,1].max
  64.         @namesprite.bitmap.fill_rect(x, y+28, w,1, Color.new(255, 96, 96, 255))
  65.         @namesprite.bitmap.fill_rect(x, y+29, w,1, Color.new(255, 0, 0, 255))
  66.         @namesprite.bitmap.fill_rect(x, y+30, w,1, Color.new(128, 0, 0, 255))
  67.         @namesprite.bitmap.fill_rect(x, y+31, w,1, Color.new(0, 0, 0, 255))
  68.         width = 40
  69.         x = 60
  70.         y = 60
  71.         @namesprite.bitmap.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255))
  72.         w = width * @sp / [$game_party.actors[0].maxsp,1].max
  73.         @namesprite.bitmap.fill_rect(x, y+28, w,1, Color.new(128, 255, 255, 255))
  74.         @namesprite.bitmap.fill_rect(x, y+29, w,1, Color.new(0, 255, 255, 255))
  75.         @namesprite.bitmap.fill_rect(x, y+30, w,1, Color.new(0, 192, 192, 255))
  76.         @namesprite.bitmap.fill_rect(x, y+31, w,1, Color.new(0, 128, 128, 255))
  77.     end
  78.   end
  79. end
复制代码
不知道怎么解决覆盖问题><等高手
作者: pudding    时间: 2009-11-7 08:36
谁能把这30VIP拿走?!  7小时过去了!悬赏这么多..还以为很快就会解决了....
作者: 奶油Da蛋糕    时间: 2009-11-7 08:46
本帖最后由 奶油Da蛋糕 于 2009-11-7 09:03 编辑

[本段文字因涉嫌暴力,已被原作者河蟹]
作者: pudding    时间: 2009-11-7 09:03
3# 奶油Da蛋糕


我做的游戏是 ARPG嘛...那怎么减敌人生命? 你可以不这样设置
作者: 越前リョーマ    时间: 2009-11-7 09:05
现在世态炎凉啊……30VIP也没人管…… - -
作者: 「旅」    时间: 2009-11-7 09:15
嘛意思?HP、SP的变量编号和事件有什么联系吗><
作者: pudding    时间: 2009-11-7 09:21
6# 「旅」


事件就是敌人!
作者: 「旅」    时间: 2009-11-7 09:26
可是有多个敌人呢?
作者: pudding    时间: 2009-11-7 09:31
本帖最后由 pudding 于 2009-11-7 09:35 编辑

8# 「旅」


就是想用变量控制...多个敌人的生命
如果1号敌人 HP为A SP为B  那变量1 == A   变量2 ==B
2号敌人  变量3 == A   变量4 ==B
....

类似角色:$game_actors[1].hp
事件:$game_event[1].hp
作者: 奶油Da蛋糕    时间: 2009-11-7 09:36
本帖最后由 奶油Da蛋糕 于 2009-11-7 09:40 编辑

[本段文字因涉嫌暴力,已被原作者河蟹]
作者: pudding    时间: 2009-11-7 09:39
本帖最后由 pudding 于 2009-11-7 09:40 编辑
关键是根本没有$game_event[1].hp这个属性。
重新定义的话怎么跟数据库里的敌人的属性联系起来呢?
也就是说,你怎么知道哪个事件是数据库里的几号敌人的属性。 ...
奶油Da蛋糕 发表于 2009-11-7 09:36



我也不知道怎么设置....我的思路是这样的...既然角色的 $game_actors[1].hp 可以设置      
那么$game_event[1].hp 也可以吧.....没难度 也不需要30VIP

你可以想其他办法....不一定这方法
作者: dukesward    时间: 2009-11-7 09:46
现在世态炎凉啊……30VIP也没人管…… - -
越前リョーマ 发表于 2009-11-7 09:05


如果连小柯也不知道的话,那就和悬赏多少没关系了
作者: 倭卜僾伱    时间: 2009-11-7 10:22
这脚本貌似没法用,每次我使用都跳出,但我看《魔游乱战绩》都可以用,效果非常好!只能发下脚本里的介绍。

程序错误 315
-该脚本因含非法文字,所以无法显示,请见谅-

#-------------------------------------------------------------------------------------------------------
#DPR RPG
#-------------------------------------------------------------------------------------------------------

#该脚本是一个事件显血条和直接攻击的脚本。显血:使用需要修改事件的名字( 角色名[100,5,
#5,5,5]),括号里的格式为本脚本的格式,[]内输入血的数量、攻击力、物理防御力、魔法防御力
#。直接攻击:此脚本请在事件里注释(A.jg-攻击图标1.png[10,30]),A是键盘健A,后面的图
#片是点击A显示的动画,这个动画请用横排的png,[]里是攻击力、消耗SP。

下面的就不发了,发了也没用,我发这个的主要原因是如果有知道怎么用的给楼主发下。
作者: 「旅」    时间: 2009-11-7 10:31
Project7.rar (187.49 KB, 下载次数: 171)
简陋版的……><

有哪需要加强的可以提~
作者: 奶油Da蛋糕    时间: 2009-11-7 10:36
10472
简陋版的……><

有哪需要加强的可以提~
「旅」 发表于 2009-11-7 10:31


很不错。
作者: pudding    时间: 2009-11-7 10:43
本帖最后由 pudding 于 2009-11-7 10:57 编辑
10472
简陋版的……><

有哪需要加强的可以提~
「旅」 发表于 2009-11-7 10:31


敌人显示有限的吗?只能设置2个敌人,1个宠物?
作者: pudding    时间: 2009-11-7 11:06
本帖最后由 pudding 于 2009-11-7 11:11 编辑

用图画编辑的图

可以帮我做多个角色的显示在下面吗? 把敌人和宠物的HP SP 缩成这样..显示在下面
发现显示上面没那么好看    帮我做好后...马上认可..看来这30VIP花的值  显示名字也弄出来了
作者: 「旅」    时间: 2009-11-7 11:09
可以设置无数个。根据事件的编号,各占4个变量(hp,sp,maxhp,maxsp)。
作者: 「旅」    时间: 2009-11-7 11:15
  1. class Game_Event < Game_Character
  2. def name
  3.    return @event.name
  4. end  
  5. end
  6. class Sprite_Character
  7.   alias old_initialize initialize
  8.   def initialize(a,b)
  9.     old_initialize(a,b)
  10.     @namesprite = Sprite.new
  11.     @namesprite.bitmap = Bitmap.new(160, 100)
  12.     @namesprite.bitmap.font.name = "黑体"
  13.     @namesprite.bitmap.font.size = 17
  14.     @namesprite.bitmap.font.color.set(255, 255, 255)
  15.     @hp = 0
  16.     @sp = 0
  17.   end
  18.   alias old_update update
  19.   def update
  20.     old_update
  21.     if [email protected]_a?(Game_Player) and @namesprite != nil and (@character.name.include?("Enemy") or
  22.       @character.name.include?("Pet"))
  23.       @namesprite.x = self.x-80
  24.       @namesprite.y = self.y-self.oy-34
  25.       if $game_variables[@character.id*4+1] != @hp or $game_variables[@character.id*4+2] != @sp
  26.         @sp = $game_variables[@character.id*4+2]
  27.         @hp = $game_variables[@character.id*4+1]
  28.         name = @character.name.clone.delete("Enemy")
  29.         name.delete("Pet")
  30.         @namesprite.bitmap.clear
  31.         @namesprite.bitmap.draw_text(0, 8, 160, 36, name, 1)
  32.         width = 40
  33.         x = 60
  34.         y = 55
  35.         @namesprite.bitmap.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255))
  36.         w = width * @hp / [$game_variables[@character.id*4+3],1].max
  37.         @namesprite.bitmap.fill_rect(x, y+28, w,1, Color.new(255, 96, 96, 255))
  38.         @namesprite.bitmap.fill_rect(x, y+29, w,1, Color.new(255, 0, 0, 255))
  39.         @namesprite.bitmap.fill_rect(x, y+30, w,1, Color.new(128, 0, 0, 255))
  40.         @namesprite.bitmap.fill_rect(x, y+31, w,1, Color.new(0, 0, 0, 255))
  41.         width = 40
  42.         x = 60
  43.         y = 60
  44.         @namesprite.bitmap.fill_rect(x-1, y+27, width+2,6, Color.new(0, 0, 0, 255))
  45.         w = width * @sp / [$game_variables[@character.id*4+4],1].max
  46.         @namesprite.bitmap.fill_rect(x, y+28, w,1, Color.new(128, 255, 255, 255))
  47.         @namesprite.bitmap.fill_rect(x, y+29, w,1, Color.new(0, 255, 255, 255))
  48.         @namesprite.bitmap.fill_rect(x, y+30, w,1, Color.new(0, 192, 192, 255))
  49.         @namesprite.bitmap.fill_rect(x, y+31, w,1, Color.new(0, 128, 128, 255))
  50.       end
  51.     end
  52.   end
  53. end
复制代码
改成显示下面了~~
作者: pudding    时间: 2009-11-7 11:20
发现问题...HP 覆盖 角色了  能改改吗?能加个角色的吗?显示角色HP和SP的在角色下面  也要注意覆盖
作者: dbshy    时间: 2009-11-7 11:26
很好很强大,偶见过的平均每行脚本最多VIP的悬赏

防水补丁
bitmap 有个fill_rect方法
还可以显示图片
作者: 倭卜僾伱    时间: 2009-11-7 11:34





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