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

Project1

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

[已经解决] 角色或事件显示变量条脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2011-3-10
帖子
65
跳转到指定楼层
1
发表于 2016-1-13 05:08:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 s20810 于 2016-1-13 05:10 编辑

请问这脚本如果要让事件显示变量条该如何设置?
原范本已失连不知道该如何使用,烦请大大们帮忙@@
@无限の剣制

RUBY 代码复制
  1. #==============================================================================
  2. # ■ Sprite
  3. #==============================================================================
  4. class Sprite
  5.   #--------------------------------------------------------------------------
  6.   # ● 血条配色
  7.   #--------------------------------------------------------------------------
  8.   ALPHA      = 192                              # 不透明度
  9.   FONT_COLOR = Color.new(64,  64, 240, ALPHA)  # hp 数值
  10.   B_COLOR    = Color.new(255, 255, 255, ALPHA)  # 血条外框
  11.   BG_COLOR   = Color.new(  0,   0,   0, ALPHA)  # 血条底
  12.   HP_COLOR_1 = Color.new(255, 128,  64, ALPHA)  # 血条渐变色 1
  13.   HP_COLOR_2 = Color.new(240, 192,  64, ALPHA)  # 血条渐变色 2
  14.   #--------------------------------------------------------------------------
  15.   # ● 画血条
  16.   #--------------------------------------------------------------------------
  17.   def draw_character_hp(character, x, y, width)
  18.     draw_character_hp_gauge(character, x, y, width)
  19.     self.bitmap.font.color = FONT_COLOR
  20.     self.bitmap.font.size = 12
  21.     self.bitmap.draw_text(0,0,32,20,character.hp,2)
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 画血条的背景条
  25.   #--------------------------------------------------------------------------
  26.   def draw_character_hp_gauge(character, x, y, width)
  27.     gw = width * character.hp / character.maxhp
  28.     self.bitmap.fill_rect(x, y+16, width+2, 5, B_COLOR)
  29.     self.bitmap.fill_rect(x+1, y+17, width, 3, BG_COLOR)
  30.     self.bitmap.gradient_fill_rect(x+1, y+17, gw, 3, HP_COLOR_1, HP_COLOR_2)
  31.   end
  32. end
  33.  
  34. #==============================================================================
  35. # ■ Sprite_Character
  36. #==============================================================================
  37. class Sprite_Character < Sprite_Base
  38.   #--------------------------------------------------------------------------
  39.   # ● 定义实例变量
  40.   #--------------------------------------------------------------------------
  41.   attr_accessor :character
  42.   #--------------------------------------------------------------------------
  43.   # ● 释放
  44.   #--------------------------------------------------------------------------
  45.   def dispose
  46.     dispose_balloon
  47.     super
  48.     if @hp_sprite != nil
  49.       @hp_sprite.bitmap.dispose
  50.       @hp_sprite.dispose
  51.       @hp_sprite = nil
  52.     end
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● 更新画面
  56.   #--------------------------------------------------------------------------
  57.   alias old_update update
  58.   def update
  59.     old_update
  60.     if @hp_sprite == nil
  61.       unless @character.is_a?(Game_Vehicle) or @character.maxhp <= 0
  62.         hp_sprite_set(@character)
  63.       end
  64.     end
  65.     unless @character.is_a?(Game_Vehicle)
  66.       hp_update if @character.update_hp
  67.     end
  68.     hp_follow
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 显示 hp
  72.   #--------------------------------------------------------------------------
  73.   def hp_sprite_set(character)
  74.     @hp_sprite = Sprite.new
  75.     @hp_sprite.bitmap = Bitmap.new(32, 24)
  76.     @hp_sprite.draw_character_hp(character, 0, 0, width = 30)
  77.     @hp_sprite.x = self.x - @hp_sprite.width/2
  78.     @hp_sprite.y = self.y - self.height - 21
  79.     @hp_sprite.z = self.z + 1
  80.   end
  81.   #--------------------------------------------------------------------------
  82.   # ● 让 hp 跟随事件或角色
  83.   #--------------------------------------------------------------------------
  84.   def hp_follow
  85.     return if @hp_sprite == nil
  86.     return if @character.is_a?(Game_Vehicle)
  87.     @hp_sprite.x = self.x - @hp_sprite.width/2
  88.     @hp_sprite.y = self.y - self.height - 21
  89.     @hp_sprite.z = self.z + 1
  90.   end
  91.   #--------------------------------------------------------------------------
  92.   # ● 刷新 hp
  93.   #--------------------------------------------------------------------------
  94.   def hp_update
  95.     return if @hp_sprite == nil
  96.     return if @character.is_a?(Game_Vehicle)
  97.     @character.update_hp = false
  98.     @hp_sprite.bitmap.clear
  99.     @hp_sprite.draw_character_hp(@character, 0, 0, width = 30)
  100.   end
  101. end
  102.  
  103. #==============================================================================
  104. # ■ Game_Event
  105. #==============================================================================
  106. class Game_Event < Game_Character
  107.   #--------------------------------------------------------------------------
  108.   # ● 定义实例变量
  109.   #--------------------------------------------------------------------------
  110.   attr_reader   :hp
  111.   attr_reader   :maxhp
  112.   attr_accessor  :update_hp
  113.   #--------------------------------------------------------------------------
  114.   # ● 初始化对像
  115.   #     map_id : 地图 ID
  116.   #     event  : 事件 (RPG::Event)
  117.   #--------------------------------------------------------------------------
  118.   alias ini initialize
  119.   def initialize(map_id, event)
  120.     @maxhp = @hp = 0
  121.     @update_hp = false
  122.     ini(map_id, event)
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 更改 hp
  126.   #     hp : 事件自身的hp
  127.   #--------------------------------------------------------------------------
  128.   def hp=(hp)
  129.     @hp = hp
  130.     @hp = 0 if @hp < 0
  131.     @update_hp = true
  132.   end
  133.   #--------------------------------------------------------------------------
  134.   # ● 初始化 maxhp
  135.   #     maxhp : 事件自身的最大 hp
  136.   #--------------------------------------------------------------------------
  137.   def maxhp=(maxhp)
  138.     @maxhp = @hp = maxhp
  139.   end
  140. end
  141.  
  142. #==============================================================================
  143. # ■ Game_Player
  144. #==============================================================================
  145. class Game_Player < Game_Character
  146.   #--------------------------------------------------------------------------
  147.   # ● 定义实例变量
  148.   #--------------------------------------------------------------------------
  149.   attr_reader    :hp
  150.   attr_reader    :maxhp
  151.   attr_accessor  :update_hp
  152.   #--------------------------------------------------------------------------
  153.   # ● 初始化对象
  154.   #--------------------------------------------------------------------------
  155.   alias ini initialize
  156.   def initialize
  157.     @maxhp = @hp = 0
  158.     @update_hp = false
  159.     ini
  160.   end
  161.   #--------------------------------------------------------------------------
  162.   # ● 刷新
  163.   #--------------------------------------------------------------------------
  164.   def refresh
  165.     if $game_party.members.size == 0
  166.       @character_name = ""
  167.       @character_index = 0
  168.     else
  169.       actor = $game_party.members[0]   # 获得首名角色
  170.       @character_name = actor.character_name
  171.       @character_index = actor.character_index
  172.       #获取角色 hp 和 maxhp
  173.       if @hp != actor.hp or @maxhp != actor.maxhp
  174.         @hp = actor.hp
  175.         @maxhp = actor.maxhp
  176.         @update_hp = true
  177.       end
  178.     end
  179.   end
  180. end
  181.  
  182. #==============================================================================
  183. # ■ Game_Interpreter
  184. #==============================================================================
  185. class Game_Interpreter
  186.   #--------------------------------------------------------------------------
  187.   # ● 设置正在启动的事件
  188.   #--------------------------------------------------------------------------
  189.   alias old_setup_starting_event setup_starting_event
  190.   def setup_starting_event
  191.     $game_player.refresh
  192.     old_setup_starting_event
  193.   end
  194. end

Lv4.逐梦者 (版主)

聪仔

梦石
0
星屑
6182
在线时间
3077 小时
注册时间
2013-12-26
帖子
3145
2
发表于 2016-1-13 08:28:20 | 只看该作者
事件脚本...
  1. $game_map.events[事件编号].maxhp = 300
  2. $game_map.events[事件编号].hp = 200
复制代码

评分

参与人数 1梦石 +1 收起 理由
丿梁丶小柒 + 1 认可答案

查看全部评分

聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2011-3-10
帖子
65
3
 楼主| 发表于 2016-1-14 02:48:03 | 只看该作者
本帖最后由 s20810 于 2016-1-14 03:03 编辑
正太君 发表于 2016-1-13 08:28
事件脚本...


感謝大大0.0

請問有開關的嗎@@?

還有如何釋放為0的變量條...
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

聪仔

梦石
0
星屑
6182
在线时间
3077 小时
注册时间
2013-12-26
帖子
3145
4
发表于 2016-1-14 09:11:14 | 只看该作者
s20810 发表于 2016-1-14 02:48
感謝大大0.0

請問有開關的嗎@@?

66行下面插入一句
  1. @hp_sprite.bitmap.clear if @character.hp == 0 if @hp_sprite.bitmap if @hp_sprite
复制代码

点评

可以的...  发表于 2016-1-15 09:06
天阿!! 正太君大大人帥又有耐心回復,可以當我好朋友嗎><  发表于 2016-1-15 02:21
聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 13:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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