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

Project1

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

[已经解决] 技能效果范围除使用者以外

[复制链接]

Lv1.梦旅人

梦石
0
星屑
242
在线时间
105 小时
注册时间
2012-8-30
帖子
31
跳转到指定楼层
1
发表于 2017-3-5 17:34:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
技能效果 范围除使用者以外,该如何修改?

点评

【警告】版规A-8 弃帖/提问后不管  发表于 2017-3-13 11:49

Lv2.观梦者

梦石
0
星屑
468
在线时间
132 小时
注册时间
2016-6-15
帖子
151
2
发表于 2017-3-5 18:41:25 | 只看该作者
借用一下工程里其他作者的脚本吧,这个新建脚本复制进去,然后技能的注释备注加<使用者除外>,具体的测试一下看看
  1. #==============================================================================
  2. # ★ RGSS3_スコープ拡張 Ver1.01
  3. #==============================================================================
  4. =begin

  5. 作者:tomoaky
  6. webサイト:ひきも記 (http://hikimoki.sakura.ne.jp/)

  7. 通常攻撃の効果範囲にランダム化、全体化などを追加します、
  8. アクター、職業、武器、防具のメモ欄に以下のタグを書き込んでください。
  9.   <通常攻撃全体化>
  10.   通常攻撃の効果範囲が敵全体になります
  11.   
  12.   <通常攻撃ランダム化>
  13.   通常攻撃の効果範囲が敵 1 体ランダムになります
  14.   ただし、攻撃追加回数が設定されている場合は、ランダムなターゲットへ
  15.   追加攻撃が発生します。

  16. スキル(アイテム)の効果範囲を『敵味方全体』にする、
  17. スキル、アイテムのメモ欄に以下のタグを書き込んでください。
  18.  <敵味方全体>
  19.   
  20. スキル(アイテム)の効果範囲から使用者を除外する、
  21. スキル、アイテムのメモ欄に以下のタグを書き込んでください。
  22.   <使用者除外>

  23. 2012.01.11  Ver1.01
  24.  混乱時にエラー落ちする不具合を修正
  25.   
  26. 2011.12.19 Ver1.0
  27.   公開

  28. =end

  29. #==============================================================================
  30. # □ 設定項目
  31. #==============================================================================
  32. module TMSCOPEEX
  33.   # 全体化に攻撃追加回数の設定を適用するかどうか、false にすれば
  34.   # 全体化攻撃はすべての敵に1回だけダメージを与えるようになります。
  35.   # 『攻撃追加回数8の武器』と『通常攻撃全体化の装飾品』などを
  36.   # 組み合わせられるとまずい場合は false にしてください。
  37.   APPLY_ALL_REPEATS = true
  38.   
  39.   # 混乱時にも全体化を適用するかどうか、false なら混乱時は単体攻撃になります
  40.   APPLY_ALL_CONFUSION = true
  41. end

  42. #==============================================================================
  43. # ■ RPG::UsableItem
  44. #==============================================================================
  45. class RPG::UsableItem
  46.   #--------------------------------------------------------------------------
  47.   # ● 対象の選択操作が必要か否かを判定する
  48.   #--------------------------------------------------------------------------
  49.   alias tmscopeex_usable_item_need_selection? need_selection?
  50.   def need_selection?
  51.     tmscopeex_usable_item_need_selection? && !for_field?
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ○ 敵味方全体スキルかどうかを返す
  55.   #--------------------------------------------------------------------------
  56.   def for_field?
  57.     /<敵味方全体>/ =~ @note
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ○ 使用者除外スキルかどうかを返す
  61.   #--------------------------------------------------------------------------
  62.   def for_not_user?
  63.     /<使用者除外>/ =~ @note
  64.   end
  65. end

  66. #==============================================================================
  67. # ■ Game_Action
  68. #==============================================================================
  69. class Game_Action
  70.   #--------------------------------------------------------------------------
  71.   # ● 混乱時のターゲット
  72.   #--------------------------------------------------------------------------
  73.   alias tmscopeex_game_action_confusion_target confusion_target
  74.   def confusion_target
  75.     if subject.actor? && attack? &&
  76.         TMSCOPEEX::APPLY_ALL_CONFUSION && subject.attack_for_all?
  77.       case subject.confusion_level
  78.       when 1
  79.         opponents_unit.alive_members
  80.       when 2
  81.         if rand(2) == 0
  82.           opponents_unit.alive_members
  83.         else
  84.           friends_unit.alive_members
  85.         end
  86.       else
  87.         friends_unit.alive_members
  88.       end
  89.     else
  90.       tmscopeex_game_action_confusion_target
  91.     end
  92.   end
  93.   #--------------------------------------------------------------------------
  94.   # ● 敵に対するターゲット
  95.   #--------------------------------------------------------------------------
  96.   alias tmscopeex_game_action_targets_for_opponents targets_for_opponents
  97.   def targets_for_opponents
  98.     if item.for_field?                    # 敵味方全体
  99.       opponents_unit.alive_members + friends_unit.alive_members -
  100.         (item.for_not_user? ? [subject] : [])
  101.     elsif subject.actor? && attack?
  102.       if subject.attack_for_all?          # 全体化
  103.         num = 1
  104.         num += subject.atk_times_add.to_i if TMSCOPEEX::APPLY_ALL_REPEATS
  105.         opponents_unit.alive_members * num
  106.       elsif subject.attack_for_random?    # ランダム化
  107.         Array.new(1 + subject.atk_times_add.to_i) { opponents_unit.random_target }
  108.       else
  109.         num = 1 + subject.atk_times_add.to_i
  110.         if @target_index < 0
  111.           [opponents_unit.random_target] * num
  112.         else
  113.           [opponents_unit.smooth_target(@target_index)] * num
  114.         end
  115.       end
  116.     else
  117.       tmscopeex_game_action_targets_for_opponents
  118.     end
  119.   end
  120.   #--------------------------------------------------------------------------
  121.   # ● 味方に対するターゲット
  122.   #--------------------------------------------------------------------------
  123.   alias tmscopeex_game_action_targets_for_friends targets_for_friends
  124.   def targets_for_friends
  125.     tmscopeex_game_action_targets_for_friends -
  126.       (item.for_not_user? ? [subject] : [])
  127.   end
  128. end

  129. #==============================================================================
  130. # ■ Game_Actor
  131. #==============================================================================
  132. class Game_Actor
  133.   #--------------------------------------------------------------------------
  134.   # ○ 通常攻撃が全体化されているかを返す
  135.   #--------------------------------------------------------------------------
  136.   def attack_for_all?
  137.     text = self.actor.note + self.class.note
  138.     equips.compact.each {|item| text += item.note }
  139.     states.each {|state| text += state.note }
  140.     /<通常攻撃\s*全体化>/ =~ text
  141.   end
  142.   #--------------------------------------------------------------------------
  143.   # ○ 通常攻撃がランダム化されているかを返す
  144.   #--------------------------------------------------------------------------
  145.   def attack_for_random?
  146.     text = self.actor.note + self.class.note
  147.     equips.compact.each {|item| text += item.note }
  148.     states.each {|state| text += state.note }
  149.     /<通常攻撃\s*ランダム化>/ =~ text
  150.   end
  151.   #--------------------------------------------------------------------------
  152.   # ○ 通常攻撃のターゲット選択が必要かどうかを返す
  153.   #--------------------------------------------------------------------------
  154.   def need_attack_selection?
  155.     (!attack_for_all? && !attack_for_random?)
  156.   end
  157. end

  158. #==============================================================================
  159. # ■ Scene_Battle
  160. #==============================================================================
  161. class Scene_Battle
  162.   #--------------------------------------------------------------------------
  163.   # ● コマンド[攻撃] 【再定義】
  164.   #--------------------------------------------------------------------------
  165.   def command_attack
  166.     BattleManager.actor.input.set_attack
  167.     if BattleManager.actor.need_attack_selection?
  168.       select_enemy_selection
  169.     else
  170.       next_command
  171.     end
  172.   end
  173. end

复制代码

评分

参与人数 1星屑 +100 收起 理由
RaidenInfinity + 100 版主认可的答案

查看全部评分

技能:Icon绘制,头像&立绘,VA行走图,地图绘制(全PS制作),脚本盲
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
10
星屑
7697
在线时间
690 小时
注册时间
2017-1-9
帖子
636

我没有哭开拓者

3
发表于 2017-3-5 23:04:41 | 只看该作者
你可以设定三个技能,在主技能(就是角色学会的技能)的使用效果栏添加公共事件,并编辑公共事件由学会这个技能的角色强制释放另外两个技能,这两个技能可以是没有mp、hp、tp消耗的,也就是说,释放技能的消耗由主技能一次性扣除。
因为是强制释放,所以该角色不会这两个分技能也一样能够释放出来。
之所以是三个技能是因为效果范围分别是全体敌人、全体队友、使用者,另外,记得修改技能说明。
比如一个除使用者以外的,全部单位受到定值伤害并附加中毒的技能。
则主技能是所有敌人受到定值的伤害并中毒。分技能1是所有队友收到定值伤害并中毒,2是使用者回复定值hp并解除中毒。
分技能的技能说明可以改成“**也受到了伤害”与“**(使用者)完全不受影响”
如果人性化一点甚至可以将分技能2的技能说明改成“**(使用者)抱歉地看向了队友”
然后在强制释放技能的公共事件里编辑文字
“队友:mmp你这毒雾打到自己人啦!”
“使用者:抱歉,意外,这真的是意外啊!”
……以上
嘛,也只有我这种脚本盲才会想出这样麻烦的方法=w=
这个B天天摸鱼,快点来个谁把他从被窝里拖出来
回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
242
在线时间
105 小时
注册时间
2012-8-30
帖子
31
4
 楼主| 发表于 2017-4-2 12:38:07 | 只看该作者
CHAOSCLOUD 发表于 2017-3-5 18:41
借用一下工程里其他作者的脚本吧,这个新建脚本复制进去,然后技能的注释备注加,具体的测试一下看看
...

非常感谢
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
242
在线时间
105 小时
注册时间
2012-8-30
帖子
31
5
 楼主| 发表于 2017-4-2 12:46:12 | 只看该作者
世界第一中二 发表于 2017-3-5 23:04
你可以设定三个技能,在主技能(就是角色学会的技能)的使用效果栏添加公共事件,并编辑公共事件由学会这个 ...

感谢提供的建议,{:2_249:}很多脚本自己也不会只能靠事件处理
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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