Project1
标题:
在线等!使用一个物品后,如何能让角色增加抗性,如:...
[打印本页]
作者:
a107480098
时间:
2014-11-20 20:43
标题:
在线等!使用一个物品后,如何能让角色增加抗性,如:...
在线等!我想在游戏里添加一个变身卡的物品,当角色使用后能让角色增加抗性,如:抗混乱+10%、抗遗忘+8%等等???(变身卡)应该怎么弄?应该设置哪里?谢谢?
作者:
chd114
时间:
2014-11-21 17:42
是状态抗性?满了之后免疫这个状态?可是RMXP的状态有效度是ABCDEF6个等级来算的···
作者:
芯☆淡茹水
时间:
2014-11-21 23:57
这个没有试过:
#=============================================================================
# 状态防御度额外添加
#
# 给某个角色增加对某个状态的防御度:
# $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
#==============================================================================
复制代码
作者:
a107480098
时间:
2014-11-22 19:37
芯☆淡茹水 发表于 2014-11-21 23:57
这个没有试过:
谢谢,由于刚开电脑,就看到你的回复,我试试。
作者:
a107480098
时间:
2014-11-22 20:00
芯☆淡茹水 发表于 2014-11-21 23:57
这个没有试过:
能否举个范例。谢谢!
作者:
芯☆淡茹水
时间:
2014-11-22 21:00
貌似是这样子:
Project1.rar
(414.94 KB, 下载次数: 43)
2014-11-22 20:59 上传
点击文件名下载附件
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1