關於部落格
RPG製作大師XP腳本為主要更新

RPG製作大師VX腳本為其次更新

RPG製作大師VX_Ace目前不考慮

RPG製作大師MV腳本完全沒打算

留言完建議重新整理看看是否顯示

目前不處理本舖外腳本的相關問題

其他相關事項請觀看規定注意事項

本舖未來的經營計畫與VA的支援




var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-37462754-1']);
_gaq.push(['_trackPageview']);

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

  • 305763

    累積人氣

  • 6

    今日人氣

    0

    追蹤人氣

【腳本】集氣技能


使用方法
打開腳本編輯器,對腳本「Main」按下右鍵,選擇插入,會出現1個空白腳本
在空白腳本內貼上以下腳本:
RPG Maker XP 適用

點選框框內的腳本按右鍵打開選單,選擇 [全選] 後在選擇 [複製] ,在指定的位置中貼上腳本即可
 
 
使用者自定設置說明
Sword21_XPVX = 0
目前這個設置無用,要設、要改、要刪都隨便你?!
 
Sword21_State = 0
指定一個狀態編號,則在集氣的時候,會自動變更為你指定的狀態
當狀態被解除時,集氣自然會被中斷,就不會放出集氣的技能
如果此設置設為0,則表示不使用這個功能!!
 
Sword21_Enemy = OFF 
當敵人使用需要集氣的技能之時,是否敵人也需要集氣才能發動
ON:表示 [是],和玩家角色一樣,需要集氣特定回合才能發動,此外也可能被打而斷招
OFF:表示 [否],採用原本預設的方式施放該技能
 
Sword21_Chant[技能編號] = [集氣回合數, 被打時的中斷機率]
設定需要集氣的技能,可以自行新增多個Sword21_Chant設置
技能編號:指定1個技能的編號,指定的技能就需要集氣後才會施放出來
集氣回合數:設定需要集氣的回合,基本上是依照角色行動1次減少一回合...
      如果設為0,則就表示在該回合最後使出該技能...
被打時的中斷機率:設置0到100任意一個數,代表被敵人攻擊時,解除集氣的機率
 
 
VX測試集氣技能腳本

module Sword
  ON = true ; OFF = false ; Sword21_Chant = Hash.new
#=======================================
#★ 魔劍工舖 - 集氣技能1.00(VX測試版)
# 轉貼腳本請著名出處:http://blog.yam.com/a870053jjkj/
# 如果採用在遊戲中,看你高興是否顯示腳本出處,但嚴禁說是自己寫的腳本!!
#=======================================
#● 使用者自定設置
Sword21_XPVX = 1
Sword21_State = 15 # 當在集氣的時候,自動變更指定編號的狀態,0表示不使用
#--------------------------------------------------------------
#○ 設定集氣技能資料表(Sword21_Chant[技能編號] = [回合數, 被攻解除機率])
# 如果回合數指定0的話,則就表示在該回合最後放出技能
Sword21_Chant[1] = [0, 50]
=begin
========================================
=end
  $Sword ? $Sword[21] = 100 : $Sword = {21=>100} # 腳本使用標誌
end
# 詳細設置說明請參考:http://blog.yam.com/a870053jjkj/article/
#=======================================
#■ 處理戰鬥者的類別
class Game_Battler
  include Sword # 連接自定設置
  attr_accessor :chant # 正在集氣的技能
  attr_accessor :chant_count # 集氣剩餘回合
  attr_accessor :chant_target # 暫存攻擊的目標
  #-------------------------------------------------------------
  #● 初始化物件
  alias sword21_initialize initialize
  def initialize
    sword21_initialize
    @chant = 0 ; @chant_count = 0 ; @chant_target = 0
  end
  #-------------------------------------------------------------
  #● 可以輸入命令判定
  alias sword21_inputable? inputable?
  def inputable?
    return false if @chant > 0 # 正在集氣的話就
    sword21_inputable?
  end
  #-------------------------------------------------------------
  #● 解除狀態
  alias sword21_remove_state remove_state
  def remove_state(state_id, force = false)
    Sword21_XPVX == 0 ?
    sword21_remove_state(state_id, force) : sword21_remove_state(state_id)
    (@chant = 0 ; @chant_count = 0) if Sword21_State == state_id
  end
end
#=======================================
#■ 處理戰鬥畫面的類別
class Scene_Battle
  include Sword # 連接自定設置
  #-------------------------------------------------------------
  #● 更新敵人目標選擇
  alias sword21_update_target_enemy_selection update_target_enemy_selection if Sword21_XPVX == 1
  def update_target_enemy_selection
    sword21_update_target_enemy_selection
#~     (@active_battler.chant_target = @active_battler.action.target_index ;
#~     p @active_battler.chant_target) if
#~     @active_battler.action.target_index >= 0
  end
  #-------------------------------------------------------------
  #● 產生基本行動結果(XP)
  alias sword21_make_basic_action_result make_basic_action_result if Sword21_XPVX == 0
  def make_basic_action_result
    (sword21_make_basic_action_result ; return) unless @active_battler
    if Sword21_XPVX == 0 ? @active_battler.current_action.basic == 3 :
    @active_battler.chant > 0
      if @active_battler.chant_count > 0 ; @active_battler.chant_count -= 1
      elsif @active_battler.chant_count == 0
        te = Sword21_XPVX == 0 ? 'current_' : ''
        eval("@active_battler.#{te}action.skill_id = @active_battler.chant
        @active_battler.#{te}action.target_index = @active_battler.chant_target")
        p @active_battler.action.target_index
        @active_battler.remove_state(Sword21_State, true)  if Sword21_State > 0
        @active_battler.chant = 0 # 清空(回到無集氣狀態)
        @active_battler.action.kind = 1
        sword21_make_skill_action_result ; return
      end
    end
    sword21_make_basic_action_result
  end
  #--------------------------------------------------------------------------
  # ● 戰鬥行動處理(VX)
  alias sword21_make_basic_action_result process_action if Sword21_XPVX == 1
  def process_action
    make_basic_action_result
  end
  #-------------------------------------------------------------
  #● 產生技能行動結果(XP)
  alias sword21_make_skill_action_result make_skill_action_result if Sword21_XPVX == 0
  def make_skill_action_result
    skill_id = Sword21_XPVX == 0 ?
    @active_battler.current_action.skill_id : @active_battler.action.skill_id
    if Sword21_Chant[skill_id] != nil # 當使用了需要集氣的技能的場合
      @active_battler.chant = skill_id
      @active_battler.chant_count = Sword21_Chant[skill_id][0]
      @active_battler.add_state(Sword21_State) if Sword21_State > 0
      if Sword21_Chant[skill_id][0] == 0 #Sword21_XPVX == 1
        @action_battlers.push(@active_battler)
        @action_battlers[0, 0] = @action_battlers[0]
        update_phase4_step6
      end
      return # 中斷使用技能
    end
    sword21_make_skill_action_result
    #@active_battler.chant_target = Sword21_XPVX == 0 ?
    #@active_battler.current_action.target_index : @active_battler.action.target_index
    #p @active_battler.chant_target
  end
  #-------------------------------------------------------------
  #● 執行戰鬥行動:使用技能(VX)
  alias sword21_make_skill_action_result execute_action_skill if Sword21_XPVX == 1
  def execute_action_skill
    make_skill_action_result
  end
  #-------------------------------------------------------------
  #● 更新畫面 (主回合步驟 5 : 顯示傷害)(XP)
  alias sword21_update_phase4_step5 update_phase4_step5 if Sword21_XPVX == 0
  def update_phase4_step5
    for target in @target_battlers
      if target.damage.is_a?(Integer) and target.chant > 0
        if Sword21_Chant[target.chant][1] >= rand(100) and target.damage > 0
          target.remove_state(Sword21_State) if Sword21_State > 0
          (target.chant = 0 ; target.chant_count = 0) if Sword21_State == 0
        end
      end
    end
    sword21_update_phase4_step5
  end
  #-------------------------------------------------------------
  #● 顯示傷害(VX)
  alias sword21_display_damage display_damage if Sword21_XPVX == 1
  def display_damage(target, obj = nil)
    sword21_display_damage(target, obj)
  end
  #-------------------------------------------------------------
  #● 更新畫面 (主回合步驟 6 : 更新)(XP)
  alias sword21_update_phase4_step6 update_phase4_step6 if Sword21_XPVX == 0
  def update_phase4_step6
    (sword21_update_phase4_step6 ; return) unless @active_battler
    @active_battler.chant_count -= 1 if @active_battler.chant_count > 0
    sword21_update_phase4_step6
  end
  #-------------------------------------------------------------
  #● 設置下一戰鬥者行動(VX)
  alias sword21_update_phase4_step6 set_next_active_battler if Sword21_XPVX == 1
  def set_next_active_battler
    update_phase4_step6
  end
end

目前已知的錯誤為:
☆無法正確的紀錄選擇的攻擊目標,攻擊的目標時常會不對
☆設置0回合集氣時,有蠻低的機率會發生,技能會判定為普通攻擊(大概是...)

 
相簿設定
標籤設定
相簿狀態