查看: 2729|回复: 12

[已经解决] 伤害公式中附加状态需要一个附加几率怎么写?

[复制链接]
梦石
0
星屑
750
在线时间
228 小时
注册时间
2009-2-19
回帖
171
发表于 2016-12-17 21:09:26 | 显示全部楼层 |阅读模式

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

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

×
我知道伤害公式中写入a.add_state(状态ID);是用技能会附加一个状态。
那请问要怎样写是有一定几率附加状态?  比如50%几率!
[img][/img]

漾夕☽星化残月☾

梦石
0
星屑
8611
在线时间
3858 小时
注册时间
2015-5-12
回帖
2022

剧作品鉴家

发表于 2016-12-17 21:36:20 | 显示全部楼层
本帖最后由 御曹司 于 2016-12-18 13:34 编辑

(a = rand(99) ; a > 48 ? b.add_state(11) : ); 伤害公式

点评

这个我记得是不矛盾的说。另外我测试发现虽然随机是成功的、但是成功之后伤害好像有点异常  发表于 2016-12-18 13:29
你这两个a真的没问题吗,a既然是随机数怎么会有add_state方法  发表于 2016-12-18 12:03

评分

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

查看全部评分

回复

使用道具 举报

梦石
0
星屑
750
在线时间
228 小时
注册时间
2009-2-19
回帖
171
 楼主| 发表于 2016-12-17 22:04:34 | 显示全部楼层
话说这样写之后技能会无法命中呀!
还有……后面那个 : 0 是什么意思?

点评

http://rm.66rpg.com/forum.php?mod=viewthread&tid=307316  发表于 2016-12-17 22:33
你先at我再说好不?  发表于 2016-12-17 22:31
[img][/img]
回复

使用道具 举报

梦石
0
星屑
1345
在线时间
378 小时
注册时间
2015-6-16
回帖
526
发表于 2016-12-18 08:35:24 | 显示全部楼层
:后面是你的公式,你想想如果伤害0怎么可能有效果呢。a = rand(101) ; a > 49 ?  a.add_state(2) : 0 50%几率附加二号状态,并且造成0点伤害(肯定无效,或者无法命中)
P1不太上了,有问题加个Q1286124843,不管是脚本还是游戏问题都可以来找我
回复

使用道具 举报

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

开拓者

发表于 2016-12-18 09:01:32 | 显示全部楼层
a.add_state(状态ID) if rand < 0.3;伤害公式

点评

谢谢,已解决!  发表于 2016-12-18 10:42
回复

使用道具 举报

梦石
0
星屑
750
在线时间
228 小时
注册时间
2009-2-19
回帖
171
 楼主| 发表于 2016-12-18 11:06:28 | 显示全部楼层
本帖最后由 根五 于 2016-12-18 11:09 编辑
御曹司 发表于 2016-12-17 21:36
a = rand(99) ; a > 48 ?  a.add_state(状态ID) : 0[/pre]


问题解决了!可是又出现了个新问题!
因为我设置的状态  
自动接触的时机是  回合结束时  
持续回合数是 1~1的,
附加状态的时候即使我把几率弄到100%,也会出现第一回合会附加,第二回合不会附加,第三回合又会附加,第四回合又不附加这种情况,请问是我设置的问题么?
如果不是有什么解决办法么?
[img][/img]
回复

使用道具 举报

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
回帖
644

开拓者

发表于 2016-12-19 07:32:41 | 显示全部楼层
根五 发表于 2016-12-18 11:06
问题解决了!可是又出现了个新问题!
因为我设置的状态  
自动接触的时机是  回合结束时  

https://rpg.blue/forum.php?mod=v ... &extra=page%3D1
同11樓解答

评分

参与人数 1星屑 +250 收起 理由
RaidenInfinity + 250 版主代认可的答案

查看全部评分

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

使用道具 举报

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

开拓者

发表于 2016-12-21 08:38:48 | 显示全部楼层
根五 发表于 2016-12-18 11:06
问题解决了!可是又出现了个新问题!
因为我设置的状态  
自动接触的时机是  回合结束时  

[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]

这个官方补丁有解决你的问题
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部