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

Project1

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

[已经解决] 自制地图显示血量,SP,金钱.脚本还有些细节问题请教

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1090
在线时间
324 小时
注册时间
2017-1-24
帖子
122

开拓者

跳转到指定楼层
1
发表于 2017-6-17 13:43:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 戴迪 于 2017-6-17 14:49 编辑

我不会脚本,只会稍微模仿.
自己搜帖发现现有的脚本是鼠标响应图片显示血条的,但自己不需要鼠标操作,于是乎,就照着现有教程东拼西凑写出了这个脚本.现在能实现显示血条(虽然说很丑),SP,金钱.但只能实现显示指定角色的HP,SP,本脚本中显示的是数据库里17号角色的HP.SP.

希望实现谁在队伍的首位就显示谁的HP,SP,请问怎么改,求大神赐教~
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Window_Mapshow
  3. #------------------------------------------------------------------------------
  4. #  显示血条的窗口。
  5. #==============================================================================
  6. class Window_Mapshow < Window_Base
  7.   Hide_Window_Mapshow = 33                    #-----控制窗口的开关为33号开关
  8.   #--------------------------------------------------------------------------
  9.   # ● 初始化窗口
  10.   #--------------------------------------------------------------------------
  11.   def initialize
  12.     super(0, 0, 640, 40 + 32)
  13.     self.contents = Bitmap.new(width - 32, height - 32)
  14.     refresh
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 描绘HP槽
  18.   #--------------------------------------------------------------------------
  19.   def draw_actor_hp_bar(actor, x, y,width = 200)
  20.     self.contents.fill_rect(36,4,width + 4,24,Color.new(255,255,255,255))
  21.     self.contents.fill_rect(36 + 2,4 + 2,width ,20,Color.new(0,0,0,255))
  22.     w1 = (1.0 * $game_actors[17].hp  / $game_actors[17].maxhp) * width #---------方括号里是数据库里的角色编号,要改的话下面所有方括号的都要改
  23.     self.contents.fill_rect(36 + 2,4 + 2,w1 ,20,Color.new(200,0,0,255))
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 描绘SP槽
  27.   #--------------------------------------------------------------------------
  28.   def draw_actor_sp_bar(actor, x, y,width = 200)
  29.     self.contents.fill_rect(36 + 240 ,4,width + 4,24,Color.new(255,255,255,255))
  30.     self.contents.fill_rect(36 + 2 + 240 ,4 + 2,width ,20,Color.new(0,0,0,255))
  31.     w2 = (1.0 * $game_actors[17].sp / $game_actors[17].maxsp) * width                              
  32.     self.contents.fill_rect(36 + 2 + 240,4 + 2,w2 ,20,Color.new(248,112,0,255))
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ● 描绘金钱数目
  36.   #--------------------------------------------------------------------------
  37.   def draw_actor_gold(actor, x, y,width = 200)
  38.     cx = contents.text_size($data_system.words.gold).width  #cx = 11
  39.     self.contents.font.color = normal_color
  40.     self.contents.draw_text(538, 0, 64-cx-2 ,32, $game_party.gold.to_s, 2)
  41.     self.contents.font.color = system_color
  42.     self.contents.draw_text(600-cx, 0, cx, 32, $data_system.words.gold, 2)
  43.   end
  44.   #--------------------------------------------------------------------------
  45.   # ● 刷新--通常在这绘制位图
  46.   #--------------------------------------------------------------------------
  47.   def refresh
  48.     self.contents.clear
  49.     draw_actor_hp_bar($game_actors[17], 0, 20)
  50.     draw_actor_sp_bar($game_actors[17], 0, 20)
  51.     draw_actor_gold($game_party.gold.to_s, 0, 20)
  52.     self.contents.font.color = Color.new(255,255,255,255)                           #------------------颜色可调
  53.     self.contents.draw_text(0,0 , 36, 32, "HP:")                                             #------------------坐标可调
  54.     self.contents.draw_text(70,0 , 36, 32,$game_actors[17].hp.to_s)
  55.     self.contents.draw_text(70 + 63,0 + 1, 36, 32, "/")
  56.     self.contents.draw_text(70 + 63 + 42,0 + 1, 36, 32,$game_actors[17].maxhp.to_s)
  57.     self.contents.draw_text(0 + 240,0 , 36, 32, "SP:")
  58.     self.contents.draw_text(70 + 240,0 , 36, 32,$game_actors[17].sp.to_s)
  59.     self.contents.draw_text(70 + 63 + 240,0 + 1, 36, 32, "/")
  60.     self.contents.draw_text(70 + 105 + 240,0 + 1, 36, 32,$game_actors[17].maxsp.to_s)
  61.   end
  62.   def update
  63.     super
  64.     self.visible = !$game_switches[Hide_Window_Mapshow]
  65.     return unless self.visible                 #-----unless相当于if not
  66.     rest_hp = $game_actors[17].hp
  67.     max_hp = $game_actors[17].maxhp
  68.     rest_sp = $game_actors[17].sp
  69.     max_sp = $game_actors[17].maxsp
  70.     gold = $game_party.gold
  71.     if $l7_old_hp != rest_hp || ($l7_old_maxhp != max_hp) || $l7_old_sp != rest_sp || ($l7_old_maxsp != max_sp) || $l7_old_gold != gold
  72.        $l7_old_hp = rest_hp
  73.        $l7_old_maxhp = max_hp
  74.        $l7_old_sp = rest_sp
  75.        $l7_old_maxsp = max_sp
  76.        refresh
  77.     end
  78.   end
  79. end


如果谁觉得这样也可以凑合着用的话就拿去吧(还要在Scene_Map这个分类里改下东西),等我的问题解决了再重发一贴分享~

地图显示(如血条,金钱).rar

192.2 KB, 阅读权限: 10, 下载次数: 35

Lv1.梦旅人

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
帖子
3225
2
发表于 2017-6-17 14:57:20 | 只看该作者
把所有的  $game_actors[17]  改成  $game_party.actors[0]  就行了

点评

OK已解决,谢了  发表于 2017-6-17 15:27

评分

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

查看全部评分

本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到[email protected]咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

3
发表于 2017-6-17 14:58:11 | 只看该作者
其他的我不管。
脚本中$game_actors[17]是数据库中17号的意思。
$game_party.actors[0]是队伍库中第1位

点评

OK已解决,谢了  发表于 2017-6-17 15:28

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
100
在线时间
5 小时
注册时间
2021-7-27
帖子
33
4
发表于 2021-7-30 08:51:51 | 只看该作者
脚本中$game_actors[17]是数据库中17号的意思。
$game_party.actors[0]是队伍库中第1位
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 23:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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