|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。$ }; V* x9 e+ s v5 ]' H# ~
1 z' d( b6 A9 M! l 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
# Z) `6 `( n. K( I5 I
+ }# |2 M5 _" U* x然后是开箱子得到装备,在user.cpp下的函数。0 v; y3 r3 F8 p. l
% \9 h8 o% c3 f! ]- w
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子0 Y7 V, V* X) o4 @
6 k9 K9 R. ^! \8 t6 m, v% Z# SDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子$ V; o3 E- d1 _1 J3 g. n
8 ]. G% I% v; `, S1 | 在这两个函数体下加一个判断就行了 f: l# E# L- `6 ~
( D o1 n0 m$ z' {
if(itemElem.GetProp()->dwItemRare==300)" h% @$ h* E, g; |
{' ^( q) R7 ~( L( _7 m" v: K# I
itemElem.m_bItemResist=(BYTE)xRandom(1,6);* R' J- F% K# [! y1 v: |
itemElem.m_nResistAbilityOption=10;
* {1 x- L) y/ m8 ^4 W* J }' y6 k. ]1 L# A. k% Z/ J5 e
0 D/ Q% V4 G& f2 ~5 r6 W就是上面这句。
3 a+ R1 i) J2 _) s& W/ S
# ]2 R/ m, T1 ~1 A" K+ t至于加在哪里,不用我说了吧,就在创建物品之前就行了。5 c5 l- s9 H" D: D( T# Q
& w" [# h' n2 l+ Y
# I6 a: o( E( k! `. L* {# A5 I8 o3 N/ A$ F
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
$ ^4 e, r) c" u& r( y
' k# y/ a- D0 [ [' Y7 N
9 }# C+ }$ b4 b: `8 f( Z: X! ]6 Q' o" @' A' x. d* J
$ Z+ l6 a, O u: K+ @
/ Y1 r, Y( u. s. w; n活动给物品的话那就模仿这里面的创建物品的句子写就行了。$ l5 \6 D( Y) X4 y
( S* B# Z9 A6 m, e; O, f
以上写法已经通过验证。不成功自己找原因了。; @! V, S5 S4 T/ M7 T, |
9 I: p: S5 T) y1 G0 A2 m///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 6 m# R) W! U( {7 V) Q! \. q
0 M+ i8 ^& w. F4 Q BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
1 T+ N6 u: [( G7 M% P7 q9 n7 ^$ [- p1 i9 |9 a7 J
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
1 a! M7 h6 i0 Y' V7 k$ X0 A
' f, z% Q0 ^9 o从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
# y8 G4 I: N( V: d2 C: ?, c3 O# ]/ i1 |- h7 ]0 r+ I
2 w% F8 m }, N$ T. c9 X
|
|