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

Project1

 找回密码
 注册会员
搜索
查看: 2225|回复: 8
打印 上一主题 下一主题

[已经过期] VA默認腳本附加/解除狀態的bug?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

跳转到指定楼层
1
发表于 2017-12-24 14:53:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 chd114 于 2017-12-24 14:55 编辑


附加狀態失效的bug
圖中的事件,先觸發附加,再解除,此時是正常附加和解除的,但是再附加就不顯示了(states裏沒有應該被附加到的狀態)

附加狀態
解除狀態
附加狀態(無效果)

不知道其他人有沒有遇到


如果使用直接修改回合數的方式,則會造成“其實有剩餘回合數,但是狀態數組沒有這個狀態的bug”
RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 调整状态计数(回合数)
  4.   #--------------------------------------------------------------------------
  5.   def change_turns(state_id,value)
  6.     #return if !state?(state_id)
  7.     state = $data_states[state_id]
  8.     @state_turns[state_id]||=0
  9.     @state_turns[state_id] += value
  10.     if @state_turns[state_id]>0
  11.       @states.push(state_id)
  12.       @result.added_states.push(state_id).uniq!
  13.     else
  14.       @state_turns[state_id]=0
  15.       @states.delete(state_id)
  16.       @result.removed_states.push(state_id).uniq!
  17.     end
  18.     @states.uniq!
  19.     refresh
  20.   end
  21. end

即使手動給states添加剩余回合数大於0的狀態也沒有效果···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png

Lv4.逐梦者

梦石
0
星屑
7290
在线时间
1690 小时
注册时间
2017-4-28
帖子
85

开拓者

2
发表于 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
复制代码
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

3
 楼主| 发表于 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
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2333
在线时间
275 小时
注册时间
2017-7-25
帖子
163
4
发表于 2017-12-24 16:16:40 | 只看该作者
貌似是系统BUG,已经有补丁修复了的(然而修复以后还是要求状态设置成行动结束时消除才有效
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

5
 楼主| 发表于 2017-12-24 16:23:10 | 只看该作者
骷髅岛遗老 发表于 2017-12-24 16:16
貌似是系统BUG,已经有补丁修复了的(然而修复以后还是要求状态设置成行动结束时消除才有效 ...

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

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

点评

貌似是直接出了个脚本,但是对用技能公式加上的状态还是得设置行动结束解除,回合结束解除的话BUG仍然存在  发表于 2017-12-25 00:05
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2333
在线时间
275 小时
注册时间
2017-7-25
帖子
163
6
发表于 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
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 18:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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