查看: 1709|回复: 5

[已经解决] 去除附加状态时是否已被解除判断会有不好的影响吗

[复制链接]
梦石
0
星屑
50
在线时间
85 小时
注册时间
2011-3-6
回帖
36
发表于 2017-1-25 18:10:36 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 weew163com 于 2017-1-25 18:21 编辑

如题
我脚本有 附加又解除状态
发现有时候解除过的状态不能再附加了
查了查脚本
我把 判定状态是否可以附加(def state_addable?(state_id)) 中的

&&  !state_removed?(state_id)

去除了

现在解除过的状态也可以附加了

但是不确定是否会有别的不好的影响
系统设置了附加状态前进行这个判断我想总归有原因的吧
不太确定系统的别的什么地方会不会用到这个特点
来问下有没有比较精通人的告知下我去掉它有没有问题
梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
回帖
644

开拓者

发表于 2017-1-25 18:35:54 | 显示全部楼层
解除過的狀態不能再附加請參考11樓解答
https://rpg.blue/forum.php?mod=v ... p;extra=&page=1

点评

学习了!我看了一下那个工程里的补丁,它是通过修改公共事件的附加状态,每次修改状态的事件执行完之后进行一次$game_party.clear_results来修复的  发表于 2017-1-25 19:27

评分

参与人数 1星屑 +150 收起 理由
RaidenInfinity + 150 认可答案

查看全部评分

2016/07/17 加入RPG製作,勿忘初衷!
回复

使用道具 举报

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2017-1-25 23:36:49 | 显示全部楼层
本帖最后由 jianyulei 于 2017-1-25 23:39 编辑

解除状态的下回合不附加是系统本身的BUG,后来官方除了脚本补丁修复了
VXAce_SP1
  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.         [url=home.php?mod=space&uid=27559]@origin[/url] = 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
复制代码


点评

只有SP1  发表于 2017-1-26 13:39
嗯看到了,原来这是官方补丁啊。想问下还有SP2吗  发表于 2017-1-26 09:37

评分

参与人数 1星屑 +100 收起 理由
RaidenInfinity + 100 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部