Project1

标题: 关于「只能在固定回合使用的技能」脚本 [打印本页]

作者: KB.Driver    时间: 2015-5-14 21:55
标题: 关于「只能在固定回合使用的技能」脚本
本帖最后由 KB.Driver 于 2015-5-14 22:02 编辑

  @david_ng223
原来的提问帖里回答分开了两块……但是我自己不知道怎样改才是对的……(出了点小问题
那个「只能在固定回合使用的技能」脚本 完整的应该是怎样的呢?应该把脚本插入哪里呢?

现在是这样插入的,使用的时候有BUG……
技能只在战斗刚开始的回合可以选择(是亮的),但是选定了技能以后那一回合那个技能不会被执行……(相当于使用者这回合什么都不做……)
这是为什么呢?应该怎么修改?

作者: howhow1314    时间: 2015-5-15 16:25
你檢查一下turn_count是什麼時候增加的就知道了...
作者: jianyulei    时间: 2015-5-16 08:26
本帖最后由 jianyulei 于 2015-5-16 08:30 编辑

我就没遇到过你说的事,是不是改了其他脚本引起的?

如果想用状态来做的话可以配合开战附加状态的脚本,可以一劳永逸,如果担心战斗中途死亡导致状态消失,还需要死亡后状态不消失的脚本。
作者: howhow1314    时间: 2015-5-16 11:14
本帖最后由 howhow1314 于 2015-5-16 12:06 编辑

因為那turn_count是在回合開始時+1,回合開始是在下完指令後...

就是說你下指令時turn_count是0,可是行動時已經是1了...

給你寫新的了

RUBY 代码复制
  1. class Game_Actor
  2.   def on_battle_start
  3.     @turn = 0
  4.     super
  5.   end
  6.   def on_turn_end
  7.     @turn += 1
  8.     super
  9.   end
  10.   def usable?(item)
  11.     if item.class == RPG::Skill && $game_party.in_battle
  12.       return false if @turn > 0 && item.id == 1
  13.     end
  14.     super
  15.   end
  16. end

作者: jianyulei    时间: 2015-5-17 07:35
RUBY 代码复制
  1. #==============================================================================
  2. # ■ RGSS3 戦闘不能時残留ステート Ver1.01 by 星潟
  3. #------------------------------------------------------------------------------
  4. # 戦闘不能に陥った際、消去されないステートを作成します。
  5. # 用于那些全恢复时也不想要他消除的状态
  6. # 設定方法.
  7. # ステート欄に<残留>と記入する。
  8. #
  9. # Ver1.01
  10. # 全回復時・逃走の処理でも戦闘不能時残留ステートの効果が表れていた問題を修正。
  11. #==============================================================================
  12. module UnclearableState
  13.  
  14.   #ステートのメモ欄に記入する為の設定用ワード
  15.   WORD = "<残留>"
  16.  
  17. end
  18. #==============================================================================
  19. # ■ Game_BattlerBase
  20. #------------------------------------------------------------------------------
  21. #  バトラーを扱う基本のクラスです。主に能力値計算のメソッドを含んでいます。こ
  22. # のクラスは Game_Battler クラスのスーパークラスとして使用されます。
  23. #==============================================================================
  24. class Game_BattlerBase
  25.   #--------------------------------------------------------------------------
  26.   # ● オブジェクト初期化
  27.   #--------------------------------------------------------------------------
  28.   alias initialize_un_s initialize
  29.   def initialize
  30.     initialize_un_s
  31.     clear_states2
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 全回復
  35.   #--------------------------------------------------------------------------
  36.   alias recover_all_un_s recover_all
  37.   def recover_all
  38.     recover_all_un_s
  39.     clear_states2
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● ステート情報をクリア
  43.   #--------------------------------------------------------------------------
  44.   def clear_states
  45.     @states = [] if @states == nil
  46.     stc = 0
  47.     stcl = []
  48.     stcl_turns = {}
  49.     stcl_steps = {}
  50.     for state in @states
  51.       if state != nil && $data_states[state].note.include?(UnclearableState::WORD)
  52.         stcl.push(@states[stc])
  53.         stcl_turns[state] = @state_turns[state]
  54.         stcl_steps[state] = @state_steps[state]
  55.       end
  56.       stc += 1
  57.     end
  58.     @states = stcl
  59.     @state_turns = stcl_turns
  60.     @state_steps = stcl_steps
  61.   end
  62.   #--------------------------------------------------------------------------
  63.   # ● ステート情報をクリア
  64.   #--------------------------------------------------------------------------
  65.   def clear_states2
  66.     @states = []
  67.     @state_turns = {}
  68.     @state_steps = {}
  69.   end
  70. end
  71. class Game_Battler < Game_BattlerBase
  72.   #--------------------------------------------------------------------------
  73.   # ● 逃げる
  74.   #--------------------------------------------------------------------------
  75.   alias escape_un_s escape
  76.   def escape
  77.     escape_un_s
  78.     clear_states2
  79.   end
  80. end


状态备注  <残留>  死亡之后状态就不消失
作者: KB.Driver    时间: 2015-5-17 15:42

@howhow1314  插入到Main之前 一进入战斗就会这样……
作者: KB.Driver    时间: 2015-5-22 23:01
   @正太君   
请问能写一段能让技能只能在特定回合使用的脚本吗?
之前在VA讨论区见到一个但是用的时候有问题一直解决不了……
作者: KB.Driver    时间: 2015-5-22 23:38
  @howhow1314   
把改进版的脚本放到了一个新工程里,一进行战斗测试就弹出:





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