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

Project1

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

[已经解决] 大佬们,怎么指定一个单体技能可以选择敌我双方

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1335
在线时间
82 小时
注册时间
2017-9-5
帖子
110
跳转到指定楼层
1
发表于 2021-9-12 15:23:41 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
va的技能都是只能单向选择敌人或单向选择我方,向弄个敌我双发都能选择的技能

Lv3.寻梦者

梦石
0
星屑
1335
在线时间
82 小时
注册时间
2017-9-5
帖子
110
3
 楼主| 发表于 2021-9-12 18:27:40 | 只看该作者
alexncf125 发表于 2021-9-12 16:27
#==============================================================================
#
# ▼ YSA Battle A ...

感谢大佬的脚本,刚刚网页崩了没能及时回复
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26264
在线时间
5355 小时
注册时间
2016-3-8
帖子
1655
2
发表于 2021-9-12 16:27:13 | 只看该作者
RUBY 代码复制
  1. #==============================================================================
  2. #
  3. # ▼ YSA Battle Add-On: 反转目标
  4. # -- Last Updated: 2012.02.19
  5. # -- Level: Easy
  6. # -- 前置脚本:
  7. #  + Yanfly Engine Ace - 战斗系统
  8. #
  9. #==============================================================================
  10.  
  11. $imported = {} if $imported.nil?
  12. $imported["YSA-InvertTargets"] = true
  13.  
  14. #==============================================================================
  15. # ▼ Updates
  16. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  17. # 2012.02.19 - Add notetag <no invert>.
  18. # 2012.01.03 - Fix a critical bug after an inverted skill.
  19. # 2012.01.03 - Started Script and Finished.
  20. #
  21. #==============================================================================
  22. # ▼ Instructions
  23. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  24. # To install this script, open up your script editor and copy/paste this script
  25. # to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
  26. #
  27. # -----------------------------------------------------------------------------
  28. # 技能/物品备注
  29. # -----------------------------------------------------------------------------
  30. # <无法反转目标>
  31. # 该技能或物品无法反转目标
  32. #
  33. #==============================================================================
  34. # ▼ Compatibility
  35. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  36. # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
  37. # it will run with RPG Maker VX without adjusting.
  38. #
  39. #==============================================================================
  40.  
  41. module YSA
  42.   module INVERT_TARGETS
  43.  
  44.     # 反转目标键
  45.     INVERT_KEY = :SHIFT
  46.  
  47.   end
  48. end
  49.  
  50. #==============================================================================
  51. # ▼ Editting anything past this point may potentially result in causing
  52. # computer damage, incontinence, explosion of user's head, coma, death, and/or
  53. # halitosis so edit at your own risk.
  54. #==============================================================================
  55.  
  56. module YSA
  57.   module REGEXP
  58.   module USABLEITEM
  59.  
  60.     NO_INVERT = /<(?:NO_INVERT|无法反转目标)>/i
  61.  
  62.   end # USABLEITEM
  63.   end # REGEXP
  64. end # YSA
  65.  
  66. #==============================================================================
  67. # ■ DataManager
  68. #==============================================================================
  69.  
  70. module DataManager
  71.  
  72.   #--------------------------------------------------------------------------
  73.   # alias method: load_database
  74.   #--------------------------------------------------------------------------
  75.   class <<self; alias load_database_invt load_database; end
  76.   def self.load_database
  77.     load_database_invt
  78.     load_notetags_invt
  79.   end
  80.  
  81.   #--------------------------------------------------------------------------
  82.   # new method: load_notetags_invt
  83.   #--------------------------------------------------------------------------
  84.   def self.load_notetags_invt
  85.     groups = [$data_skills, $data_items]
  86.     for group in groups
  87.       for obj in group
  88.         next if obj.nil?
  89.         obj.load_notetags_invt
  90.       end
  91.     end
  92.   end
  93.  
  94. end # DataManager
  95.  
  96. #==============================================================================
  97. # ■ RPG::UsableItem
  98. #==============================================================================
  99.  
  100. class RPG::UsableItem < RPG::BaseItem
  101.  
  102.   #--------------------------------------------------------------------------
  103.   # public instance variables
  104.   #--------------------------------------------------------------------------
  105.   attr_accessor :no_invert
  106.  
  107.   #--------------------------------------------------------------------------
  108.   # common cache: load_notetags_invt
  109.   #--------------------------------------------------------------------------
  110.   def load_notetags_invt
  111.     @no_invert = false
  112.     #---
  113.     self.note.split(/[\r\n]+/).each { |line|
  114.       case line
  115.       #---
  116.       when YSA::REGEXP::USABLEITEM::NO_INVERT
  117.         @no_invert = true
  118.       #---
  119.       end
  120.     } # self.note.split
  121.     #---
  122.   end
  123.  
  124. end # RPG::UsableItem
  125.  
  126. #==============================================================================
  127. # ■ Game_Action
  128. #==============================================================================
  129.  
  130. class Game_Action
  131.  
  132.   #--------------------------------------------------------------------------
  133.   # alias method: friends_unit
  134.   #--------------------------------------------------------------------------
  135.   alias invert_target_friends_unit friends_unit
  136.   def friends_unit
  137.     subject.invert_target? ? subject.opponents_unit : invert_target_friends_unit
  138.   end
  139.  
  140.   #--------------------------------------------------------------------------
  141.   # alias method: opponents_unit
  142.   #--------------------------------------------------------------------------
  143.   alias invert_target_opponents_unit opponents_unit
  144.   def opponents_unit
  145.     subject.invert_target? ? subject.friends_unit : invert_target_opponents_unit
  146.   end
  147.  
  148.   #--------------------------------------------------------------------------
  149.   # alias method: set_skill
  150.   #--------------------------------------------------------------------------
  151.   alias invert_target_set_skill set_skill
  152.   def set_skill(skill_id)
  153.     invert_target_set_skill(skill_id)
  154.     subject.invert_target = false
  155.   end
  156.  
  157.   #--------------------------------------------------------------------------
  158.   # alias method: set_item
  159.   #--------------------------------------------------------------------------
  160.   alias invert_target_set_item set_item
  161.   def set_item(skill_id)
  162.     invert_target_set_item(skill_id)
  163.     subject.invert_target = false
  164.   end
  165.  
  166. end # Game_Action
  167.  
  168. #==============================================================================
  169. # ■ Game_Battler
  170. #==============================================================================
  171.  
  172. class Game_Battler < Game_BattlerBase
  173.  
  174.   #--------------------------------------------------------------------------
  175.   # public instance variables
  176.   #--------------------------------------------------------------------------
  177.   attr_accessor :invert_target
  178.  
  179.   #--------------------------------------------------------------------------
  180.   # alias method: initialize
  181.   #--------------------------------------------------------------------------
  182.   alias invert_target_initialize initialize
  183.   def initialize
  184.     invert_target_initialize
  185.     @invert_target = false
  186.   end
  187.  
  188.   #--------------------------------------------------------------------------
  189.   # new method: invert_target?
  190.   #--------------------------------------------------------------------------
  191.   def invert_target?
  192.     @invert_target
  193.   end
  194.  
  195. end # Game_Battler
  196.  
  197. #==============================================================================
  198. # ■ Scene_Battle
  199. #==============================================================================
  200.  
  201. class Scene_Battle < Scene_Base
  202.  
  203.   #--------------------------------------------------------------------------
  204.   # alias method: update_basic
  205.   #--------------------------------------------------------------------------
  206.   alias scene_battle_update_basic_invtrg update_basic
  207.   def update_basic
  208.     scene_battle_update_basic_invtrg
  209.     update_input_invert_target
  210.   end
  211.  
  212.   #--------------------------------------------------------------------------
  213.   # new method: update_input_invert_target
  214.   #--------------------------------------------------------------------------
  215.   def update_input_invert_target
  216.     return unless BattleManager.actor
  217.     return unless @actor_window.active || @enemy_window.active
  218.     if Input.trigger?(YSA::INVERT_TARGETS::INVERT_KEY)
  219.       return if BattleManager.actor.input.item.no_invert
  220.       BattleManager.actor.invert_target = !BattleManager.actor.invert_target
  221.       if @actor_window.active
  222.         @actor_window.unselect
  223.         @actor_window.hide.deactivate
  224.         case @actor_command_window.current_symbol
  225.         when :skill
  226.           @skill_window.show
  227.         when :item
  228.           @item_window.show
  229.         end
  230.         select_enemy_selection
  231.       elsif @enemy_window.active
  232.         @enemy_window.hide.deactivate
  233.         case @actor_command_window.current_symbol
  234.         when :skill
  235.           @skill_window.hide
  236.         when :item
  237.           @item_window.hide
  238.         end
  239.         if $imported["YEA-BattleEngine"]
  240.           scene_battle_select_actor_selection_abe
  241.         else
  242.           select_actor_selection
  243.         end        
  244.       end
  245.     end
  246.   end
  247.  
  248.   #--------------------------------------------------------------------------
  249.   # alias method: on_actor_cancel
  250.   #--------------------------------------------------------------------------
  251.   alias scene_battle_on_actor_cancel_invtrg on_actor_cancel
  252.   def on_actor_cancel
  253.     scene_battle_on_actor_cancel_invtrg
  254.     BattleManager.actor.invert_target = false
  255.   end
  256.  
  257.   #--------------------------------------------------------------------------
  258.   # alias method: on_enemy_cancel
  259.   #--------------------------------------------------------------------------
  260.   alias scene_battle_on_enemy_cancel_invtrg on_enemy_cancel
  261.   def on_enemy_cancel
  262.     scene_battle_on_enemy_cancel_invtrg
  263.     BattleManager.actor.invert_target = false
  264.   end
  265.  
  266.   #--------------------------------------------------------------------------
  267.   # alias method: turn_end
  268.   #--------------------------------------------------------------------------
  269.   alias scene_battle_turn_end_invtrg turn_end
  270.   def turn_end
  271.     scene_battle_turn_end_invtrg
  272.     for actor in $game_party.members
  273.       actor.invert_target = false
  274.     end
  275.   end
  276.  
  277. end # Scene_Battle
  278.  
  279. #==============================================================================
  280. #
  281. # ▼ End of File
  282. #
  283. #==============================================================================
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 02:31

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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