赞 | 1 |
VIP | 0 |
好人卡 | 1 |
积分 | 5 |
经验 | 14658 |
最后登录 | 2023-10-4 |
在线时间 | 310 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 531
- 在线时间
- 310 小时
- 注册时间
- 2016-4-13
- 帖子
- 227
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
请问如何设置RTAB的特技连携的消耗sp值调整?也就是截图的脚本如何更改、使用。求大神解决,十分感谢。- #==============================================================================
- # RTAB 特技连携 (0.16b新增官方特效,必须配合RTAB特技吟唱)
- #
- # 解说+汉化 by SixRice
- #==============================================================================
- # 連携スキル Ver 1.02
- # 配布元・サポートURL
- # http://members.jcom.home.ne.jp/cogwheel/
- class Scene_Battle
- #------------------------------------------------------------------------------
- # 合成特技判定
- #
- # 考虑到可能会存在同名特技,将默认的根据name判断改成id判断则不会重复了(0.16b)
- #------------------------------------------------------------------------------
- def synthe_spell(battler)
- if battler.is_a?(Game_Actor)
- @spell_p[battler] = $data_skills[battler.current_action.skill_id].id
- end
- if battler.is_a?(Game_Enemy)
- @spell_e[battler] = $data_skills[battler.current_action.skill_id].id
- end
- #------------------------------------------------------------------------------
- synthe_s = []#合成特技判定数组
- #------------------------------------------------------------------------------
- # 官方说明:
- # 设定为『synthe_s.push([["特技idA","特技idB"],"特技idC"]』的情况下,
- # 特技A和特技B同时使用时会发动特技C,称为“合成特技”。
- #------------------------------------------------------------------------------
- # 以下是官方设置范例(这里一样给出翻译,当作创作参考也不错,不用则删):
- #------------------------------------------------------------------------------
- # synthe_s.push([[57,22,61],89])#十字斩 + 风 + 扫荡 = 暗黑十字斩
- # synthe_s.push([[59,61],60])# 扫荡 + 旋风斩 = 螺旋斩
- # synthe_s.push([[57,22],59])# 十字斩 + 风 = 旋风斩
- # synthe_s.push([[61,13],63])# 扫荡 + 雷电 = 雷电环
- # synthe_s.push([[57,63],64])# 十字斩 + 雷电环 = 螺旋推
- # synthe_s.push([[57,61,7],72])#十字斩 + 扫荡 + 火炎 = 迪特利之舞
- # synthe_s.push([[16,16],17])
- # synthe_s.push([[16,17],18])
- # synthe_s.push([[17,17],18])
- # synthe_s.push([[60,18],74])
- #------------------------------------------------------------------------------
- # 下为自己制定的技能
- synthe_s.push([[1,2],3])#治疗术+圣疗术=神疗术
- synthe_s.push([[7,11],8])#火炎+寒冰=寒冰之火
- #------------------------------------------------------------------------------
- # 初级教学——A + B = C:
- #
- # 就拿第一个例子来说,57号特技+22号特技 = 59号特技
- # 也就是“十字斩” + “风” = “旋风斩”
- # 但实际使用起来存在一个时间差的问题,同一时间内,不可能同时打出两招,总有个先后。
- # 因此就必须用到“RTAB特技吟唱”这个特效,来弥补所谓的时间差。
- #------------------------------------------------------------------------------
- # 接续上面的例子,将“风”这个魔法,在“RTAB特技吟唱”中设置一个吟唱时间,
- # 则选择发动“风”的时候就不会即时发动,而会进入“吟唱时间”,
- # 然后再在“风”的“吟唱时间”内发动“十字斩” ,这一连携就成立了。
- # 也就是说,这个连携一定要先出“风”,后出“十字斩”,才会判定成立。
- # 如果需要无视先后顺序的话,给“十字斩”也加个“吟唱时间”判定就可以了。
- #------------------------------------------------------------------------------
- # 再次接续上面的例子,如果给合成特技“旋风斩”也加上“吟唱时间”,
- # 则符合连携判定时,几个特技的发动者会同时进入“连携吟唱时间”,
- # 此时的吟唱速度是根据发动者速度叠加计算的,吟唱时间槽也会变成一种新的颜色,
- # ……貌似很有趣的样子哦。(详细说明参见“RTAB特技吟唱”第27行)
- #------------------------------------------------------------------------------
- # 中级教学——合成特技的作用目标:
- #
- # 敌方全体,己方全体的情况就不解释了……
- # 敌方单体,己方单体的情况,判定己方领队的指定对象为作用目标;(官方解释)
- #
- # 另外一些情况:(官方解释 + RP解说)
- #
- # 其一,当我方一号位队员(领队),二号位队员,三号位队员发动连携的时候;
- # 三个人分别指向三个目标,最后以领队的指向为准。
- #
- # 其二,比较无聊的情况,当连携的构成要素全部指向对方,而合成特技的作用范围
- # 却是与其相反(比如指敌方,合成作用己方;指自方,合成却作用敌方)的时候,
- # 或者构成要素的作用范围全都是全体,合成的作用范围却是单体……
- # 此类情况判定为失去作用目标,此时作用对象随机确定。
- #
- # 其三,特技附带了“RTAB战斗特效”中的出招收招效果的情况;
- # 参考其一,效果会全部作用在领队身上。
- #------------------------------------------------------------------------------
- # 高级教学——多人连携:(是不是在数学课本上见过以下公式?……)
- #
- #1. A + B + C + D = E
- #
- #2.(A + B) + (C + D) = E
- #
- #3.{[(A + B) + C] + D} = E
- #
- #3的顺序是锁死的,必须这样排。
- #另外需要指出的是,A+B的合成结果必须也是有吟唱时间的,
- #这样才能在这段时间中完成与C的连携判定,下同,具体自己体会一下吧。
- #
- #2是双重连携,但也有可能出现(A+C)+(B+D)=F,(A+D)+(B+C)=G(貌似越来越混乱了……)
- #
- #1的顺序看似任意,但是其中任何数量的要素存在其他连携方式的话,就要注意顺序了。
- #
- #比如上面的例子中:
- #synthe_s.push([[57,22],59]) # 十字斩 + 风 = 旋风斩
- #synthe_s.push([[59,61],60]) # 扫荡 + 旋风斩 = 螺旋斩
- #synthe_s.push([[57,22,61],88])#十字斩 + 风 + 扫荡 = 暗黑十字斩
- #设 57 = A , 22 = B , 59 = C , 61 = D , 88 = E
- #如果要达成“暗黑十字斩”,( A + B + D ) = E
- #则必须绕过“旋风斩”A+B=C和“螺旋斩”C+D=E的连携成立判定。
- #正确的出招顺序是 D + B + A = E
- #反之 A + B + D 的顺序则会打出“螺旋斩”。
- #
- #------------------------------------------------------------------------------
- temp = [@spell_p, @spell_e]
- for spell in temp
- for spells in synthe_s
- magic = spells[1]
- spell_c = spell.clone
- for id in spells[0]
- if spell_c.has_value?(id)
- spell_c.delete(spell_c.index(id))
- else
- magic = nil
- break
- end
- end
- # 连携成立判定
- if magic != nil
- for skill in $data_skills
- if magic == $data_skills[skill.id].id
- break
- end
- end
- if magic != $data_skills[skill.id].id
- p "注意:特技编号在数据库中不存在!请重新设置!"
- end
- rt = 0
- synthe_b = []
- spell_c = spell.clone
- for id in spells[0]
- actor = spell_c.index(id)
- speller = synthe?(actor)
- if speller != nil
- for battlers in speller
- synthe_b.push(battlers)
- spell_c.delete(battlers)
- end
- rt += battlers.rt
- end
- unless synthe_b.include?(actor)
- synthe_b.push(actor)
- spell_c.delete(actor)
- rt += actor.rt
- end
- end
- #------------------------------------------------------------------------------
- # 特技连携的消费SP设置:
- #(A号连携者消费等同于特技A,B号连携者消费等同于特技B,下同……。)
- # 如果不在这里设置,则参与连携的战斗者每人消费的SP等于合成特技所需消费的SP。
- #------------------------------------------------------------------------------
- case magic #合成特技id
- when 59
- spells = [59,23]
- success = spell_effect(battler, synthe_b, spells)
- when 63
- spells = [63,14]
- success = spell_effect(battler, synthe_b, spells)
- when 60
- spells = [62,59,23]
- success = spell_effect(battler, synthe_b, spells)
- when 64
- spells = [58,63,14]
- success = spell_effect(battler, synthe_b, spells)
- when 72
- spells = [59,63,8]
- success = spell_effect(battler, synthe_b, spells)
- else
- spells = [magic]
- success = spell_effect(battler, synthe_b, spells)
- end
- if success == true
- for actor in synthe_b
- speller = synthe?(actor)
- if speller != nil
- @synthe.delete(speller)
- end
- if battler != actor
- @action_battlers.delete(actor)
- end
- actor.spell = true
- if actor == synthe_b[0]
- spell[actor] = $data_skills[skill.id].id
- else
- spell.delete(actor)
- end
- actor.current_action.skill_id = skill.id
- recite_time(actor)
- actor.rtp = 1 if actor.rtp == 0
- #------------------------------------------------------------------------------
- # 当特技为无吟唱特技的情况下,连携发动者的吟唱所需时间代入1,
- # 防止可能因即时发动而导致连携失败。
- # 合成特技发动时发动者吟唱槽清零重新进入计算,
- # 所有参与连携的发动者的吟唱值带入整体吟唱值。
- #------------------------------------------------------------------------------
- actor.rt = rt
- end
- @synthe.push(synthe_b)
- else
- for actor in synthe_b
- actor.current_action.spell_id = 0
- end
- end
- end
- end
- end
- end
- def spell_effect(battler, synthe, spells)
- spell_id = []
- for actor in synthe
- if spells.size != 0
- spell = spells.shift
- end
- for skill in $data_skills
- if spell == $data_skills[skill.id].id
- break
- end
- end
- if spell != $data_skills[skill.id].id
- p "注意:特技编号在数据库中不存在!请重新设置!"
- end
- if actor.skill_can_use?(skill.id) or
- battler.current_action.forcing == true
- spell_id.push(skill.id)
- else
- return false
- end
- end
- for actor in synthe
- actor.current_action.spell_id = spell_id.shift
- end
- return true
- end
- end
复制代码
|
|