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

Project1

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

[已经过期] 暫時性「生命護盾」

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
158 小时
注册时间
2008-4-12
帖子
43
跳转到指定楼层
1
发表于 2012-3-30 01:24:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
各位大大好
我想要做類似"LOL"裡面的護盾狀態

例:
為目標施展一個生命為300的護盾,持續3回合
原HP 400/500  →  變HP 700/800
狀態期間,優先扣除護盾的HP值
護盾生命耗盡就解除(或者不解除等回合到自然解除也可以)
但若回合到,護盾生命值尚未用盡
則將護盾剩於生命扣除,留下原本生命值
例:護盾狀態 HP 600/800 → 解除狀態 HP 400/500

請問這種護盾狀態該如何製作?
感謝大家~~
(如果舉例看不懂請告知,我再詳細說明...)

Lv4.逐梦者 (管理员)

砂上描绘的愿想

梦石
15
星屑
4019
在线时间
5070 小时
注册时间
2012-1-15
帖子
4617

开拓者贵宾短篇七成年组亚军剧作品鉴家

2
发表于 2012-3-30 01:48:31 | 只看该作者
看看这个是不是有启发?
http://rpg.blue/forum.php?mod=viewthread&tid=224297
若后退就皆成谎言。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
158 小时
注册时间
2008-4-12
帖子
43
3
 楼主| 发表于 2012-3-31 01:00:15 | 只看该作者
本帖最后由 魔潘安 于 2012-3-31 01:00 编辑

這篇...
是指最大傷害值
不超過護盾值嗎?
呵呵~>"<
我只看懂一點點

我在想說是不是能夠從狀態的部份下手?
當獲得護盾狀態的時候
記憶目前血量
當護盾狀態結束
如果目前血量>記憶血量
就使用記憶血量
但是...這樣子一來
狀態期間補血的效用就沒用了...
所以不知道怎辦才好呢~"~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
212 小时
注册时间
2012-3-5
帖子
228
4
发表于 2012-4-8 21:59:54 | 只看该作者
在数据库的状态栏建立个状态增加体力上限%的状态效果,再建立个技能来调用。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
158 小时
注册时间
2008-4-12
帖子
43
5
 楼主| 发表于 2012-4-9 01:33:22 | 只看该作者
本帖最后由 魔潘安 于 2012-4-9 01:35 编辑

只建立狀態的話
就算護盾消失
所該減回的護盾生命值也無法扣回
下面是我自己嘗試修改的一些小地方
雖然不是很完善
不過總是有點效果

在腳本Game_ActionResult自定義一個變數 attr_accessor :shield

在腳本Game_Battler的附加狀態內插入內容如下:
#--------------------------------------------------------------------------
  # ● 附加狀態
  #--------------------------------------------------------------------------
  def add_state(state_id)
    if state_addable?(state_id)
      add_new_state(state_id) unless state?(state_id)
      reset_state_counts(state_id)
      #==================================================
      if state_id == 56 # 該狀態編號
        @result.shield = self.hp # 記住目前生命值
         self.hp += self.mhp*20/100 # 獲得的生命值
      end
      #==================================================
      @result.added_states.push(state_id).uniq!
    end
  end

同腳本解除狀態插入內容如下:
  #--------------------------------------------------------------------------
  # ● 解除狀態
  #--------------------------------------------------------------------------
  def remove_state(state_id)
    if state?(state_id)
      revive if state_id == death_state_id
      erase_state(state_id)
      refresh
      @result.removed_states.push(state_id).uniq!
      #==================================================
          if state_id == 56 # 該狀態編號
            if self.hp > @result.shield   #如果目前生命大於記憶生命
              self.hp = @result.shield   #就返回記憶生命
            end
          end
      #==================================================
    end
  end

在腳本應用“恢復 HP”效果插入內容如下:
  #--------------------------------------------------------------------------
  # ● 應用“恢復 HP”效果
  #--------------------------------------------------------------------------
  def item_effect_recover_hp(user, item, effect)
    value = (mhp * effect.value1 + effect.value2) * rec
    value *= user.pha if item.is_a?(RPG::Item)
    value = value.to_i
    @result.hp_damage -= value
    @result.success = true
    self.hp += value
    #=========================================
    @result.shield += value  # 補血的時候,記憶生命也要往上加(不是補在護盾上)
    #=========================================
  end

這是我自己想的笨方法...
如果有人有更好的方法請教我>"<
謝謝!!

另:
再請教一下
如果我想要讓該護盾狀態存在時
生命的字體顏色改變
應該從哪裡下手呢?
感謝各位幫忙~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-5 16:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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