赞 | 671 |
VIP | 62 |
好人卡 | 144 |
积分 | 335 |
经验 | 110435 |
最后登录 | 2024-11-1 |
在线时间 | 5108 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 33471
- 在线时间
- 5108 小时
- 注册时间
- 2012-11-19
- 帖子
- 4878
|
这个没有试过:- #=============================================================================
- # 状态防御度额外添加
- #
- # 给某个角色增加对某个状态的防御度:
- # $game_party.actors[索引].set_state_ranks(状态ID, 增加的百分比)
- # 或: $game_actors[索引].set_state_ranks(状态ID, 增加的百分比)
- #
- # 可以写在公共事件里,物品关联公共事件。
- #
- # 这个是永久增加,若只需临时增加,在解除时,把括号里的 增加的百分比 改成相对应
- #的负值(正值是增加;负值是减少)。
- #
- #=============================================================================
- class Game_Battler
- #--------------------------------------------------------------------------
- # ● 状态变化 (+) 的适用
- # plus_state_set : 状态变化 (+)
- #--------------------------------------------------------------------------
- def states_plus(plus_state_set)
- # 清除有效标志
- effective = false
- # 循环 (附加状态)
- for i in plus_state_set
- # 无法防御本状态的情况下
- unless self.state_guard?(i)
- # 这个状态如果不是 full 的话就设置有效标志
- effective |= self.state_full?(i) == false
- # 状态为 [不能抵抗] 的情况下
- if $data_states[i].nonresistance
- # 设置状态变化标志
- @state_changed = true
- # 附加状态
- add_state(i)
- # 这个状态不是 full 的情况下
- elsif self.state_full?(i) == false
- # 将状态的有效度变换为概率、与随机数比较
- if rand(100) < self.state_ranks[i]
- # 设置状态变化标志
- @state_changed = true
- # 附加状态
- add_state(i)
- end
- end
- end
- end
- # 过程结束
- return effective
- end
- end
- #=============================================================================
- class Game_Actor < Game_Battler
- #--------------------------------------------------------------------------
- # ● 设置
- # actor_id : 角色 ID
- #--------------------------------------------------------------------------
- alias add_setup_xdrs setup
- def setup(actor_id)
- add_setup_xdrs(actor_id)
- @state_ranks = [0]
- for i in 1...$data_states.size
- @state_ranks[i] = [0,100,80,60,40,20,0]$data_classes[@class_id].state_ranks[i]
- end
- end
- #--------------------------------------------------------------------------
- # ● 获取状态有效度
- #--------------------------------------------------------------------------
- def state_ranks
- return @state_ranks
- end
- #--------------------------------------------------------------------------
- # ● 改变状态有效度
- # state_id :状态ID。
- # rate :增加的量。(正值增加对该状态的防御;负值渐少对该状态的防御)
- #--------------------------------------------------------------------------
- def set_state_ranks(state_id, rate)
- return if @state_ranks[state_id].nil?
- @state_ranks[state_id] = [[@state_ranks[state_id]-rate, 0].max, 100].min
- end
- #--------------------------------------------------------------------------
- # ● 更改职业 ID
- # class_id : 新的职业 ID
- #--------------------------------------------------------------------------
- def class_id=(class_id)
- if $data_classes[class_id] != nil
- @class_id = class_id
- @state_ranks = [0]
- for i in 1...$data_states.size
- @state_ranks[i] = [0,100,80,60,40,20,0]$data_classes[@class_id].state_ranks[i]
- end
- # 避开无法装备的物品
- unless equippable?($data_weapons[@weapon_id])
- equip(0, 0)
- end
- unless equippable?($data_armors[@armor1_id])
- equip(1, 0)
- end
- unless equippable?($data_armors[@armor2_id])
- equip(2, 0)
- end
- unless equippable?($data_armors[@armor3_id])
- equip(3, 0)
- end
- unless equippable?($data_armors[@armor4_id])
- equip(4, 0)
- end
- end
- end
- end
- #==============================================================================
- class Game_Enemy < Game_Battler
- #--------------------------------------------------------------------------
- # ● 初始化对像
- # troop_id : 循环 ID
- # member_index : 循环成员的索引
- #--------------------------------------------------------------------------
- alias add_initialize_xdrs initialize
- def initialize(troop_id, member_index)
- add_initialize_xdrs(troop_id, member_index)
- @state_ranks = [0]
- for i in 1...$data_states.size
- @state_ranks[i] = [0,100,80,60,40,20,0]$data_enemies[@enemy_id].state_ranks[i]
- end
- end
- #--------------------------------------------------------------------------
- # ● 获取状态有效度
- #--------------------------------------------------------------------------
- def state_ranks
- return @state_ranks
- end
- #--------------------------------------------------------------------------
- # ● 改变状态有效度
- # state_id :状态ID。
- # rate :增加的量。(正值增加对该状态的防御;负值渐少对该状态的防御)
- #--------------------------------------------------------------------------
- def set_state_ranks(state_id, rate)
- return if @state_ranks[state_id].nil?
- @state_ranks[state_id] = [[@state_ranks[state_id]-rate, 0].max, 100].min
- end
- end
- #==============================================================================
复制代码 |
|