赞 | 8 |
VIP | 0 |
好人卡 | 2 |
积分 | 74 |
经验 | 16755 |
最后登录 | 2024-11-15 |
在线时间 | 1098 小时 |
Lv4.逐梦者
- 梦石
- 0
- 星屑
- 7436
- 在线时间
- 1098 小时
- 注册时间
- 2006-7-18
- 帖子
- 569
|
8楼
楼主 |
发表于 2015-1-18 15:26:16
|
只看该作者
能不能帮看看,怎么优化这段代码吗??
#武器装备因职业,人物不同产生不同效果的设定
#id和param()的3都指物理防御···Game_BattlerBase里面有具体的设定,
#0为MHP、1为MMP、2为物理攻击···etype_id是装备的位置,
#p一下角色的equip_slots就会看到二刀流角色的装备位置是[0,0,2,3,4]而普通角色装备位置是[0,1,2,3,4]1默认是盾牌···2、3、4分别对应头盔、铠甲、饰品
#actor_id就是角色ID,class_id是职业ID
class Game_Actor
alias_method :c4_20150117, :param_plus
def param_plus(id)
old = c4_20150117(id)
for i in 0...equips.size
if equips[i]!=nil
if equips[i].id==1 #ID为武器或者防具数据库里编号
if id == 2 #处理物理攻击力的变化(当武器是1,2号主角装备时)
if actor_id==1 #1号主角
old+=equips[i].params[2]/10 if equips[i].etype_id==0#获得10%攻击力加成
end
if actor_id==2 #2号主角
old+=equips[i].params[2]/2 if equips[i].etype_id==0#获得50%攻击力加成
end
end
if id == 6 #处理敏捷值的变化
if actor_id==1#1号主角
old+=equips[i].params[6]/10 if equips[i].etype_id==0#获得10%敏捷加成
end
if actor_id==2#2号主角
old+=equips[i].params[6]/2 if equips[i].etype_id==0#获得50%敏捷加成
end
end
end
end
end
old
end
end |
|