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

Project1

 找回密码
 注册会员
搜索

VA默認腳本附加/解除狀態的bug?

查看数: 2218 | 评论数: 5 | 收藏 2
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-12-24 14:53

正文摘要:

本帖最后由 chd114 于 2017-12-24 14:55 编辑 附加狀態失效的bug 圖中的事件,先觸發附加,再解除,此時是正常附加和解除的,但是再附加就不顯示了(states裏沒有應該被附加到的狀態) 附加狀態 解除狀態 附 ...

回复

骷髅岛遗老 发表于 2017-12-25 00:05:30
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ VXAce_SP1
  4. #------------------------------------------------------------------------------
  5. #  プリセットスクリプトの不具合を修正します。ユーザー定義のスクリプト素材は、
  6. # 原則としてこのセクションより下に配置してください。
  7. #==============================================================================

  8. #------------------------------------------------------------------------------
  9. # 【修正内容】
  10. #------------------------------------------------------------------------------
  11. # ●イベントコマンド[ステートの変更]にて、同じステートの付加と解除を同時に実
  12. #   行した際、二回目以降の付加が失敗する不具合を修正しました。
  13. # ●イベントコマンド[アニメーションの表示]にて、表示中のアニメーションがマッ
  14. #   プのスクロールに同期しない不具合を修正しました。
  15. # ●自動戦闘の行動が正常に選択されない不具合を修正しました。
  16. # ●装備できなくなった装備品が外れたことにより、さらに別の装備品が装備できなく
  17. #   なったとき、その装備品が増殖してしまう不具合を修正しました。
  18. # ●イベントコマンド[ピクチャの消去]を実行した後に余分な負荷がかかる不具合を
  19. #   修正しました。
  20. # ●移動ルートのオプション[移動できない場合は飛ばす]にチェックを入れた状態で
  21. #   トリガー[プレイヤーから接触]のイベントに接触すると、イベントが実行中であ
  22. #   っても起動予約がされてしまう不具合を修正しました。
  23. # ●魔法反射されたスキルに対してステート有効度が反映されない不具合を修正しまし
  24. #  た。
  25. # ●フォントのデフォルト設定にて太字または斜体を有効にしていても、ステータス画
  26. #   面を切り替えたとき等に無効な状態に戻ってしまう不具合を修正しました。
  27. #------------------------------------------------------------------------------
  28. class Game_Battler
  29.   attr_accessor :magic_reflection
  30.   #--------------------------------------------------------------------------
  31.   # ● 敵対関係の判定
  32.   #--------------------------------------------------------------------------
  33.   alias vxace_sp1_opposite? opposite?
  34.   def opposite?(battler)
  35.     vxace_sp1_opposite?(battler) || battler.magic_reflection
  36.   end
  37. end
  38. #------------------------------------------------------------------------------
  39. class Game_Actor
  40.   #--------------------------------------------------------------------------
  41.   # ● 装備できない装備品を外す
  42.   #     item_gain : 外した装備品をパーティに戻す
  43.   #--------------------------------------------------------------------------
  44.   alias vxace_sp1_release_unequippable_items release_unequippable_items
  45.   def release_unequippable_items(item_gain = true)
  46.     loop do
  47.       last_equips = equips.dup
  48.       vxace_sp1_release_unequippable_items(item_gain)
  49.       return if equips == last_equips
  50.     end
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ● 自動戦闘時の戦闘行動を作成
  54.   #--------------------------------------------------------------------------
  55.   def make_auto_battle_actions
  56.     @actions.size.times do |i|
  57.       @actions[i] = make_action_list.max_by {|action| action.value }
  58.     end
  59.   end
  60. end
  61. #------------------------------------------------------------------------------
  62. class Game_Player
  63.   #--------------------------------------------------------------------------
  64.   # ● マップイベントの起動
  65.   #     triggers : トリガーの配列
  66.   #     normal   : プライオリティ[通常キャラと同じ]かそれ以外か
  67.   #--------------------------------------------------------------------------
  68.   alias vxace_sp1_start_map_event start_map_event
  69.   def start_map_event(x, y, triggers, normal)
  70.     return if $game_map.interpreter.running?
  71.     vxace_sp1_start_map_event(x, y, triggers, normal)
  72.   end
  73. end
  74. #------------------------------------------------------------------------------
  75. class Game_Picture
  76.   #--------------------------------------------------------------------------
  77.   # ● ピクチャの消去
  78.   #--------------------------------------------------------------------------
  79.   alias vxace_sp1_erase erase
  80.   def erase
  81.     vxace_sp1_erase
  82.     @origin = 0
  83.   end
  84. end
  85. #------------------------------------------------------------------------------
  86. class Game_Interpreter
  87.   #--------------------------------------------------------------------------
  88.   # ● ステートの変更
  89.   #--------------------------------------------------------------------------
  90.   alias vxace_sp1_command_313 command_313
  91.   def command_313
  92.     vxace_sp1_command_313
  93.     $game_party.clear_results
  94.   end
  95. end
  96. #------------------------------------------------------------------------------
  97. class Sprite_Character
  98.   #--------------------------------------------------------------------------
  99.   # ● 位置の更新
  100.   #--------------------------------------------------------------------------
  101.   alias vxace_sp1_update_position update_position
  102.   def update_position
  103.     move_animation(@character.screen_x - x, @character.screen_y - y)
  104.     vxace_sp1_update_position
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● アニメーションの移動
  108.   #--------------------------------------------------------------------------
  109.   def move_animation(dx, dy)
  110.     if @animation && @animation.position != 3
  111.       @ani_ox += dx
  112.       @ani_oy += dy
  113.       @ani_sprites.each do |sprite|
  114.         sprite.x += dx
  115.         sprite.y += dy
  116.       end
  117.     end
  118.   end
  119. end
  120. #------------------------------------------------------------------------------
  121. class Sprite_Picture
  122.   #--------------------------------------------------------------------------
  123.   # ● 転送元ビットマップの更新
  124.   #--------------------------------------------------------------------------
  125.   alias vxace_sp1_update_bitmap update_bitmap
  126.   def update_bitmap
  127.     if @picture.name.empty?
  128.       self.bitmap = nil
  129.     else
  130.       vxace_sp1_update_bitmap
  131.     end
  132.   end
  133. end
  134. #------------------------------------------------------------------------------
  135. class Window_Base
  136.   #--------------------------------------------------------------------------
  137.   # ● フォント設定のリセット
  138.   #--------------------------------------------------------------------------
  139.   alias vxace_sp1_reset_font_settings reset_font_settings
  140.   def reset_font_settings
  141.     vxace_sp1_reset_font_settings
  142.     contents.font.bold = Font.default_bold
  143.     contents.font.italic = Font.default_italic
  144.   end
  145. end
  146. #------------------------------------------------------------------------------
  147. class Scene_Battle
  148.   #--------------------------------------------------------------------------
  149.   # ● 魔法反射の発動
  150.   #--------------------------------------------------------------------------
  151.   alias vxace_sp1_invoke_magic_reflection invoke_magic_reflection
  152.   def invoke_magic_reflection(target, item)
  153.     @subject.magic_reflection = true
  154.     vxace_sp1_invoke_magic_reflection(target, item)
  155.     @subject.magic_reflection = false
  156.   end
  157. end
复制代码
chd114 发表于 2017-12-24 16:23:10
骷髅岛遗老 发表于 2017-12-24 16:16
貌似是系统BUG,已经有补丁修复了的(然而修复以后还是要求状态设置成行动结束时消除才有效 ...

···還要shed解除時機?可是解除時機我還打算拿來做其他東西···

是什麼補丁還是什麼新版本修復的?

点评

貌似是直接出了个脚本,但是对用技能公式加上的状态还是得设置行动结束解除,回合结束解除的话BUG仍然存在  发表于 2017-12-25 00:05
骷髅岛遗老 发表于 2017-12-24 16:16:40
貌似是系统BUG,已经有补丁修复了的(然而修复以后还是要求状态设置成行动结束时消除才有效
chd114 发表于 2017-12-24 15:55:24
gforce 发表于 2017-12-24 15:12
VA的迷之设定
刚被消除的状态不可附加
我到现在都没有明白这个的存在意义

老實說我也覺得···這裡面謎之設定很多
已經加入的狀態的數組、移除的狀態的數組
這些東西真是···
如果是角色有的,那@states裏面就有,沒有的裏面就沒有
然後本來就有狀態的持續回合之類的結算了還特意來個數組去存添加的狀態···
直接用剩餘回合數判斷狀態是否擁有不就好了嗎···
那這個怎麼改比較好?
把你這段腳本覆蓋掉原來的就行了?

点评

如果我要狀態是否存在的判定全部改成狀態剩餘持續時間,那有效的部分我需要改哪些?ActionResult之類的地方要動嗎?  发表于 2017-12-24 18:54
上面的腳本是預設腳本裡面會引起bug的部分, 把其中的"@result.removed_states.include?(state_id)"注釋掉就好,應該在Game_Battler 第98行左右  发表于 2017-12-24 16:05
gforce 发表于 2017-12-24 15:12:29
VA的迷之设定
刚被消除的状态不可附加
我到现在都没有明白这个的存在意义

脚本Game_Battler
  1. #--------------------------------------------------------------------------
  2.   # * Determine if States Are Addable
  3.   #--------------------------------------------------------------------------
  4.   def state_addable?(state_id)
  5.     alive? && $data_states[state_id] && !state_resist?(state_id) &&
  6.       !state_removed?(state_id) && !state_restrict?(state_id)
  7.   end
  8.   #--------------------------------------------------------------------------
  9.   # * Determine States Removed During Same Action
  10.   #--------------------------------------------------------------------------
  11.   def state_removed?(state_id)
  12.     @result.removed_states.include?(state_id)
  13.   end
复制代码
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-7-18 12:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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