tlbb装备属性控制

来源:互联网 发布:mysql函数 编辑:程序博客网 时间:2024/05/01 06:13
在表t_iteminfo中记录了所有玩家的物品信息

字段名说明信息charguid用户角色idpos物品位置p9物品星级控制p10属性种类1p11属性种类2p12属性加成

 

 

 

 

 

 

 

pos:0-29 为玩家包裹

装备属性说明:

p9转换为16进制后0x.....[1][2][3][4]

[1][2]对应的16进制表示星级:如01-1星,02-2星。。。依次类推

[3][4]则对应装备鉴定的闪避资质,最大值为ff

---------------------------------------------------------

p10、p11对应的二进制表示装备所拥有的属性种类

如p10=6532,p11=-18963

6532   =0000 0000 0000 0000 0001 1001 1000 0100

负数的二进制位用补码保存,我们计算一下-18963的二进制表示

(原码)18963=0x4a13=0000 0000 0000 0000 0100 1010 0001 0011

(反码)         =1111 1111 1111 1111 1011 0101 1110 1100

(补码)         =1111 1111 1111 1111 1011 0101 1110 1101

-18963=1111 1111 1111 1111 1011 0101 1110 1101

p10从低位到高位(从右到左)的二进制依次表示是否拥有此种属性,如6532表示拥有p10属性的第3、8、9、12、13项属性

p11依次类推

需要注意的p10,p11两种属性的种类最大为16,也就是说一个装备的属性最多只有16条,多出属性时,只有前16条有效。

我们依次获取p10,p11的属性种类:

 

p10前16种属性

p10=0000 0000 0000 0000 1111 1111 1111 1111=65535

p11=0000 0000 0000 0000 0000 0000 0000 0000=0

 

p10后16种属性

p10=1111 1111 1111 1111 0000 0000 0000 0000= -65536

p11=0000 0000 0000 0000 0000 0000 0000 0000=0

 

 

p11前16种属性

p10=0000 0000 0000 0000 0000 0000 0000 0000=0

p11=0000 0000 0000 0000 1111 1111 1111 1111=65535

 

 

 

p11后16种属性

p10=0000 0000 0000 0000 0000 0000 0000 0000=0

p11=1111 1111 1111 1111 0000 0000 0000 0000= -65536

 

关于10进制计算说明

1111 1111 1111 1111 0000 0000 0000 0000(最高位为1表示负数,负数是以补码方式保存的,先求其对应正数的原码)

已知一个数的补码,求原码的操作其实就是对该补码再求补码:

反码:0000 0000 0000 0000 1111 1111 1111 1111

补码:0000 0000 0000 0001 0000 0000 0000 0000

则对应正数=0x10000=65536

所以计算所得负数为-65536

 

接着我们把属性类型调为一样,查看一下星级和p12对装备属性值的影响

      7星,p12=50            7星,p12=80     

      9星,p12=50            9星,p12=80

 注意p12的16进制最后两位控制加成,也就是说0x....ff时加成最大,一般为0xff,即256

 

0 0
原创粉丝点击