| 赞 | 153 |
| VIP | |
| 好人卡 | |
| 积分 | 93 |
| 经验 | |
| 最后登录 | 2024-5-6 |
| 在线时间 | 2504 小时 |
- 梦石
- 0
- 星屑
- 9292
- 在线时间
- 2504 小时
- 注册时间
- 2011-5-20
- 回帖
- 14521

|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 chd114 于 2015-6-14 00:32 编辑
[fold=首先放上一个需要用到的新方法]
[pre lang="ruby"]class Game_Battler#Game_Actor
#--------------------------------------------------------------------------
# ● 实例变量
#--------------------------------------------------------------------------
attr_writer :equiprepeat # 重复的装备的数量
#--------------------------------------------------------------------------
# ○ 角色使用技能需要装备取得
#--------------------------------------------------------------------------
#p $game_actors[1].equiprepeat[装备ID]=>装备数量
def equiprepeat
@equiprepeat=[]
for i in @equips
if i.object!=nil
if i.object.is_a?(RPG::Weapon)
@equiprepeat.push([-i.object.id,@equips.select{|x|x.object.is_a?(RPG::Weapon)? x.object.id==i.object.id : nil}.size])
else
@equiprepeat.push([i.object.id,@equips.select{|x|x.object.is_a?(RPG::Armor)? x.object.id==i.object.id : nil}.size])
end
end
end
e=@equiprepeat.uniq;@equiprepeat={};e.each{|i|i[1]||=0;@equiprepeat[i[0]]=i[1]}
(-999..999).each{|i|@equiprepeat||=0}
return @equiprepeat
end
end[/pre][/fold]
[fold=然后是设定部分]- =begin
- mhp 0 最大HP Maximum Hit Point mmp 1 最大MP Maximum Magic Point
- atk 2 物理攻击 ATtacK power def 3 物理防御 DEFense power
- mat 4 魔法攻击 Magic ATtack power mdf 5 魔法防御 Magic DeFense power
- agi 6 敏 捷 值 AGIlity luk 7 幸 运 值 LUcK
- =end
- module Chd114 end
- module Chd114::Equip#(武器ID为-1~-999,防具ID为1~999)
- Suit={#套装类型={装备ID=>装备数量,装备ID=>装备数量}
- 1=>{64=>1,65=>1,66=>1},
- 2=>{63=>1,64=>1},
- }
- SuitEffect={#套装类型={部件数=>{属性ID=>属性效果,属性ID=>属性效果}}
- 1=>{2=>{0=>5.0},3=>{1=>5}},#5.0为基础能力的5倍,5为5
- 2=>{2=>{0=>505}},
- }
- end
- (-999..999).each{|i|Chd114::Equip::Suit[i]||={};Chd114::Equip::SuitEffect[i]||={}}
复制代码 [/fold]
[fold=最后是喜闻乐见的处理部分]
[pre lang="ruby"]
class Game_Actor
alias_method :c4_suit, :param_plus
def param_plus(id)
old = c4_suit(id)
tt=0
Chd114::Equip::Suit.each{|k,v|
v.each{|k,v|
tt+=equiprepeat[k]
}
Chd114::Equip::SuitEffect[k].each{|k,v|
if tt>=k
v.each{|k,v|
if id==k
if v.to_s==v.to_i.to_s
old+=v
else
old+=((v+1)*100-100)*param_base(k)/100
end
end
}
end
}
}
old
end
end[/pre][/fold]
目前没有发现BUG···
至于第一个脚本弄成那样是因为做了类似DOTA的设定让部分装备可以穿其他位置···所以需要获得数量,如果不要那个用默认的装备风格的话可以改了···
这个套装系统的两个好处是简短和设置方便···坏处是需要一个新的方法(对于默认装备风格的游戏来说这部分有点浪费···)而且不支持增减特殊能力(吸血、回复率什么的,但貌似这些属性最大只有1···)什么的···
顺便一提···如果按照这个脚本默认的设定,两种套装类型含的部件63、64号防具以及64、65、66号防具,如果这四件防具同时装备可以同时触发多个套装效果···
@精灵使者 @三途亚梦 怎么看···
如果你在属性加成设定中使用浮点数,则套装属性加成变成百分比提升基础能力
@寒冷魔王 @876加几 |
评分
-
查看全部评分
|