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

Project1

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

[已经解决] 怎么设置护甲值?用脚本

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
帖子
98
跳转到指定楼层
1
发表于 2019-7-21 16:36:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
看到这个,可能有些人想错了,我说的护甲值是第二层血量,打个比方,知道王者的吕布吧,他的二技能不是给自己加一些护甲值?没错,说的就是这个!
有大佬会吗,我是萌新

Lv3.寻梦者

梦石
0
星屑
1088
在线时间
141 小时
注册时间
2019-5-12
帖子
57
2
发表于 2019-7-21 18:39:28 | 只看该作者
本帖最后由 真の玛娜君 于 2019-7-27 19:33 编辑

我在其他帖子找到的,用法里面有,不过我也不太会用,其中一个用法:状态的备注栏里写:   <护盾>s[1] ? v[1] : 2500</护盾> 就会获得能抵消2500点伤害的护盾值,不同状态应该是可以叠加的,同一状态不会叠加或刷新。另外这个是1号开关未开启时赋予一号变量2500的值。写:<barrier>v[1]</barrier>   是护盾值等于一号变量的值,可以技能附带公共事件更改变量,然后赋予状态,赋予状态一定要在公共事件里做。
  1. #==============================================================================
  2. # ■ 状态附加护盾值 by Calendar99
  3. #------------------------------------------------------------------------------
  4. #  使用方法
  5. #  状态备注中写<barrier>xxx</barrier> xxx为表达式,支持多行
  6. #  barrier也可以换成护盾
  7. #  用battler代表中状态者,s[n]和v[n]分别代表n号开关和变量
  8. #
  9. #  例 <barrier>battler.level * 100</barrier>   # 使用者等级*100
  10. #     <护盾>s[1] ? v[1] : 0</护盾>             # 1号开关开启则1号变量,否则0
  11. #     其他用法参考伤害公式
  12. #==============================================================================
  13. class RPG::State
  14.   TAG = "(?:barrier|护盾)"
  15.   #--------------------------------------------------------------------------
  16.   # ● [追加]护盾的值
  17.   #--------------------------------------------------------------------------
  18.   def barrier_value(user)
  19.     s = $game_switches
  20.     v = $game_variables
  21.     self.note =~ /<#{TAG}>((?:.\s?)+)<\/#{TAG}>/mi ? eval($1) : 0
  22.   end
  23. end

  24. class Game_Battler
  25.   attr_reader :barrier
  26.   #--------------------------------------------------------------------------
  27.   # ● [别名修改]初始化对象
  28.   #--------------------------------------------------------------------------
  29.   alias initialize_for_barrier initialize
  30.   def initialize
  31.     @barrier = 0
  32.     initialize_for_barrier
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ● [追加]护盾属性写入
  36.   #--------------------------------------------------------------------------
  37.   def barrier=(x)
  38.     @barrier = (x > 0 ? x : 0)
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● [别名修改]附加新的状态
  42.   #--------------------------------------------------------------------------
  43.   alias add_new_state_for_barrier add_new_state
  44.   def add_new_state(state_id)
  45.     @barrier += $data_states[state_id].barrier_value(self)
  46.     add_new_state_for_barrier(state_id)
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● [别名修改]解除状态
  50.   #--------------------------------------------------------------------------
  51.   alias remove_state_for_barrier remove_state
  52.   def remove_state(state_id)
  53.     @barrier -= $data_states[state_id].barrier_value(self)
  54.     remove_state_for_barrier(state_id)
  55.   end
  56. end

  57. class Game_ActionResult
  58.   attr_reader :barrier_value
  59.   #--------------------------------------------------------------------------
  60.   # ● [别名修改]初始化对象
  61.   #--------------------------------------------------------------------------
  62.   alias initialize_for_barrier initialize
  63.   def initialize(battler)
  64.     @barrier_value = 0
  65.     initialize_for_barrier(battler)
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● [追加]受到护盾影响?
  69.   #--------------------------------------------------------------------------
  70.   def barrier?
  71.     @barrier_value > 0
  72.   end  
  73.   #--------------------------------------------------------------------------
  74.   # ● [别名修改]生成伤害
  75.   #--------------------------------------------------------------------------
  76.   alias make_damage_for_barrier make_damage
  77.   def make_damage(value, item)
  78.     if item.damage.to_hp? && value > 0
  79.       if @battler.barrier >= value
  80.         @battler.barrier -= value
  81.         @barrier_value = value
  82.         value = 0
  83.       else
  84.         value -= @battler.barrier
  85.         @barrier_value = @battler.barrier
  86.         @battler.barrier = 0
  87.       end
  88.     end
  89.     make_damage_for_barrier(value, item)
  90.   end
  91.   #--------------------------------------------------------------------------
  92.   # ● [别名修改]清除伤害值
  93.   #--------------------------------------------------------------------------
  94.   alias clear_damage_values_for_barrier clear_damage_values
  95.   def clear_damage_values
  96.     clear_damage_values_for_barrier
  97.     @barrier_value = 0
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   # ● [追加]获取 HP 护盾的文字
  101.   #--------------------------------------------------------------------------
  102.   def hp_barrier_text
  103.     fmt = "%s吸收了%d点伤害,还剩%s点护盾值"
  104.     sprintf(fmt, @battler.name, @barrier_value, @battler.barrier)
  105.   end
  106. end

  107. class Window_BattleLog
  108.   #--------------------------------------------------------------------------
  109.   # ● [别名修改]显示伤害
  110.   #--------------------------------------------------------------------------
  111.   alias display_damage_for_barrier display_damage
  112.   def display_damage(target, item)
  113.     display_hp_barrier(target, item) if target.result.barrier?
  114.     display_damage_for_barrier(target, item)
  115.   end
  116.   #--------------------------------------------------------------------------
  117.   # ● [追加]显示护盾
  118.   #--------------------------------------------------------------------------
  119.   def display_hp_barrier(target, item)
  120.     add_text(target.result.hp_barrier_text)
  121.     wait
  122.   end
  123. end
复制代码

评分

参与人数 1星屑 +50 收起 理由
VIPArcher + 50 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6015
在线时间
1195 小时
注册时间
2011-12-18
帖子
1285
3
发表于 2019-7-22 17:11:03 | 只看该作者
可以參考HP的腳本去增加或改造腳本...不過VA會比XP麻煩一點
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
帖子
98
4
 楼主| 发表于 2019-7-27 10:05:09 | 只看该作者
谢谢咯
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
帖子
98
5
 楼主| 发表于 2019-7-27 10:28:53 | 只看该作者
真の玛娜君 发表于 2019-7-21 18:39
我在其他帖子找到的,用法里面有,不过我也不太会用,其中一个用法:状态的备注栏里写:   s[1] ? v[1] : 2500  ...

开始怀疑能不能用到ARPG系统上。。。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1088
在线时间
141 小时
注册时间
2019-5-12
帖子
57
6
发表于 2019-7-27 19:26:58 | 只看该作者
小姐姐一个 发表于 2019-7-27 10:28
开始怀疑能不能用到ARPG系统上。。。

有不小的可能性不行
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1088
在线时间
141 小时
注册时间
2019-5-12
帖子
57
7
发表于 2019-7-27 19:29:44 | 只看该作者
小姐姐一个 发表于 2019-7-27 10:28
开始怀疑能不能用到ARPG系统上。。。

主要看你的ARPG系统匹不匹配了
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-13 09:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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