Project1

标题: 伤害公式中附加状态需要一个附加几率怎么写? [打印本页]

作者: 根五    时间: 2016-12-17 21:09
标题: 伤害公式中附加状态需要一个附加几率怎么写?
我知道伤害公式中写入a.add_state(状态ID);是用技能会附加一个状态。
那请问要怎样写是有一定几率附加状态?  比如50%几率!
作者: 御曹司    时间: 2016-12-17 21:36
本帖最后由 御曹司 于 2016-12-18 13:34 编辑

(a = rand(99) ; a > 48 ? b.add_state(11) : ); 伤害公式
作者: 根五    时间: 2016-12-17 22:04
话说这样写之后技能会无法命中呀!
还有……后面那个 : 0 是什么意思?
作者: 300英雄    时间: 2016-12-18 08:35
:后面是你的公式,你想想如果伤害0怎么可能有效果呢。a = rand(101) ; a > 49 ?  a.add_state(2) : 0 50%几率附加二号状态,并且造成0点伤害(肯定无效,或者无法命中)
作者: jianyulei    时间: 2016-12-18 09:01
a.add_state(状态ID) if rand < 0.3;伤害公式
作者: 根五    时间: 2016-12-18 11:06
本帖最后由 根五 于 2016-12-18 11:09 编辑
御曹司 发表于 2016-12-17 21:36
a = rand(99) ; a > 48 ?  a.add_state(状态ID) : 0[/pre]


问题解决了!可是又出现了个新问题!
因为我设置的状态  
自动接触的时机是  回合结束时  
持续回合数是 1~1的,
附加状态的时候即使我把几率弄到100%,也会出现第一回合会附加,第二回合不会附加,第三回合又会附加,第四回合又不附加这种情况,请问是我设置的问题么?
如果不是有什么解决办法么?
作者: QQ蚊子湯    时间: 2016-12-19 07:32
根五 发表于 2016-12-18 11:06
问题解决了!可是又出现了个新问题!
因为我设置的状态  
自动接触的时机是  回合结束时  

https://rpg.blue/forum.php?mod=v ... &extra=page%3D1
同11樓解答
作者: jianyulei    时间: 2016-12-21 08:38
根五 发表于 2016-12-18 11:06
问题解决了!可是又出现了个新问题!
因为我设置的状态  
自动接触的时机是  回合结束时  

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


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




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1