Project1
标题: 【高兼♂容】套装系统 [打印本页]
作者: chd114 时间: 2015-6-14 10:08
标题: 【高兼♂容】套装系统
本帖最后由 chd114 于 2015-6-14 00:32 编辑
首先放上一个需要用到的新方法 然后是设定部分 最后是喜闻乐见的处理部分
目前没有发现BUG···
至于第一个脚本弄成那样是因为做了类似DOTA的设定让部分装备可以穿其他位置···所以需要获得数量,如果不要那个用默认的装备风格的话可以改了···
这个套装系统的两个好处是简短和设置方便···坏处是需要一个新的方法(对于默认装备风格的游戏来说这部分有点浪费···)而且不支持增减特殊能力(吸血、回复率什么的,但貌似这些属性最大只有1···)什么的···
顺便一提···如果按照这个脚本默认的设定,两种套装类型含的部件63、64号防具以及64、65、66号防具,如果这四件防具同时装备可以同时触发多个套装效果···
@精灵使者 @三途亚梦 怎么看···
如果你在属性加成设定中使用浮点数,则套装属性加成变成百分比提升基础能力
@寒冷魔王 @876加几
作者: 负零 时间: 2015-6-15 09:44
看了描述,随意说(jian)说(yi)
不支持增减特殊能力(个人觉得这些东西很重要,极大丰富套装的种类,N倍)
如果这四件防具同时装备可以同时触发多个套装效果(这个其实不用在意,套装和装备的对应制作者一般都会1对1,有想法的自然会利用。)
感谢,这个发布是极好的。
作者: 寒冷魔王 时间: 2015-6-15 22:43
本帖最后由 寒冷魔王 于 2015-6-16 19:27 编辑
HP = Hit Point
被纠正了,竟然是对的。。
我还真是头一次听说= =
v.to_s == v.to_i.to_s
直接写v == v.to_i不行吗 = =
你知道两个to_s再来个字符串比较需要多少额外消耗啊。。。
old+=((v+1)*100-100)*param_base(k)/100
= = 小水你神马意思,你想要判断小数点??你这么写真看不出来除了变得复杂些以外还做了什么事。
小数点分开你可以这么写:
/(\d+).(\d+)/ =~ v.to_s
整数位 $1.to_i
小数位 $2.to_i
x.object = =这个是神马东西,我只见过object.XXX唉
虽然不是主攻Ruby,但是我自认为在Ruby的C风格编程中我多少还是有那么一点点自信的(毕竟我都用几个月的时间写了200+的代码了唉(PAI~~))
但是这个XXX.object我还真是第一次见到= = 那是神马东东,查了手册都没有的说
那个alias_method虽然没见过但多少知道是元编程里的嗯嗯
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
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
你不是一直想要缩写吗?我给你缩,看好了:
old += v*((v==v.to_i) ? 1 : param_base(k)) if id==k
old += v*((v==v.to_i) ? 1 : param_base(k)) if id==k
另外你的缩进需要注意一下,建议.each {}的}括号和{的行首同缩进,如:
if (expression)
Array.each { |arr|
# do something...
}
end
if (expression)
Array.each { |arr|
# do something...
}
end
一般我在遇到each时,单行和多行不一样的写法:
# 单行
Array.each { |arr| arr = nil }
# 多行
Array.each do |arr|
# Line 1
# Line 2
# Line 3
end
# 单行
Array.each { |arr| arr = nil }
# 多行
Array.each do |arr|
# Line 1
# Line 2
# Line 3
end
这样写的好处是整齐简洁,因为多行往往伴随if end等,end一起比较整洁。
加上之前莫名的XXX.object,可以推断你的水平是 高手+新手 = 真(wei)·高手。
还是说,重复了许多遍了,你的代码就整洁性而言有待提升,如果能将此改进一下,然后附上使用文档,我想我应该就能看进去了
看在中间的那段的字体——编程专用等宽字体——不错的面子上,我就不继续吐槽了。
目前还在做地图和事件处理的部分,很快就进阶到战斗部分了。因为假期比较忙碌(还要准备三级考试),所以。。。战斗部分就靠你了。你好好研究一下战斗系统,到时候我直接借(qie)用(qu)一下就可以了。——当然前提是你先把这里理顺了,这么乱的数据模型肯定是不行的。
XP时代我曾研究过一些角色和敌人数据库,VA差不多。基本的数据处理是早就做好了的。地图事件的分析和应用正在做,角色、敌人还有技能相关没做分析。
从XP时代我就不是太会(多少还会那么一点点)窗口场景,实际上要做个系统这些是非常重要的。
该系统的层次划分:
--> 基本数据处理(将VA中的数据模式转换为系统内部所使用的数据模式,部分做修正)
--> 基本数据分析(提供各种方法,使得基数据能够转化为系统各分支的专用数据)
--> 数据分析应用 (通过分析数据,提供一系列方法,通过调用方法反馈给外部环境;主要提供给游戏制作者。如将事件名称为NUM001的事件作为第一位角色的位置点,每次刷新此处事件的行走图都会变更等)
--> 外部接口(形成特定的游戏对象,如窗口,鼠标输入等,获取和输出反馈,如变更角色位置的窗口。主要面向玩家)
而实际上,我只做完了第一部分,第二三部分只做了地图事件相关的部分。第四部分尚未动手。整个游戏系统的核心部分(地图移动范围的生成,SMRC Ver4.5)已经完成,包括运算速度、移动障碍等问题均已解决。尚需解决的是地图与技能范围的连接问题。到时候需要发明个新的表示方法,可以方便地表示技能范围。这些现阶段归类为技能问题。技能的AI计算问题仍将需要解决。
我唯一擅长的就是难度不高的底层代码(好吧,其实我只是懒得动脑+不愿学前端),所以,对于困扰最大的地图范围移动生成代码(包括各种附加属性,如移动力衰减等)解决的今天,最令人担忧的是有些难度的AI智能和窗口绘制。如果有人能帮我解决其中某项问题,那么系统的开发完成预期将大大提前。
所以,作为真(wei)·高手的小水,如果肯祝我一臂之力,则臣不胜受恩感激也。
总之加油,继续滚回去写《魔法原理》去。。。(PAI)
作者: 希忆 时间: 2015-6-16 22:42
套装系统不错的,也想写一个,没有什么好的想法来储存设定,我个人比较看重xparam和sparam,也是能力所限,加上挺忙的,放弃了。【没准几个月,几年过后就写出来了(笑)】
期待下跟进吧,xparam和sparam能整好的话套装系统的可玩性炒鸡棒的。
代码量比我想象的要少,哈希表迭代的思路挺不错,不知道效率会不会有影响就是了。
吐槽下alias_method还不如直接alias【逗号去掉】,还少打几个字母,for循环可以直接each迭代。
Hash只用k,v中的一个的话可以用each_value和each_key迭代。
========================================================================================
ls说的一些风格可读性优化挺有道理的,代码风格可以看看。
话说ruby风格和RGSS风格就RGSS类名用下划线分单词这一个区别吧(好像)。
作者: chd114 时间: 2015-6-18 21:20
希忆 发表于 2015-6-16 05:42
套装系统不错的,也想写一个,没有什么好的想法来储存设定,我个人比较看重xparam和sparam,也是能力所限, ...
va的特殊能力最大只有1来着。。。所以还没做
作者: 叫你听话你不听 时间: 2015-6-19 11:55
楼主能不能移植XP的?
作者: chd114 时间: 2015-6-19 16:22
叫你听话你不听 发表于 2015-6-18 18:55
楼主能不能移植XP的?
理论上这个小小修改下能直接在xp上用···抽空试试看吧···
作者: chd114 时间: 2015-6-19 17:22
叫你听话你不听 发表于 2015-6-18 18:55
楼主能不能移植XP的?
准确地说···我一开始就有移植的计划···但是打算先弄完VA的,再依次弄VX和XP的···因为预计是一套可以拆分使用的组合系统且最大以兼容性为主···
作者: chd114 时间: 2015-6-19 21:21
希忆 发表于 2015-6-16 05:42
套装系统不错的,也想写一个,没有什么好的想法来储存设定,我个人比较看重xparam和sparam,也是能力所限, ...
xparam和sparam的添加刚才尝试了···但是VA里面这两系的能力是没法直接用脚本增减···所以计划失败OTZ
作者: 希忆 时间: 2015-6-19 23:42
chd114 发表于 2015-6-19 21:21
xparam和sparam的添加刚才尝试了···但是VA里面这两系的能力是没法直接用脚本增减···所以计划失败OT ...
- class Game_Actor
- def xparam(xp_id)
- super + suit_xp(xp_id)
- end
- def sparam(sp_id)
- super * suit_sp(sp_id)
- end
- end
复制代码 修改xparam、sparam的大致思路。
作者: yl51379 时间: 2015-6-24 10:24
支持楼主,目前VA最缺乏的就是套装系统的脚本。如果以后可以添加特殊能力,就更加完美了!
作者: chd114 时间: 2015-6-24 21:15
yl51379 发表于 2015-6-23 17:24
支持楼主,目前VA最缺乏的就是套装系统的脚本。如果以后可以添加特殊能力,就更加完美了! ...
特殊能力尝试了···比较麻烦、且最大值为1,要改动原来的获取特殊能量的脚本···所以暂时不会发出
作者: 大云梦泽 时间: 2016-1-13 15:35
能发个范例工程吗
作者: duzine 时间: 2016-1-14 00:56
這個套裝系統會像圖書館裡的那件,需要依照行走圖大小更改嗎?
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |