Project1

标题: 新人求助!关于装备附加技能 [打印本页]

作者: 半坏扎古头    时间: 2008-2-29 03:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-2-29 04:06
刚好又这个脚本:
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ スキル習得装備 - KGC_EquipLearnSkill ◆ VX ◆
  3. #_/    ◇ Last update : 2008/02/06 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  スキルを習得する装備品を作成します。
  6. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

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

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

  11. module KGC
  12. module EquipLearnSkill
  13.   # ◆ AP の名称
  14.   #  ゲーム中の表記のみ変化。
  15.   # ◆ AP的名称
  16.   #  在游戏中显现ㄉ的名称
  17.   VOCAB_AP     = "AP"
  18.   
  19.   # ◆ AP のデフォルト値
  20.   #  所持 AP を指定しなかったエネミーの AP。
  21.   # ◆ AP预设值
  22.   #  没有设定AP值的敌人所持有的AP
  23.   DEFAULT_AP   = 1
  24.   
  25.   
  26.   # ◆ 装備しただけでは習得しない
  27.   #  true にすると、AP が溜まるまでスキルを使用できない。
  28.   # ◆ 由装備所习得的技能设定
  29.   #  true 当AP未满时不能使用技能。
  30.   NEED_FULL_AP = false

  31.   # ◆ リザルト画面での獲得 AP の表示
  32.   #  %s : 獲得した AP
  33.   # ◆ 获得AP时显示的文字
  34.   #  %s : 獲得 AP 数量
  35.   VOCAB_RESULT_OBTAIN_AP         = "獲得 %s 点 #{VOCAB_AP}!"
  36.   
  37.   # ◆ リザルト画面でスキルをマスターした際のメッセージ
  38.   #  %s : アクター名
  39.   # ◆ 学会技能时显现的文字
  40.   #  %s : 角色名称
  41.   VOCAB_RESULT_MASTER_SKILL      = "角色%s"
  42.   # ◆ リザルト画面でマスターしたスキルの表示
  43.   #  %s : マスターしたスキルの名前
  44.   # ◆ 显示学会的技能的名称文字
  45.   #  %s : 角色学会的技能名称
  46.   VOCAB_RESULT_MASTER_SKILL_NAME = "领悟%s!"

  47.   # ◆ メニュー画面に「AP ビューア」コマンドを追加する
  48.   #  追加する場所は、メニューコマンドの最下部です。
  49.   #  他の部分に追加したければ、≪カスタムメニューコマンド≫ をご利用ください。
  50.   
  51.   # ◆ 增加AP察看菜单选项
  52.   #  置於菜单选项最下面
  53.   #  他の部分に追加したければ、≪カスタムメニューコマンド≫ をご利用ください。
  54.   USE_MENU_AP_VIEWER_COMMAND = false
  55.   
  56.   # ◆ メニュー画面の「AP ビューア」コマンドの名称
  57.   # ◆ 在菜单画面查看AP画面的指令名称
  58.   VOCAB_MENU_AP_VIEWER       = "察看 #{VOCAB_AP} 状态"

  59.   # ◆ マスター(完全習得)したスキルの AP 欄
  60.   # ◆ 技能完全学会时在 AP 欄显示的文字
  61.   VOCAB_MASTER_SKILL      = " - 已学会 - "
  62.   
  63.   # ◆ 蓄積 AP が 0 のスキルも AP ビューアに表示
  64.   # ◆ 显示不需积蓄AP的技能。(false的话会忽视而不显现)
  65.   SHOW_ZERO_AP_SKILL      = true
  66.   
  67.   # ◆ 蓄積 AP が 0 のスキルの名前を隠す
  68.   # ◆ 屏蔽不需积蓄AP的技能。(false的话会忽视而显现)
  69.   MASK_ZERO_AP_SKILL_NAME = true
  70.   
  71.   # ◆ 累積 AP が 0 のスキルに表示する名前
  72.   #  1文字だけ指定すると、スキル名と同じ長さに拡張されます。
  73.   # ◆ 屏蔽不需积蓄AP的技能时所用的文字
  74.   #  只需要指定一个字符,它会自动替代与技能名称同长的字串
  75.   ZERO_AP_NAME_MASK       = "?"
  76.   
  77.   # ◆ 累積 AP が 0 のスキルのヘルプを隠す
  78.   # ◆ 屏蔽不需积蓄AP的技能的说明
  79.   HIDE_ZERO_AP_SKILL_HELP = true
  80.   
  81.   # ◆ 累積 AP が 0 のスキルに表示するヘルプ
  82.   # ◆ 屏蔽不需积蓄AP的技能的说明时所用的文字
  83.   ZERO_AP_SKILL_HELP      = "????????"

  84.   # ◆ 除外装備品配列
  85.   #  配列の添字がアクター ID に対応。
  86.   #  習得装備から除外する武器・防具の ID を配列に格納。
  87.   # ◆ 设置例外装備
  88.   #  数组内的数字与角色ID对应
  89.   #  赋值的数组内的数字与装备ID对应
  90.   EXCLUDE_WEAPONS = []  # 武器
  91.   EXCLUDE_ARMORS  = []  # 防具
  92.   
  93.   # ここから下に定義。
  94.   #  <例>
  95.   #  アクターID:1 は、武器ID:50 と 70 のスキルを習得できない。
  96.   # EXCLUDE_WEAPONS[1] = [50, 70]
  97.   # 设置方式如下。
  98.   #  <例>
  99.   # 1 号角色 无法习得  50和70号武器的技能, 就是:
  100.   # EXCLUDE_WEAPONS[1] = [50, 70]

  101.   # ◆ 除外スキル配列
  102.   #  配列の添字がアクター ID と対応。
  103.   #  装備では習得不可能にするスキル ID を配列に格納。
  104.   # ◆ 设置例外技能
  105.   #  数组内的数字与角色ID对应
  106.   #  赋值的数组内的数字与技能ID对应
  107.   EXCLUDE_SKILLS = []
  108.   #  <例>
  109.   #  アクターID:1 は、スキルID:30 を装備品で習得することはできない。
  110.   # EXCLUDE_SKILLS[1] = [30]
  111.   #  <例>
  112.   #  1号角色 装备了任何装备都无法习得30号技能,就是:
  113.   # EXCLUDE_SKILLS[1] = [30]
  114. end
  115. end
  116. #==============================================================================
  117. #          设置结束
  118. #==============================================================================
  119. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  120. $imported = {} if $imported == nil
  121. $imported["EquipLearnSkill"] = true

  122. module KGC::EquipLearnSkill
  123.   # 正規表現
  124.   module Regexp
  125.     # ベースアイテム
  126.     module BaseItem
  127.       # 習得スキル
  128.       LEARN_SKILL = /<(?:LEARN_SKILL|スキル習得)[ ]*(\d+(?:[ ]*,[ ]*\d+)*)>/i
  129.     end

  130.     # スキル
  131.     module Skill
  132.       # 必要 AP
  133.       NEED_AP = /<(?:NEED_AP|必要AP)[ ]*(\d+)>/i
  134.     end

  135.     # エネミー
  136.     module Enemy
  137.       # 所持 AP
  138.       AP = /<AP[ ]*(\d+)>/i
  139.     end
  140.   end
  141. end

  142. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  143. #==============================================================================
  144. # □ KGC::Commands
  145. #==============================================================================

  146. module KGC::Commands
  147.   module_function
  148.   #--------------------------------------------------------------------------
  149.   # ○ AP の獲得
  150.   #     actor_id : アクター ID
  151.   #     ap       : 獲得 AP
  152.   #     show     : マスター表示フラグ
  153.   #--------------------------------------------------------------------------
  154.   def gain_actor_ap(actor_id, ap, show = false)
  155.     $game_actors[actor_id].gain_ap(ap, show)
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ○ AP の変更
  159.   #     actor_id : アクター ID
  160.   #     skill_id : スキル ID
  161.   #     ap       : AP
  162.   #--------------------------------------------------------------------------
  163.   def change_actor_ap(actor_id, skill_id, ap)
  164.     skill = $data_skills[skill_id]
  165.     return if skill == nil
  166.     $game_actors[actor_id].change_ap(skill, ap)
  167.   end
  168.   #--------------------------------------------------------------------------
  169.   # ○ AP ビューアの呼び出し
  170.   #     actor_index : アクターインデックス
  171.   #--------------------------------------------------------------------------
  172.   def call_ap_viewer(actor_index = 0)
  173.     return if $game_temp.in_battle
  174.     $game_temp.next_scene = :ap_viewer
  175.     $game_temp.next_scene_actor_index = actor_index
  176.   end
  177. end

  178. class Game_Interpreter
  179.   include KGC::Commands
  180. end

  181. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  182. #==============================================================================
  183. # ■ Vocab
  184. #==============================================================================

  185. module Vocab
  186.   # 戦闘終了メッセージ
  187.   ObtainAP              = KGC::EquipLearnSkill::VOCAB_RESULT_OBTAIN_AP
  188.   ResultFullAPSkill     = KGC::EquipLearnSkill::VOCAB_RESULT_MASTER_SKILL
  189.   ResultFullAPSkillName = KGC::EquipLearnSkill::VOCAB_RESULT_MASTER_SKILL_NAME

  190.   # AP
  191.   def self.ap
  192.     return KGC::EquipLearnSkill::VOCAB_AP
  193.   end

  194.   # マスターしたスキル
  195.   def self.full_ap_skill
  196.     return KGC::EquipLearnSkill::VOCAB_MASTER_SKILL
  197.   end

  198.   # AP ビューア
  199.   def self.ap_viewer
  200.     return KGC::EquipLearnSkill::VOCAB_MENU_AP_VIEWER
  201.   end
  202. end

  203. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  204. #==============================================================================
  205. # ■ RPG::BaseItem
  206. #==============================================================================

  207. class RPG::BaseItem
  208.   #--------------------------------------------------------------------------
  209.   # ○ スキル習得装備のキャッシュ生成
  210.   #--------------------------------------------------------------------------
  211.   def create_equip_learn_skill_cache
  212.     @__learn_skills = []

  213.     self.note.split(/[\r\n]+/).each { |line|
  214.       case line
  215.       when KGC::EquipLearnSkill::Regexp::BaseItem::LEARN_SKILL  # スキル習得
  216.         $1.scan(/\d+/).each { |num|
  217.           skill_id = num.to_i
  218.           # 存在するスキルならリストに加える
  219.           @__learn_skills << skill_id if $data_skills[skill_id] != nil
  220.         }
  221.       end
  222.     }
  223.   end
  224.   #--------------------------------------------------------------------------
  225.   # ○ 習得するスキル ID の配列
  226.   #--------------------------------------------------------------------------
  227.   def learn_skills
  228.     create_equip_learn_skill_cache if @__learn_skills == nil
  229.     return @__learn_skills
  230.   end
  231. end

  232. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  233. #==============================================================================
  234. # ■ RPG::Skill
  235. #==============================================================================

  236. class RPG::Skill < RPG::UsableItem
  237.   #--------------------------------------------------------------------------
  238.   # ○ クラス変数
  239.   #--------------------------------------------------------------------------
  240.   @@__masked_name =
  241.     KGC::EquipLearnSkill::ZERO_AP_NAME_MASK  # マスク名
  242.   @@__expand_masked_name = false             # マスク名拡張表示フラグ

  243.   if @@__expand_masked_name != nil
  244.     @@__expand_masked_name = (@@__masked_name.scan(/./).size == 1)
  245.   end
  246.   #--------------------------------------------------------------------------
  247.   # ○ スキル習得装備のキャッシュ生成
  248.   #--------------------------------------------------------------------------
  249.   def create_equip_learn_skill_cache
  250.     @__need_ap = 0

  251.     self.note.split(/[\r\n]+/).each { |line|
  252.       case line
  253.       when KGC::EquipLearnSkill::Regexp::Skill::NEED_AP  # 必要 AP
  254.         @__need_ap = $1.to_i
  255.       end
  256.     }
  257.   end
  258.   #--------------------------------------------------------------------------
  259.   # ○ マスク名
  260.   #--------------------------------------------------------------------------
  261.   def masked_name
  262.     if KGC::EquipLearnSkill::MASK_ZERO_AP_SKILL_NAME
  263.       if @@__expand_masked_name
  264.         # マスク名を拡張して表示
  265.         return @@__masked_name * self.name.scan(/./).size
  266.       else
  267.         return @@__masked_name
  268.       end
  269.     else
  270.       return self.name
  271.     end
  272.   end
  273.   #--------------------------------------------------------------------------
  274.   # ○ 習得に必要な AP
  275.   #--------------------------------------------------------------------------
  276.   def need_ap
  277.     create_equip_learn_skill_cache if @__need_ap == nil
  278.     return @__need_ap
  279.   end
  280. end

  281. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  282. #==============================================================================
  283. # ■ RPG::Enemy
  284. #==============================================================================

  285. class RPG::Enemy
  286.   #--------------------------------------------------------------------------
  287.   # ○ スキル習得装備のキャッシュ生成
  288.   #--------------------------------------------------------------------------
  289.   def create_equip_learn_skill_cache
  290.     @__ap = KGC::EquipLearnSkill::DEFAULT_AP

  291.     self.note.split(/[\r\n]+/).each { |line|
  292.       case line
  293.       when KGC::EquipLearnSkill::Regexp::Enemy::AP  # 所持 AP
  294.         @__ap = $1.to_i
  295.       end
  296.     }
  297.   end
  298.   #--------------------------------------------------------------------------
  299.   # ○ 所持 AP
  300.   #--------------------------------------------------------------------------
  301.   def ap
  302.     create_equip_learn_skill_cache if @__ap == nil
  303.     return @__ap
  304.   end
  305. end

  306. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  307. #==============================================================================
  308. # ■ Game_Temp
  309. #==============================================================================

  310. unless $imported["CustomMenuCommand"]
  311. class Game_Temp
  312.   #--------------------------------------------------------------------------
  313.   # ● 公開インスタンス変数
  314.   #--------------------------------------------------------------------------
  315.   attr_accessor :next_scene_actor_index   # 次のシーンのアクターインデックス
  316.   #--------------------------------------------------------------------------
  317.   # ● オブジェクト初期化
  318.   #--------------------------------------------------------------------------
  319.   alias initialize_KGC_EquipLearnSkill initialize
  320.   def initialize
  321.     initialize_KGC_EquipLearnSkill

  322.     @next_scene_actor_index = 0
  323.   end
  324. end
  325. end

  326. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  327. #==============================================================================
  328. # ■ Game_Actor
  329. #==============================================================================

  330. class Game_Actor < Game_Battler
  331.   #--------------------------------------------------------------------------
  332.   # ● セットアップ
  333.   #     actor_id : アクター ID
  334.   #--------------------------------------------------------------------------
  335.   alias setup_KGC_EquipLearnSkill setup
  336.   def setup(actor_id)
  337.     setup_KGC_EquipLearnSkill(actor_id)

  338.     @skill_ap = []
  339.   end
  340.   #--------------------------------------------------------------------------
  341.   # ○ 指定スキルの AP 取得
  342.   #     skill_id : スキル ID
  343.   #--------------------------------------------------------------------------
  344.   def skill_ap(skill_id)
  345.     @skill_ap = [] if @skill_ap == nil
  346.     return (@skill_ap[skill_id] != nil ? @skill_ap[skill_id] : 0)
  347.   end
  348.   #--------------------------------------------------------------------------
  349.   # ○ AP 変更
  350.   #     skill : スキル
  351.   #     ap    : 新しい AP
  352.   #--------------------------------------------------------------------------
  353.   def change_ap(skill, ap)
  354.     @skill_ap = [] if @skill_ap == nil
  355.     @skill_ap[skill.id] = [[ap, skill.need_ap].min, 0].max
  356.   end
  357.   #--------------------------------------------------------------------------
  358.   # ○ マスターしたスキルの表示
  359.   #     new_skills : 新しくマスターしたスキルの配列
  360.   #--------------------------------------------------------------------------
  361.   def display_full_ap_skills(new_skills)
  362.     $game_message.new_page
  363.     text = sprintf(Vocab::ResultFullAPSkill, name)
  364.     $game_message.texts.push(text)
  365.     new_skills.each { |skill|
  366.       text = sprintf(Vocab::ResultFullAPSkillName, skill.name)
  367.       $game_message.texts.push(text)
  368.     }
  369.   end
  370.   #--------------------------------------------------------------------------
  371.   # ○ AP 獲得
  372.   #     ap   : AP の増加量
  373.   #     show : マスタースキル表示フラグ
  374.   #--------------------------------------------------------------------------
  375.   def gain_ap(ap, show)
  376.     last_full_ap_skills = full_ap_skills

  377.     # 装備品により習得しているスキルに AP を加算
  378.     equipment_skills(true).each { |skill|
  379.       change_ap(skill, skill_ap(skill.id) + ap)
  380.     }

  381.     # マスターしたスキルを表示
  382.     if show && last_full_ap_skills != full_ap_skills
  383.       display_full_ap_skills(full_ap_skills - last_full_ap_skills)
  384.     end
  385.   end
  386.   #--------------------------------------------------------------------------
  387.   # ● スキルオブジェクトの配列取得
  388.   #--------------------------------------------------------------------------
  389.   alias skills_KGC_EquipLearnSkill skills
  390.   def skills
  391.     result = skills_KGC_EquipLearnSkill

  392.     # 装備品と AP 蓄積済みのスキルを追加
  393.     additional_skills = equipment_skills | full_ap_skills
  394.     return (result | additional_skills).sort { |a, b| a.id <=> b.id }
  395.   end
  396.   #--------------------------------------------------------------------------
  397.   # ○ 装備品の習得スキル取得
  398.   #     all : 使用不可能なスキルも含める
  399.   #--------------------------------------------------------------------------
  400.   def equipment_skills(all = false)
  401.     result = []
  402.     equips.compact.each { |item|
  403.       next if exclude_learnable_equipment?(item)       # 除外装備なら無視

  404.       item.learn_skills.each { |i|
  405.         skill = $data_skills[i]
  406.         next if exclude_equipment_skill?(skill)        # 除外スキルなら無視
  407.         if !all && KGC::EquipLearnSkill::NEED_FULL_AP  # 要蓄積の場合
  408.           next unless ap_full?(skill)                   # 未達成なら無視
  409.         end
  410.         result << skill
  411.       }
  412.     }
  413.     return result
  414.   end
  415.   #--------------------------------------------------------------------------
  416.   # ○ スキル習得装備除外判定
  417.   #     item : 判定装備
  418.   #--------------------------------------------------------------------------
  419.   def exclude_learnable_equipment?(item)
  420.     case item
  421.     when RPG::Weapon  # 武器
  422.       # 除外武器に含まれている場合
  423.       if KGC::EquipLearnSkill::EXCLUDE_WEAPONS[id] != nil &&
  424.           KGC::EquipLearnSkill::EXCLUDE_WEAPONS[id].include?(item.id)
  425.         return true
  426.       end
  427.     when RPG::Armor   # 防具
  428.       # 除外防具に含まれている場合
  429.       if KGC::EquipLearnSkill::EXCLUDE_ARMORS[id] != nil &&
  430.           KGC::EquipLearnSkill::EXCLUDE_ARMORS[id].include?(item.id)
  431.         return true
  432.       end
  433.     else              # 装備品以外
  434.       return true
  435.     end

  436.     return false
  437.   end
  438.   #--------------------------------------------------------------------------
  439.   # ○ 装備品による習得スキル除外判定
  440.   #     skill : スキル
  441.   #--------------------------------------------------------------------------
  442.   def exclude_equipment_skill?(skill)
  443.     # 自身が除外されている場合
  444.     if KGC::EquipLearnSkill::EXCLUDE_SKILLS[id] != nil &&
  445.         KGC::EquipLearnSkill::EXCLUDE_SKILLS[id].include?(skill.id)
  446.       return true
  447.     end

  448.     return false
  449.   end
  450.   #--------------------------------------------------------------------------
  451.   # ○ AP 蓄積済みのスキルを取得
  452.   #--------------------------------------------------------------------------
  453.   def full_ap_skills
  454.     result = []
  455.     (1...$data_skills.size).each { |i|
  456.       skill = $data_skills[i]
  457.       result << skill if ap_full?(skill) && !exclude_equipment_skill?(skill)
  458.     }
  459.     return result
  460.   end
  461.   #--------------------------------------------------------------------------
  462.   # ○ AP 蓄積可能なスキルを取得
  463.   #--------------------------------------------------------------------------
  464.   def can_gain_ap_skills
  465.     result = []
  466.     equips.compact.each { |item|
  467.       next if exclude_learnable_equipment?(item)  # 除外装備なら無視

  468.       item.learn_skills.each { |i|
  469.         skill = $data_skills[i]
  470.         next if exclude_equipment_skill?(skill)   # 除外スキルなら無視
  471.         result << skill
  472.       }
  473.     }
  474.     return (result - full_ap_skills)              # マスターしたものを除く
  475.   end
  476.   #--------------------------------------------------------------------------
  477.   # ○ AP 蓄積済み判定
  478.   #     skill : スキル
  479.   #--------------------------------------------------------------------------
  480.   def ap_full?(skill)
  481.     return false if skill == nil                  # スキルが存在しない
  482.     return false if skill.need_ap == 0            # 必要 AP が 0
  483.     return false if @skills.include?(skill.id)    # 習得済み

  484.     return (skill_ap(skill.id) >= skill.need_ap)
  485.   end
  486.   #--------------------------------------------------------------------------
  487.   # ● スキルの使用可能判定
  488.   #     skill : スキル
  489.   #--------------------------------------------------------------------------
  490.   def skill_can_use?(skill)
  491.     return super
  492.   end
  493. end

  494. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  495. #==============================================================================
  496. # ■ Game_Enemy
  497. #==============================================================================

  498. class Game_Enemy < Game_Battler
  499.   #--------------------------------------------------------------------------
  500.   # ○ AP の取得
  501.   #--------------------------------------------------------------------------
  502.   def ap
  503.     return enemy.ap
  504.   end
  505. end

  506. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  507. #==============================================================================
  508. # ■ Game_Troop
  509. #==============================================================================

  510. class Game_Troop < Game_Unit
  511.   #--------------------------------------------------------------------------
  512.   # ○ AP の合計計算
  513.   #--------------------------------------------------------------------------
  514.   def ap_total
  515.     ap = 0
  516.     for enemy in dead_members
  517.       ap += enemy.ap unless enemy.hidden
  518.     end
  519.     return ap
  520.   end
  521. end

  522. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  523. #==============================================================================
  524. # ■ Window_Command
  525. #==============================================================================

  526. class Window_Command < Window_Selectable
  527.   unless method_defined?(:add_command)
  528.   #--------------------------------------------------------------------------
  529.   # ○ コマンドを追加
  530.   #    追加した位置を返す
  531.   #--------------------------------------------------------------------------
  532.   def add_command(command)
  533.     @commands << command
  534.     @item_max = @commands.size
  535.     item_index = @item_max - 1
  536.     refresh_command
  537.     draw_item(item_index)
  538.     return item_index
  539.   end
  540.   #--------------------------------------------------------------------------
  541.   # ○ コマンドをリフレッシュ
  542.   #--------------------------------------------------------------------------
  543.   def refresh_command
  544.     buf = self.contents.clone
  545.     self.height = [self.height, row_max * WLH + 32].max
  546.     create_contents
  547.     self.contents.blt(0, 0, buf, buf.rect)
  548.     buf.dispose
  549.   end
  550.   #--------------------------------------------------------------------------
  551.   # ○ コマンドを挿入
  552.   #--------------------------------------------------------------------------
  553.   def insert_command(index, command)
  554.     @commands.insert(index, command)
  555.     @item_max = @commands.size
  556.     refresh_command
  557.     refresh
  558.   end
  559.   #--------------------------------------------------------------------------
  560.   # ○ コマンドを削除
  561.   #--------------------------------------------------------------------------
  562.   def remove_command(command)
  563.     @commands.delete(command)
  564.     @item_max = @commands.size
  565.     refresh
  566.   end
  567.   end
  568. end

  569. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  570. #==============================================================================
  571. # □ Window_APViewer
  572. #------------------------------------------------------------------------------
  573. #  AP ビューアでスキルを表示するウィンドウです。
  574. #==============================================================================

  575. class Window_APViewer < Window_Selectable
  576.   #--------------------------------------------------------------------------
  577.   # ● オブジェクト初期化
  578.   #     x      : ウィンドウの X 座標
  579.   #     y      : ウィンドウの Y 座標
  580.   #     width  : ウィンドウの幅
  581.   #     height : ウィンドウの高さ
  582.   #     actor  : アクター
  583.   #--------------------------------------------------------------------------
  584.   def initialize(x, y, width, height, actor)
  585.     super(x, y, width, height)
  586.     @actor = actor
  587.     @can_gain_ap_skills = []
  588.     self.index = 0
  589.     refresh
  590.   end
  591.   #--------------------------------------------------------------------------
  592.   # ○ スキルの取得
  593.   #--------------------------------------------------------------------------
  594.   def skill
  595.     return @data[self.index]
  596.   end
  597.   #--------------------------------------------------------------------------
  598.   # ○ リフレッシュ
  599.   #--------------------------------------------------------------------------
  600.   def refresh
  601.     @data = []
  602.     @can_gain_ap_skills = @actor.can_gain_ap_skills
  603.     equipment_skills = @actor.equipment_skills(true)

  604.     (1...$data_skills.size).each { |i|
  605.       skill = $data_skills[i]
  606.       next if skill.need_ap == 0
  607.       unless KGC::EquipLearnSkill::SHOW_ZERO_AP_SKILL
  608.         # AP が 0 、かつ装備品で習得していないものは無視
  609.         if @actor.skill_ap(skill.id) == 0 && !equipment_skills.include?(skill)
  610.           next
  611.         end
  612.       end
  613.       @data.push(skill)
  614.     }
  615.     @item_max = @data.size
  616.     create_contents
  617.     @item_max.times { |i| draw_item(i) }
  618.   end
  619.   #--------------------------------------------------------------------------
  620.   # ○ 項目の描画
  621.   #     index : 項目番号
  622.   #--------------------------------------------------------------------------
  623.   def draw_item(index)
  624.     rect = item_rect(index)
  625.     self.contents.clear_rect(rect)
  626.     skill = @data[index]
  627.     if skill != nil
  628.       rect.width -= 4
  629.       draw_item_name(skill, rect.x, rect.y, enable?(skill))
  630.       if @actor.ap_full?(skill) || @actor.skill_learn?(skill)
  631.         # マスター
  632.         text = Vocab.full_ap_skill
  633.       else
  634.         # AP 蓄積中
  635.         text = sprintf("%s %4d/%4d",
  636.           Vocab.ap, @actor.skill_ap(skill.id), skill.need_ap)
  637.       end
  638.       # AP を描画
  639.       self.contents.font.color = normal_color
  640.       self.contents.draw_text(rect, text, 2)
  641.     end
  642.   end
  643.   #--------------------------------------------------------------------------
  644.   # ○ スキルを有効状態で表示するかどうか
  645.   #     skill : スキル
  646.   #--------------------------------------------------------------------------
  647.   def enable?(skill)
  648.     return true if @actor.skill_learn?(skill)           # 習得済み
  649.     return true if @actor.ap_full?(skill)               # マスター
  650.     return true if @can_gain_ap_skills.include?(skill)  # AP 蓄積可能

  651.     return false
  652.   end
  653.   #--------------------------------------------------------------------------
  654.   # ○ スキルをマスクなしで表示するかどうか
  655.   #     skill : スキル
  656.   #--------------------------------------------------------------------------
  657.   def no_mask?(skill)
  658.     return true if @actor.skill_learn?(skill)           # 習得済み
  659.     return true if @actor.skill_ap(skill.id) > 0        # AP が 1 以上
  660.     return true if @can_gain_ap_skills.include?(skill)  # AP 蓄積可能

  661.     return false
  662.   end
  663.   #--------------------------------------------------------------------------
  664.   # ● アイテム名の描画
  665.   #     item    : アイテム (スキル、武器、防具でも可)
  666.   #     x       : 描画先 X 座標
  667.   #     y       : 描画先 Y 座標
  668.   #     enabled : 有効フラグ。false のとき半透明で描画
  669.   #--------------------------------------------------------------------------
  670.   def draw_item_name(item, x, y, enabled = true)
  671.     draw_icon(item.icon_index, x, y, enabled)
  672.     self.contents.font.color = normal_color
  673.     self.contents.font.color.alpha = enabled ? 255 : 128
  674.     self.contents.draw_text(x + 24, y, 172, WLH,
  675.       no_mask?(item) ? item.name : item.masked_name)
  676.   end
  677.   #--------------------------------------------------------------------------
  678.   # ● フレーム更新
  679.   #--------------------------------------------------------------------------
  680.   def update
  681.     super
  682.     return unless self.active

  683.     if Input.repeat?(Input::RIGHT)
  684.       cursor_pagedown
  685.     elsif Input.repeat?(Input::LEFT)
  686.       cursor_pageup
  687.     end
  688.   end
  689.   #--------------------------------------------------------------------------
  690.   # ● ヘルプテキスト更新
  691.   #--------------------------------------------------------------------------
  692.   def update_help
  693.     if KGC::EquipLearnSkill::HIDE_ZERO_AP_SKILL_HELP && !no_mask?(skill)
  694.       @help_window.set_text(KGC::EquipLearnSkill::ZERO_AP_SKILL_HELP)
  695.     else
  696.       @help_window.set_text(skill == nil ? "" : skill.description)
  697.     end
  698.   end
  699. end
复制代码

脚本太多,分两部分,用的时候和在一起就可以了。上面的是部分一。
[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 八云紫    时间: 2008-2-29 04:07
  1. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  2. #==============================================================================
  3. # ■ Scene_Map
  4. #==============================================================================

  5. class Scene_Map < Scene_Base
  6.   #--------------------------------------------------------------------------
  7.   # ● 画面切り替えの実行
  8.   #--------------------------------------------------------------------------
  9.   alias update_scene_change_KGC_EquipLearnSkill update_scene_change
  10.   def update_scene_change
  11.     return if $game_player.moving?    # プレイヤーの移動中?

  12.     if $game_temp.next_scene == :ap_viewer
  13.       call_ap_viewer
  14.       return
  15.     end

  16.     update_scene_change_KGC_EquipLearnSkill
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ○ AP ビューアへの切り替え
  20.   #--------------------------------------------------------------------------
  21.   def call_ap_viewer
  22.     $game_temp.next_scene = nil
  23.     $scene = Scene_APViewer.new($game_temp.next_scene_actor_index,
  24.       0, Scene_APViewer::HOST_MAP)
  25.   end
  26. end

  27. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  28. #==============================================================================
  29. # ■ Scene_Menu
  30. #==============================================================================

  31. class Scene_Menu < Scene_Base
  32.   if KGC::EquipLearnSkill::USE_MENU_AP_VIEWER_COMMAND
  33.   #--------------------------------------------------------------------------
  34.   # ● コマンドウィンドウの作成
  35.   #--------------------------------------------------------------------------
  36.   alias create_command_window_KGC_EquipLearnSkill create_command_window
  37.   def create_command_window
  38.     create_command_window_KGC_EquipLearnSkill

  39.     return if $imported["CustomMenuCommand"]

  40.     @__command_ap_viewer_index = @command_window.add_command(Vocab.ap_viewer)
  41.     if @command_window.oy > 0
  42.       @command_window.oy -= Window_Base::WLH
  43.     end
  44.     @command_window.index = @menu_index
  45.   end
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● コマンド選択の更新
  49.   #--------------------------------------------------------------------------
  50.   alias update_command_selection_KGC_EquipLearnSkill update_command_selection
  51.   def update_command_selection
  52.     call_ap_viewer_flag = false
  53.     if Input.trigger?(Input::C)
  54.       case @command_window.index
  55.       when @__command_ap_viewer_index  # AP ビューア
  56.         call_ap_viewer_flag = true
  57.       end
  58.     end

  59.     # AP ビューアに移行
  60.     if call_ap_viewer_flag
  61.       if $game_party.members.size == 0
  62.         Sound.play_buzzer
  63.         return
  64.       end
  65.       Sound.play_decision
  66.       start_actor_selection
  67.       return
  68.     end

  69.     update_command_selection_KGC_EquipLearnSkill
  70.   end
  71.   #--------------------------------------------------------------------------
  72.   # ● アクター選択の更新
  73.   #--------------------------------------------------------------------------
  74.   alias update_actor_selection_KGC_EquipLearnSkill update_actor_selection
  75.   def update_actor_selection
  76.     if Input.trigger?(Input::C)
  77.       $game_party.last_actor_index = @status_window.index
  78.       Sound.play_decision
  79.       case @command_window.index
  80.       when @__command_ap_viewer_index  # AP ビューア
  81.         $scene = Scene_APViewer.new(@status_window.index,
  82.           @__command_ap_viewer_index, Scene_APViewer::HOST_MENU)
  83.         return
  84.       end
  85.     end

  86.     update_actor_selection_KGC_EquipLearnSkill
  87.   end
  88. end

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

  90. #==============================================================================
  91. # □ Scene_APViewer
  92. #------------------------------------------------------------------------------
  93. #   AP ビューアの処理を行うクラスです。
  94. #==============================================================================

  95. class Scene_APViewer < Scene_Base
  96.   HOST_MENU   = 0
  97.   HOST_MAP    = 1
  98.   #--------------------------------------------------------------------------
  99.   # ● オブジェクト初期化
  100.   #     actor_index : アクターインデックス
  101.   #     menu_index  : コマンドのカーソル初期位置
  102.   #     host_scene  : 呼び出し元 (0..メニュー  1..マップ)
  103.   #--------------------------------------------------------------------------
  104.   def initialize(actor_index = 0, menu_index = 0, host_scene = HOST_MENU)
  105.     @actor_index = actor_index
  106.     @menu_index = menu_index
  107.     @host_scene = host_scene
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 開始処理
  111.   #--------------------------------------------------------------------------
  112.   def start
  113.     super
  114.     create_menu_background
  115.     @actor = $game_party.members[@actor_index]
  116.     @help_window = Window_Help.new
  117.     if $imported["HelpExtension"]
  118.       @help_window.row_max = KGC::HelpExtension::ROW_MAX
  119.     end
  120.     @status_window = Window_SkillStatus.new(0, @help_window.height, @actor)
  121.     dy = @help_window.height + @status_window.height
  122.     @skill_window = Window_APViewer.new(0, dy,
  123.       Graphics.width, Graphics.height - dy, @actor)
  124.     @skill_window.help_window = @help_window
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● 終了処理
  128.   #--------------------------------------------------------------------------
  129.   def terminate
  130.     super
  131.     dispose_menu_background
  132.     @help_window.dispose
  133.     @status_window.dispose
  134.     @skill_window.dispose
  135.   end
  136.   #--------------------------------------------------------------------------
  137.   # ○ 元の画面へ戻る
  138.   #--------------------------------------------------------------------------
  139.   def return_scene
  140.     case @host_scene
  141.     when HOST_MENU
  142.       $scene = Scene_Menu.new(@menu_index)
  143.     when HOST_MAP
  144.       $scene = Scene_Map.new
  145.     end
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # ○ 次のアクターの画面に切り替え
  149.   #--------------------------------------------------------------------------
  150.   def next_actor
  151.     @actor_index += 1
  152.     @actor_index %= $game_party.members.size
  153.     $scene = Scene_APViewer.new(@actor_index, @menu_index, @host_scene)
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ○ 前のアクターの画面に切り替え
  157.   #--------------------------------------------------------------------------
  158.   def prev_actor
  159.     @actor_index += $game_party.members.size - 1
  160.     @actor_index %= $game_party.members.size
  161.     $scene = Scene_APViewer.new(@actor_index, @menu_index, @host_scene)
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # ● フレーム更新
  165.   #--------------------------------------------------------------------------
  166.   def update
  167.     super
  168.     update_menu_background
  169.     @help_window.update
  170.     @skill_window.update
  171.     @status_window.update
  172.     if @skill_window.active
  173.       update_skill_selection
  174.     end
  175.   end
  176.   #--------------------------------------------------------------------------
  177.   # ○ スキル選択の更新
  178.   #--------------------------------------------------------------------------
  179.   def update_skill_selection
  180.     if Input.trigger?(Input::B)
  181.       Sound.play_cancel
  182.       return_scene
  183.     elsif Input.trigger?(Input::R)
  184.       Sound.play_cursor
  185.       next_actor
  186.     elsif Input.trigger?(Input::L)
  187.       Sound.play_cursor
  188.       prev_actor
  189.     end
  190.   end
  191. end

  192. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  193. #==============================================================================
  194. # ■ Scene_Battle
  195. #==============================================================================

  196. class Scene_Battle < Scene_Base
  197.   #--------------------------------------------------------------------------
  198.   # ● メッセージ表示が終わるまでウェイト
  199.   #--------------------------------------------------------------------------
  200.   alias wait_for_message_KGC_EquipLearnSkill wait_for_message
  201.   def wait_for_message
  202.     return if @ignore_wait_for_message  # メッセージ終了までのウェイトを無視

  203.     wait_for_message_KGC_EquipLearnSkill
  204.   end
  205.   #--------------------------------------------------------------------------
  206.   # ● 獲得した経験値とお金の表示
  207.   #--------------------------------------------------------------------------
  208.   alias display_exp_and_gold_KGC_EquipLearnSkill display_exp_and_gold
  209.   def display_exp_and_gold
  210.     @ignore_wait_for_message = true

  211.     display_exp_and_gold_KGC_EquipLearnSkill

  212.     display_ap
  213.     @ignore_wait_for_message = false
  214.     wait_for_message
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ● レベルアップの表示
  218.   #--------------------------------------------------------------------------
  219.   alias display_level_up_KGC_EquipLearnSkill display_level_up
  220.   def display_level_up
  221.     display_level_up_KGC_EquipLearnSkill

  222.     display_master_equipment_skill
  223.   end
  224.   #--------------------------------------------------------------------------
  225.   # ○ 獲得 AP の表示
  226.   #--------------------------------------------------------------------------
  227.   def display_ap
  228.     ap = $game_troop.ap_total
  229.     if ap > 0
  230.       text = sprintf(Vocab::ObtainAP, ap)
  231.       $game_message.texts.push('\.' + text)
  232.     end
  233.     wait_for_message
  234.   end
  235.   #--------------------------------------------------------------------------
  236.   # ○ マスターしたスキルの表示
  237.   #--------------------------------------------------------------------------
  238.   def display_master_equipment_skill
  239.     ap = $game_troop.ap_total
  240.     $game_party.existing_members.each { |actor|
  241.       last_skills = actor.skills
  242.       actor.gain_ap(ap, true)
  243.     }
  244.     wait_for_message
  245.   end
  246. end
复制代码

这个是部分二
作者: 半坏扎古头    时间: 2008-2-29 06:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-2-29 06:27
是的,用法是
用下面的格式在装备的「备注」里写:

    <passive_skill>
    MAXHP +10%
    MAXMP -5%
    atk +30
    attack_element 10,11
    </passive_skill>



夹在<passive_skill>和</passive_skill>之间的就成了被动技能的定义。
当技能习得时,里面的各种能力值就会加值,记得一行写一种。

    能力值名称 +n   # n 增加
    能力值名称 -n   # n 减少
    能力值名称 +n%  # n% 增加
    能力值名称 -n%  # n% 减少



可以定义很多种能力值增减,没有顺序规定。

使用能力值名称时:
MAXHP 最大HP
MAXMP 最大MP
ATK   攻击力
DEF   防御力
SPI   精神力
AGI   敏捷性
HIT   命中率
EVA   闪躲率
CRI   会心一击率
ODDS  受敌攻击率(就是跟职业里设置的位置相关)

除了能力值以外,状态和攻击属性也能设定
设定方式:
名称 id1   # 单一设定
名称 id1, id2, id3.... #多数设定

例子:

    attack_element 10, 11
    plus_state 2
    invalid_state 3, 4, 5



attack_element 攻击属性
plus_state     附加状态
invalid_state  无效化状态

两个可以和在一起用

    <passive_skill>
    MAXHP +10%
    MAXMP -5%
    atk +30
    attack_element 10,11
    plus_state 2
    invalid_state 3, 4, 5
    </passive_skill>      



关于那个AP值 我正在研究中ING....
作者: 半坏扎古头    时间: 2008-2-29 06:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-2-29 06:40
好像是的,对脚本也不怎么熟悉。有望知道的人教教我这个脚本的更深用法
作者: 八云紫    时间: 2008-2-29 06:44
具体翻译了一下里面的文字,应该AP是指武器的熟练度。 但是不知道怎么个具体用发。
作者: 半坏扎古头    时间: 2008-2-29 06:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: 半坏扎古头    时间: 2008-2-29 07:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-2-29 10:36
to:八云紫
你贴的脚本是装备附带技能的脚本
但是说明却是贴被动技能的说明{/pz}

这个才是被动技能的脚本:
http://f44.aaa.livedoor.jp/~ytom ... ;tech=passive_skill

再来,AP是技能学习点数
也就是说当角色装被了附带技能的装备时,该技能会被列入AP列表当中
此技能在AP习满之前不能使用(也就是还没学会)
    在技能的备注中填写<need_ap A>
    A是习得该技能缩需要的AP点数
    直接就能使用的技能用<need_ap 0>

而AP点数能藉由打败敌人获得
    在敌人的备注中打上<ap A>
    A是打败该敌人能获得的AP点数
    为设置的敌人会默认获得1点AP(这个数值也能在脚本中设定)


作者: 八云紫    时间: 2008-2-29 20:19
以下引用snstar2006于2008-2-29 2:36:00的发言:
<br><script language="javascript">
<!--
strCont="to:八云紫\r\n你贴的脚本是装备附带技能的脚本\r\n但是说明却是贴被动技能的说明{/pz}\r\n\r\n这个才是被动技能的脚本:\r\nhttp://f44.aaa.livedoor.jp/~ytom ... ;tech=passive_skill\r\n\r\n再来,AP是技能学习点数\r\n也就是说当角色装被了附带技能的装备时,该技能会被列入AP列表当中\r\n此技能在AP习满之前不能使用(也就是还没学会)\r\n    在技能的备注中填写<need_ap A>\r\n    A是习得该技能缩需要的AP点数\r\n    直接就能使用的技能用<need_ap 0>\r\n\r\n而AP点数能藉由打败敌人获得\r\n    在敌人的备注中打上<ap A>\r\n    A是打败该敌人能获得的AP点数\r\n    为设置的敌人会默认获得1点AP(这个数值也能在脚本中设定)\r\n\r\n";
document.write(ubb.spbShowTopic(strCont,1));
//-->
</script>to:八云紫<br>
你贴的脚本是装备附带技能的脚本<br>
但是说明却是贴被动技能的说明<img src="expression/pz.gif" height="20" width="20"><br>
<br>
这个才是被动技能的脚本:<br>
<a href="http://f44.aaa.livedoor.jp/%7Eytomy/tkool/rpgtech/php/tech.php?tool=VX&amp;cat=tech_vx/skill&amp;tech=passive_skill" target="_blank">http://f44.aaa.livedoor.jp/~ytomy/tkool/rpgtech/php/tech.php?tool=VX&amp;cat=tech_vx/skill&amp;tech=passive_skill</a><br>
<br>
再来,AP是技能学习点数<br>
也就是说当角色装被了附带技能的装备时,该技能会被列入AP列表当中<br>
此技能在AP习满之前不能使用(也就是还没学会)<br>
&nbsp; &nbsp;在技能的备注中填写&lt;need_ap A&gt;<br>
&nbsp; &nbsp;A是习得该技能缩需要的AP点数<br>
&nbsp; &nbsp;直接就能使用的技能用&lt;need_ap 0&gt;<br>
<br>
而AP点数能藉由打败敌人获得<br>
&nbsp; &nbsp;在敌人的备注中打上&lt;ap A&gt;<br>
&nbsp; &nbsp;A是打败该敌人能获得的AP点数<br>
&nbsp; &nbsp;为设置的敌人会默认获得1点AP(这个数值也能在脚本中设定)<br>
<br>

55555555555{/ll}{/ll}{/ll}太谢谢你了,脚本的翻译弄得我头都大了。
作者: 半坏扎古头    时间: 2008-2-29 20:30
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-2-29 20:35
      
用下面的格式在装备的「备注」里写:

    <passive_skill>
    MAXHP +10%
    MAXMP -5%
    atk +30
    attack_element 10,11
    </passive_skill>



夹在<passive_skill>和</passive_skill>之间的就成了被动技能的定义。
当技能习得时,里面的各种能力值就会加值,记得一行写一种。

    能力值名称 +n   # n 增加
    能力值名称 -n   # n 减少
    能力值名称 +n%  # n% 增加
    能力值名称 -n%  # n% 减少



可以定义很多种能力值增减,没有顺序规定。

使用能力值名称时:
MAXHP 最大HP
MAXMP 最大MP
ATK   攻击力
DEF   防御力
SPI   精神力
AGI   敏捷性
HIT   命中率
EVA   闪躲率
CRI   会心一击率
ODDS  受敌攻击率(就是跟职业里设置的位置相关)

除了能力值以外,状态和攻击属性也能设定
设定方式:
名称 id1   # 单一设定
名称 id1, id2, id3.... #多数设定

例子:

    attack_element 10, 11
    plus_state 2
    invalid_state 3, 4, 5



attack_element 攻击属性
plus_state     附加状态
invalid_state  无效化状态

两个可以和在一起用

    <passive_skill>
    MAXHP +10%
    MAXMP -5%
    atk +30
    attack_element 10,11
    plus_state 2
    invalid_state 3, 4, 5
    </passive_skill>      


和上面的一样,是我贴错脚本了,哭。道歉。{/ll}
作者: 半坏扎古头    时间: 2008-2-29 20:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-2-29 21:17
呵呵,说实在的,我也不知道,汗~~~
作者: 半坏扎古头    时间: 2008-3-1 02:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: 风吹过的晴天    时间: 2008-3-1 03:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: 半坏扎古头    时间: 2008-3-1 07:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: 半坏扎古头    时间: 2008-3-2 07:52
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-3-2 19:00
如果是我发错的那个脚本的话,用法是:

要附带技能的装备
在数据库中的备注栏设置
       <learn_skill n>
n代表要学习的技能的ID

接着在要学习的技能里的备注栏设置
       <need_ap 0>

作者: 半坏扎古头    时间: 2008-3-3 00:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: 半坏扎古头    时间: 2008-3-3 01:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: 八云紫    时间: 2008-3-3 01:53
是啊。两个脚本不会冲突。
作者: 泫彩宝贝    时间: 2008-7-27 01:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: 零月霜殇    时间: 2008-7-30 22:49
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1