| 赞 | 8 |
| VIP | |
| 好人卡 | |
| 积分 | 21 |
| 经验 | |
| 最后登录 | 2026-9-7 |
| 在线时间 | 185 小时 |
- 梦石
- 0
- 星屑
- 2085
- 在线时间
- 185 小时
- 注册时间
- 2022-6-24
- 回帖
- 148
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 ACRI 于 2022-11-4 03:19 编辑
我想让某个特定技能必定暴击和暴击伤害增加/减少,然后我搜了论坛,找到了老鹰大佬的脚本,但是并不能做到我想要的效果,所以我找了其他的脚本,而且有我想要的效果,但是,老鹰大佬的脚本也想使用,所以想问问看这些脚本会不会冲突
[fold=这是老鹰大佬的][pre lang="ruby"]#==============================================================================
# ■ 暴击与暴击伤害 by 老鹰
#------------------------------------------------------------------------------
# - 新增对暴击、暴击造成的伤害的修改
# - 调整默认的暴击伤害为 100 ,即普通伤害的 2 倍;被暴击伤害为 0 ,即不修改
# - 角色、职业、武器、护甲、敌人、状态的备注栏中填入下式,即可对暴击进行修改
# <Certain Crit> 效果: 必定暴击
# <Certain Be Crited> 效果: 必定被暴击(免疫暴击无效)
# <Resist Crit> 效果: 免疫暴击
# - 注:当攻击者为必定暴击,被攻击者为免疫暴击时,按通常暴击概率计算
# - 角色、职业、武器、护甲、敌人、状态的备注栏中填入下式,即可对暴击伤害进行修改
# <Crit Damage: 数字> 或 <Crit Damage: 数字%>
# 作用:造成的暴击伤害增加 数字/100 的比例(全部之间为加法叠加)
# <Be Crited Damage: 数字> 或 <Be Crited Damage: 数字%>
# 作用:被造成的暴击伤害增加 数字/100 的比例(全部之间为加法叠加)
# - 注:数字可为负数,若最终计算的暴击伤害加成结果为负数,则直接算作普通攻击伤害
# - 举例:
# 1号护甲的备注中填入 <Crit Damage: 200>,1号角色装备中
# 1号状态的备注中填入 <Crit Damage: -100%>,1号角色被附加了该状态
# 1号敌人的备注中填入 <Be Crited Damage: 300>,1号角色暴击了1号敌人
# 效果:其造成的暴击伤害为 普通伤害的 (100 + 200 - 100 + 300)/100 倍,即5倍
#
# - 实质:给战斗者新增了两个实例方法,用于获取 暴击伤害加成 和 被暴击伤害加成
#==============================================================================
class Game_BattlerBase
#--------------------------------------------------------------------------
# ○ 必定暴击?
#--------------------------------------------------------------------------
def certain_crit?
@crit_params[0]
end
#--------------------------------------------------------------------------
# ○ 必定被暴击?
#--------------------------------------------------------------------------
def certain_be_crited?
@crit_params[1]
end
#--------------------------------------------------------------------------
# ○ 免疫暴击?
#--------------------------------------------------------------------------
def resist_crit?
@crit_params[2]
end
#--------------------------------------------------------------------------
# ○ 暴击伤害加成(百分数)
#--------------------------------------------------------------------------
def crit_damage
@crit_params[3]
end
#--------------------------------------------------------------------------
# ○ 被暴击伤害加成(百分数)
#--------------------------------------------------------------------------
def be_crited_damage
@crit_params[4]
end
#--------------------------------------------------------------------------
# ○ 获取用于计算暴击伤害的数组
#--------------------------------------------------------------------------
def get_crit_damage_array
[]
end
#--------------------------------------------------------------------------
# ○ 重新获取暴击各项参数值
#--------------------------------------------------------------------------
def reget_crit_params
# [必定暴击?, 必定被暴击?, 免疫暴击?, 暴击伤害, 被暴击伤害]
@crit_params = [false, false, false, 100, 0]
get_crit_damage_array.each do |a|
next if a == nil
@crit_params[0] = true if a.note =~ /<Certain Crit>/
@crit_params[1] = true if a.note =~ /<Certain Be Crited>/
@crit_params[2] = true if a.note =~ /<Resist Crit>/
@crit_params[3] += $1.to_i if a.note =~ /<Crit Damage: *(-?\d+)%?>/
@crit_params[4] += $1.to_i if a.note =~ /<Be Crited Damage: *(-?\d+)%?>/
end
end
end
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 计算伤害
#--------------------------------------------------------------------------
alias eagle_crit_damage_make_damage_value make_damage_value
def make_damage_value(user, item)
@skill_user = user
@skill_user.reget_crit_params
reget_crit_params
unless @skill_user.certain_crit? && resist_crit?
@result.critical = true if @skill_user.certain_crit?
@result.critical = false if resist_crit?
end
@result.critical = true if certain_be_crited?
eagle_crit_damage_make_damage_value(user, item)
end
#--------------------------------------------------------------------------
# ● 应用关键一击
#--------------------------------------------------------------------------
def apply_critical(damage)
damage * (1 + calc_crit_damage)
end
#--------------------------------------------------------------------------
# ○ 计算最终的暴击伤害加成
#--------------------------------------------------------------------------
def calc_crit_damage
value = (@skill_user.crit_damage + self.be_crited_damage) / 100
return value < 0 ? 0 : value
end
end
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ○ 获取用于计算暴击伤害的数组
#--------------------------------------------------------------------------
def get_crit_damage_array
[actor, self.class] + equips + states
end
end
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# ○ 获取用于计算暴击伤害的数组
#--------------------------------------------------------------------------
def get_crit_damage_array
[enemy] + states
end
end[/pre][/fold]
[fold=这是可以让特定技能的暴击效果增加的脚本(随便一问,这个可以减少吗,我用谷歌翻译看了,好像是不行,但谷歌日常抽风,不是特别相信)][pre lang="ruby"]#==============================================================================
# クリティカルダメージ倍率 ver1.01
#------------------------------------------------------------------------------
#[特徴]
# クリティカルによるダメージの倍率を強化します。
#
#[設定方法]
# アクター、職業、エネミー、アイテム、スキル、装備品、ステートのメモ欄に
# <クリティカルダメージ倍率:数値> と書く。
#
# <クリティカルダメージ倍率:200> と書くと、
# クリティカル時のダメージが200%(2倍)になります。
#
#[注意]
# スキルで反映されるのは使用したスキルのダメージ倍率です。
# いわゆるパッシブスキルのような反映はされません。
#
#
# 作成:ぶちょー
# ホム:http://nyannyannyan.bake-neko.net
# 著作:自分で作ったとか言わないで><
# 改造はご自由にどうぞ。
# リードミーとかに私の名前の載せたりするのは任意で。
#==============================================================================
#==============================================================================
# バージョンアップ情報
# ver1.01 カウンター時にエラーが出るのを修正
# ver1.00 公開
#==============================================================================
#==============================================================================
# 設定項目
#==============================================================================
module Kazari
module CriticalRate
# 設定が重複したときの計算方法
# 0 : 加算【 300%(100%+200%)+200%(100%+100%)=400%(100%+300%) 】
# 1 : 最大
CALC_TYPE = 0
# アクター、エネミーのデフォルトのクリティカルダメージ倍率
DAMAGE_RATE = 3.0
end
end
#==============================================================================
# ここまで
#==============================================================================
$kzr_imported = {} if $kzr_imported == nil
$kzr_imported["CriticalDamageRate"] = true
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ● ダメージ計算
#--------------------------------------------------------------------------
alias kzr_cdr_make_damage_value make_damage_value
def make_damage_value(user, item)
@skill_user = user
kzr_cdr_make_damage_value(user, item)
end
#--------------------------------------------------------------------------
# ● クリティカルの適用
#--------------------------------------------------------------------------
def apply_critical(damage)
damage * @skill_user.critical_damage_rate
end
#--------------------------------------------------------------------------
# ● クリティカルダメージの倍率
#--------------------------------------------------------------------------
def critical_damage_rate
rate = current_action ? current_action.item.critical_damage_rate : 1.0
if Kazari::CriticalRate::CALC_TYPE == 0
feature_objects.inject(rate) {|r, obj| r += (obj.critical_damage_rate - 1.0) }
else
feature_objects.inject([rate]) {|r, obj| r << obj.critical_damage_rate }.max
end
end
end
#==============================================================================
# ■ RPG
#==============================================================================
module RPG
class BaseItem
def critical_damage_rate
return @critical_damage_rate if @critical_damage_rate
@critical_damage_rate = 1.0
note.each_line {|line|
case line
when /<クリティカルダメージ倍率:(\d+)>/
@critical_damage_rate = $1.to_i / 100.0
end
}
return @critical_damage_rate
end
end
class Actor < BaseItem
def critical_damage_rate
return @critical_damage_rate if @critical_damage_rate
@critical_damage_rate = Kazari::CriticalRate::DAMAGE_RATE
note.each_line {|line|
case line
when /<クリティカルダメージ倍率:(\d+)>/i
@critical_damage_rate = $1.to_i * 0.01
end
}
return @critical_damage_rate
end
end
class Enemy < BaseItem
def critical_damage_rate
return @critical_damage_rate if @critical_damage_rate
@critical_damage_rate = Kazari::CriticalRate::DAMAGE_RATE
note.each_line {|line|
case line
when /<クリティカルダメージ倍率:(\d+)>/i
@critical_damage_rate = $1.to_i * 0.01
end
}
return @critical_damage_rate
end
end
end[/pre][/fold]
[fold=这是特定技能必定暴击脚本][pre lang="ruby"]class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 计算技能/物品的必杀几率 #<must_cri>放技能或者物品备忘录
#--------------------------------------------------------------------------
alias :special_skill_item_cri :item_cri
def item_cri(user, item)
return 1 if item.note =~ /<must_cri>/i
special_skill_item_cri(user, item)
end
end
[/pre][/fold] |
|