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

Project1

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

[已经解决] 如何修改脚本使最低伤害为1

[复制链接]

Lv3.寻梦者

梦石
1
星屑
3913
在线时间
592 小时
注册时间
2007-8-14
帖子
182
跳转到指定楼层
1
发表于 2016-8-28 14:14:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
发现敌人攻击太低的话,打人都是“某某某没有受到伤害”
请问一下,要修改脚本的哪一处可以让最低伤害不是0而是1呢?
赞美灵魂……

Lv5.捕梦者 (版主)

鼬痴汉

梦石
29
星屑
3401
在线时间
1300 小时
注册时间
2010-4-24
帖子
971

短篇十吟唱者组别亚军开拓者

2
发表于 2016-8-28 14:32:17 | 只看该作者
RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   def make_damage_value(user, item)
  3.     value = item.damage.eval(user, self, $game_variables)
  4.     value *= item_element_rate(user, item)
  5.     value *= pdr if item.physical?
  6.     value *= mdr if item.magical?
  7.     value *= rec if item.damage.recover?
  8.     value = apply_critical(value) if @result.critical
  9.     value = apply_variance(value, item.damage.variance)
  10.     value = apply_guard(value)
  11.     if !item.damage.recover? && value <= 0
  12.       value = 1
  13.     end
  14.     @result.make_damage(value.to_i, item)
  15.   end
  16. end


插入到main前,
重定义了make_damage_value可能会和其他插件产生冲突

点评

成功了!谢谢!  发表于 2016-8-28 15:09

评分

参与人数 1星屑 +250 梦石 +1 收起 理由
RaidenInfinity + 250 + 1 楼主认可的解答

查看全部评分

回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
1
星屑
3913
在线时间
592 小时
注册时间
2007-8-14
帖子
182
3
 楼主| 发表于 2016-8-28 15:10:20 | 只看该作者
本帖最后由 cryhades 于 2016-8-28 15:22 编辑
FHNBHJ 发表于 2016-8-28 14:32
class Game_Battler < Game_BattlerBase
  def make_damage_value(user, item)
    value = item.damage.ev ...


出了个大问题!!不过跟你发的脚本没关系,因为我删了你的脚本之后问题依然存在!
就是所有的物理技能都miss了!只有魔法技能或者必中技能才能命中敌人!
求问这是怎么回事啊??


对不起!!刚刚找到了!!
找了半天还以为不小心改了什么脚本,翻来覆去结果发现是我昨天把职业的“物理命中率+95%”给删掉了……
{:2_264:}
赞美灵魂……
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

4
发表于 2016-8-28 18:13:20 | 只看该作者
技能的公式设定,
  1. 伤害公式<=0? 1 : 伤害公式
复制代码
只针对一个特定的技能
同样的,不致死敌人的技能
  1. 伤害公式>=b.hp?b.hp-1:伤害公式
复制代码
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
447
在线时间
1065 小时
注册时间
2010-7-26
帖子
113
5
发表于 2016-8-28 19:21:08 | 只看该作者
我的技能公式用的是除法 然后加减就能控制最低伤害了
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3841
在线时间
723 小时
注册时间
2014-3-29
帖子
509
6
发表于 2016-8-29 09:02:17 | 只看该作者
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2016-8-5
帖子
10
7
发表于 2016-9-5 22:13:13 | 只看该作者
我的伤害特效脚本能帮到你 这是我的资源地址 你见其中3楼http://tieba.baidu.com/p/4746742 ... p;cid=0#96655759247
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
10963
在线时间
1400 小时
注册时间
2010-8-31
帖子
571

开拓者

8
发表于 2016-9-6 06:38:23 | 只看该作者
如果只是伤害下限最少为1的话,不用脚本也可以解决,这个问题我以前也问过,可以看看这个
https://rpg.blue/forum.php?mod=viewthread&tid=379030
2楼给出的方案就能解决。

点评

这个做法虽然会有1点伤害,但是触发不了“受到伤害时解除”这个效果吧  发表于 2016-9-6 20:56
相比起做游戏,更热衷于素材的加工呢。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12562
在线时间
903 小时
注册时间
2014-10-24
帖子
321
9
发表于 2016-9-6 13:08:14 | 只看该作者
很不错的说
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2016-8-5
帖子
10
10
发表于 2016-9-6 16:48:41 | 只看该作者
伤害特效脚本:
https://share.weiyun.com/07e0c3084d963a8f9d8874a50d12a6a1

# ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆
#-------------------------------------------------------------------------- ☆
# ● 伤害特效脚本 作者:轻笑我狂 [更新日期2016/8/27]
#-------------------------------------------------------------------------- ☆
#    请将该脚本插入到Main页以前,根据脚本兼容性调整位置
#    推荐放置在 Game_Battler 页后
#-------------------------------------------------------------------------- ☆
#    使用方法: 在Game_Battler中找到● 计算伤害,并把他们全部删除或注释掉
#    注释快捷键 选中要注释的行 Ctel+q
#    当前提供了  "魔法盾"  "反伤"
#    "最小伤害值"  "双重暴击"  "生命影响输出"  "改造暴击伤害"  "直接调整技能输出"
#    标有(※勿动)不要修改
#    标有(※必填)一定填好
#    该脚本兼容 (RTAB战斗系统 For RPG Maker VX Ace 编写者:SLICK)
#    "反伤" "荆棘" 不兼容ace 原版自动战斗,切记
#   
#-------------------------------------------------------------------------- ☆
#========================================================================== ☆
# ■ Game_Battler
#-------------------------------------------------------------------------- ☆
# 处理战斗者的类。Game_Actor 和 Game_Enemy 类的父类。
#========================================================================== ☆
class Game_Battler < Game_BattlerBase
#-------------------------------------------------------------------------- ☆
# ● 常量(特殊效果)
#-------------------------------------------------------------------------- ☆
#-------------------------------------------------------------------------- ☆
  STATE_ID              = 33  #魔法盾状态的id号
  MP_RATE               = 1   #魔法盾吸收伤害的比率0.4就是10点伤害hp6点mp4点
  NN_NN_NN_XX1          = 2.5 #魔法盾伤害抵消比例 "2.5" = 1点伤害减少2.5MP
#-------------------------------------------------------------------------- ☆
#-----------------------------------------------------------------------------
#-------------(如果不需要在"NN_NN_NN_XX2"填"0")--------●(半兼容自动战斗)---
  NN_NN_NN_XX2          = 32  #反伤状态的id号 (自动战斗这个状态不要给敌人)
  NN_NN_NN_XX3          = 0.25 #反伤状态反伤比率  0.2就是10点伤害返给对面2点伤害
  NN_NN_NN_XX4          = 1   #反伤状态是否降低自身受到的伤害 (0是/1否)
  NN_NN_NN_XX5          = 15   #反伤伤害的额外常量伤害 5就是反击的时候多造成5点伤害
#-------------------------------------------------------------------------- ☆
#-------------(这个你应该用得到)-----------------------------------------------
  #输出型伤害最小值的固定值  (最小伤害判断会附加2%目标最大生命值判断)
  HP_DAMAGE_XX          = 8
#-------------------------------------------------------------------------- ☆
#-------------(有点像双重暴击,不用直接在生效ID填"0")----------------------------
  NN_NN_NN_NN0_a1       = 398    # ↓↓↓↓↓↓ 生效技能ID
  NN_NN_NN_NN0_a2       = 399    # ↓↓↓↓↓↓ 生效技能ID
  NN_NN_NN_NN0_a3       = 0      # ↓↓↓↓↓↓ 生效技能ID
  NN_NN_NN_NN0_a4       = 0      # ↓↓↓↓↓↓ 生效技能ID
  NN_NN_NN_NN0_s1       = 0.45   # ↓↓↓↓↓↓ 生效技能额外伤害
  #设置技能伤害输出率   技能同暴击率的可能性造成额外的伤害 "s1=0.45"额外伤害为45%
#-------------------------------------------------------------------------- ☆
#-------------(你强我弱,你弱我强类伤害输出效果)---------------------------------
  NN_NN_NN_NN1          = 0   # ↓↓↓↓↓↓ 0开启 1关闭
  #攻击者和防御者损失4%最大生命值分别降低和提升1%伤害输出值
#--------------------------------------------------------------------------- ☆
#-------------(※必填)---------------------------------------------------------
  NN_NN_NN_NN2          = 1   # ↓↓↓↓↓↓ 0原版暴击伤害 1作者暴击伤害
  NN_NN_NN_NN3          = 3   # 原版暴击伤害倍数
  NN_NN_NN_NN4          = 0   # 作者暴击伤害是否在控制台显示详细数值(0是/1否)
  #原版暴击伤害固定翻倍伤害
  #作者暴击伤害: [公式:(基础伤害+额外暴击伤害)*(tp/10)*(tp/10)*(0.015+敏捷*0.002)]
  #新备注在职业/敌人界面写入<额外暴击伤害 x> [X=100 则额外暴击伤害翻1倍]
#-------------------------------------------------------------------------- ☆
#-------------(如果不需要直接生效ID填"0")---------------------------------------
  NN_NN_NN_NN5_a1       = 364    # ↓↓↓↓↓↓ 生效技能ID
  NN_NN_NN_NN5_a2       = 365    # ↓↓↓↓↓↓ 生效技能ID
  NN_NN_NN_NN5_a3       = 0      # ↓↓↓↓↓↓ 生效技能ID
  NN_NN_NN_NN5_a4       = 0      # ↓↓↓↓↓↓ 生效技能ID
  NN_NN_NN_NN5_s1       = 0.66   # ↓↓↓↓↓↓ 生效技能正常伤害倍率
  #直接修改技能输出比   直接用脚本修改输出倍数
#-------------------------------------------------------------------------- ☆
#-------------(如果不需要直接生效ID填"0")---------------------------------------
  NN_NN_NN_NN6_a1       = 31    # ↓↓↓↓↓↓ 生效状态id 附加该状态时每次攻击↓
  NN_NN_NN_NN6_s1       = 0.08  # ↓↓↓↓↓↓ 额外造成目标当前生命百分比伤害←
  NN_NN_NN_NN6_a2       = 32    # ↓↓↓↓↓↓ 生效状态id 附加该状态时每次攻击↓
  NN_NN_NN_NN6_s2       = 0.10  # ↓↓↓↓↓↓ 额外造成目标最大生命百分比伤害←
  # NN_NN_NN_NN6_a2 作者专门用于法系伤害的,需要判断技能id ,请去 113 行设置
#-------------------------------------------------------------------------- ☆
# ● 计算伤害
#-------------------------------------------------------------------------- ☆
  def make_damage_value(user, item)
    value = item.damage.eval(user, self, $game_variables)
#-------------------------------------------------------------------------- ☆
# # 攻击者和防御者损失4%最大生命值分别降低和提升1%伤害输出值(范围75%~125%)
#-------------------------------------------------------------------------- ☆
    NN_NN_NN_NN1 == 0 ? value += value * (1-user.hp/user.mhp) * 0.25 + value * (self.hp/self.mhp) * 0.25 : value *= 1   
#-------------------------------------------------------------------------- ☆
# # 设置技能伤害输出率   直接用脚本修改输出倍数
#-------------------------------------------------------------------------- ☆
  if item.is_a?(RPG::Skill);case item.id;when NN_NN_NN_NN5_a1,NN_NN_NN_NN5_a2,NN_NN_NN_NN5_a3,NN_NN_NN_NN5_a4;value *= NN_NN_NN_NN5_s1;end;end
#-------------------------------------------------------------------------- ☆
# # 设置最小伤害值(a1为设置限制的技能ID a2为技能最小伤害值 a1只需要设置伤害技能)
#-------------------------------------------------------------------------- ☆
    if item.is_a?(RPG::Skill);
    if value > 0 ; value < HP_DAMAGE_XX+mhp/50 ? value = HP_DAMAGE_XX+mhp/50 : value *= 1;end;end
#-------------------------------------------------------------------------- ☆
# # 设置技能伤害特效     技能同暴击率的可能性造成额外的伤害
#-------------------------------------------------------------------------- ☆
    if item.is_a?(RPG::Skill);case item.id;when NN_NN_NN_NN0_a1,NN_NN_NN_NN0_a2,NN_NN_NN_NN0_a3,NN_NN_NN_NN0_a4;rand(100)+1 < user.cri*100 ? value *= 1+NN_NN_NN_NN0_s1 : value = value;end;end
#-------------------------------------------------------------------------- ☆
# ● 基础原文
#-------------------------------------------------------------------------- ☆
    value *= item_element_rate(user, item)
    value *= pdr if item.physical?
    value *= mdr if item.magical?
    value *= rec if item.damage.recover?
#-------------------------------------------------------------------------- ☆
# # 设置生命百分比伤害技能     技能会附加目标当前生命的百分比额外伤害
#-------------------------------------------------------------------------- ☆
    if item.is_a?(RPG::Skill) and value > 0
    value +=  user.hp*NN_NN_NN_NN6_s1 if user.state?(NN_NN_NN_NN6_a1)
    a7 = 1 ;a7 = 0 if user.state?(NN_NN_NN_NN6_a2)
    case item.id
    when 272..274,295..297,326..329,341..344,349..351,359,360 # 在这设置生效技能id
    a8 = 0 ; else a8 = 1 ; end
    value += user.mhp*NN_NN_NN_NN6_s2 if a7 == 0 and a8 == 0 ; end
#-------------------------------------------------------------------------- ☆
# # 原版暴击伤害
#-------------------------------------------------------------------------- ☆
    value *= NN_NN_NN_NN3 if @result.critical and NN_NN_NN_NN2 == 0
#-------------------------------------------------------------------------- ☆
# # 暴击伤害版本 (一) [公式:(基础伤害+新备注)*(tp/10)*(tp/10)*(0.015+敏捷*0.002)]
#-------------------------------------------------------------------------- ☆
    a4 = value if @result.critical and NN_NN_NN_NN4 == 0 and NN_NN_NN_NN2 == 1
    value *= (1+user.bb) + (user.tp/10)**2 * (0.015 + user.agi * 0.01 * 0.002)  if @result.critical and NN_NN_NN_NN2 == 1
    a0 =  (1+user.bb) + (user.tp/10)**2 * (0.015 + user.agi * 0.01 * 0.002)  if @result.critical and NN_NN_NN_NN4 == 0 and NN_NN_NN_NN2 == 1
    a1 = "-----------"  if @result.critical and NN_NN_NN_NN4 == 0 and NN_NN_NN_NN2 == 1
    a2 =  (a4 * a0).to_i  if @result.critical and NN_NN_NN_NN4 == 0 and NN_NN_NN_NN2 == 1
    a3 =  (((1+user.bb) + (user.tp/10)**2 * (0.015 + user.agi * 0.01 * 0.002))*100).to_i  if @result.critical and NN_NN_NN_NN4 == 0 and NN_NN_NN_NN2 == 1
    print "标志-暴击! 伤害=#{value.to_i} 倍率=#{(((1+user.bb)+(user.tp/10)**2 * (0.015 + user.agi * 0.01 * 0.002))*100).to_i}% |#{user.name}| → |#{self.name}|\n#{a4.to_i}(基础伤害) * [ #{(1+user.bb)}(基础倍率) + #{((user.tp/10)**2).to_i}(平衡) * #{(15 + user.agi * 0.01 * 2).to_i*0.001}(基数)]\n\n\n"  if @result.critical and NN_NN_NN_NN4 == 0 and NN_NN_NN_NN2 == 1
#-------------------------------------------------------------------------- ☆
# ● 基础原文
#-------------------------------------------------------------------------- ☆
    value = apply_variance(value, item.damage.variance)
    value = apply_guard(value)
#-------------------------------------------------------------------------- ☆
# # 判断输出值
#-------------------------------------------------------------------------- ☆
    if item.is_a?(RPG::Skill);if value > 0 ;a5 = 1;else;a5 = 0;end;end
#-------------------------------------------------------------------------- ☆
# # 反甲治疗技能抛除
#-------------------------------------------------------------------------- ☆
    if value > 0 and self.state?(NN_NN_NN_XX2)
    a1 = (value * NN_NN_NN_XX3 + NN_NN_NN_XX5).to_i
    user.hp > a1 ? user.hp - a1 : user.hp = 1
    value -= (value * NN_NN_NN_XX3).to_i if NN_NN_NN_XX4 == 0;end
#-------------------------------------------------------------------------- ☆
# # 魔法盾治疗技能抛除
#-------------------------------------------------------------------------- ☆
    if item.damage.to_hp? and self.state?(STATE_ID)
    mp_value = [(value * MP_RATE).to_i  , self.mp/NN_NN_NN_XX1].min ; value -= mp_value ; if mp_value < 0 ; value += mp_value if a5 = 1
    mp_value = 0 ; else ; mp_value = mp_value ;end ;self.mp -= (mp_value*NN_NN_NN_XX1).to_i ;end
#-------------------------------------------------------------------------- ☆
# ● 基础原文
#-------------------------------------------------------------------------- ☆
    @result.make_damage(value.to_i, item);end;end
#-------------------------------------------------------------------------- ☆
# ● 定义额外暴击伤害
#-------------------------------------------------------------------------- ☆
class Game_BattlerBase ; def bb ; tuozhan_99*0.01 ; end ; end ;class Game_Actor < Game_Battler ; def tuozhan_99 ; self.class.note =~ /<额外暴击伤害 (\d+?)>/i ? $1.to_i : 0 ; end ; end ; class Game_Enemy < Game_Battler ; def tuozhan_99 ; self.enemy.note =~ /<额外暴击伤害 (\d+?)>/i ? $1.to_i : 0 ;end;end
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 被动状态
#--------------------------------------------------------------------------
  alias state_battle_start on_battle_start
  def on_battle_start
    state_battle_start
    self.feature_objects.each {|obj|
    self.add_state($1.to_i) if obj.note =~ /<被动状态:\s*(\d+)>/}
  end
end
#-------------------------------------------------------------------------- ☆
# ● 结束
#-------------------------------------------------------------------------- ☆
# ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆  ☆

点评

感谢解答,虽然我已经解决了……不过你的脚本很有意思,容我收藏了  发表于 2016-9-6 19:43
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 01:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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