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

Project1

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

阵法?调用脚本?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-6-9
帖子
206
跳转到指定楼层
1
发表于 2008-4-26 03:10:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
http://rpg.blue/viewthread.php?tid=83426&ntime=2008%2D4%2D25+18%3A43%3A53
从这个里面的除了改坐标,如果要加效果之类的应该怎么加?
比如说:全员增加魔法攻击之类的`````
谢谢哈`
版务信息:本贴由楼主自主结贴~

Lv2.观梦者

神隐的主犯

梦石
0
星屑
289
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

2
发表于 2008-4-26 03:14:37 | 只看该作者
LZ是要什么效果?
如果是攻击增加效果的话,可去再增加一个脚本。我去找找看。


增加全体攻击魔法的话,到数据库去设定就可以了。

  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ 攻撃属性設定 - KGC_SetAttackElement ◆ VX ◆
  3. #_/    ◇ Last update : 2008/03/08 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  キャラクター毎に攻撃属性を設定する機能を追加します。
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

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

  8. #==============================================================================
  9. # ★ カスタマイズ項目 - Customize ★
  10. #==============================================================================

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

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

  29. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  30. $imported = {} if $imported == nil
  31. $imported["SetAttackElement"] = true

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

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

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

  60.   # 非継承属性配列
  61.   IGNORE_ELEMENT_ID_LIST = create_ignore_element_list
  62. end

  63. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  64. #==============================================================================
  65. # □ KGC::Commands
  66. #==============================================================================

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

  80. class Game_Interpreter
  81.   include KGC::Commands
  82. end

  83. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  84. #==============================================================================
  85. # ■ RPG::UsableItem
  86. #==============================================================================

  87. class RPG::UsableItem < RPG::BaseItem
  88.   #--------------------------------------------------------------------------
  89.   # ○ 攻撃属性継承
  90.   #--------------------------------------------------------------------------
  91.   def attack_element_inherit?
  92.     return false
  93.   end
  94. end

  95. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  96. #==============================================================================
  97. # ■ RPG::Skill
  98. #==============================================================================

  99. class RPG::Skill < RPG::UsableItem
  100.   #--------------------------------------------------------------------------
  101.   # ○ 攻撃属性設定のキャッシュ生成
  102.   #--------------------------------------------------------------------------
  103.   def create_set_attack_element_cache
  104.     @__inherit_attack_element = false

  105.     self.note.split(/[\r\n]+/).each { |line|
  106.       case line
  107.       when KGC::SetAttackElement::Regexp::Skill::INHERIT_ATTACK_ELEMENT
  108.         # 攻撃属性継承
  109.         @__inherit_attack_element = true
  110.       end
  111.     }
  112.   end
  113.   #--------------------------------------------------------------------------
  114.   # ○ 攻撃属性継承
  115.   #--------------------------------------------------------------------------
  116.   def attack_element_inherit?
  117.     create_set_attack_element_cache if @__inherit_attack_element == nil
  118.     return @__inherit_attack_element
  119.   end
  120. end

  121. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  122. #==============================================================================
  123. # ■ RPG::Enemy
  124. #==============================================================================

  125. class RPG::Enemy
  126.   #--------------------------------------------------------------------------
  127.   # ○ 攻撃属性設定のキャッシュ生成
  128.   #--------------------------------------------------------------------------
  129.   def create_set_attack_element_cache
  130.     @__attack_element_set = []

  131.     self.note.split(/[\r\n]+/).each { |line|
  132.       case line
  133.       when KGC::SetAttackElement::Regexp::Enemy::ATTACK_ELEMENT
  134.         # 攻撃属性
  135.         elements = []
  136.         $1.scan(/\d+/).each { |num| elements << num.to_i }
  137.         @__attack_element_set |= elements
  138.       end
  139.     }
  140.   end
  141.   #--------------------------------------------------------------------------
  142.   # ○ 攻撃属性
  143.   #--------------------------------------------------------------------------
  144.   def attack_element_set
  145.     create_set_attack_element_cache if @__attack_element_set == nil
  146.     return @__attack_element_set
  147.   end
  148. end

  149. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  150. #==============================================================================
  151. # ■ Game_Battler
  152. #==============================================================================

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

  188.     make_obj_damage_value_KGC_SetAttackElement(user, obj)

  189.     # 攻撃属性を戻す
  190.     obj.element_set = last_element_set
  191.   end
  192. end

  193. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  194. #==============================================================================
  195. # ■ Game_Actor
  196. #==============================================================================

  197. class Game_Actor < Game_Battler
  198.   #--------------------------------------------------------------------------
  199.   # ● 通常攻撃の属性取得
  200.   #--------------------------------------------------------------------------
  201.   alias element_set_KGC_SetAttackElement element_set
  202.   def element_set
  203.     return (element_set_KGC_SetAttackElement | attack_element_set)
  204.   end
  205.   #--------------------------------------------------------------------------
  206.   # ○ 追加攻撃属性取得
  207.   #--------------------------------------------------------------------------
  208.   def attack_element_set
  209.     result = super
  210.     elements = KGC::SetAttackElement::ACTOR_ELEMENT[self.id]
  211.     result |= elements if elements.is_a?(Array)
  212.     return result
  213.   end
  214. end

  215. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  216. #==============================================================================
  217. # ■ Game_Enemy
  218. #==============================================================================

  219. class Game_Enemy < Game_Battler
  220.   #--------------------------------------------------------------------------
  221.   # ○ 追加攻撃属性取得
  222.   #--------------------------------------------------------------------------
  223.   def attack_element_set
  224.     return (super | enemy.attack_element_set)
  225.   end
  226. end
复制代码


使用方法:
例:角色1攻击为火焰+风属性攻击
ACTOR_ELEMENT[1] = [9, 14]
角色1攻击为雷属性
ACTOR_ELEMENT[2] = [11]


系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-6-9
帖子
206
3
 楼主| 发表于 2008-4-26 03:22:06 | 只看该作者
战斗时调用就可以了吗?
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
289
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

4
发表于 2008-4-26 03:24:54 | 只看该作者
不需要调用,只要在脚本中定义好属性就可以了。

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-6-9
帖子
206
5
 楼主| 发表于 2008-4-26 06:52:32 | 只看该作者
哦,谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-24 21:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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