查看: 2115|回复: 7

[已经过期] 技能伤害公式脚本的状态添加问题

[复制链接]
梦石
0
星屑
1345
在线时间
378 小时
注册时间
2015-6-16
回帖
526
发表于 2017-7-2 10:54:59 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 300英雄 于 2017-7-2 10:57 编辑

1.Game_Battler每回合判定里面$game_actors[28].add_state(100 + rand(5))这个问题在他一个回合给了我0-3个状态这是为什么呢<星星符号加的是我的被动状态那个不算>
2.game actor我改成self就是一个状态这是为什么
3.还有第一回合添加了10状态,第二回合也是添加10状态,当回合就会没有任何BUFF
三个问题麻烦各位讲一讲
@taroxd @VIPArcher 拜托解答一次。

他给了我2个,实际上只有一个才对

他给了我2个,实际上只有一个才对
P1不太上了,有问题加个Q1286124843,不管是脚本还是游戏问题都可以来找我
梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2017-7-2 11:05:58 | 显示全部楼层
本帖最后由 jianyulei 于 2017-7-2 11:10 编辑

判定里加个 if self == $game_actors[28] 就正常了
回合结束的判定是每个我方和敌方都判定一次,是每个对象,不是只判定一次就结束


二回合状态附加时官方的BUG,插入以下脚本可解决

SP1[pre lang="ruby"]    #==============================================================================
    # ■ VXAce_SP1
    #------------------------------------------------------------------------------
    #  プリセットスクリプトの不具合を修正します。ユーザー定義のスクリプト素材は、
    # 原則としてこのセクションより下に配置してください。
    #==============================================================================
     
    #------------------------------------------------------------------------------
    # 【修正内容】
    #------------------------------------------------------------------------------
    # ●イベントコマンド[ステートの変更]にて、同じステートの付加と解除を同時に実
    #   行した際、二回目以降の付加が失敗する不具合を修正しました。
    # ●イベントコマンド[アニメーションの表示]にて、表示中のアニメーションがマッ
    #   プのスクロールに同期しない不具合を修正しました。
    # ●自動戦闘の行動が正常に選択されない不具合を修正しました。
    # ●装備できなくなった装備品が外れたことにより、さらに別の装備品が装備できなく
    #   なったとき、その装備品が増殖してしまう不具合を修正しました。
    # ●イベントコマンド[ピクチャの消去]を実行した後に余分な負荷がかかる不具合を
    #   修正しました。
    # ●移動ルートのオプション[移動できない場合は飛ばす]にチェックを入れた状態で
    #   トリガー[プレイヤーから接触]のイベントに接触すると、イベントが実行中であ
    #   っても起動予約がされてしまう不具合を修正しました。
    # ●魔法反射されたスキルに対してステート有効度が反映されない不具合を修正しまし
    #  た。
    # ●フォントのデフォルト設定にて太字または斜体を有効にしていても、ステータス画
    #   面を切り替えたとき等に無効な状態に戻ってしまう不具合を修正しました。
    #------------------------------------------------------------------------------
    class Game_Battler
      attr_accessor :magic_reflection
      #--------------------------------------------------------------------------
      # ● 敵対関係の判定
      #--------------------------------------------------------------------------
      alias vxace_sp1_opposite? opposite?
      def opposite?(battler)
        vxace_sp1_opposite?(battler) || battler.magic_reflection
      end
    end
    #------------------------------------------------------------------------------
    class Game_Actor
      #--------------------------------------------------------------------------
      # ● 装備できない装備品を外す
      #     item_gain : 外した装備品をパーティに戻す
      #--------------------------------------------------------------------------
      alias vxace_sp1_release_unequippable_items release_unequippable_items
      def release_unequippable_items(item_gain = true)
        loop do
          last_equips = equips.dup
          vxace_sp1_release_unequippable_items(item_gain)
          return if equips == last_equips
        end
      end
      #--------------------------------------------------------------------------
      # ● 自動戦闘時の戦闘行動を作成
      #--------------------------------------------------------------------------
      def make_auto_battle_actions
        @actions.size.times do |i|
          @actions = make_action_list.max_by {|action| action.value }
        end
      end
    end
    #------------------------------------------------------------------------------
    class Game_Player
      #--------------------------------------------------------------------------
      # ● マップイベントの起動
      #     triggers : トリガーの配列
      #     normal   : プライオリティ[通常キャラと同じ]かそれ以外か
      #--------------------------------------------------------------------------
      alias vxace_sp1_start_map_event start_map_event
      def start_map_event(x, y, triggers, normal)
        return if $game_map.interpreter.running?
        vxace_sp1_start_map_event(x, y, triggers, normal)
      end
    end
    #------------------------------------------------------------------------------
    class Game_Picture
      #--------------------------------------------------------------------------
      # ● ピクチャの消去
      #--------------------------------------------------------------------------
      alias vxace_sp1_erase erase
      def erase
        vxace_sp1_erase
        @origin = 0
      end
    end
    #------------------------------------------------------------------------------
    class Game_Interpreter
      #--------------------------------------------------------------------------
      # ● ステートの変更
      #--------------------------------------------------------------------------
      alias vxace_sp1_command_313 command_313
      def command_313
        vxace_sp1_command_313
        $game_party.clear_results
      end
    end
    #------------------------------------------------------------------------------
    class Sprite_Character
      #--------------------------------------------------------------------------
      # ● 位置の更新
      #--------------------------------------------------------------------------
      alias vxace_sp1_update_position update_position
      def update_position
        move_animation(@character.screen_x - x, @character.screen_y - y)
        vxace_sp1_update_position
      end
      #--------------------------------------------------------------------------
      # ● アニメーションの移動
      #--------------------------------------------------------------------------
      def move_animation(dx, dy)
        if @animation && @animation.position != 3
          @ani_ox += dx
          @ani_oy += dy
          @ani_sprites.each do |sprite|
            sprite.x += dx
            sprite.y += dy
          end
        end
      end
    end
    #------------------------------------------------------------------------------
    class Sprite_Picture
      #--------------------------------------------------------------------------
      # ● 転送元ビットマップの更新
      #--------------------------------------------------------------------------
      alias vxace_sp1_update_bitmap update_bitmap
      def update_bitmap
        if @picture.name.empty?
          self.bitmap = nil
        else
          vxace_sp1_update_bitmap
        end
      end
    end
    #------------------------------------------------------------------------------
    class Window_Base
      #--------------------------------------------------------------------------
      # ● フォント設定のリセット
      #--------------------------------------------------------------------------
      alias vxace_sp1_reset_font_settings reset_font_settings
      def reset_font_settings
        vxace_sp1_reset_font_settings
        contents.font.bold = Font.default_bold
        contents.font.italic = Font.default_italic
      end
    end
    #------------------------------------------------------------------------------
    class Scene_Battle
      #--------------------------------------------------------------------------
      # ● 魔法反射の発動
      #--------------------------------------------------------------------------
      alias vxace_sp1_invoke_magic_reflection invoke_magic_reflection
      def invoke_magic_reflection(target, item)
        @subject.magic_reflection = true
        vxace_sp1_invoke_magic_reflection(target, item)
        @subject.magic_reflection = false
      end
    end[/pre]

点评

那个脚本我已经存在了,还是这样的BUG。我也无力了  发表于 2017-7-2 12:43
有点道理  发表于 2017-7-2 12:20
那就得看你在那些里面写过什么了,我推荐你在回合结束和战斗开始里导入公共事件,然后在公共事件里写内容,公共事件是只会在最后触发一次的  发表于 2017-7-2 12:15
还是存在问题,战斗开始和每回合有时候并不能附加状态,也就是第三个问题  发表于 2017-7-2 11:51
回复

使用道具 举报

梦石
0
星屑
1345
在线时间
378 小时
注册时间
2015-6-16
回帖
526
 楼主| 发表于 2017-7-2 12:31:07 | 显示全部楼层
@VIPArcher 可以结了。就这样吧
P1不太上了,有问题加个Q1286124843,不管是脚本还是游戏问题都可以来找我
回复

使用道具 举报

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

开拓者

发表于 2017-7-25 18:59:59 | 显示全部楼层
300英雄 发表于 2017-7-2 12:31
@VIPArcher 可以结了。就这样吧

刚才我突然想你问的这个问题,你说的2回合状态附加是不是指当前回合结束同时附加状态?结果被判定为附加失败,而原状态也因时间为0 解除了?如果你是指这样的话,改变下
def on_turn_end 里面的判断顺序就行了,原本的判断是先附加后解除,导致同一个状态在解除的时候附加会失效,顺序改成
    remove_states_auto(2)   
    update_state_turns
    update_buff_turns
就可以了
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部