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

Project1

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

[已经解决] 求解关于RTAB的特技连携的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
531
在线时间
310 小时
注册时间
2016-4-13
帖子
227

开拓者

跳转到指定楼层
1
发表于 2016-9-9 20:58:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
请问如何设置RTAB的特技连携的消耗sp值调整?也就是截图的脚本如何更改、使用。求大神解决,十分感谢。
  1. #==============================================================================
  2. # RTAB 特技连携 (0.16b新增官方特效,必须配合RTAB特技吟唱)
  3. #
  4. # 解说+汉化 by SixRice
  5. #==============================================================================
  6. # 連携スキル Ver 1.02
  7. # 配布元・サポートURL
  8. # http://members.jcom.home.ne.jp/cogwheel/

  9. class Scene_Battle
  10. #------------------------------------------------------------------------------
  11. # 合成特技判定
  12. #
  13. # 考虑到可能会存在同名特技,将默认的根据name判断改成id判断则不会重复了(0.16b)
  14. #------------------------------------------------------------------------------
  15.   def synthe_spell(battler)
  16.     if battler.is_a?(Game_Actor)
  17.       @spell_p[battler] = $data_skills[battler.current_action.skill_id].id
  18.     end
  19.     if battler.is_a?(Game_Enemy)
  20.       @spell_e[battler] = $data_skills[battler.current_action.skill_id].id
  21.     end
  22. #------------------------------------------------------------------------------   
  23.   synthe_s = []#合成特技判定数组
  24. #------------------------------------------------------------------------------
  25. # 官方说明:
  26. # 设定为『synthe_s.push([["特技idA","特技idB"],"特技idC"]』的情况下,
  27. # 特技A和特技B同时使用时会发动特技C,称为“合成特技”。
  28. #------------------------------------------------------------------------------
  29. # 以下是官方设置范例(这里一样给出翻译,当作创作参考也不错,不用则删):
  30. #------------------------------------------------------------------------------   

  31. #  synthe_s.push([[57,22,61],89])#十字斩 + 风 + 扫荡 = 暗黑十字斩
  32. #  synthe_s.push([[59,61],60])# 扫荡 + 旋风斩 = 螺旋斩
  33. #  synthe_s.push([[57,22],59])# 十字斩 + 风 = 旋风斩
  34. #  synthe_s.push([[61,13],63])# 扫荡 + 雷电 = 雷电环
  35. #  synthe_s.push([[57,63],64])# 十字斩 + 雷电环 = 螺旋推
  36. #  synthe_s.push([[57,61,7],72])#十字斩 + 扫荡 + 火炎 = 迪特利之舞
  37. #  synthe_s.push([[16,16],17])
  38. #  synthe_s.push([[16,17],18])
  39. #  synthe_s.push([[17,17],18])
  40. #  synthe_s.push([[60,18],74])
  41. #------------------------------------------------------------------------------
  42. # 下为自己制定的技能
  43.   synthe_s.push([[1,2],3])#治疗术+圣疗术=神疗术
  44.   synthe_s.push([[7,11],8])#火炎+寒冰=寒冰之火
  45. #------------------------------------------------------------------------------
  46. # 初级教学——A + B = C:
  47. #
  48. # 就拿第一个例子来说,57号特技+22号特技 = 59号特技
  49. # 也就是“十字斩” + “风” = “旋风斩”
  50. # 但实际使用起来存在一个时间差的问题,同一时间内,不可能同时打出两招,总有个先后。
  51. # 因此就必须用到“RTAB特技吟唱”这个特效,来弥补所谓的时间差。
  52. #------------------------------------------------------------------------------
  53. # 接续上面的例子,将“风”这个魔法,在“RTAB特技吟唱”中设置一个吟唱时间,
  54. # 则选择发动“风”的时候就不会即时发动,而会进入“吟唱时间”,
  55. # 然后再在“风”的“吟唱时间”内发动“十字斩” ,这一连携就成立了。
  56. # 也就是说,这个连携一定要先出“风”,后出“十字斩”,才会判定成立。
  57. # 如果需要无视先后顺序的话,给“十字斩”也加个“吟唱时间”判定就可以了。
  58. #------------------------------------------------------------------------------
  59. # 再次接续上面的例子,如果给合成特技“旋风斩”也加上“吟唱时间”,
  60. # 则符合连携判定时,几个特技的发动者会同时进入“连携吟唱时间”,
  61. # 此时的吟唱速度是根据发动者速度叠加计算的,吟唱时间槽也会变成一种新的颜色,
  62. # ……貌似很有趣的样子哦。(详细说明参见“RTAB特技吟唱”第27行)
  63. #------------------------------------------------------------------------------
  64. # 中级教学——合成特技的作用目标:
  65. #
  66. # 敌方全体,己方全体的情况就不解释了……
  67. # 敌方单体,己方单体的情况,判定己方领队的指定对象为作用目标;(官方解释)
  68. #
  69. # 另外一些情况:(官方解释 + RP解说)
  70. #
  71. # 其一,当我方一号位队员(领队),二号位队员,三号位队员发动连携的时候;
  72. # 三个人分别指向三个目标,最后以领队的指向为准。
  73. #
  74. # 其二,比较无聊的情况,当连携的构成要素全部指向对方,而合成特技的作用范围
  75. # 却是与其相反(比如指敌方,合成作用己方;指自方,合成却作用敌方)的时候,
  76. # 或者构成要素的作用范围全都是全体,合成的作用范围却是单体……
  77. # 此类情况判定为失去作用目标,此时作用对象随机确定。
  78. #
  79. # 其三,特技附带了“RTAB战斗特效”中的出招收招效果的情况;
  80. # 参考其一,效果会全部作用在领队身上。
  81. #------------------------------------------------------------------------------
  82. # 高级教学——多人连携:(是不是在数学课本上见过以下公式?……)
  83. #
  84. #1. A + B + C + D = E
  85. #
  86. #2.(A + B) + (C + D) = E
  87. #
  88. #3.{[(A + B) + C] + D} = E
  89. #
  90. #3的顺序是锁死的,必须这样排。
  91. #另外需要指出的是,A+B的合成结果必须也是有吟唱时间的,
  92. #这样才能在这段时间中完成与C的连携判定,下同,具体自己体会一下吧。
  93. #
  94. #2是双重连携,但也有可能出现(A+C)+(B+D)=F,(A+D)+(B+C)=G(貌似越来越混乱了……)
  95. #
  96. #1的顺序看似任意,但是其中任何数量的要素存在其他连携方式的话,就要注意顺序了。
  97. #
  98. #比如上面的例子中:
  99. #synthe_s.push([[57,22],59]) # 十字斩 + 风 = 旋风斩
  100. #synthe_s.push([[59,61],60]) # 扫荡 + 旋风斩 = 螺旋斩
  101. #synthe_s.push([[57,22,61],88])#十字斩 + 风 + 扫荡 = 暗黑十字斩
  102. #设 57 = A , 22 = B , 59 = C , 61 = D , 88 = E
  103. #如果要达成“暗黑十字斩”,( A + B + D ) = E
  104. #则必须绕过“旋风斩”A+B=C和“螺旋斩”C+D=E的连携成立判定。
  105. #正确的出招顺序是 D + B + A = E
  106. #反之 A + B + D 的顺序则会打出“螺旋斩”。
  107. #
  108. #------------------------------------------------------------------------------   
  109.     temp = [@spell_p, @spell_e]
  110.     for spell in temp
  111.       for spells in synthe_s
  112.         magic = spells[1]
  113.         spell_c = spell.clone
  114.         for id in spells[0]
  115.           if spell_c.has_value?(id)
  116.             spell_c.delete(spell_c.index(id))
  117.           else
  118.             magic = nil
  119.             break
  120.           end
  121.         end
  122.         # 连携成立判定
  123.         if magic != nil
  124.           for skill in $data_skills
  125.             if magic == $data_skills[skill.id].id
  126.               break
  127.             end
  128.           end
  129.           if magic != $data_skills[skill.id].id
  130.             p  "注意:特技编号在数据库中不存在!请重新设置!"
  131.           end
  132.           rt = 0
  133.           synthe_b = []
  134.           spell_c = spell.clone
  135.           for id in spells[0]
  136.             actor = spell_c.index(id)
  137.             speller = synthe?(actor)
  138.             if speller != nil
  139.               for battlers in speller
  140.                 synthe_b.push(battlers)
  141.                 spell_c.delete(battlers)
  142.               end
  143.               rt += battlers.rt
  144.             end
  145.             unless synthe_b.include?(actor)
  146.               synthe_b.push(actor)
  147.               spell_c.delete(actor)
  148.               rt += actor.rt
  149.             end
  150.           end
  151. #------------------------------------------------------------------------------
  152. # 特技连携的消费SP设置:
  153. #(A号连携者消费等同于特技A,B号连携者消费等同于特技B,下同……。)
  154. # 如果不在这里设置,则参与连携的战斗者每人消费的SP等于合成特技所需消费的SP。
  155. #------------------------------------------------------------------------------
  156.           case magic #合成特技id
  157.           when 59
  158.             spells = [59,23]
  159.             success = spell_effect(battler, synthe_b, spells)
  160.           when 63
  161.             spells = [63,14]
  162.             success = spell_effect(battler, synthe_b, spells)
  163.           when 60
  164.             spells = [62,59,23]
  165.             success = spell_effect(battler, synthe_b, spells)
  166.           when 64
  167.             spells = [58,63,14]
  168.             success = spell_effect(battler, synthe_b, spells)
  169.           when 72
  170.             spells = [59,63,8]
  171.             success = spell_effect(battler, synthe_b, spells)
  172.           else
  173.             spells = [magic]
  174.             success = spell_effect(battler, synthe_b, spells)
  175.           end
  176.           if success == true
  177.             for actor in synthe_b
  178.               speller = synthe?(actor)
  179.               if speller != nil
  180.                 @synthe.delete(speller)
  181.               end
  182.               if battler != actor
  183.                 @action_battlers.delete(actor)
  184.               end
  185.               actor.spell = true
  186.               if actor == synthe_b[0]
  187.                 spell[actor] = $data_skills[skill.id].id
  188.               else
  189.                 spell.delete(actor)
  190.               end
  191.               actor.current_action.skill_id = skill.id
  192.               recite_time(actor)
  193.               actor.rtp = 1 if actor.rtp == 0
  194. #------------------------------------------------------------------------------              
  195. # 当特技为无吟唱特技的情况下,连携发动者的吟唱所需时间代入1,
  196. # 防止可能因即时发动而导致连携失败。
  197. # 合成特技发动时发动者吟唱槽清零重新进入计算,
  198. # 所有参与连携的发动者的吟唱值带入整体吟唱值。
  199. #------------------------------------------------------------------------------
  200.               actor.rt = rt
  201.             end
  202.             @synthe.push(synthe_b)
  203.           else
  204.             for actor in synthe_b
  205.               actor.current_action.spell_id = 0
  206.             end
  207.           end
  208.         end
  209.       end
  210.     end
  211.   end
  212.   def spell_effect(battler, synthe, spells)
  213.     spell_id = []
  214.     for actor in synthe
  215.       if spells.size != 0
  216.         spell = spells.shift
  217.       end
  218.       for skill in $data_skills
  219.         if spell == $data_skills[skill.id].id
  220.           break
  221.         end
  222.       end
  223.       if spell != $data_skills[skill.id].id
  224.         p "注意:特技编号在数据库中不存在!请重新设置!"
  225.       end
  226.       if actor.skill_can_use?(skill.id) or
  227.           battler.current_action.forcing == true
  228.         spell_id.push(skill.id)
  229.       else
  230.         return false
  231.       end
  232.     end
  233.     for actor in synthe
  234.       actor.current_action.spell_id = spell_id.shift
  235.     end
  236.     return true
  237.   end
  238. end
复制代码

图片1.jpg (109.86 KB, 下载次数: 5)

图片1.jpg

Lv2.观梦者

梦石
0
星屑
531
在线时间
310 小时
注册时间
2016-4-13
帖子
227

开拓者

2
 楼主| 发表于 2016-9-23 20:57:41 | 只看该作者
有人能帮个忙吗?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1358
在线时间
1295 小时
注册时间
2012-8-4
帖子
749
3
发表于 2016-9-23 22:48:36 | 只看该作者

好像是
case 合成的特技
when 如果合成的特技是59
   那么A号连携者消耗59法力,B连携者消耗23法力。
然后合击成60 那个消耗法力可能是多些了。60号合击2个人就可以了。

点评

弄懂了,十分感谢。  发表于 2016-9-24 13:20

评分

参与人数 1星屑 +200 收起 理由
RyanBern + 200 认可答案

查看全部评分

回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-11 17:20

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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