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

Project1

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

[已经解决] 关于 VXAce SP1 的某个方法的问题

[复制链接]

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

跳转到指定楼层
1
发表于 2015-12-20 14:23:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
VXAce_SP1 脚本修正了一些 VA 的 BUG ,但是有几个 BUG 的修正我没搞懂,
具体来说,就是这段代码:
RUBY 代码复制
  1. class Game_Actor
  2.   #--------------------------------------------------------------------------
  3.   # ● 装備できない装備品を外す
  4.   #     item_gain : 外した装備品をパーティに戻す
  5.   #--------------------------------------------------------------------------
  6.   alias vxace_sp1_release_unequippable_items release_unequippable_items
  7.   def release_unequippable_items(item_gain = true)
  8.     loop do
  9.       last_equips = equips.dup
  10.       vxace_sp1_release_unequippable_items(item_gain)
  11.       return if equips == last_equips
  12.     end
  13.   end
  14. end

官方的说明是:
  ●装備できなくなった装備品が外れたことにより、さらに別の装備品が装備できなくなったとき、その装備品が増殖してしまう不具合を修正しました。
修正装备增加的BUG,但是我没搞懂什么情况下装备会发生增加,希望谁能讲解一下……

附上VA SP1的全部代码:
RUBY 代码复制
  1. #==============================================================================
  2. # ■ VXAce_SP1
  3. #------------------------------------------------------------------------------
  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

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

2
发表于 2015-12-20 14:45:10 | 只看该作者
本帖最后由 VIPArcher 于 2015-12-20 16:34 编辑

【这里是错误的】
========================正确的触发姿势========================
装备着装备A使得装备B可以装备,B装备使得C装备可以装备
这时候卸下A装备的时候会导致B和C都不能装备的时候会无法卸下C装备并且物品栏里多出一个C装备

是有点饶,官方连这种BUG都能发现也是不服不行

加上loop是在一次执行release_unequippable_items的时候
就使所有不能装备的装备都已经卸下

点评

hhh  发表于 2015-12-20 18:07
你倒是把正确的附上来啊……  发表于 2015-12-20 16:29
我来预防一下,截止16:06分,这楼的回复还是错的  发表于 2015-12-20 16:06
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

3
 楼主| 发表于 2015-12-20 14:49:05 | 只看该作者
VIPArcher 发表于 2015-12-20 14:45
没有双持武器的时候如果装备上的装备导致会追加双持武器那就会导致多一把原来第二个防具ID的武器武器
例如 ...

那么为什么 loop 了以后就能修正了?

点评

我把这个SP1插入后,我上面说的那个BUG并没有被修正  发表于 2015-12-20 15:06
噫,我试了一下,好像我上面说的不对诶  发表于 2015-12-20 15:05
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 03:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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