赞 | 0 |
VIP | 0 |
好人卡 | 9 |
积分 | 1 |
经验 | 10565 |
最后登录 | 2017-12-2 |
在线时间 | 185 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 55
- 在线时间
- 185 小时
- 注册时间
- 2014-9-4
- 帖子
- 82
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 希忆 于 2015-6-22 20:32 编辑
前几天看到c4发布的套装效果脚本,想到以前自己也想写一个,但是觉得数据设定的写法很难写好,就暂时放弃了。
然而今天午后打开当作脚本备忘录的某弃坑工程时,突然发现那个被我标题为“被动技能对应武器”的日站小脚本(@taroxd 翻译的【好像后来他自己也开挂写了个】)。
(p.s @chd114 抱歉啦,下午一有灵感就迫不及待的写了这玩意然后迫不及待地测试发布,你的界面我晚上一会儿再开始试写看看。)
于是乎豁然开朗~~套装效果要是相当于一个虚拟武器的话,数据设定什么的简直轻而易举!而且特性的存在使得扩展性炒鸡好~
比另一个上来400行英文注释看半天头晕的英文套装脚本(Equipment Sets v2.1e By Emerald)不知道高到哪里去了~
于是半个下午写写修修调调,初步完成了一个简单小巧的核心,包括注释空行共80行;测试通过。
只有核心,没改界面(除了描述),因为不知道怎么做;估计要大改equip相关窗口和场景,以后有空再慢慢着手把<有生之年更新系列>。
和“增加装备栏数量”,“装备风格扩展”一起使用后效果拔群。(作者分别@后知后觉 @VIPArcher )
详见附件范例【这两个脚本有小幅度修改,建议轻点蓝字链接去原始版本】。
[无dll]
Project1.rar
(309.77 KB, 下载次数: 292)
脚本如下,没有什么新奇的写法:
#encoding:utf-8 #=============================================================================== # 相当于额外装备了某些武器的套装效果 v1.0 # by 希忆 rpg.blue 转载或修改请保存此类信息。 #=============================================================================== #在武器|防具的备注写上<suit 2>表示其为2号套装的1件,描述自动添加“闪耀星光套装:” #套装效果在下面设置,以武器编号来替代套装效果,相当于额外装备了这样一个武器。 #~ module EquipSuit SuitEffect = {0 => [], #套装编号(唯一) => [1个套装部件拥有的套装效果,2个,3个。。。以此类推【叠加!】] #例如我装备了4个2号套装的部件,相当于多装备了111,112,113号武器。 #装备了5个3号套装的部件,相当于多装备了121,122号武器。 1 => [0, 101, 0, 102, 0, 103], 2 => [0, 111, 112, 113, 114], 3 => [0, 0, 121, 0, 122, 0, 123, 124], #按格式继续加就是了。 } def self.suit_effect(suit_id) SuitEffect[suit_id] || [] end SuitName = {0 => "", #套装的名字。 1 => "优雅的魔法", 2 => "闪耀星光", 3 => "命运女神的垂怜", #按格式继续加就是了。 } def self.suit_name(suit_id) SuitName[suit_id] || suit_id.to_s + "号套装" end end class RPG::EquipItem def suit_id @note =~ /\<suit (\d+)\>/ ? $1.to_i : 0 end def description suit_id == 0 ? @description : EquipSuit.suit_name(suit_id) + ":" + @description end end class Game_Actor #返回一个角色装备中各套装数量的Hash 套装编号=>装备数量 def get_suit result = Hash.new(0) equips.each{ |e| result[e.suit_id] += 1 if e} result end #返回包含套装效果对应武器实例的数组 def suit_effect result = [] get_suit.each { |k, v| result += EquipSuit.suit_effect(k).first(v).collect{ |id| $data_weapons[id] } } result.compact end alias xy_feature_objects_20150621 feature_objects def feature_objects xy_feature_objects_20150621 + suit_effect end alias xy_param_plus_20150621 param_plus def param_plus(param_id) suit_effect.inject(xy_param_plus_20150621(param_id)) { |r, item| r += item.params[param_id] } end end
#encoding:utf-8
#===============================================================================
# 相当于额外装备了某些武器的套装效果 v1.0
# by 希忆 rpg.blue 转载或修改请保存此类信息。
#===============================================================================
#在武器|防具的备注写上<suit 2>表示其为2号套装的1件,描述自动添加“闪耀星光套装:”
#套装效果在下面设置,以武器编号来替代套装效果,相当于额外装备了这样一个武器。
#~
module EquipSuit
SuitEffect = {0 => [],
#套装编号(唯一) => [1个套装部件拥有的套装效果,2个,3个。。。以此类推【叠加!】]
#例如我装备了4个2号套装的部件,相当于多装备了111,112,113号武器。
#装备了5个3号套装的部件,相当于多装备了121,122号武器。
1 => [0, 101, 0, 102, 0, 103],
2 => [0, 111, 112, 113, 114],
3 => [0, 0, 121, 0, 122, 0, 123, 124],
#按格式继续加就是了。
}
def self.suit_effect(suit_id)
SuitEffect[suit_id] || []
end
SuitName = {0 => "",
#套装的名字。
1 => "优雅的魔法",
2 => "闪耀星光",
3 => "命运女神的垂怜",
#按格式继续加就是了。
}
def self.suit_name(suit_id)
SuitName[suit_id] || suit_id.to_s + "号套装"
end
end
class RPG::EquipItem
def suit_id
@note =~ /\<suit (\d+)\>/ ? $1.to_i : 0
end
def description
suit_id == 0 ? @description : EquipSuit.suit_name(suit_id) + ":" + @description
end
end
class Game_Actor
#返回一个角色装备中各套装数量的Hash 套装编号=>装备数量
def get_suit
result = Hash.new(0)
equips.each{ |e| result[e.suit_id] += 1 if e}
result
end
#返回包含套装效果对应武器实例的数组
def suit_effect
result = []
get_suit.each { |k, v| result +=
EquipSuit.suit_effect(k).first(v).collect{ |id| $data_weapons[id] } }
result.compact
end
alias xy_feature_objects_20150621 feature_objects
def feature_objects
xy_feature_objects_20150621 + suit_effect
end
alias xy_param_plus_20150621 param_plus
def param_plus(param_id)
suit_effect.inject(xy_param_plus_20150621(param_id)) {
|r, item| r += item.params[param_id] }
end
end
用法和功能超详细叙述,看了注释还是不懂怎么回事再看这里吧,废话连篇
超详细叙述:
点进来都看到这里了,不给两颗糖吗~ |
评分
-
查看全部评分
|