Project1
标题:
关于技能属性的问题,大触才进来
[打印本页]
作者:
黄谊洲
时间:
2015-12-25 12:44
标题:
关于技能属性的问题,大触才进来
本帖最后由 黄谊洲 于 2015-12-25 13:02 编辑
众所周知,护甲类所附加的攻击时附加某属性,那么这个攻击时附加的属性只有普通攻击有效,那么我想请教的问题是,如何让这个护甲类所附加的攻击时附加的属性 在该角色的其他技能上生效呢?
作者:
taroxd
时间:
2015-12-25 12:49
技能的使用效果里写附加状态 - 普通攻击 100%
作者:
御曹司
时间:
2015-12-25 13:03
本帖最后由 御曹司 于 2015-12-25 13:09 编辑
技能的伤害的属性 改为 普通攻击
作者:
jianyulei
时间:
2015-12-28 19:39
#==============================================================================
# ■ RGSS3 スキル・アイテムへの追加属性 Ver1.00 by 星潟
#------------------------------------------------------------------------------
# 一定確率で指定したスキル・アイテム使用時のダメージ属性が
# 本来エディタ上で指定された物から更に追加されるようにします。
# 使い方によっては特定スキル・アイテムに
# 一定確率で他の属性を追加する特徴が作成できるようにもなります。
#
# 例.スキルのメモ欄に
# <追加属性:3>
# 100%の確率でそのスキル・アイテムに
# 属性ID3の属性が追加される。
#
# <追加属性:4,50>
# 50%の確率でそのスキル・アイテムに
# 属性ID4の属性が追加される。
#
# <追加属性:5,user.element_rate(17)*100-100>
# 使用者の属性ID17の属性有効度から100を引いた確率で
# そのスキル・アイテムに属性ID5の属性が追加される。
#------------------------------------------------------------------------------
# ももまるLabs様のXPスタイルバトルと併用される場合
# XPスタイルバトルより上に配置して下さい。
# そうする事で、弱点/耐性ダメージ表示が正常に稼働します。
#
# 数値指定の2番目は確率処理ですが、evalを用いているので
# 上のuser.element_rate(17)*100-100等のように、計算式を用いる事が可能です。
# 装備品等で追加属性を設定する際は、これをうまく利用して下さい。
#==============================================================================
module EX_ELEM
#追加属性で弱点や耐性が発生した時の属性計算方法の指定
#0……各属性で最も高い有効度を属性有効度として扱う。
#1……全属性の有効度の乗算を属性有効度として扱う。
#2……基本有効度を0とし、全属性の有効度から100を引いた値を
# 基本有効度に加算した値を属性有効度として扱う。
TYPE = 0
#追加属性として同じ属性が多重付与された場合の処理
#true……全て有効にする。
#false……一回分のみ有効とする。
#なお、TYPEが0の場合は、強制的にfalseになります。
DUAL1 = false
#スキル・アイテムと同じ属性が多重付与された場合の処理
#true……有効にする。
#false……無効とする。
#なお、TYPEが0の場合は、強制的にfalseになります。
DUAL2 = false
#属性有効度下限
#(負の値も指定可能。
# ただし、TYPEを2にしない限り、通常環境下では0以下にはならない。
# 設定しない場合、nilを指定)
BTM = 0
#属性有効度上限
#(設定しない場合、nilを指定)
TOP = 10000
#設定用キーワード(変更不要)
WORD = "追加属性"
end
class Game_Battler < Game_BattlerBase
alias item_element_rate_extra_element item_element_rate
def item_element_rate(user, item)
@exelem = []
data = item_element_rate_extra_element(user, item)
#追加属性がない時は処理を飛ばす
if !item.extra_element.empty?
#追加属性を確率で判定
for i in 0...item.extra_element.size
next unless eval(item.extra_element[i][1]) > rand(100)
@exelem.push(item.extra_element[i][0].to_i)
end
#多重付与された追加属性を削除(設定による)
@exelem.uniq! if !EX_ELEM::DUAL1 or EX_ELEM::TYPE == 0
#追加属性内から、元々スキル・アイテム内にある属性を削除(設定による)
if !EX_ELEM::DUAL2 or EX_ELEM::TYPE == 0
if item.damage.element_id < 0 && !user.atk_elements.empty?
user.atk_elements.each do |i|
@exelem.delete(i) if @exelem.include?(i)
end
else
@exelem.delete(item.damage.element_id) if @exelem.include?(item.damage.element_id)
end
end
#追加属性がある場合、タイプ別に属性有効度計算処理
if
[email protected]
?
for i in @exelem
data2 = element_rate(i)
if EX_ELEM::TYPE == 0
data = data2 if data < data2
elsif EX_ELEM::TYPE == 1
data *= data2
elsif EX_ELEM::TYPE == 2
data += data2 - 1.0
end
end
end
end
#属性有効度最大値チェック
data = [data, EX_ELEM::TOP / 100.0].min if EX_ELEM::TOP != nil
#属性有効度最低値チェック
data = [data, EX_ELEM::BTM / 100.0].max if EX_ELEM::BTM != nil
return data
end
end
class RPG::UsableItem < RPG::BaseItem
def extra_element
#キャッシュがある場合は読み込み処理を飛ばす
return @extra_element if @extra_element != nil
data = []
#メモ欄から読み込み
self.note.each_line { |line|
memo = line.scan(/<#{EX_ELEM::WORD}[::](\S+)>/)
memo = memo.flatten
if memo != nil and not memo.empty?
memo = memo[0].split(/\s*,\s*/)
#2番目の値がない場合は100%追加
memo.push("100") if memo[1] == nil
data.push(memo)
end
}
@extra_element = data
return @extra_element
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1