00002 贪婪洞窟.003.3:装备

本文详细解析了贪婪洞窟中装备的结构,包括装备的基础属性、附加属性、套装信息以及攻击速度的概念。装备的攻击速度并非整数,而是浮点数,可能受到游戏帧率和计算延迟的影响。同时,介绍了装备的套装部件数量、ID以及固定附加属性等关键要素。
摘要由CSDN通过智能技术生成


00002 贪婪洞窟.003.3:装备

         装备表的结构比物品表稍微复杂一点。为方便说明,特意找了一个套装部件(科恩的神奇面具):

            20410= {

                       speed= 0;

                       "suit_des" = 600019;

                       base= {

                                   defence= 926;

                                   hp= 2277;

                       };

                       add= {

                                   1= luck;

                                   2= luck;

                       };

                       "suit_num"= 5;

                       suit= 11;

                       type= 0;

                       des1= 122000;

                       level= 22;

                       skin= "helm-2041";

                       "sp_skill"= 0;

                       icon= "icon_2041_helm.png";

                       price= 21853;

                       suitim= {

                                   im3= 40005;

                                   im2= 40001;

                                   im1= 40012;

                       };

                       sellprice= 397;

                       rare= 5;

                       name= 112041;

            };

         speed用作武器的攻击速度,主要有3个值:0.7511.25,分别对应快速、中速和慢速。这个值是个浮点数而不是整数,我猜是开发者偷懒了。一般来说,对这种拥有严格分类的配置项目,应当使用枚举(具有可读性的字符串或者整数)。当然,在程序内部,需要将枚举转化为相应的浮点数值。——这个浮点数对应的攻击间隔,以秒为单位(在程序中也可能施加了调整系数)。理论上该值可以很小很小,比如为0.01,表示一秒钟攻击100次。但实际上呢,很可能达不到一秒钟攻击100次。这里面有一个动画同步问题(好吧,如果是《不思议迷宫》那种简陋的“点立得”或者无动画的文字mud之类的,就不会存在这个问题)。动画播放总是需要时间的。从表面上看,动画可以在1秒内播放完,那么也就可以加快播放速度,让它在0.01秒内播放完。——但是,但是,我必须得说,角色动作动画的播放和电影院那种磁带式动画播放是不同的。磁带式的动画播放,是用一个马达(姑且认为是马达吧)将磁带在投影灯前从这一头拉到那一头。只要马达给力,1秒钟能拉完,0.01秒钟也能拉完。并且需要注意一点,磁带的长度是固定的,其内容是固定的,只要观众的眼睛不花,就不会漏过任何一个片段。角色动作动画的播放是按帧来的,比如一个设置为60fps(现在的游戏框架大多都使用它为默认值)的游戏,会每隔约0.017秒播放一帧。而在这约0.017秒时间之内,画面是保持不变的。对于骨骼动画而言,播放内容都是根据时间实时演算的。比如一个人从这头跑到那头,如果是1秒钟跑完,那他就每1/60秒前进1/60的距离;如果是2秒跑完,就每1/60秒前进1/120的距离;如果是0.01秒跑完——抱歉,他跑不完,因为在0.01秒的时候,还没轮到下一帧的执行,至少也要等到1/60秒,也就是约0.017秒。——我们将speed设置为0.017,是不是就能保证一秒钟攻击59-60次了呢?答案有点悬乎——某些情况下可以,某些情况下不可以。在每一帧,在动画被显示之前都是需要先计算一番的,如果此时CPUGPU忙,或者计算本身就很耗时,比如超出了1/60秒,那还怎么保证1/60秒就更新显示一次?当然,也还有其他的情况,不过此处就不再深入讨论了。

         suit_des:装备所属套装的名称。

            base:对于防具而言,包括defencehp;对于武器,包括atk_minatk_max;对于首饰,没有基本属性。它们应当都是数值类型。但在equipmentAttribute.plist中也发现了非数值型的值,但这些装备在游戏中并没有使用。

            add:装备的固定附加属性。装备的附加属性是随机的,但有些装备也会有固定的附加属性。比如上例中的“科恩的神奇面具”,就必然具有两条“幸运”属性。然后,再根据装备的品质,随机出其他的附加属性。

            suit_num:装备所属套装的部件数量。

            suit:套装id。没看到在其他地方设置,只要在equipmentAttribute.plist中唯一即可。

            type:估计是某种组合,作用未明,有达人望告知。以下列出type的具体值(其他未列出装备,type全部为0)。

id

level

名称

type

品质/套装

10000

1

削铁如泥的剑

1

白色

10010

1

短剑

1

白色

10020

1

干草叉

1

蓝色

10030

1

火焰匕首

1

金色

21380

5

科恩的帽子

1

科恩的钱袋

31380

5

科恩的外套

1

科恩的钱袋

41380

5

科恩的小金库

1

科恩的钱袋

51310

9

嗜血

1

无尽杀意

11010

11

短剑

1

白色

11020

11

干草叉

1

蓝色

11030

11

火焰匕首

1

金色

41370

17

神罚之物

1

炼金术士的秘密

10041

1

狼牙棒

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值