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

Project1

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

[已经解决] 效果范围的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
61
在线时间
251 小时
注册时间
2015-5-14
帖子
453
跳转到指定楼层
1
发表于 2015-8-7 15:57:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
系统默认都是,设置单个队友只能对单个队友发动,设置单个敌人只能对单个敌人发动……
怎么样让他双面化,就是让所有范围都扩大到敌我双方。比如设置单个队友,开始光标在单
个队友身上,但也可以移动到敌方身上。

Lv3.寻梦者

梦石
0
星屑
3841
在线时间
723 小时
注册时间
2014-3-29
帖子
509
2
发表于 2015-8-9 12:41:57 | 只看该作者
  1. #==============================================================================
  2. #
  3. # ▼ YSA Battle Add-On: Invert Targets
  4. # -- Last Updated: 2012.02.19
  5. # -- Level: Easy
  6. # -- Requires Optional:
  7. #  + Yanfly Engine Ace - Ace Battle Engine
  8. #
  9. #==============================================================================

  10. $imported = {} if $imported.nil?
  11. $imported["YSA-InvertTargets"] = true

  12. #==============================================================================
  13. # ▼ Updates
  14. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  15. # 2012.02.19 - Add notetag <no invert>.
  16. # 2012.01.03 - Fix a critical bug after an inverted skill.
  17. # 2012.01.03 - Started Script and Finished.
  18. #
  19. #==============================================================================
  20. # ▼ Instructions
  21. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  22. # To install this script, open up your script editor and copy/paste this script
  23. # to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
  24. #
  25. # -----------------------------------------------------------------------------
  26. # Skill and Item Notetags
  27. # -----------------------------------------------------------------------------
  28. # <no invert>
  29. # 使技能/项目不能倒。

  30. #
  31. #==============================================================================
  32. # ▼ Compatibility
  33. # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  34. # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
  35. # it will run with RPG Maker VX without adjusting.
  36. #
  37. #==============================================================================

  38. module YSA
  39.   module INVERT_TARGETS
  40.    
  41.     #选择将反转目标选择的键。

  42.     INVERT_KEY = :SHIFT
  43.    
  44.   end
  45. end

  46. #==============================================================================
  47. # ▼ Editting anything past this point may potentially result in causing
  48. # computer damage, incontinence, explosion of user's head, coma, death, and/or
  49. # halitosis so edit at your own risk.
  50. #==============================================================================

  51. module YSA
  52.   module REGEXP
  53.   module USABLEITEM
  54.    
  55.     NO_INVERT = /<(?:NO_INVERT|no invert)>/i
  56.    
  57.   end # USABLEITEM
  58.   end # REGEXP
  59. end # YSA

  60. #==============================================================================
  61. # ■ DataManager
  62. #==============================================================================

  63. module DataManager
  64.   
  65.   #--------------------------------------------------------------------------
  66.   # alias method: load_database
  67.   #--------------------------------------------------------------------------
  68.   class <<self; alias load_database_invt load_database; end
  69.   def self.load_database
  70.     load_database_invt
  71.     load_notetags_invt
  72.   end
  73.   
  74.   #--------------------------------------------------------------------------
  75.   # new method: load_notetags_invt
  76.   #--------------------------------------------------------------------------
  77.   def self.load_notetags_invt
  78.     groups = [$data_skills, $data_items]
  79.     for group in groups
  80.       for obj in group
  81.         next if obj.nil?
  82.         obj.load_notetags_invt
  83.       end
  84.     end
  85.   end
  86.   
  87. end # DataManager

  88. #==============================================================================
  89. # ■ RPG::UsableItem
  90. #==============================================================================

  91. class RPG::UsableItem < RPG::BaseItem

  92.   #--------------------------------------------------------------------------
  93.   # public instance variables
  94.   #--------------------------------------------------------------------------
  95.   attr_accessor :no_invert
  96.   
  97.   #--------------------------------------------------------------------------
  98.   # common cache: load_notetags_invt
  99.   #--------------------------------------------------------------------------
  100.   def load_notetags_invt
  101.     @no_invert = false
  102.     #---
  103.     self.note.split(/[\r\n]+/).each { |line|
  104.       case line
  105.       #---
  106.       when YSA::REGEXP::USABLEITEM::NO_INVERT
  107.         @no_invert = true
  108.       #---
  109.       end
  110.     } # self.note.split
  111.     #---
  112.   end
  113.   
  114. end # RPG::UsableItem

  115. #==============================================================================
  116. # ■ Game_Action
  117. #==============================================================================

  118. class Game_Action

  119.   #--------------------------------------------------------------------------
  120.   # alias method: friends_unit
  121.   #--------------------------------------------------------------------------
  122.   alias invert_target_friends_unit friends_unit
  123.   def friends_unit
  124.     subject.invert_target? ? subject.opponents_unit : invert_target_friends_unit
  125.   end

  126.   #--------------------------------------------------------------------------
  127.   # alias method: opponents_unit
  128.   #--------------------------------------------------------------------------
  129.   alias invert_target_opponents_unit opponents_unit
  130.   def opponents_unit
  131.     subject.invert_target? ? subject.friends_unit : invert_target_opponents_unit
  132.   end
  133.   
  134.   #--------------------------------------------------------------------------
  135.   # alias method: set_skill
  136.   #--------------------------------------------------------------------------
  137.   alias invert_target_set_skill set_skill
  138.   def set_skill(skill_id)
  139.     invert_target_set_skill(skill_id)
  140.     subject.invert_target = false
  141.   end
  142.   
  143.   #--------------------------------------------------------------------------
  144.   # alias method: set_item
  145.   #--------------------------------------------------------------------------
  146.   alias invert_target_set_item set_item
  147.   def set_item(skill_id)
  148.     invert_target_set_item(skill_id)
  149.     subject.invert_target = false
  150.   end
  151.    
  152. end # Game_Action

  153. #==============================================================================
  154. # ■ Game_Battler
  155. #==============================================================================

  156. class Game_Battler < Game_BattlerBase
  157.   
  158.   #--------------------------------------------------------------------------
  159.   # public instance variables
  160.   #--------------------------------------------------------------------------
  161.   attr_accessor :invert_target

  162.   #--------------------------------------------------------------------------
  163.   # alias method: initialize
  164.   #--------------------------------------------------------------------------
  165.   alias invert_target_initialize initialize
  166.   def initialize
  167.     invert_target_initialize
  168.     @invert_target = false
  169.   end
  170.   
  171.   #--------------------------------------------------------------------------
  172.   # new method: invert_target?
  173.   #--------------------------------------------------------------------------
  174.   def invert_target?
  175.     @invert_target
  176.   end
  177.   
  178. end # Game_Battler

  179. #==============================================================================
  180. # ■ Scene_Battle
  181. #==============================================================================

  182. class Scene_Battle < Scene_Base
  183.   
  184.   #--------------------------------------------------------------------------
  185.   # alias method: update_basic
  186.   #--------------------------------------------------------------------------
  187.   alias scene_battle_update_basic_invtrg update_basic
  188.   def update_basic
  189.     scene_battle_update_basic_invtrg
  190.     update_input_invert_target
  191.   end
  192.   
  193.   #--------------------------------------------------------------------------
  194.   # new method: update_input_invert_target
  195.   #--------------------------------------------------------------------------
  196.   def update_input_invert_target
  197.     return unless BattleManager.actor
  198.     return unless @actor_window.active || @enemy_window.active
  199.     if Input.trigger?(YSA::INVERT_TARGETS::INVERT_KEY)
  200.       return if BattleManager.actor.input.item.no_invert
  201.       BattleManager.actor.invert_target = !BattleManager.actor.invert_target
  202.       if @actor_window.active
  203.         @actor_window.unselect
  204.         @actor_window.hide.deactivate
  205.         case @actor_command_window.current_symbol
  206.         when :skill
  207.           @skill_window.show
  208.         when :item
  209.           @item_window.show
  210.         end
  211.         select_enemy_selection
  212.       elsif @enemy_window.active
  213.         @enemy_window.hide.deactivate
  214.         case @actor_command_window.current_symbol
  215.         when :skill
  216.           @skill_window.hide
  217.         when :item
  218.           @item_window.hide
  219.         end
  220.         if $imported["YEA-BattleEngine"]
  221.           scene_battle_select_actor_selection_abe
  222.         else
  223.           select_actor_selection
  224.         end        
  225.       end
  226.     end
  227.   end
  228.   
  229.   #--------------------------------------------------------------------------
  230.   # alias method: on_actor_cancel
  231.   #--------------------------------------------------------------------------
  232.   alias scene_battle_on_actor_cancel_invtrg on_actor_cancel
  233.   def on_actor_cancel
  234.     scene_battle_on_actor_cancel_invtrg
  235.     BattleManager.actor.invert_target = false
  236.   end
  237.   
  238.   #--------------------------------------------------------------------------
  239.   # alias method: on_enemy_cancel
  240.   #--------------------------------------------------------------------------
  241.   alias scene_battle_on_enemy_cancel_invtrg on_enemy_cancel
  242.   def on_enemy_cancel
  243.     scene_battle_on_enemy_cancel_invtrg
  244.     BattleManager.actor.invert_target = false
  245.   end
  246.   
  247.   #--------------------------------------------------------------------------
  248.   # alias method: turn_end
  249.   #--------------------------------------------------------------------------
  250.   alias scene_battle_turn_end_invtrg turn_end
  251.   def turn_end
  252.     scene_battle_turn_end_invtrg
  253.     for actor in $game_party.members
  254.       actor.invert_target = false
  255.     end
  256.   end
  257.   
  258. end # Scene_Battle

  259. #==============================================================================
  260. #
  261. # ▼ End of File
  262. #
  263. #==============================================================================
复制代码
双向技能,不知是不是满意 ,在技能备注中填写<no invert>就非双向技能,shift键转换对象

点评

这是同时对敌人和队友生效吧···  发表于 2015-8-9 22:58

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 12:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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