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

Project1

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

[已经解决] 再一个日文脚本求用法...

[复制链接]

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
跳转到指定楼层
1
发表于 2010-7-8 00:12:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
在技能备注里填写<攻撃属性継承>...what is that
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 攻撃属性設定 - KGC_SetAttackElement ◆ VX ◆
  3. #_/    ◇ Last update : 2008/08/28 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  キャラクター毎に攻撃属性を設定する機能を追加します。
  6. #_/============================================================================
  7. #_/ 【基本機能】≪素手詳細設定≫ より下に導入してください。
  8. #_/ 【戦闘システム】≪割合ダメージ≫ より下に導入してください。
  9. #_/  正常に反映されない場合は、導入位置を移動してください。
  10. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

  11. $data_system = load_data("Data/System.rvdata") if $data_system == nil

  12. #==============================================================================
  13. # ★ カスタマイズ項目 - Customize ★
  14. #==============================================================================

  15. module KGC
  16. module SetAttackElement
  17.   # ◆ アクターの初期状態の攻撃属性
  18.   ACTOR_ELEMENT = []  # ←これは消さないように
  19.   # この下に
  20.   #  ACTOR_ELEMENT[アクター ID] = [属性1, 属性2, ...]
  21.   # という書式で追加。
  22.   # <例> アクター1の攻撃を炎・風属性にする
  23. #~   ACTOR_ELEMENT[1] = [9, 14]
  24.   # <例> アクター2の攻撃を雷属性にする
  25. #~   ACTOR_ELEMENT[2] = [11]

  26.   # ◆ 継承しない属性
  27.   #  <攻撃属性継承> で継承しない属性の ID を指定。
  28.   #  範囲オブジェクト(1..6 など)または整数の配列 (両方混ざってもOK)。
  29.   #  例えば、ID 1~6 と 10 なら [1..6, 10] と書く。
  30.   IGNORE_ELEMENTS = []
  31. end
  32. end

  33. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  34. $imported = {} if $imported == nil
  35. $imported["SetAttackElement"] = true

  36. module KGC::SetAttackElement
  37.   # 正規表現
  38.   module Regexp
  39.     # スキル
  40.     module Skill
  41.       # 攻撃属性継承
  42.       INHERIT_ATTACK_ELEMENT = /<(?:INHERIT_ATTACK_ELEMENT|攻撃属性継承)>/i
  43.     end

  44.     # エネミー
  45.     module Enemy
  46.       # 攻撃属性
  47.       ATTACK_ELEMENT = /<(?:ATTACK_ELEMENT|攻撃属性)\s*(\d+(?:\s*,\s*\d+)*)>/i
  48.     end
  49.   end

  50.   #--------------------------------------------------------------------------
  51.   # ○ 非継承属性を整数配列に変換
  52.   #--------------------------------------------------------------------------
  53.   def self.create_ignore_element_list
  54.     result = []
  55.     IGNORE_ELEMENTS.each { |e|
  56.       if e.is_a?(Range)
  57.         result |= e.to_a
  58.       elsif e.is_a?(Integer)
  59.         result |= [e]
  60.       end
  61.     }
  62.     return result.sort
  63.   end

  64.   # 非継承属性配列
  65.   IGNORE_ELEMENT_ID_LIST = create_ignore_element_list
  66. end

  67. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  68. #==============================================================================
  69. # □ KGC::Commands
  70. #==============================================================================

  71. module KGC
  72. module Commands
  73.   module_function
  74.   #--------------------------------------------------------------------------
  75.   # ○ アクターの追加攻撃属性設定
  76.   #     actor_id    : アクター ID
  77.   #     element_set : 属性配列 (nil で解除)
  78.   #--------------------------------------------------------------------------
  79.   def set_actor_attack_element(actor_id, element_set = nil)
  80.     actor = $game_actors[actor_id]
  81.     return if actor == nil
  82.     actor.attack_element_set = element_set
  83.   end
  84. end
  85. end

  86. class Game_Interpreter
  87.   include KGC::Commands
  88. end

  89. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  90. #==============================================================================
  91. # ■ RPG::UsableItem
  92. #==============================================================================

  93. class RPG::UsableItem < RPG::BaseItem
  94.   #--------------------------------------------------------------------------
  95.   # ○ 攻撃属性継承
  96.   #--------------------------------------------------------------------------
  97.   def attack_element_inherit?
  98.     return false
  99.   end
  100. end

  101. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  102. #==============================================================================
  103. # ■ RPG::Skill
  104. #==============================================================================

  105. class RPG::Skill < RPG::UsableItem
  106.   #--------------------------------------------------------------------------
  107.   # ○ 攻撃属性設定のキャッシュ生成
  108.   #--------------------------------------------------------------------------
  109.   def create_set_attack_element_cache
  110.     @__inherit_attack_element = false

  111.     self.note.each_line { |line|
  112.       case line
  113.       when KGC::SetAttackElement::Regexp::Skill::INHERIT_ATTACK_ELEMENT
  114.         # 攻撃属性継承
  115.         @__inherit_attack_element = true
  116.       end
  117.     }
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ○ 攻撃属性継承
  121.   #--------------------------------------------------------------------------
  122.   def attack_element_inherit?
  123.     create_set_attack_element_cache if @__inherit_attack_element == nil
  124.     return @__inherit_attack_element
  125.   end
  126. end

  127. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  128. #==============================================================================
  129. # ■ RPG::Enemy
  130. #==============================================================================

  131. class RPG::Enemy
  132.   #--------------------------------------------------------------------------
  133.   # ○ 攻撃属性設定のキャッシュ生成
  134.   #--------------------------------------------------------------------------
  135.   def create_set_attack_element_cache
  136.     @__attack_element_set = []

  137.     self.note.each_line { |line|
  138.       case line
  139.       when KGC::SetAttackElement::Regexp::Enemy::ATTACK_ELEMENT
  140.         # 攻撃属性
  141.         elements = []
  142.         $1.scan(/\d+/).each { |num| elements << num.to_i }
  143.         @__attack_element_set |= elements
  144.       end
  145.     }
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # ○ 攻撃属性
  149.   #--------------------------------------------------------------------------
  150.   def attack_element_set
  151.     create_set_attack_element_cache if @__attack_element_set == nil
  152.     return @__attack_element_set
  153.   end
  154. end

  155. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  156. #==============================================================================
  157. # ■ Game_Battler
  158. #==============================================================================

  159. class Game_Battler
  160.   #--------------------------------------------------------------------------
  161.   # ○ 公開インスタンス変数
  162.   #--------------------------------------------------------------------------
  163.   attr_accessor :attack_element_set       # 攻撃属性
  164.   #--------------------------------------------------------------------------
  165.   # ● 通常攻撃の属性取得
  166.   #--------------------------------------------------------------------------
  167.   alias element_set_KGC_SetAttackElement element_set
  168.   def element_set
  169.     return (element_set_KGC_SetAttackElement | attack_element_set)
  170.   end
  171.   #--------------------------------------------------------------------------
  172.   # ○ 攻撃属性取得
  173.   #--------------------------------------------------------------------------
  174.   def attack_element_set
  175.     result = []
  176.     result |= @attack_element_set if @attack_element_set.is_a?(Array)
  177.     return result
  178.   end
  179.   #--------------------------------------------------------------------------
  180.   # ● スキルまたはアイテムによるダメージ計算
  181.   #     user : スキルまたはアイテムの使用者
  182.   #     obj  : スキルまたはアイテム
  183.   #    結果は @hp_damage または @mp_damage に代入する。
  184.   #--------------------------------------------------------------------------
  185.   alias make_obj_damage_value_KGC_SetAttackElement make_obj_damage_value
  186.   def make_obj_damage_value(user, obj)
  187.     # 元の攻撃属性を退避
  188.     last_element_set = obj.element_set.clone
  189.     # 攻撃属性を継承
  190.     obj.element_set = get_inherited_element_set(user, obj)

  191.     make_obj_damage_value_KGC_SetAttackElement(user, obj)

  192.     # 攻撃属性を戻す
  193.     obj.element_set = last_element_set
  194.   end
  195.   #--------------------------------------------------------------------------
  196.   # ○ 継承後の攻撃属性取得
  197.   #     user : スキルまたはアイテムの使用者
  198.   #     obj  : スキルまたはアイテム
  199.   #--------------------------------------------------------------------------
  200.   def get_inherited_element_set(user, obj)
  201.     result = obj.element_set.clone
  202.     return result unless obj.attack_element_inherit?

  203.     result |= (user.element_set - KGC::SetAttackElement::IGNORE_ELEMENT_ID_LIST)
  204.     return result
  205.   end
  206. end

  207. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  208. #==============================================================================
  209. # ■ Game_Actor
  210. #==============================================================================

  211. class Game_Actor < Game_Battler
  212.   #--------------------------------------------------------------------------
  213.   # ● 通常攻撃の属性取得
  214.   #--------------------------------------------------------------------------
  215.   alias element_set_KGC_SetAttackElement element_set
  216.   def element_set
  217.     return (element_set_KGC_SetAttackElement | attack_element_set)
  218.   end
  219.   #--------------------------------------------------------------------------
  220.   # ○ 追加攻撃属性取得
  221.   #--------------------------------------------------------------------------
  222.   def attack_element_set
  223.     result = super
  224.     elements = KGC::SetAttackElement::ACTOR_ELEMENT[self.id]
  225.     result |= elements if elements.is_a?(Array)
  226.     return result
  227.   end
  228. end

  229. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  230. #==============================================================================
  231. # ■ Game_Enemy
  232. #==============================================================================

  233. class Game_Enemy < Game_Battler
  234.   #--------------------------------------------------------------------------
  235.   # ○ 追加攻撃属性取得
  236.   #--------------------------------------------------------------------------
  237.   def attack_element_set
  238.     return (super | enemy.attack_element_set)
  239.   end
  240. end
复制代码

Lv1.梦旅人

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
帖子
1245
2
发表于 2010-7-8 00:43:06 | 只看该作者

评分

参与人数 1星屑 +700 收起 理由
木葬枫 + 700 认可答案,66RPG感谢您的热情解答 ...

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
3
 楼主| 发表于 2010-7-8 05:29:15 | 只看该作者
本帖最后由 负零 于 2010-7-8 05:31 编辑

又要谢谢你了...谢谢啊
话说 翻译机出品的我仍不太明白 是攻击属性合并吗,一次攻击带有上次攻击的属性...??如果清楚的话请给我详解...
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
416 小时
注册时间
2006-10-21
帖子
1245
4
发表于 2010-7-8 11:39:19 | 只看该作者
我的感觉是让角色在默认的情况下带属性攻击
比如设置角色是冰属性
发动技能 火球
属性继承的话 伤害就会按 冰火 对敌人的有效度 来给与敌人伤害(不知道会不会继承武器的)
普攻的话就是武器+冰
自己多试试吧
话说 你哪看来的??
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-14 23:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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