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

Project1

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

[已经解决] 关于全域化技能的设定

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
462
在线时间
1411 小时
注册时间
2010-9-23
帖子
557
跳转到指定楼层
1
发表于 2011-8-5 08:16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
VX如何向XP那样设定全域化技能呢?
例:墨海马使用了喷墨~全体人员(包括敌我)的的命中率都下降了。
是要使用公共事件呢,还是要是用脚本呢?

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1071 小时
注册时间
2011-5-12
帖子
2317

贵宾

2
发表于 2011-8-5 09:04:26 | 只看该作者
效果范围那里有个敌全体~
状态附加的话右边有个状态变化~
命中率下降的话状态页里有个减少命中率~


月夜神音于2011-8-5 09:04补充以下内容:
效果范围那里有个敌全体~
状态附加的话右边有个状态变化~
命中率下降的话状态页里有个减少命中率~

点评

那就公共事件吧~  发表于 2011-8-5 10:54
额,您可能没看清我说的,己方和敌方是一样的...  发表于 2011-8-5 10:39
找我请找芙蕾娅
顺带一提,完全看得懂我头像请捡起你自己的节操哟(自重
回复

使用道具 举报

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

3
发表于 2011-8-5 13:21:50 | 只看该作者
放脚本:
  1. # ▽▽▽ XRXSv21. 特殊効果詰め合わせ ScopeVX ▽▽▽
  2. #
  3. # publish 2010/ 3/18
  4. # update - 11/ 1/ 4
  5. #
  6. #==============================================================================
  7. # カスタマイズポイント
  8. #==============================================================================
  9. module XRXSV21
  10.   #
  11.   # \cover_guard 発動時に表示される文字列
  12.   #
  13.   CoverGuard_S = "%s 代替 %s 承受攻击"
  14.   #
  15.   # カバーガードの発動対象とするアイテム・スキルのスコープ(範囲値)
  16.   #
  17.   CoverGuardScope = [1,3,4,5,6,13]
  18.   #
  19.   # 自分より低いHPの味方のみをかばう?
  20.   #
  21.   CoverGuardForWeakened = true
  22.   #
  23.   # \reflect 発動時に表示される文字列
  24.   #
  25.   Reflect_S = "%s 把魔法反弹了!"
  26. end
  27. #==============================================================================
  28. # 魔法?の判定
  29. #==============================================================================
  30. class RPG::Skill
  31.   def magic_skill?
  32.     return (self.spi_f >= 1)
  33.   end
  34. end
  35. #==============================================================================
  36. # 装備総メモ の取得
  37. #==============================================================================
  38. class Game_Battler
  39.   def equip_notes
  40.     text = ""
  41.     for equip in self.equips.compact
  42.       text += equip.note
  43.     end
  44.     return text
  45.   end
  46.   def equips
  47.     return []
  48.   end
  49. end
  50. #==============================================================================
  51. # 通常攻撃オブジェクト/対応
  52. #==============================================================================
  53. class RPG::Attack < RPG::UsableItem
  54.   def initialize
  55.     super
  56.     @scope = 1
  57.     @base_damage = 1
  58.     @variance = 20
  59.     @atk_f = 100
  60.   end
  61. end
  62. #==============================================================================
  63. # 通常攻撃オブジェクトの取得
  64. #==============================================================================
  65. class Game_BattleAction
  66.   def attack
  67.     obj = RPG::Attack.new
  68.     obj.element_set = self.battler.element_set
  69.     if battler.confusion?
  70.       obj.scope = 12
  71.     elsif battler.berserker?
  72.       obj.scope = 4
  73.     else
  74.       self.battler.equip_notes.gsub(/\\scope\[([0-9]+?)\]/) do
  75.         obj.scope = $1.to_i if $1.to_i > 0
  76.       end
  77.       if self.battler.equip_notes.include?("\\all")
  78.         obj.scope = 2
  79.       end
  80.     end
  81.     obj.note = self.battler.equip_notes
  82.     return obj
  83.   end
  84. end
  85. #==============================================================================
  86. # 追加スコープの取得
  87. #==============================================================================
  88. module XRXSV21_ScopeEX
  89.   def scope
  90.     self.note.gsub(/\\scope\[([0-9]+?)\]/) do
  91.       return $1.to_i if $1.to_i > 0
  92.     end
  93.     return (self.note.include?("\\all")   ?  2 :
  94.             self.note.include?("\\randf") ? 12 :
  95.             self.note.include?("\\rands") ? 13 :
  96.             self.note.include?("\\alls") ? 14 : super)
  97.   end
  98. end
  99. class RPG::Skill
  100.   include XRXSV21_ScopeEX
  101. end
  102. class RPG::Item
  103.   include XRXSV21_ScopeEX
  104. end
  105. #==============================================================================
  106. # 通常攻撃・スキル・アイテムのターゲット作成
  107. #==============================================================================
  108. class Game_BattleAction
  109.   def make_attack_targets # [再定義]
  110.     targets = make_obj_targets(self.attack)
  111.     if battler.dual_attack
  112.       targets += targets
  113.     end
  114.     return targets.compact
  115.   end
  116.   alias xrxsv21_make_obj_targets make_obj_targets
  117.   def make_obj_targets(obj)
  118.     targets = xrxsv21_make_obj_targets(obj)
  119.     case obj.scope
  120.     when 12, 13 # 味方・敵味方ランダム
  121.       targets = [get_random_target_for_scope(obj.scope)]
  122.     when 14 # 敵味方全体
  123.       targets = []
  124.       targets += opponents_unit.existing_members
  125.       targets += friends_unit.existing_members
  126.     end
  127.     if obj.note.include?("\\myself") # 自分追加
  128.       targets.push(self.battler) if not targets.include?(self.battler)
  129.     elsif obj.note.include?("\\exself") # 自分以外
  130.       targets.delete(self.battler)
  131.     end
  132.     obj.note.gsub(/\\([0-9]+?)hit/) do
  133.       n = $1.to_i
  134.       if n >= 2
  135.         case obj.scope
  136.         when 4,5,6,12,13
  137.           (n-1).times do
  138.             targets.push(get_random_target_for_scope(obj.scope))
  139.           end
  140.         else
  141.           targets = targets * n
  142.         end
  143.       end
  144.     end
  145.     one_target = true
  146.     target = targets[0]
  147.     for n in targets
  148.       one_target &= (n == target)
  149.     end
  150.     if one_target and target.is_a?(Game_Actor)
  151.       for actor in $game_party.members
  152.         if XRXSV21::CoverGuardScope.include?(obj.scope) and
  153.            actor != target and actor.movable? and
  154.            actor.equip_notes[/\\cover_guard/] and
  155.            (not XRXSV21::CoverGuardForWeakened or actor.maxhp > target.maxhp) and
  156.            (target.battlejjump_at_post? rescue true)
  157.           #
  158.           text = sprintf(XRXSV21::CoverGuard_S, actor.name, target.name)
  159.           $game_temp.xrxsv21_instant_messages.push(text)
  160.           targets = [actor] * targets.size
  161.           actor.battlejump_infront(target) rescue nil
  162.           break
  163.         end
  164.       end
  165.     end
  166.     if obj.is_a?(RPG::Skill) and obj.magic_skill?
  167.       reflecting_targets = []
  168.       for i in 0...targets.size
  169.         target = targets[i]
  170.         text = target.equip_notes
  171.         for state in target.states
  172.           text += state.note
  173.         end
  174.         if text[/\\reflect/]
  175.           targets[i] = self.battler
  176.           reflecting_targets.push(target)
  177.         end
  178.       end
  179.       for target in reflecting_targets
  180.         text = sprintf(XRXSV21::Reflect_S, target.name)
  181.         $game_temp.xrxsv21_instant_messages.push(text)
  182.       end
  183.     end
  184.     return targets
  185.   end
  186.   def get_random_target_for_scope(scope)
  187.     case scope
  188.     when 4,5,6
  189.       return opponents_unit.random_target
  190.     when 12
  191.       return friends_unit.random_target
  192.     when 13
  193.       unit = [opponents_unit, friends_unit][rand(2)]
  194.       return unit.random_target
  195.     end
  196.   end
  197. end
  198. #==============================================================================
  199. # ターゲット変化の表示
  200. #==============================================================================
  201. class Game_Temp
  202.   def xrxsv21_instant_messages
  203.     @xrxsv21_instant_messages = [] unless @xrxsv21_instant_messages
  204.     return @xrxsv21_instant_messages
  205.   end
  206. end
  207. class Scene_Battle < Scene_Base
  208.   #--------------------------------------------------------------------------
  209.   # ● 行動結果の表示
  210.   #--------------------------------------------------------------------------
  211.   alias xrxsv21_display_action_effects display_action_effects
  212.   def display_action_effects(target, obj = nil)
  213.     for text in $game_temp.xrxsv21_instant_messages
  214.       @message_window.add_instant_text(text)
  215.     end
  216.     $game_temp.xrxsv21_instant_messages.clear
  217.     xrxsv21_display_action_effects(target, obj)
  218.   end
  219. end
  220. #==============================================================================
  221. # ターゲット選択を必要としない場合のバトルコマンド対応
  222. #==============================================================================
  223. class Scene_Battle < Scene_Base
  224.   alias xrxsv21_start_target_enemy_selection start_target_enemy_selection
  225.   def start_target_enemy_selection
  226.     if @actor_command_window.index == 0 and not @active_battler.action.attack.need_selection?
  227.       return next_actor
  228.     end
  229.     return xrxsv21_start_target_enemy_selection
  230.   end
  231. end

复制代码
之后在武器·防具·敌人·道具·技能的备注栏里写
\alls
就ok
装备角色和敌人的通常攻击、技能目标、道具目标会变成敌我全体。

剩下还有很多效果,自己用Google翻译或者其他的翻译软件看这里:
http://xrxs.at-ninja.jp/Nov21.htm
这个脚本的出处也是这里。

点评

谢谢您的帮助,果然还是脚本好啊...  发表于 2011-8-6 09:34
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-10 22:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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