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

Project1

 找回密码
 注册会员
搜索
楼主: 冰舞蝶恋
打印 上一主题 下一主题

[推荐问答] 【<菜鸟问题收容所> 】

   关闭 [复制链接]

Lv3.寻梦者

梦石
1
星屑
3893
在线时间
591 小时
注册时间
2007-8-14
帖子
182
201
发表于 2010-12-10 18:26:22 | 只看该作者
回复 冰舞蝶恋 的帖子

抱歉.....忘了说了,昨晚把“物理攻击”这项勾去掉就敌人就无法回避了.......
所以已经算搞定了,谢谢你们的热心解答~~
愿吾神哈迪斯永远祝福你们~~

可以的话再提个问题:
想做个“横拍”技能,必须是装备大剑之类的武器才能使用,有这类的脚本么?用装备限制技能的?
赞美灵魂……
回复 支持 反对

使用道具 举报

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
631
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

202
 楼主| 发表于 2010-12-10 18:41:13 | 只看该作者
回复 cryhades 的帖子

呃。。改脚本应该不难。不过站上就有现成的装备附加技能啊~~(即穿上装备就学会技能,脱下就忘记)
我这里给一个简单的吧~
  1. #------------------------------------------------------------------------------
  2. # ■ 装备附加技能(VX)
  3. # by:Ultra
  4. # /2010.10.6
  5. # 使用方法:装备名字+@+技能ID
  6. # 例如:巨剑@10
  7. # 说明尾部显示附加技能信息开关
  8. $sk_name = true
  9. # 武器附加信息标识
  10. $w_txt = "附技能:"
  11. # 防具附加信息标识
  12. $a_txt = "附技能:"
  13. #------------------------------------------------------------------------------
  14. class Game_Actor
  15.   alias :orig_initialize :initialize
  16.   def initialize(actor_id)
  17.     orig_initialize(actor_id)
  18.     inisk
  19.   end
  20.   #*# t:类型u:旧d:新
  21.   def udsk(t,u,d)
  22.     case t
  23.     when 0
  24.       data = $data_weapons
  25.     when 1..4
  26.       data = $data_armors
  27.     end
  28.     if u == 0 and d > 0
  29.       learn_skill(data[d].sk) if data[d].sk != nil
  30.     elsif u > 0 and d == 0
  31.       forget_skill(data[u].sk) if data[u].sk != nil
  32.     elsif u > 0 and d > 0
  33.       if data[u].sk != nil and data[d].sk != nil
  34.         learn_skill(data[d].sk)
  35.         forget_skill(data[u].sk)
  36.       elsif data[d].sk != nil
  37.         learn_skill(data[d].sk)
  38.       elsif data[u].sk != nil
  39.         forget_skill(data[u].sk)
  40.       elsif data[d].sk == data[u].sk
  41.       end
  42.     end
  43.   end
  44.   #*# 初始检测
  45.   def inisk
  46.     data = equips
  47.     data.compact!
  48.     for i in 0...data.size
  49.       if data[i].sk != nil
  50.         learn_skill(data[i].sk)
  51.       end
  52.     end
  53.   end
  54.   #*# 更改装备
  55.   def change_equip(equip_type, item, test = false)
  56.     last_item = equips[equip_type]
  57.     unless test
  58.       return if $game_party.item_number(item) == 0 if item != nil
  59.       $game_party.gain_item(last_item, 1)
  60.       $game_party.lose_item(item, 1)
  61.     end
  62.     item_id = item == nil ? 0 : item.id
  63.     case equip_type
  64.     when 0  # 武器
  65.       udsk(equip_type,@weapon_id,item_id)#★
  66.       @weapon_id = item_id
  67.       unless two_hands_legal?            # 非双手装备的场合,自动卸下装备
  68.         sk = equips[1].sk                #★
  69.         forget_skill(sk) if sk != nil    #★
  70.         change_equip(1, nil, test)
  71.       end
  72.     when 1  # 盾
  73.       udsk(equip_type,@armor1_id,item_id)#★
  74.       @armor1_id = item_id
  75.       unless two_hands_legal?            # 非双手装备的场合,自动卸下装备
  76.         sk = equips[0].sk                #★
  77.         forget_skill(sk) if sk != nil    #★
  78.         change_equip(0, nil, test)
  79.       end
  80.     when 2  # 头部防具
  81.       udsk(equip_type,@armor2_id,item_id)#★
  82.       @armor2_id = item_id
  83.     when 3  # 身体防具
  84.       udsk(equip_type,@armor3_id,item_id)#★
  85.       @armor3_id = item_id
  86.     when 4  # 装饰品
  87.       udsk(equip_type,@armor4_id,item_id)#★
  88.       @armor4_id = item_id
  89.     end
  90.   end
  91. end
  92. class Scene_Equip
  93.   def update_status_window
  94.     if @equip_window.active
  95.       @status_window.set_new_parameters(nil, nil, nil, nil)
  96.     elsif @item_window.active
  97.       temp_actor = Marshal.load(Marshal.dump(@actor))
  98.       temp_actor.change_equip(@equip_window.index, @item_window.item, true)
  99.       new_atk = temp_actor.atk
  100.       new_def = temp_actor.def
  101.       new_spi = temp_actor.spi
  102.       new_agi = temp_actor.agi
  103.       @status_window.set_new_parameters(new_atk, new_def, new_spi, new_agi)
  104.     end
  105.     @status_window.update
  106.   end
  107. end
  108. module RPG
  109.   class Armor
  110.     def description
  111.       if sk != nil and $sk_name
  112.         name = $a_txt + $data_skills[sk].name
  113.       else
  114.         name = ""
  115.       end
  116.       return @description + name
  117.     end
  118.   end
  119.   class Weapon
  120.     def description
  121.       if sk != nil and $sk_name
  122.         name = $w_txt + $data_skills[sk].name
  123.       else
  124.         name = ""
  125.       end
  126.       return @description + name
  127.     end
  128.   end
  129.   class Armor
  130.     def name
  131.       name = @name.split(/@/)[0]
  132.       return name != nil ? name : ""
  133.     end
  134.     def sk
  135.       sk = @name.split(/@/)[1]
  136.       return sk != nil ? sk.to_i : nil
  137.     end
  138.   end
  139.   class Weapon
  140.     def name
  141.       name = @name.split(/@/)[0]
  142.       return name != nil ? name : ""
  143.     end
  144.     def sk
  145.       sk = @name.split(/@/)[1]
  146.       return sk != nil ? sk.to_i : nil
  147.     end
  148.   end
  149. end
复制代码
先声明不是我写的
其次。。使用方法自己琢磨吧呵呵~~0.0
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
328 小时
注册时间
2009-10-8
帖子
168
203
发表于 2010-12-10 20:44:57 | 只看该作者
本帖最后由 qllmkaen 于 2010-12-12 22:18 编辑

问题名称:速度补正值
问题状况:+.+请无视吧,已经解决勒

报酬:{:nm_5:}老是提问题我是不是很烦啊...

我们是一个团队,为了各自的梦想,没有豪言壮语,朝着共同的方向默默前进 -lmtop.uueasy.com
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
1
星屑
3893
在线时间
591 小时
注册时间
2007-8-14
帖子
182
204
发表于 2010-12-10 22:19:33 | 只看该作者
回复 冰舞蝶恋 的帖子

不是这样的......
不要穿上装备就学会技能的,而是这个角色本来就会这个技能,但必须穿上某种装备才能“使用”
就是这样的,谢谢.....
赞美灵魂……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
518 小时
注册时间
2010-6-16
帖子
1073
205
发表于 2010-12-10 23:23:16 | 只看该作者
回复 cryhades 的帖子
  1. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
  2. #_/    ◆ スキル習得装備 - KGC_EquipLearnSkill ◆ VX ◆
  3. #_/    ◇ Last update : 2009/09/26 ◇
  4. #_/----------------------------------------------------------------------------
  5. #_/  スキルを習得する装備品を作成します。
  6. #_/============================================================================
  7. #_/ 【スキル】≪スキルCP制≫ より上に導入してください。
  8. #_/ 【メニュー】≪拡張装備画面≫ より上に導入してください。
  9. #_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

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

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

  14. module KGC
  15. module EquipLearnSkill
  16.   # ◆ AP の名称
  17.   #  ゲーム中の表記のみ変化。
  18.   VOCAB_AP     = "AP"
  19.   # ◆ AP のデフォルト値
  20.   #  所持 AP を指定しなかったエネミーの AP。
  21.   DEFAULT_AP   = 1
  22.   # ◆ 装備しただけでは習得しない
  23.   #  true  : AP が溜まるまで使用不能
  24.   #  false : 装備するだけで使用可能
  25.   NEED_FULL_AP = false

  26.   # ◆ リザルト画面での獲得 AP の表示
  27.   #  %s : 獲得した AP
  28.   VOCAB_RESULT_OBTAIN_AP         = "#{VOCAB_AP} を %s 獲得!"
  29.   # ◆ リザルト画面でスキルをマスターした際のメッセージ
  30.   #  %s : アクター名
  31.   VOCAB_RESULT_MASTER_SKILL      = "%sは"
  32.   # ◆ リザルト画面でマスターしたスキルの表示
  33.   #  %s : マスターしたスキルの名前
  34.   VOCAB_RESULT_MASTER_SKILL_NAME = "%sをマスターした!"

  35.   # ◆ メニュー画面に「AP ビューア」コマンドを追加する
  36.   #  追加する場所は、メニューコマンドの最下部です。
  37.   #  他の部分に追加したければ、≪カスタムメニューコマンド≫ をご利用ください。
  38.   USE_MENU_AP_VIEWER_COMMAND = true
  39.   # ◆ メニュー画面の「AP ビューア」コマンドの名称
  40.   VOCAB_MENU_AP_VIEWER       = "#{VOCAB_AP} ビューア"

  41.   # ◆ マスター(完全習得)したスキルの AP 欄
  42.   VOCAB_MASTER_SKILL      = "- MASTER -"
  43.   # ◆ 蓄積 AP が 0 のスキルも AP ビューアに表示
  44.   SHOW_ZERO_AP_SKILL      = true
  45.   # ◆ 蓄積 AP が 0 のスキルの名前を隠す
  46.   MASK_ZERO_AP_SKILL_NAME = true
  47.   # ◆ 蓄積 AP が 0 のスキルに表示する名前
  48.   #  1文字だけ指定すると、スキル名と同じ長さに拡張されます。
  49.   ZERO_AP_NAME_MASK       = "?"
  50.   # ◆ 蓄積 AP が 0 のスキルのヘルプを隠す
  51.   HIDE_ZERO_AP_SKILL_HELP = true
  52.   # ◆ 蓄積 AP が 0 のスキルに表示するヘルプ
  53.   ZERO_AP_SKILL_HELP      = "????????"

  54.   # ◆ 除外装備品配列
  55.   #  配列の添字がアクター ID に対応。
  56.   #  習得装備から除外する武器・防具の ID を配列に格納。
  57.   EXCLUDE_WEAPONS = []  # 武器
  58.   EXCLUDE_ARMORS  = []  # 防具
  59.   # ここから下に定義。
  60.   #  <例>
  61.   #  アクターID:1 は、武器ID:50 と 70 のスキルを習得できない。
  62.   # EXCLUDE_WEAPONS[1] = [50, 70]

  63.   # ◆ 除外スキル配列
  64.   #  配列の添字がアクター ID と対応。
  65.   #  装備では習得不可能にするスキル ID を配列に格納。
  66.   EXCLUDE_SKILLS = []
  67.   #  <例>
  68.   #  アクターID:1 は、スキルID:30 を装備品で習得することはできない。
  69.   # EXCLUDE_SKILLS[1] = [30]
  70. end
  71. end

  72. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  73. $imported = {} if $imported == nil
  74. $imported["EquipLearnSkill"] = true

  75. module KGC::EquipLearnSkill
  76.   module Regexp
  77.     module BaseItem
  78.       # 習得スキル
  79.       LEARN_SKILL = /<(?:LEARN_SKILL|スキル習得)\s*(\d+(?:\s*,\s*\d+)*)>/i
  80.     end

  81.     module Skill
  82.       # 必要 AP
  83.       NEED_AP = /<(?:NEED_AP|必要AP)\s*(\d+)>/i
  84.     end

  85.     module Enemy
  86.       # 所持 AP
  87.       AP = /<AP\s*(\d+)>/i
  88.     end
  89.   end
  90. end

  91. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  92. #==============================================================================
  93. # □ KGC::Commands
  94. #==============================================================================

  95. module KGC
  96. module Commands
  97.   module_function
  98.   #--------------------------------------------------------------------------
  99.   # ○ AP の獲得
  100.   #     actor_id : アクター ID
  101.   #     ap       : 獲得 AP
  102.   #     show     : マスター表示フラグ
  103.   #--------------------------------------------------------------------------
  104.   def gain_actor_ap(actor_id, ap, show = false)
  105.     $game_actors[actor_id].gain_ap(ap, show)
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ○ AP の変更
  109.   #     actor_id : アクター ID
  110.   #     skill_id : スキル ID
  111.   #     ap       : AP
  112.   #--------------------------------------------------------------------------
  113.   def change_actor_ap(actor_id, skill_id, ap)
  114.     skill = $data_skills[skill_id]
  115.     return if skill == nil
  116.     $game_actors[actor_id].change_ap(skill, ap)

  117.     $game_actors[actor_id].restore_passive_rev if $imported["PassiveSkill"]
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ○ AP ビューアの呼び出し
  121.   #     actor_index : アクターインデックス
  122.   #--------------------------------------------------------------------------
  123.   def call_ap_viewer(actor_index = 0)
  124.     return if $game_temp.in_battle
  125.     $game_temp.next_scene = :ap_viewer
  126.     $game_temp.next_scene_actor_index = actor_index
  127.   end
  128. end
  129. end

  130. class Game_Interpreter
  131.   include KGC::Commands
  132. end

  133. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  134. #==============================================================================
  135. # ■ Vocab
  136. #==============================================================================

  137. module Vocab
  138.   # 戦闘終了メッセージ
  139.   ObtainAP              = KGC::EquipLearnSkill::VOCAB_RESULT_OBTAIN_AP
  140.   ResultFullAPSkill     = KGC::EquipLearnSkill::VOCAB_RESULT_MASTER_SKILL
  141.   ResultFullAPSkillName = KGC::EquipLearnSkill::VOCAB_RESULT_MASTER_SKILL_NAME

  142.   # AP
  143.   def self.ap
  144.     return KGC::EquipLearnSkill::VOCAB_AP
  145.   end

  146.   # マスターしたスキル
  147.   def self.full_ap_skill
  148.     return KGC::EquipLearnSkill::VOCAB_MASTER_SKILL
  149.   end

  150.   # AP ビューア
  151.   def self.ap_viewer
  152.     return KGC::EquipLearnSkill::VOCAB_MENU_AP_VIEWER
  153.   end
  154. end

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

  156. #==============================================================================
  157. # ■ RPG::BaseItem
  158. #==============================================================================

  159. class RPG::BaseItem
  160.   #--------------------------------------------------------------------------
  161.   # ○ スキル習得装備のキャッシュ生成
  162.   #--------------------------------------------------------------------------
  163.   def create_equip_learn_skill_cache
  164.     @__learn_skills = []

  165.     self.note.each_line { |line|
  166.       if line =~ KGC::EquipLearnSkill::Regexp::BaseItem::LEARN_SKILL
  167.         # スキル習得
  168.         $1.scan(/\d+/).each { |num|
  169.           skill_id = num.to_i
  170.           # 存在するスキルならリストに加える
  171.           @__learn_skills << skill_id if $data_skills[skill_id] != nil
  172.         }
  173.       end
  174.     }
  175.   end
  176.   #--------------------------------------------------------------------------
  177.   # ○ 習得するスキル ID の配列
  178.   #--------------------------------------------------------------------------
  179.   def learn_skills
  180.     create_equip_learn_skill_cache if @__learn_skills == nil
  181.     return @__learn_skills
  182.   end
  183. end

  184. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  185. #==============================================================================
  186. # ■ RPG::Skill
  187. #==============================================================================

  188. class RPG::Skill < RPG::UsableItem
  189.   #--------------------------------------------------------------------------
  190.   # ○ クラス変数
  191.   #--------------------------------------------------------------------------
  192.   @@__masked_name =
  193.     KGC::EquipLearnSkill::ZERO_AP_NAME_MASK  # マスク名
  194.   @@__expand_masked_name = false             # マスク名拡張表示フラグ

  195.   if @@__expand_masked_name != nil
  196.     @@__expand_masked_name = (@@__masked_name.scan(/./).size == 1)
  197.   end
  198.   #--------------------------------------------------------------------------
  199.   # ○ スキル習得装備のキャッシュ生成
  200.   #--------------------------------------------------------------------------
  201.   def create_equip_learn_skill_cache
  202.     @__need_ap = 0

  203.     self.note.each_line { |line|
  204.       if line =~ KGC::EquipLearnSkill::Regexp::Skill::NEED_AP  # 必要 AP
  205.         @__need_ap = $1.to_i
  206.       end
  207.     }
  208.   end
  209.   #--------------------------------------------------------------------------
  210.   # ○ マスク名
  211.   #--------------------------------------------------------------------------
  212.   def masked_name
  213.     if KGC::EquipLearnSkill::MASK_ZERO_AP_SKILL_NAME
  214.       if @@__expand_masked_name
  215.         # マスク名を拡張して表示
  216.         return @@__masked_name * self.name.scan(/./).size
  217.       else
  218.         return @@__masked_name
  219.       end
  220.     else
  221.       return self.name
  222.     end
  223.   end
  224.   #--------------------------------------------------------------------------
  225.   # ○ 習得に必要な AP
  226.   #--------------------------------------------------------------------------
  227.   def need_ap
  228.     create_equip_learn_skill_cache if @__need_ap == nil
  229.     return @__need_ap
  230.   end
  231. end

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

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

  236. class RPG::Enemy
  237.   #--------------------------------------------------------------------------
  238.   # ○ スキル習得装備のキャッシュ生成
  239.   #--------------------------------------------------------------------------
  240.   def create_equip_learn_skill_cache
  241.     @__ap = KGC::EquipLearnSkill::DEFAULT_AP

  242.     self.note.each_line { |line|
  243.       if line =~ KGC::EquipLearnSkill::Regexp::Enemy::AP  # 所持 AP
  244.         @__ap = $1.to_i
  245.       end
  246.     }
  247.   end
  248.   #--------------------------------------------------------------------------
  249.   # ○ 所持 AP
  250.   #--------------------------------------------------------------------------
  251.   def ap
  252.     create_equip_learn_skill_cache if @__ap == nil
  253.     return @__ap
  254.   end
  255. end

  256. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  257. #==============================================================================
  258. # ■ Game_Temp
  259. #==============================================================================

  260. unless $imported["CustomMenuCommand"]
  261. class Game_Temp
  262.   #--------------------------------------------------------------------------
  263.   # ● 公開インスタンス変数
  264.   #--------------------------------------------------------------------------
  265.   attr_accessor :next_scene_actor_index   # 次のシーンのアクターインデックス
  266.   #--------------------------------------------------------------------------
  267.   # ● オブジェクト初期化
  268.   #--------------------------------------------------------------------------
  269.   alias initialize_KGC_EquipLearnSkill initialize
  270.   def initialize
  271.     initialize_KGC_EquipLearnSkill

  272.     @next_scene_actor_index = 0
  273.   end
  274. end
  275. end

  276. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  277. #==============================================================================
  278. # ■ Game_Actor
  279. #==============================================================================

  280. class Game_Actor < Game_Battler
  281.   #--------------------------------------------------------------------------
  282.   # ● セットアップ
  283.   #     actor_id : アクター ID
  284.   #--------------------------------------------------------------------------
  285.   alias setup_KGC_EquipLearnSkill setup
  286.   def setup(actor_id)
  287.     setup_KGC_EquipLearnSkill(actor_id)

  288.     @skill_ap = []
  289.   end
  290.   #--------------------------------------------------------------------------
  291.   # ○ 指定スキルの AP 取得
  292.   #     skill_id : スキル ID
  293.   #--------------------------------------------------------------------------
  294.   def skill_ap(skill_id)
  295.     @skill_ap = [] if @skill_ap == nil
  296.     return (@skill_ap[skill_id] != nil ? @skill_ap[skill_id] : 0)
  297.   end
  298.   #--------------------------------------------------------------------------
  299.   # ○ AP 変更
  300.   #     skill : スキル
  301.   #     ap    : 新しい AP
  302.   #--------------------------------------------------------------------------
  303.   def change_ap(skill, ap)
  304.     @skill_ap = [] if @skill_ap == nil
  305.     @skill_ap[skill.id] = [[ap, skill.need_ap].min, 0].max
  306.   end
  307.   #--------------------------------------------------------------------------
  308.   # ○ マスターしたスキルの表示
  309.   #     new_skills : 新しくマスターしたスキルの配列
  310.   #--------------------------------------------------------------------------
  311.   def display_full_ap_skills(new_skills)
  312.     $game_message.new_page
  313.     text = sprintf(Vocab::ResultFullAPSkill, name)
  314.     $game_message.texts.push(text)
  315.     new_skills.each { |skill|
  316.       text = sprintf(Vocab::ResultFullAPSkillName, skill.name)
  317.       $game_message.texts.push(text)
  318.     }
  319.   end
  320.   #--------------------------------------------------------------------------
  321.   # ○ AP 獲得
  322.   #     ap   : AP の増加量
  323.   #     show : マスタースキル表示フラグ
  324.   #--------------------------------------------------------------------------
  325.   def gain_ap(ap, show)
  326.     last_full_ap_skills = full_ap_skills

  327.     # 装備品により習得しているスキルに AP を加算
  328.     equipment_skills(true).each { |skill|
  329.       change_ap(skill, skill_ap(skill.id) + ap)
  330.     }
  331.     restore_passive_rev if $imported["PassiveSkill"]

  332.     # マスターしたスキルを表示
  333.     if show && last_full_ap_skills != full_ap_skills
  334.       display_full_ap_skills(full_ap_skills - last_full_ap_skills)
  335.     end
  336.   end
  337.   #--------------------------------------------------------------------------
  338.   # ● スキルオブジェクトの配列取得
  339.   #--------------------------------------------------------------------------
  340.   alias skills_KGC_EquipLearnSkill skills
  341.   def skills
  342.     result = skills_KGC_EquipLearnSkill

  343.     # 装備品と AP 蓄積済みのスキルを追加
  344.     additional_skills = equipment_skills | full_ap_skills
  345.     return (result | additional_skills).sort_by { |s| s.id }
  346.   end
  347.   #--------------------------------------------------------------------------
  348.   # ○ 装備品の習得スキル取得
  349.   #     all : 使用不可能なスキルも含める
  350.   #--------------------------------------------------------------------------
  351.   def equipment_skills(all = false)
  352.     result = []
  353.     equips.compact.each { |item|
  354.       next unless include_learnable_equipment?(item)        # 除外装備は無視

  355.       item.learn_skills.each { |i|
  356.         skill = $data_skills[i]
  357.         next unless include_equipment_skill?(skill)          # 除外スキルは無視
  358.         if !all && KGC::EquipLearnSkill::NEED_FULL_AP        # 要蓄積の場合
  359.           next unless skill.need_ap == 0 || ap_full?(skill)    # 未達成なら無視
  360.         end
  361.         result << skill
  362.       }
  363.     }
  364.     return result
  365.   end
  366.   #--------------------------------------------------------------------------
  367.   # ○ スキル習得装備除外判定
  368.   #     item : 判定装備
  369.   #--------------------------------------------------------------------------
  370.   def include_learnable_equipment?(item)
  371.     return false unless item.is_a?(RPG::Weapon) || item.is_a?(RPG::Armor)
  372.     return false unless equippable?(item)

  373.     case item
  374.     when RPG::Weapon  # 武器
  375.       # 除外武器に含まれている場合
  376.       if KGC::EquipLearnSkill::EXCLUDE_WEAPONS[id] != nil &&
  377.           KGC::EquipLearnSkill::EXCLUDE_WEAPONS[id].include?(item.id)
  378.         return false
  379.       end
  380.     when RPG::Armor   # 防具
  381.       # 除外防具に含まれている場合
  382.       if KGC::EquipLearnSkill::EXCLUDE_ARMORS[id] != nil &&
  383.           KGC::EquipLearnSkill::EXCLUDE_ARMORS[id].include?(item.id)
  384.         return false
  385.       end
  386.     end

  387.     return true
  388.   end
  389.   #--------------------------------------------------------------------------
  390.   # ○ 装備品による習得スキル除外判定
  391.   #     skill : スキル
  392.   #--------------------------------------------------------------------------
  393.   def include_equipment_skill?(skill)
  394.     # 自身が除外されている場合
  395.     if KGC::EquipLearnSkill::EXCLUDE_SKILLS[id] != nil &&
  396.         KGC::EquipLearnSkill::EXCLUDE_SKILLS[id].include?(skill.id)
  397.       return false
  398.     end

  399.     return true
  400.   end
  401.   #--------------------------------------------------------------------------
  402.   # ○ AP 蓄積済みのスキルを取得
  403.   #--------------------------------------------------------------------------
  404.   def full_ap_skills
  405.     result = []
  406.     (1...$data_skills.size).each { |i|
  407.       skill = $data_skills[i]
  408.       result << skill if ap_full?(skill) && include_equipment_skill?(skill)
  409.     }
  410.     return result
  411.   end
  412.   #--------------------------------------------------------------------------
  413.   # ○ AP 蓄積可能なスキルを取得
  414.   #--------------------------------------------------------------------------
  415.   def can_gain_ap_skills
  416.     result = []
  417.     equips.compact.each { |item|
  418.       next unless include_learnable_equipment?(item)  # 除外装備なら無視

  419.       item.learn_skills.each { |i|
  420.         skill = $data_skills[i]
  421.         next unless include_equipment_skill?(skill)   # 除外スキルなら無視
  422.         result << skill
  423.       }
  424.     }
  425.     return (result - full_ap_skills)              # マスターしたものを除く
  426.   end
  427.   #--------------------------------------------------------------------------
  428.   # ○ AP 蓄積済み判定
  429.   #     skill : スキル
  430.   #--------------------------------------------------------------------------
  431.   def ap_full?(skill)
  432.     return false unless skill.is_a?(RPG::Skill)   # スキル以外
  433.     return false if skill.need_ap == 0            # 必要 AP が 0
  434.     return true  if @skills.include?(skill.id)    # 習得済み

  435.     return (skill_ap(skill.id) >= skill.need_ap)
  436.   end
  437.   #--------------------------------------------------------------------------
  438.   # ● スキルの使用可能判定
  439.   #     skill : スキル
  440.   #--------------------------------------------------------------------------
  441.   def skill_can_use?(skill)
  442.     return super
  443.   end
  444. end

  445. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  446. #==============================================================================
  447. # ■ Game_Enemy
  448. #==============================================================================

  449. class Game_Enemy < Game_Battler
  450.   #--------------------------------------------------------------------------
  451.   # ○ AP の取得
  452.   #--------------------------------------------------------------------------
  453.   def ap
  454.     return enemy.ap
  455.   end
  456. end

  457. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  458. #==============================================================================
  459. # ■ Game_Troop
  460. #==============================================================================

  461. class Game_Troop < Game_Unit
  462.   #--------------------------------------------------------------------------
  463.   # ○ AP の合計計算
  464.   #--------------------------------------------------------------------------
  465.   def ap_total
  466.     ap = 0
  467.     for enemy in dead_members
  468.       ap += enemy.ap unless enemy.hidden
  469.     end
  470.     return ap
  471.   end
  472. end

  473. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  474. #==============================================================================
  475. # ■ Window_Command
  476. #==============================================================================

  477. class Window_Command < Window_Selectable
  478.   unless method_defined?(:add_command)
  479.   #--------------------------------------------------------------------------
  480.   # ○ コマンドを追加
  481.   #    追加した位置を返す
  482.   #--------------------------------------------------------------------------
  483.   def add_command(command)
  484.     @commands << command
  485.     @item_max = @commands.size
  486.     item_index = @item_max - 1
  487.     refresh_command
  488.     draw_item(item_index)
  489.     return item_index
  490.   end
  491.   #--------------------------------------------------------------------------
  492.   # ○ コマンドをリフレッシュ
  493.   #--------------------------------------------------------------------------
  494.   def refresh_command
  495.     buf = self.contents.clone
  496.     self.height = [self.height, row_max * WLH + 32].max
  497.     create_contents
  498.     self.contents.blt(0, 0, buf, buf.rect)
  499.     buf.dispose
  500.   end
  501.   #--------------------------------------------------------------------------
  502.   # ○ コマンドを挿入
  503.   #--------------------------------------------------------------------------
  504.   def insert_command(index, command)
  505.     @commands.insert(index, command)
  506.     @item_max = @commands.size
  507.     refresh_command
  508.     refresh
  509.   end
  510.   #--------------------------------------------------------------------------
  511.   # ○ コマンドを削除
  512.   #--------------------------------------------------------------------------
  513.   def remove_command(command)
  514.     @commands.delete(command)
  515.     @item_max = @commands.size
  516.     refresh
  517.   end
  518.   end
  519. end

  520. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  521. #==============================================================================
  522. # □ Window_APViewer
  523. #------------------------------------------------------------------------------
  524. #  AP ビューアでスキルを表示するウィンドウです。
  525. #==============================================================================

  526. class Window_APViewer < Window_Selectable
  527.   #--------------------------------------------------------------------------
  528.   # ● オブジェクト初期化
  529.   #     x      : ウィンドウの X 座標
  530.   #     y      : ウィンドウの Y 座標
  531.   #     width  : ウィンドウの幅
  532.   #     height : ウィンドウの高さ
  533.   #     actor  : アクター
  534.   #--------------------------------------------------------------------------
  535.   def initialize(x, y, width, height, actor)
  536.     super(x, y, width, height)
  537.     @actor = actor
  538.     @can_gain_ap_skills = []
  539.     @equipment_skills   = []
  540.     self.index = 0
  541.     refresh
  542.   end
  543.   #--------------------------------------------------------------------------
  544.   # ○ スキルの取得
  545.   #--------------------------------------------------------------------------
  546.   def skill
  547.     return @data[self.index]
  548.   end
  549.   #--------------------------------------------------------------------------
  550.   # ○ リフレッシュ
  551.   #--------------------------------------------------------------------------
  552.   def refresh
  553.     @data = []
  554.     @can_gain_ap_skills = @actor.can_gain_ap_skills
  555.     @equipment_skills   = @actor.equipment_skills(true)

  556.     (1...$data_skills.size).each { |i|
  557.       skill = $data_skills[i]
  558.       @data << skill if include?(skill)
  559.     }
  560.     @item_max = @data.size
  561.     create_contents
  562.     @item_max.times { |i| draw_item(i) }
  563.   end
  564.   #--------------------------------------------------------------------------
  565.   # ○ 項目の描画
  566.   #     index : 項目番号
  567.   #--------------------------------------------------------------------------
  568.   def draw_item(index)
  569.     rect = item_rect(index)
  570.     self.contents.clear_rect(rect)
  571.     skill = @data[index]
  572.     if skill != nil
  573.       rect.width -= 4
  574.       draw_item_name(skill, rect.x, rect.y, enable?(skill))
  575.       if @actor.ap_full?(skill) || @actor.skill_learn?(skill)
  576.         # マスター
  577.         text = Vocab.full_ap_skill
  578.       else
  579.         # AP 蓄積中
  580.         text = sprintf("%s %4d/%4d",
  581.           Vocab.ap, @actor.skill_ap(skill.id), skill.need_ap)
  582.       end
  583.       # AP を描画
  584.       self.contents.font.color = normal_color
  585.       self.contents.draw_text(rect, text, 2)
  586.     end
  587.   end
  588.   #--------------------------------------------------------------------------
  589.   # ○ スキルをリストに含めるか
  590.   #     skill : スキル
  591.   #--------------------------------------------------------------------------
  592.   def include?(skill)
  593.     return false if skill.need_ap == 0
  594.     unless KGC::EquipLearnSkill::SHOW_ZERO_AP_SKILL
  595.       # AP が 0 、かつ装備品で習得していない
  596.       if @actor.skill_ap(skill.id) == 0 && !@equipment_skills.include?(skill)
  597.         return false
  598.       end
  599.     end

  600.     return true
  601.   end
  602.   #--------------------------------------------------------------------------
  603.   # ○ スキルを有効状態で表示するかどうか
  604.   #     skill : スキル
  605.   #--------------------------------------------------------------------------
  606.   def enable?(skill)
  607.     return true if @actor.skill_learn?(skill)           # 習得済み
  608.     return true if @actor.ap_full?(skill)               # マスター
  609.     return true if @can_gain_ap_skills.include?(skill)  # AP 蓄積可能

  610.     return false
  611.   end
  612.   #--------------------------------------------------------------------------
  613.   # ○ スキルをマスク表示するかどうか
  614.   #     skill : スキル
  615.   #--------------------------------------------------------------------------
  616.   def mask?(skill)
  617.     return false if @actor.skill_learn?(skill)           # 習得済み
  618.     return false if @actor.skill_ap(skill.id) > 0        # AP が 1 以上
  619.     return false if @can_gain_ap_skills.include?(skill)  # AP 蓄積可能

  620.     return true
  621.   end
  622.   #--------------------------------------------------------------------------
  623.   # ● アイテム名の描画
  624.   #     item    : アイテム (スキル、武器、防具でも可)
  625.   #     x       : 描画先 X 座標
  626.   #     y       : 描画先 Y 座標
  627.   #     enabled : 有効フラグ。false のとき半透明で描画
  628.   #--------------------------------------------------------------------------
  629.   def draw_item_name(item, x, y, enabled = true)
  630.     draw_icon(item.icon_index, x, y, enabled)
  631.     self.contents.font.color = normal_color
  632.     self.contents.font.color.alpha = enabled ? 255 : 128
  633.     self.contents.draw_text(x + 24, y, 172, WLH,
  634.       mask?(item) ? item.masked_name : item.name)
  635.   end
  636.   #--------------------------------------------------------------------------
  637.   # ● カーソルを 1 ページ後ろに移動
  638.   #--------------------------------------------------------------------------
  639.   def cursor_pagedown
  640.     return if Input.repeat?(Input::R)
  641.     super
  642.   end
  643.   #--------------------------------------------------------------------------
  644.   # ● カーソルを 1 ページ前に移動
  645.   #--------------------------------------------------------------------------
  646.   def cursor_pageup
  647.     return if Input.repeat?(Input::L)
  648.     super
  649.   end
  650.   #--------------------------------------------------------------------------
  651.   # ● フレーム更新
  652.   #--------------------------------------------------------------------------
  653.   def update
  654.     last_index = @index
  655.     super
  656.     return unless self.active

  657.     if Input.repeat?(Input::RIGHT)
  658.       cursor_pagedown
  659.     elsif Input.repeat?(Input::LEFT)
  660.       cursor_pageup
  661.     end
  662.     if @index != last_index
  663.       Sound.play_cursor
  664.     end
  665.   end
  666.   #--------------------------------------------------------------------------
  667.   # ● ヘルプテキスト更新
  668.   #--------------------------------------------------------------------------
  669.   def update_help
  670.     if KGC::EquipLearnSkill::HIDE_ZERO_AP_SKILL_HELP && mask?(skill)
  671.       @help_window.set_text(KGC::EquipLearnSkill::ZERO_AP_SKILL_HELP)
  672.     else
  673.       @help_window.set_text(skill == nil ? "" : skill.description)
  674.     end
  675.   end
  676. end

  677. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  678. #==============================================================================
  679. # ■ Scene_Map
  680. #==============================================================================

  681. class Scene_Map < Scene_Base
  682.   #--------------------------------------------------------------------------
  683.   # ● 画面切り替えの実行
  684.   #--------------------------------------------------------------------------
  685.   alias update_scene_change_KGC_EquipLearnSkill update_scene_change
  686.   def update_scene_change
  687.     return if $game_player.moving?    # プレイヤーの移動中?

  688.     if $game_temp.next_scene == :ap_viewer
  689.       call_ap_viewer
  690.       return
  691.     end

  692.     update_scene_change_KGC_EquipLearnSkill
  693.   end
  694.   #--------------------------------------------------------------------------
  695.   # ○ AP ビューアへの切り替え
  696.   #--------------------------------------------------------------------------
  697.   def call_ap_viewer
  698.     $game_temp.next_scene = nil
  699.     $scene = Scene_APViewer.new($game_temp.next_scene_actor_index,
  700.       0, Scene_APViewer::HOST_MAP)
  701.   end
  702. end

  703. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  704. #==============================================================================
  705. # ■ Scene_Menu
  706. #==============================================================================

  707. class Scene_Menu < Scene_Base
  708.   if KGC::EquipLearnSkill::USE_MENU_AP_VIEWER_COMMAND
  709.   #--------------------------------------------------------------------------
  710.   # ● コマンドウィンドウの作成
  711.   #--------------------------------------------------------------------------
  712.   alias create_command_window_KGC_EquipLearnSkill create_command_window
  713.   def create_command_window
  714.     create_command_window_KGC_EquipLearnSkill

  715.     return if $imported["CustomMenuCommand"]

  716.     @__command_ap_viewer_index = @command_window.add_command(Vocab.ap_viewer)
  717.     if @command_window.oy > 0
  718.       @command_window.oy -= Window_Base::WLH
  719.     end
  720.     @command_window.index = @menu_index
  721.   end
  722.   end
  723.   #--------------------------------------------------------------------------
  724.   # ● コマンド選択の更新
  725.   #--------------------------------------------------------------------------
  726.   alias update_command_selection_KGC_EquipLearnSkill update_command_selection
  727.   def update_command_selection
  728.     call_ap_viewer_flag = false
  729.     if Input.trigger?(Input::C)
  730.       case @command_window.index
  731.       when @__command_ap_viewer_index  # AP ビューア
  732.         call_ap_viewer_flag = true
  733.       end
  734.     end

  735.     # AP ビューアに移行
  736.     if call_ap_viewer_flag
  737.       if $game_party.members.size == 0
  738.         Sound.play_buzzer
  739.         return
  740.       end
  741.       Sound.play_decision
  742.       start_actor_selection
  743.       return
  744.     end

  745.     update_command_selection_KGC_EquipLearnSkill
  746.   end
  747.   #--------------------------------------------------------------------------
  748.   # ● アクター選択の更新
  749.   #--------------------------------------------------------------------------
  750.   alias update_actor_selection_KGC_EquipLearnSkill update_actor_selection
  751.   def update_actor_selection
  752.     if Input.trigger?(Input::C)
  753.       $game_party.last_actor_index = @status_window.index
  754.       Sound.play_decision
  755.       case @command_window.index
  756.       when @__command_ap_viewer_index  # AP ビューア
  757.         $scene = Scene_APViewer.new(@status_window.index,
  758.           @__command_ap_viewer_index, Scene_APViewer::HOST_MENU)
  759.         return
  760.       end
  761.     end

  762.     update_actor_selection_KGC_EquipLearnSkill
  763.   end
  764. end

  765. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  766. #==============================================================================
  767. # □ Scene_APViewer
  768. #------------------------------------------------------------------------------
  769. #   AP ビューアの処理を行うクラスです。
  770. #==============================================================================

  771. class Scene_APViewer < Scene_Base
  772.   HOST_MENU   = 0
  773.   HOST_MAP    = 1
  774.   #--------------------------------------------------------------------------
  775.   # ● オブジェクト初期化
  776.   #     actor_index : アクターインデックス
  777.   #     menu_index  : コマンドのカーソル初期位置
  778.   #     host_scene  : 呼び出し元 (0..メニュー  1..マップ)
  779.   #--------------------------------------------------------------------------
  780.   def initialize(actor_index = 0, menu_index = 0, host_scene = HOST_MENU)
  781.     @actor_index = actor_index
  782.     @menu_index = menu_index
  783.     @host_scene = host_scene
  784.   end
  785.   #--------------------------------------------------------------------------
  786.   # ● 開始処理
  787.   #--------------------------------------------------------------------------
  788.   def start
  789.     super
  790.     create_menu_background
  791.     @actor = $game_party.members[@actor_index]
  792.     @help_window = Window_Help.new
  793.     if $imported["HelpExtension"]
  794.       @help_window.row_max = KGC::HelpExtension::ROW_MAX
  795.     end
  796.     @status_window = Window_SkillStatus.new(0, @help_window.height, @actor)
  797.     dy = @help_window.height + @status_window.height
  798.     @skill_window = Window_APViewer.new(0, dy,
  799.       Graphics.width, Graphics.height - dy, @actor)
  800.     @skill_window.help_window = @help_window
  801.   end
  802.   #--------------------------------------------------------------------------
  803.   # ● 終了処理
  804.   #--------------------------------------------------------------------------
  805.   def terminate
  806.     super
  807.     dispose_menu_background
  808.     @help_window.dispose
  809.     @status_window.dispose
  810.     @skill_window.dispose
  811.   end
  812.   #--------------------------------------------------------------------------
  813.   # ○ 元の画面へ戻る
  814.   #--------------------------------------------------------------------------
  815.   def return_scene
  816.     case @host_scene
  817.     when HOST_MENU
  818.       $scene = Scene_Menu.new(@menu_index)
  819.     when HOST_MAP
  820.       $scene = Scene_Map.new
  821.     end
  822.   end
  823.   #--------------------------------------------------------------------------
  824.   # ○ 次のアクターの画面に切り替え
  825.   #--------------------------------------------------------------------------
  826.   def next_actor
  827.     @actor_index += 1
  828.     @actor_index %= $game_party.members.size
  829.     $scene = Scene_APViewer.new(@actor_index, @menu_index, @host_scene)
  830.   end
  831.   #--------------------------------------------------------------------------
  832.   # ○ 前のアクターの画面に切り替え
  833.   #--------------------------------------------------------------------------
  834.   def prev_actor
  835.     @actor_index += $game_party.members.size - 1
  836.     @actor_index %= $game_party.members.size
  837.     $scene = Scene_APViewer.new(@actor_index, @menu_index, @host_scene)
  838.   end
  839.   #--------------------------------------------------------------------------
  840.   # ● フレーム更新
  841.   #--------------------------------------------------------------------------
  842.   def update
  843.     super
  844.     update_menu_background
  845.     @help_window.update
  846.     @skill_window.update
  847.     @status_window.update
  848.     if @skill_window.active
  849.       update_skill_selection
  850.     end
  851.   end
  852.   #--------------------------------------------------------------------------
  853.   # ○ スキル選択の更新
  854.   #--------------------------------------------------------------------------
  855.   def update_skill_selection
  856.     if Input.trigger?(Input::B)
  857.       Sound.play_cancel
  858.       return_scene
  859.     elsif Input.trigger?(Input::R)
  860.       Sound.play_cursor
  861.       next_actor
  862.     elsif Input.trigger?(Input::L)
  863.       Sound.play_cursor
  864.       prev_actor
  865.     end
  866.   end
  867. end

  868. #★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

  869. #==============================================================================
  870. # ■ Scene_Battle
  871. #==============================================================================

  872. class Scene_Battle < Scene_Base
  873.   #--------------------------------------------------------------------------
  874.   # ● メッセージ表示が終わるまでウェイト
  875.   #--------------------------------------------------------------------------
  876.   alias wait_for_message_KGC_EquipLearnSkill wait_for_message
  877.   def wait_for_message
  878.     return if @ignore_wait_for_message  # メッセージ終了までのウェイトを無視

  879.     wait_for_message_KGC_EquipLearnSkill
  880.   end
  881.   #--------------------------------------------------------------------------
  882.   # ● 獲得した経験値とお金の表示
  883.   #--------------------------------------------------------------------------
  884.   alias display_exp_and_gold_KGC_EquipLearnSkill display_exp_and_gold
  885.   def display_exp_and_gold
  886.     @ignore_wait_for_message = true

  887.     display_exp_and_gold_KGC_EquipLearnSkill

  888.     display_ap
  889.     @ignore_wait_for_message = false
  890.     wait_for_message
  891.   end
  892.   #--------------------------------------------------------------------------
  893.   # ● レベルアップの表示
  894.   #--------------------------------------------------------------------------
  895.   alias display_level_up_KGC_EquipLearnSkill display_level_up
  896.   def display_level_up
  897.     display_level_up_KGC_EquipLearnSkill

  898.     display_master_equipment_skill
  899.   end
  900.   #--------------------------------------------------------------------------
  901.   # ○ 獲得 AP の表示
  902.   #--------------------------------------------------------------------------
  903.   def display_ap
  904.     ap = $game_troop.ap_total
  905.     if ap > 0
  906.       text = sprintf(Vocab::ObtainAP, ap)
  907.       $game_message.texts.push('\.' + text)
  908.     end
  909.     wait_for_message
  910.   end
  911.   #--------------------------------------------------------------------------
  912.   # ○ マスターしたスキルの表示
  913.   #--------------------------------------------------------------------------
  914.   def display_master_equipment_skill
  915.     ap = $game_troop.ap_total
  916.     $game_party.existing_members.each { |actor|
  917.       last_skills = actor.skills
  918.       actor.gain_ap(ap, true)
  919.     }
  920.     wait_for_message
  921.   end
  922. end
复制代码
这就行了……
回复 支持 反对

使用道具 举报

Lv2.观梦者

花开堪折直须折

梦石
0
星屑
631
在线时间
943 小时
注册时间
2010-7-17
帖子
4963

贵宾

206
 楼主| 发表于 2010-12-10 23:24:31 | 只看该作者
回复 Rion幻音 的帖子

嗯~~你要的是不是这种?

点评

为啥是回复在下的啊?  发表于 2010-12-10 23:32
大家好,我叫节操,有一天,我被吃了。
http://forever-dream.5d6d.com
永恒の梦制作组论坛

129993099
永恒の梦制作组QQ群
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
1
星屑
3893
在线时间
591 小时
注册时间
2007-8-14
帖子
182
207
发表于 2010-12-10 23:40:43 | 只看该作者
回复 Rion幻音 的帖子

哎呀哎呀......介不介意把使用方法写出来呢?日文苦手的说........
赞美灵魂……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
518 小时
注册时间
2010-6-16
帖子
1073
208
发表于 2010-12-10 23:53:01 | 只看该作者
装备的备注栏加入
<スキル習得 X>
X为技能ID
如果要武器装备杀死一定敌人后习得技能的话就在技能下加入
<必要AP Y>
Y为习得所需AP
再来是设定敌人AP(也是放在敌人数据的备注内)
<AP Z>
Z为敌人死后获得的AP数目
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
180
在线时间
829 小时
注册时间
2010-6-26
帖子
671
209
发表于 2010-12-11 09:52:03 | 只看该作者
本帖最后由 企鹅达达 于 2010-12-11 10:00 编辑

回复 cryhades 的帖子

http://rpg.blue/thread-161901-1-3.html
另:必中技能和状态
  1. =begin
  2. ■必中スキル&ステート RGSS2 DAIpage■ v1.0

  3. ●機能●
  4.  メモ欄に"必中"の文字列が含まれるスキルは対象の回避率や設定した命中率に関係な
  5.  く必ず命中します。
  6.  同様にメモ欄に"必中"の文字列が含まれるステートが付加されているキャラの行動は
  7.  全て命中します。
  8.  クリティカルスキルのお供にどうでしょうか。

  9. ●再定義している箇所●
  10.  Game_Battlerをエイリアス
  11.  ※同じ箇所を変更するスクリプトと併用した場合は競合する可能性があります。

  12. ●更新履歴●
  13. 08/09/16:公開

  14. =end
  15. #==============================================================================
  16. # ■ カスタマイズポイント
  17. #==============================================================================
  18. module DAI_INSIDE_HIT
  19.   
  20.   # 暗闇状態の時は必中スキル・ステートでも1/4(25%)にする。( true / false )
  21.   REDUCE = true
  22.   
  23.   # 判別用文字列(スキル)
  24.   SK_WORD = "必中"
  25.   
  26.   # 判別用文字列(ステート)
  27.   ST_WORD = "必中"
  28.   
  29. end
  30. #==============================================================================
  31. # ■ Game_Battler
  32. #==============================================================================
  33. class Game_Battler
  34.   #--------------------------------------------------------------------------
  35.   # ● 最終命中率の計算
  36.   #--------------------------------------------------------------------------
  37.   alias dai_inside_calc_hit calc_hit
  38.   def calc_hit(user, obj = nil)
  39.     for state in user.states
  40.       if state.note.include?(DAI_INSIDE_HIT::ST_WORD)
  41.         hit = 100
  42.         hit /= 4 if DAI_INSIDE_HIT::REDUCE && user.reduce_hit_ratio?
  43.         return hit
  44.       end
  45.     end
  46.     if obj.is_a?(RPG::Skill)
  47.       if obj.note.include?(DAI_INSIDE_HIT::SK_WORD)
  48.         hit = 100
  49.         hit /= 4 if DAI_INSIDE_HIT::REDUCE && user.reduce_hit_ratio?
  50.         return hit
  51.       else
  52.         dai_inside_calc_hit(user, obj)
  53.       end
  54.     else
  55.       dai_inside_calc_hit(user, obj)
  56.     end
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 最終回避率の計算
  60.   #--------------------------------------------------------------------------
  61.   alias dai_inside_calc_eva calc_eva
  62.   def calc_eva(user, obj = nil)
  63.     for state in user.states
  64.       return 0 if state.note.include?(DAI_INSIDE_HIT::ST_WORD)
  65.     end
  66.     if obj.is_a?(RPG::Skill)
  67.       if obj.note.include?(DAI_INSIDE_HIT::SK_WORD)
  68.         return 0
  69.       else
  70.         dai_inside_calc_eva(user, obj)
  71.       end
  72.     else
  73.       dai_inside_calc_eva(user, obj)
  74.     end
  75.   end
  76. end
复制代码
新手们!不要被看扁了!我们也会用论坛搜索,我们也会自己找脚本,我们也会自己点击关闭按钮旁边的小问号!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
1
星屑
3893
在线时间
591 小时
注册时间
2007-8-14
帖子
182
210
发表于 2010-12-11 11:01:24 | 只看该作者
本帖最后由 cryhades 于 2010-12-11 11:03 编辑

回复 企鹅达达 的帖子

就是要这种~~谢谢~~

还有其他各位为吾辈解答的好心人~~谢谢了~~
赞美灵魂……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-14 19:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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