| 赞 | 0  | 
 
| VIP | 0 | 
 
| 好人卡 | 1 | 
 
| 积分 | 1 | 
 
| 经验 | 8796 | 
 
| 最后登录 | 2019-12-1 | 
 
| 在线时间 | 326 小时 | 
 
 
 
 
 
Lv1.梦旅人 
	- 梦石
 - 0 
 
        - 星屑
 - 60 
 
        - 在线时间
 - 326 小时
 
        - 注册时间
 - 2010-5-4
 
        - 帖子
 - 173
 
 
 
 | 
	
 本帖最后由 iisnow 于 2012-4-10 14:26 编辑  
 
小弟正在製作一個遊戲碰上了個問題... 
使用這個腳本"精神コマンド再現"的腳本 
 
所以把【技能】稱呼改成【精神】 
但是又不想把精神跟攻擊技能放在一起... 
是否可以把【攻擊】這個默認指令 
改為另一個技能指令視窗呢? 
 
希望前輩們能夠幫幫忙~謝謝=w= 
 
另外問個問題~精神コマンド再現..這個哪個前輩有用過0.0? 
能不能把這腳本變成..不用耗到MP~而是另一個自創數值(如:SP) 
原網頁腳本如下0.0” 
- #==============================================================================
 
 - #    ?VX RGSS2 「精神コマンド再現」?
 
 - #      EnDlEss DREamER
 
 - #     URL:[url]http://mitsu-evo.6.ql.bz/[/url]
 
 - #     製作者 mitsu-evo
 
 - #     Last:2012/1/20
 
 - #   一部のスパロボ精神コマンドの効果をスキル・アイテムで再現します。
 
 - #     ▼ MAIN 直上付近
 
 - #==============================================================================
 
 - $ed_rgss2 = {} if $ed_rgss2 == nil
 
 - $ed_rgss2["ed_spirit_command"] = true
 
 - =begin
 
  
- 1/20:必中・鉄壁・集中使用後、ほかの精神コマンド使用時にターン経過して
 
 - 効果が切れてしまう現象を修正。
 
 - 戦闘終了後、前回戦闘での精神コマンド効果が継続する現象を修正。
 
  
 
 
 
 
-       ★ 概要 ★
 
 -     
 
 -     ・スパロボの精神コマンドの効果を再現します。
 
 -     ・スキル選択後、原作同様にエフェクト後効果を発動します。
 
 -     ・敵も行動リストに精神スキルを入れると行動前に使用します。
 
 -     ・簡易汎用ATB併用時は精神スキルは詠唱しません。
 
 -     ・スキル及びアイテムのメモ欄にコマンドを記載します。
 
 -     ・使用精神コマンド一覧
 
 -      「熱血」「魂」「必中」「閃き」「鉄壁」「不屈」「かく乱」「再動」
 
 -      「集中」「直撃」
 
 -     ・メモ欄に<熱血>などと入れるとそのスキルを対象に付加します。
 
 -      再動なら<再動>とメモ欄に入れると効果が付与されます。
 
 -      その性質上「感応」や「幸運」「努力」などは再現していません。
 
 -     ・「直撃」はダメージ吸収と属性補正を無効化します。
 
 -     ・「再動」は入力行動を再度実行する仕様となっています。
 
 -     ・最終ダメージで回復するものは熱血・魂・鉄壁・不屈の効果が発動しません。
 
 -     ・「熱血」は2倍。「魂」は3倍。「不屈」は10ダメージ。
 
 -      「鉄壁」はダメージ1/4。「必中」より「閃き」優先。
 
 -      「かく乱」は命中1/2。
 
 -     ・「奇跡」などは複数のメモ欄コマンドを記載してやるといいです。
 
 -     ・ツクールの仕様上「対象」を指定できるので
 
 -      敵単体に「かく乱」。味方全体に「魂」など出来て
 
 -      かなりチートになるので、制作者側で調整や制限して下さい。
 
 -     
 
 -      ★ 導入位置 ★
 
 -     
 
 -     ・「指定値ダメージ緩和バリア」「特殊ダメージ計算式」よりも下に導入すること。
 
 -     ・「通常攻撃回数システム」よりも上
 
  
- =end
 
 - #==============================================================================
 
 - # ■ RPG::UsableItem
 
 - #==============================================================================
 
 - module RPG
 
 -   class UsableItem < BaseItem
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンド「熱血」の取得
 
 -   #--------------------------------------------------------------------------
 
 -     def nekketu
 
 -       sp_com = self.note.scan(/<熱血>/)
 
 -       sp_com = sp_com.flatten
 
 -       sp_com = sp_com[0].to_s
 
 -       # 魂がある場合はfalse
 
 -       return false if tamasii
 
 -       # sp_com が nil でなくて 配列が空でもない
 
 -       if sp_com != nil and not sp_com.empty?
 
 -         return true
 
 -       else
 
 -         return false
 
 -       end
 
 -     end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンド「魂」の取得
 
 -   #--------------------------------------------------------------------------
 
 -     def tamasii
 
 -       sp_com = self.note.scan(/<魂>/)
 
 -       sp_com = sp_com.flatten
 
 -       sp_com = sp_com[0].to_s
 
 -       # sp_com が nil でなくて 配列が空でもない
 
 -       if sp_com != nil and not sp_com.empty?
 
 -         return true
 
 -       else
 
 -         return false
 
 -       end
 
 -     end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンド「閃き」の取得
 
 -   #--------------------------------------------------------------------------
 
 -     def hirameki
 
 -       sp_com = self.note.scan(/<閃き>/)
 
 -       sp_com = sp_com.flatten
 
 -       sp_com = sp_com[0].to_s
 
 -       # sp_com が nil でなくて 配列が空でもない
 
 -       if sp_com != nil and not sp_com.empty?
 
 -         return true
 
 -       else
 
 -         return false
 
 -       end
 
 -     end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンド「必中」の取得
 
 -   #--------------------------------------------------------------------------
 
 -     def hittyuu
 
 -       sp_com = self.note.scan(/<必中>/)
 
 -       sp_com = sp_com.flatten
 
 -       sp_com = sp_com[0].to_s
 
 -       # sp_com が nil でなくて 配列が空でもない
 
 -       if sp_com != nil and not sp_com.empty?
 
 -         return true
 
 -       else
 
 -         return false
 
 -       end
 
 -     end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンド「鉄壁」の取得
 
 -   #--------------------------------------------------------------------------
 
 -     def teppeki
 
 -       sp_com = self.note.scan(/<鉄壁>/)
 
 -       sp_com = sp_com.flatten
 
 -       sp_com = sp_com[0].to_s
 
 -       # sp_com が nil でなくて 配列が空でもない
 
 -       if sp_com != nil and not sp_com.empty?
 
 -         return true
 
 -       else
 
 -         return false
 
 -       end
 
 -     end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンド「集中」の取得
 
 -   #--------------------------------------------------------------------------
 
 -     def syuutyuu
 
 -       sp_com = self.note.scan(/<集中>/)
 
 -       sp_com = sp_com.flatten
 
 -       sp_com = sp_com[0].to_s
 
 -       # sp_com が nil でなくて 配列が空でもない
 
 -       if sp_com != nil and not sp_com.empty?
 
 -         return true
 
 -       else
 
 -         return false
 
 -       end
 
 -     end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンド「直撃」の取得
 
 -   #--------------------------------------------------------------------------
 
 -     def tyokugeki
 
 -       sp_com = self.note.scan(/<直撃>/)
 
 -       sp_com = sp_com.flatten
 
 -       sp_com = sp_com[0].to_s
 
 -       # sp_com が nil でなくて 配列が空でもない
 
 -       if sp_com != nil and not sp_com.empty?
 
 -         return true
 
 -       else
 
 -         return false
 
 -       end
 
 -     end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンド「不屈」の取得
 
 -   #--------------------------------------------------------------------------
 
 -     def hukutu
 
 -       sp_com = self.note.scan(/<不屈>/)
 
 -       sp_com = sp_com.flatten
 
 -       sp_com = sp_com[0].to_s
 
 -       # sp_com が nil でなくて 配列が空でもない
 
 -       if sp_com != nil and not sp_com.empty?
 
 -         return true
 
 -       else
 
 -         return false
 
 -       end
 
 -     end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンド「かく乱」の取得
 
 -   #--------------------------------------------------------------------------
 
 -     def kakuran
 
 -       sp_com = self.note.scan(/<かく乱>/)
 
 -       sp_com = sp_com.flatten
 
 -       sp_com = sp_com[0].to_s
 
 -       # sp_com が nil でなくて 配列が空でもない
 
 -       if sp_com != nil and not sp_com.empty?
 
 -         return true
 
 -       else
 
 -         return false
 
 -       end
 
 -     end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンド「再動」の取得
 
 -   #--------------------------------------------------------------------------
 
 -     def saidou
 
 -       sp_com = self.note.scan(/<再動>/)
 
 -       sp_com = sp_com.flatten
 
 -       sp_com = sp_com[0].to_s
 
 -       # sp_com が nil でなくて 配列が空でもない
 
 -       if sp_com != nil and not sp_com.empty?
 
 -         return true
 
 -       else
 
 -         return false
 
 -       end
 
 -     end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンド「奇跡」の取得
 
 -   #--------------------------------------------------------------------------
 
 -     def kiseki
 
 -       sp_com = self.note.scan(/<奇跡>/)
 
 -       sp_com = sp_com.flatten
 
 -       sp_com = sp_com[0].to_s
 
 -       # sp_com が nil でなくて 配列が空でもない
 
 -       if sp_com != nil and not sp_com.empty?
 
 -         return true
 
 -       else
 
 -         return false
 
 -       end
 
 -     end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンドの取得(ハッシュで返す。key="精神コマンド名"value=有効無効)
 
 -   #    メモ欄に指定文字を確認し、リストを返す。
 
 -   #--------------------------------------------------------------------------
 
 -     def sp_command
 
 -       sp_com = {}
 
 -       sp_com["nekketu"] = nekketu
 
 -       sp_com["tamasii"] = tamasii
 
 -       sp_com["hirameki"] = hirameki
 
 -       sp_com["hittyuu"] = hittyuu
 
 -       sp_com["teppeki"] = teppeki
 
 -       sp_com["syuutyuu"] = syuutyuu
 
 -       sp_com["tyokugeki"] = tyokugeki
 
 -       sp_com["hukutu"] = hukutu
 
 -       sp_com["kakuran"] = kakuran
 
 -       sp_com["saidou"] = saidou
 
 -       sp_com["kiseki"] = kiseki
 
 -       return sp_com
 
 -     end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンドかどうかの取得
 
 -   #--------------------------------------------------------------------------
 
 -     def sp_command?
 
 -       for sp in sp_command.values
 
 -         next if sp == false
 
 -         return true
 
 -       end
 
 -       return false
 
 -     end
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ■ Game_Battler
 
 - #------------------------------------------------------------------------------
 
 - #  バトラーを扱うクラスです。このクラスは Game_Actor クラスと Game_Enemy クラ
 
 - # スのスーパークラスとして使用されます。
 
 - #==============================================================================
 
  
- class Game_Battler
 
 -   
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 自分のターン設定&取得
 
 -   #--------------------------------------------------------------------------
 
 -   def my_turn
 
 -     @my_turn = 0 if @my_turn == nil
 
 -     return @my_turn
 
 -   end
 
 -   def my_turn=(value)
 
 -     @my_turn = value
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンドの初期設定
 
 -   #--------------------------------------------------------------------------
 
 -   def initialize_sp_command_list(forcing=false)
 
 -     return if @sp_command != nil and not forcing
 
 -     # 付与されているかどうかの管理
 
 -     sp_com = {}
 
 -     sp_com["hirameki"] = false
 
 -     sp_com["hittyuu"] = false
 
 -     sp_com["teppeki"] = false
 
 -     sp_com["syuutyuu"] = false
 
 -     sp_com["tyokugeki"] = false
 
 -     sp_com["hukutu"] = false
 
 -     sp_com["kakuran"] = false
 
 -     sp_com["saidou"] = false
 
 -     sp_com["kiseki"] = false
 
 -     @sp_command = sp_com if @sp_command == nil
 
 -     
 
 -     # 付与されたものの経過管理
 
 -     sp_com = {}
 
 -     sp_com["hirameki"] = false
 
 -     sp_com["hittyuu"] = nil
 
 -     sp_com["teppeki"] = nil
 
 -     sp_com["syuutyuu"] = nil
 
 -     sp_com["tyokugeki"] = false
 
 -     sp_com["hukutu"] = false
 
 -     sp_com["kakuran"] = nil
 
 -     sp_com["saidou"] = false
 
 -     sp_com["kiseki"] = false
 
 -     @manage_sp_com = sp_com if @manage_sp_com == nil
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンドの設定
 
 -   #     obj  : スキルまたはアイテム (通常攻撃の場合は nil)
 
 -   #--------------------------------------------------------------------------
 
 -   def set_sp_command_list(obj)
 
 -     # 初期設定
 
 -     initialize_sp_command_list
 
 -     
 
 -     # 精神付与管理
 
 -     if obj.sp_command["nekketu"]
 
 -       # 既に魂が掛かっていれば熱血は有効にしない。
 
 -       @sp_command["nekketu"] = true unless @sp_command["tamasii"]
 
 -     end
 
 -     if obj.sp_command["tamasii"]
 
 -       # 魂と熱血の重複はしない。
 
 -       @sp_command["tamasii"] = true 
 
 -       @sp_command["nekketu"] = false
 
 -     end
 
 -     @sp_command["hirameki"] = true if obj.sp_command["hirameki"]
 
 -     @sp_command["hittyuu"] = true if obj.sp_command["hittyuu"]
 
 -     @sp_command["teppeki"] = true if obj.sp_command["teppeki"]
 
 -     @sp_command["syuutyuu"] = true if obj.sp_command["syuutyuu"]
 
 -     @sp_command["tyokugeki"] = true if obj.sp_command["tyokugeki"]
 
 -     @sp_command["hukutu"] = true if obj.sp_command["hukutu"]
 
 -     @sp_command["kakuran"] = true if obj.sp_command["kakuran"]
 
 -     @sp_command["saidou"] = true if obj.sp_command["saidou"]
 
 -     @sp_command["kiseki"] = true if obj.sp_command["kiseki"]
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンドの取得
 
 -   #--------------------------------------------------------------------------
 
 -   def get_sp_command_list
 
 -     initialize_sp_command_list
 
 -     return @sp_command
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンドの経過ターンなど管理設定
 
 -   #--------------------------------------------------------------------------
 
 -   def manage_sp_command(turn,user)
 
 -     @manage_sp_com = {} if @manage_sp_com == nil
 
 -     unless get_sp_command_list["tamasii"] 
 
 -       # 既に魂が掛かっていれば熱血は有効にしない。
 
 -       @manage_sp_com["nekketu"] = get_sp_command_list["nekketu"] ? true : false
 
 -       get_sp_command_list["nekketu"] = false unless @manage_sp_com["nekketu"]
 
 -     end
 
 -     
 
 -     if get_sp_command_list["tamasii"]
 
 -       # 魂と熱血の重複はしない。
 
 -       @manage_sp_com["tamasii"] = get_sp_command_list["tamasii"] ? true : false 
 
 -       @manage_sp_com["nekketu"] = false
 
 -       get_sp_command_list["tamasii"] = false unless @manage_sp_com["tamasii"]
 
 -     end
 
 -     
 
 -     @manage_sp_com["hirameki"] = get_sp_command_list["hirameki"] ? true : false 
 
 -     get_sp_command_list["hirameki"] = false unless @manage_sp_com["hirameki"]
 
 -     
 
 -     #unless turn == -1
 
 -     # 必中・鉄壁・集中は次の自分のターンまで
 
 -     if get_sp_command_list["hittyuu"]
 
 -       if @manage_sp_com["hittyuu"] == nil #< turn
 
 -         if self == user
 
 -           @manage_sp_com["hittyuu"] = turn + 2
 
 -         else
 
 -           @manage_sp_com["hittyuu"] = turn + 1
 
 -         end
 
 -       end
 
 -     end
 
 -     if @manage_sp_com["hittyuu"] != nil and turn > @manage_sp_com["hittyuu"]
 
 -       get_sp_command_list["hittyuu"] = false
 
 -       @manage_sp_com["hittyuu"] = nil
 
 -     end
 
 -     
 
 -     if get_sp_command_list["teppeki"]
 
 -       if @manage_sp_com["teppeki"] == nil #< turn
 
 -         if self == user
 
 -           @manage_sp_com["teppeki"] = turn + 2
 
 -         else
 
 -           @manage_sp_com["teppeki"] = turn + 1
 
 -         end
 
 -       end
 
 -     end
 
 -     if @manage_sp_com["teppeki"] != nil and turn > @manage_sp_com["teppeki"]
 
 -       get_sp_command_list["teppeki"] = false
 
 -       @manage_sp_com["teppeki"] = nil
 
 -     end
 
 -     
 
 -     if get_sp_command_list["syuutyuu"]
 
 -       if @manage_sp_com["syuutyuu"] == nil #< turn
 
 -         if self == user
 
 -           @manage_sp_com["syuutyuu"] = turn + 2
 
 -         else
 
 -           @manage_sp_com["syuutyuu"] = turn + 1
 
 -         end
 
 -       end
 
 -     end
 
 -     if @manage_sp_com["syuutyuu"] != nil and  turn > @manage_sp_com["syuutyuu"]
 
 -       get_sp_command_list["syuutyuu"] = false
 
 -       @manage_sp_com["syuutyuu"] = nil
 
 -     end
 
 -     
 
 -     if get_sp_command_list["kakuran"]
 
 -       if @manage_sp_com["kakuran"] == nil #< turn
 
 -         if self == user
 
 -           @manage_sp_com["kakuran"] = turn + 2
 
 -         else
 
 -           @manage_sp_com["kakuran"] = turn + 1
 
 -         end
 
 -       end
 
 -     end
 
 -     if @manage_sp_com["kakuran"] != nil and turn > @manage_sp_com["kakuran"]
 
 -       get_sp_command_list["kakuran"] = false
 
 -       @manage_sp_com["kakuran"] = nil
 
 -     end
 
 -     
 
 -     #end#unless turn == 0
 
 -   
 
 -     @manage_sp_com["tyokugeki"] = get_sp_command_list["tyokugeki"] ? true : false 
 
 -     get_sp_command_list["tyokugeki"] = false unless @manage_sp_com["tyokugeki"]
 
 -     
 
 -     @manage_sp_com["hukutu"] = get_sp_command_list["hukutu"] ? true : false 
 
 -     get_sp_command_list["hukutu"] = false unless @manage_sp_com["hukutu"]
 
 -     
 
 -     @manage_sp_com["saidou"] = get_sp_command_list["saidou"] ? true : false 
 
 -     get_sp_command_list["saidou"] = false unless @manage_sp_com["saidou"]
 
 -     
 
 -     @manage_sp_com["kiseki"] = get_sp_command_list["kiseki"] ? true : false 
 
 -     get_sp_command_list["kiseki"] = false unless @manage_sp_com["kiseki"]
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンドの経過ターンなど管理取得
 
 -   #--------------------------------------------------------------------------
 
 -   def manage_sp_command?
 
 -     @manage_sp_com = {} if @manage_sp_com == nil
 
 -     return nil if @manage_sp_com == {}
 
 -     return @manage_sp_com
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 最終命中率の計算
 
 -   #     user : 攻撃者、スキルまたはアイテムの使用者
 
 -   #     obj  : スキルまたはアイテム (通常攻撃の場合は nil)
 
 -   #--------------------------------------------------------------------------
 
 -   alias ed_spirit_command_calc_hit calc_hit
 
 -   def calc_hit(user, obj = nil)
 
 -     hit = ed_spirit_command_calc_hit(user, obj)
 
 -     
 
 -     hit /= 2 if user.get_sp_command_list["kakuran"]
 
 -     if user.get_sp_command_list["hittyuu"]
 
 -       unless get_sp_command_list["hirameki"]
 
 -         hit += 1000
 
 -         if obj != nil and not obj.for_opponent?
 
 -           hit -= 1000
 
 -         end
 
 -       end
 
 -     elsif user.get_sp_command_list["syuutyuu"]
 
 -       unless get_sp_command_list["hirameki"]
 
 -         hit += 30
 
 -         hit -= 30 if obj != nil and not obj.for_opponent?
 
 -       end
 
 -     end
 
 -     return hit
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 最終回避率の計算
 
 -   #     user : 攻撃者、スキルまたはアイテムの使用者
 
 -   #     obj  : スキルまたはアイテム (通常攻撃の場合は nil)
 
 -   #--------------------------------------------------------------------------
 
 -   alias ed_spirit_command_calc_eva calc_eva
 
 -   def calc_eva(user, obj = nil)
 
 -     eva = ed_spirit_command_calc_eva(user, obj)
 
 -     @effect_test = false unless $ed_rgss2["ed_damage_hit_time"]
 
 -     if get_sp_command_list["hirameki"] 
 
 -       # 閃きが掛かっていて、スキルが敵対象の場合。
 
 -       eva += 2000
 
 -       if obj != nil and not obj.for_opponent?
 
 -         eva -= 2000
 
 -       else
 
 -         get_sp_command_list["hirameki"] = false unless @effect_test
 
 -       end
 
 -     elsif get_sp_command_list["syuutyuu"]
 
 -       eva += 30
 
 -       eva -= 30 if obj != nil and not obj.for_opponent?
 
 -     end
 
 -     if user.get_sp_command_list["hittyuu"] and not get_sp_command_list["hirameki"] 
 
 -       # 必中が掛かっている場合。閃きが
 
 -       eva = 0
 
 -     end
 
 -     return eva
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 攻撃計算後の精神コマンドダメージ補正
 
 -   #--------------------------------------------------------------------------
 
 -   def sp_com_damage_revision(attacker)
 
 -     # ダメージが0以下・・回復なら適用しない。
 
 -     return if @hp_damage <= 0
 
 -     # バトルレイアウト変更:extension「○○effect_test」のメソッド対応
 
 -     @effect_test = false unless $ed_rgss2["ed_battle_extension"]
 
 -     if attacker.get_sp_command_list["nekketu"]
 
 -       @hp_damage *= 2
 
 -       attacker.get_sp_command_list["nekketu"] = false unless @effect_test
 
 -     elsif attacker.get_sp_command_list["tamasii"]
 
 -       @hp_damage *= 3
 
 -       attacker.get_sp_command_list["tamasii"] = false unless @effect_test
 
 -     elsif get_sp_command_list["hukutu"]
 
 -       @hp_damage = 10
 
 -       get_sp_command_list["hukutu"] = false unless @effect_test
 
 -     elsif get_sp_command_list["teppeki"]
 
 -       @hp_damage /= 4
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 吸収効果の計算
 
 -   #     user : スキルまたはアイテムの使用者
 
 -   #     obj  : スキルまたはアイテム
 
 -   #    呼び出し前に @hp_damage と @mp_damage が計算されていること。
 
 -   #--------------------------------------------------------------------------
 
 -   alias ed_spirit_command_make_obj_absorb_effect make_obj_absorb_effect
 
 -   def make_obj_absorb_effect(user, obj)
 
 -     ed_spirit_command_make_obj_absorb_effect(user, obj)
 
 -     if @tyokugeki
 
 -       # 直撃なら吸収を無効にする
 
 -       @absorbed = false
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 属性の最大修正値の取得
 
 -   #     element_set : 属性
 
 -   #    与えられた属性の中で最も有効な修正値を返す
 
 -   #--------------------------------------------------------------------------
 
 -   alias ed_spirit_command_elements_max_rate elements_max_rate
 
 -   def elements_max_rate(element_set)
 
 -     if @tyokugeki
 
 -       # 直撃なら属性補正を無効にして無属性攻撃とする。
 
 -       return 100
 
 -     else
 
 -       ed_spirit_command_elements_max_rate(element_set)
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 通常攻撃によるダメージ計算
 
 -   #     attacker : 攻撃者
 
 -   #    結果は @hp_damage に代入する。
 
 -   #--------------------------------------------------------------------------
 
 -   alias ed_spirit_command_make_attack_damage_value make_attack_damage_value
 
 -   def make_attack_damage_value(attacker)
 
 -     # バトルレイアウト変更:extension「○○effect_test」のメソッド対応
 
 -     @effect_test = false unless $ed_rgss2["ed_battle_extension"]
 
 -     
 
 -     if attacker.get_sp_command_list["tyokugeki"]
 
 -       # 直撃なら属性補正を無効にして無属性攻撃とする。
 
 -       @tyokugeki = true
 
 -       attacker.get_sp_command_list["tyokugeki"] = false unless @effect_test
 
 -       manage_sp_command(-1,attacker) unless @effect_test
 
 -     else
 
 -       @tyokugeki = false
 
 -     end
 
 -     ed_spirit_command_make_attack_damage_value(attacker)
 
 -     # ダメージ補正
 
 -     sp_com_damage_revision(attacker)
 
 -     # 精神コマンド管理
 
 -     manage_sp_command(-1,attacker) unless @effect_test
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● スキルまたはアイテムによるダメージ計算
 
 -   #     user : スキルまたはアイテムの使用者
 
 -   #     obj  : スキルまたはアイテム
 
 -   #    結果は @hp_damage または @mp_damage に代入する。
 
 -   #--------------------------------------------------------------------------
 
 -   alias ed_spirit_command_make_obj_damage_value make_obj_damage_value
 
 -   def make_obj_damage_value(user, obj)
 
 -     # 精神コマンドの取得
 
 -     sp = get_sp_command_list
 
 -     # バトルレイアウト変更:extension「○○effect_test」のメソッド対応
 
 -     @effect_test = false unless $ed_rgss2["ed_battle_extension"]
 
 -     
 
 -     if user.get_sp_command_list["tyokugeki"]
 
 -       # 直撃なら属性補正を無効にして無属性攻撃とする。
 
 -       @tyokugeki = true
 
 -       user.get_sp_command_list["tyokugeki"] = false unless @effect_test
 
 -       manage_sp_command(-1,user) unless @effect_test
 
 -     else
 
 -       @tyokugeki = false
 
 -     end
 
 -     ed_spirit_command_make_obj_damage_value(user, obj)
 
 -     # ダメージ補正
 
 -     sp_com_damage_revision(user)
 
 -     # 精神コマンド管理
 
 -     #manage_sp_command = -1
 
 -     
 
 -     # 精神コマンドのセッティング
 
 -     set_sp_command_list(obj) unless @effect_test
 
 -     
 
 -     # ターン経過ものは付与後に自分の経過ターンを記録。
 
 -     manage_sp_command(self.my_turn,user) unless @effect_test
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ■ Scene_Battle
 
 - #------------------------------------------------------------------------------
 
 - #  バトル画面の処理を行うクラスです。
 
 - #==============================================================================
 
 - class Scene_Battle < Scene_Base
 
 -   
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 終了処理
 
 -   #--------------------------------------------------------------------------
 
 -   alias ed_spirit_command_terminate terminate
 
 -   def terminate
 
 -     battler_sp_initialize(true)
 
 -     ed_spirit_command_terminate
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンド初期化
 
 -   #--------------------------------------------------------------------------
 
 -   def battler_sp_initialize(forcing=false)
 
 -     for battler in $game_troop.members
 
 -       battler.initialize_sp_command_list(forcing)
 
 -       battler.my_turn = 0
 
 -     end
 
 -     for battler in $game_party.members
 
 -       battler.initialize_sp_command_list(forcing)
 
 -       battler.my_turn = 0
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 精神コマンド重複のチェック
 
 -   #--------------------------------------------------------------------------
 
 -   def overlap_sp_skill(battler,skill)
 
 -     return false unless skill.sp_command?
 
 -     list = battler.get_sp_command_list
 
 -     ch = {}
 
 -     for key in list.keys
 
 -       return true if skill.sp_command[key] == true and list[key] == true
 
 -     end
 
 -     return false
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● フレーム更新
 
 -   #--------------------------------------------------------------------------
 
 -   alias ed_spirit_command_update update
 
 -   def update
 
 -     unless @active_battler == nil
 
 -       skill = @active_battler.action.skill? ? @active_battler.action.skill : nil
 
 -       unless skill == nil
 
 -         if skill.sp_command?
 
 -           if @active_battler.is_a?(Game_Enemy)
 
 -             # 敵の場合
 
 -             if skill.id != @old_sp_skill and 
 
 -               not overlap_sp_skill(@active_battler,skill)
 
 -               
 
 -               @action_battlers.unshift(@active_battler)
 
 -               @sp_command_effect = true
 
 -             else
 
 -               @active_battler.make_action
 
 -               if skill.sp_command? and overlap_sp_skill(@active_battler,skill)
 
 -                 # 再度行動作成し同じなら待機する。
 
 -                 @active_battler.action.kind = 0
 
 -                 @active_battler.action.kind = 3
 
 -                 @old_sp_skill = 0
 
 -               end
 
 -               @sp_command_effect = nil
 
 -               return
 
 -             end
 
 -           end
 
 -         end
 
 -         # 同じでないなら実行。
 
 -         unless @sp_command_effect == nil
 
 -           super
 
 -           update_basic(true)
 
 -           update_info_viewport                  # 情報表示ビューポートを更新
 
 -           process_action
 
 -           # 簡易汎用ATB導入時は下記で行動実行
 
 -           set_next_active_battler if $ed_rgss2["ed_active_time_battle"]
 
 -           @sp_command_effect = nil
 
 -           @old_sp_skill = skill.id
 
 -           if @active_battler.is_a?(Game_Enemy)
 
 -             # 敵の場合は再度実行できるように
 
 -             @active_battler.make_action
 
 -           end
 
 -           return
 
 -         end
 
 -       end
 
 -       @old_sp_skill = 0
 
 -     end
 
 -     
 
 -     ed_spirit_command_update
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 次のアクターのコマンド入力へ
 
 -   #--------------------------------------------------------------------------
 
 -   alias ed_spirit_command_next_actor next_actor
 
 -   def next_actor
 
 -     return unless @sp_command_effect == nil
 
 -     ed_spirit_command_next_actor
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● スキル選択の終了
 
 -   #--------------------------------------------------------------------------
 
 -   alias ed_spirit_command_end_skill_selection end_skill_selection
 
 -   def end_skill_selection
 
 -     skill = @active_battler.action.skill? ? @active_battler.action.skill : nil
 
 -     unless skill == nil
 
 -       if skill.sp_command? and Input.trigger?(Input::C)
 
 -         # スキルが精神コマンドの場合。
 
 -         @action_battlers.unshift(@active_battler)
 
 -         @sp_command_effect = true
 
 -       end
 
 -     end
 
 -     ed_spirit_command_end_skill_selection
 
  
-   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 戦闘開始の処理
 
 -   #--------------------------------------------------------------------------
 
 -   alias ed_spirit_command_process_battle_start process_battle_start
 
 -   def process_battle_start
 
 -     @old_sp_skill = nil
 
 -     battler_sp_initialize
 
 -     ed_spirit_command_process_battle_start
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 行動順序作成
 
 -   #--------------------------------------------------------------------------
 
 -   alias ed_spirit_command_make_action_orders make_action_orders
 
 -   def make_action_orders
 
 -     if $ed_rgss2["ed_active_time_battle"]   
 
 -       frame = @frames[0] - @frames[1]    
 
 -       for battler in $game_troop.all_members?
 
 -         next if battler == nil
 
 -         if battler.get_sp_command_list["saidou"]
 
 -           @action_battlers.unshift(@active_battler)
 
 -           battler.get_sp_command_list["saidou"] = false
 
 -         end
 
 -         if battler.action.magic_spell_ok?
 
 -           if battler.add_action_battler_list == false
 
 -             @action_battlers.unshift battler
 
 -             battler.add_action_battler_list = true
 
 -           end
 
 -         elsif battler.action.speed >= COUNT_MAX
 
 -           if battler.add_action_battler_list == false
 
 -             @action_battlers.push battler
 
 -             battler.add_action_battler_list = true
 
 -           end
 
 -         end
 
 -       end
 
 -       set_next_active_battler unless chack_battler
 
 -     else
 
 -       ed_spirit_command_make_action_orders
 
 -     end
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 次に行動するべきバトラーの設定
 
 -   #    イベントコマンドで [戦闘行動の強制] が行われているときはそのバトラー
 
 -   #    を設定して、リストから削除する。それ以外はリストの先頭から取得する。
 
 -   #    現在パーティにいないアクターを取得した場合 (index が nil, バトルイベ
 
 -   #    ントでの離脱直後などに発生) は、それをスキップする。
 
 -   #--------------------------------------------------------------------------
 
 -   alias ed_spirit_command_set_next_active_battler set_next_active_battler
 
 -   def set_next_active_battler
 
 -     if $ed_rgss2["ed_active_time_battle"]      
 
 -       ed_spirit_command_set_next_active_battler
 
 -       unless @active_battler == nil
 
 -         # ゲージがMAXでないなら中断
 
 -         return unless @active_battler.action.speed >= COUNT_MAX
 
 -         return if @sp_command_effect
 
 -         # 行動者のターン設定
 
 -         turn = @active_battler.my_turn
 
 -         @active_battler.my_turn = turn + 1
 
 -         # 精神コマンドの経過管理設定
 
 -         @active_battler.manage_sp_command(turn + 1,@active_battler)
 
 -       end
 
 -       return
 
 -     end
 
 -     
 
 -     unless @active_battler == nil
 
 -       if @active_battler.get_sp_command_list["saidou"]
 
 -         if @active_battler.action.skill?
 
 -           unless @active_battler.action.skill.saidou
 
 -             @action_battlers.unshift(@active_battler)
 
 -             @active_battler.get_sp_command_list["saidou"] = false
 
 -           end
 
 -         else
 
 -           @action_battlers.unshift(@active_battler)
 
 -           @active_battler.get_sp_command_list["saidou"] = false
 
 -         end
 
 -       end
 
 -     end
 
 -     loop do
 
 -       
 
 -       if $game_troop.forcing_battler != nil
 
 -         @active_battler = $game_troop.forcing_battler
 
 -         @action_battlers.delete(@active_battler)
 
 -         $game_troop.forcing_battler = nil
 
 -       else
 
 -         @active_battler = @action_battlers.shift
 
 -       end
 
 -       return if @active_battler == nil
 
 -       return if @sp_command_effect
 
 -       # 行動者のターン設定
 
 -       turn = @active_battler.my_turn
 
 -       @active_battler.my_turn = turn + 1
 
 -       # 精神コマンドの経過管理設定
 
 -       @active_battler.manage_sp_command(turn + 1,@active_battler)
 
 -       return if @active_battler.index != nil
 
 -     end
 
 -   end
 
 - end
 
  复制代码 
 
‘‘──亂堂和樹于2012-4-13 12:51补充以下内容 
 
喔喔~這問題改變一下~我發現自己改有很腳本衝突的問題Orz... 
 
有誰能夠幫我改成~這【精神指令】腳本 
搭配著職業類別~每個角色分別學到不同的特殊技能 
但是特殊技能~跟魔法是分開的技能欄位~ 
說明白點... 
 
魔法=系統默認技能 
特殊技能=另一個窗口,變成只辨認【職業別】而學習技能 
 
兩者不會出現在同一個【技能視窗】的喔~是分開獨立的~ 
 
因為想做~ 
回到菜單後~選取查看人物能力時~能夠出現另一個以學習精神表窗口 
還有戰鬥選單也能分開來=w=" 
 
懇求各位前輩了~ 
一點點網路資訊也好~推薦我去看~ 
我會努力學習的~謝謝 
’’ |   
 
 
 
 |