|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。1 E. G* g7 R" m' J
& j% q7 }& y; {# B% d
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。! c- E! `/ l+ ]; s( a N( G
# U3 W; R3 _% ` q% [7 F2 f% R然后是开箱子得到装备,在user.cpp下的函数。
# L5 M" Y# `) }1 b, o7 u$ h
8 l u! h/ i5 B# Y4 C4 yDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
% P; h5 K( `3 K6 a- H
. O0 _6 l8 t7 N3 T% l: t7 DDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
2 T% F7 K. {8 Z; ^# q( J( A: [4 L
! B9 w" T; E, T/ x 在这两个函数体下加一个判断就行了* v. M% R9 Q" m- j( @# w
1 g' k' y5 F8 O$ ~ if(itemElem.GetProp()->dwItemRare==300)
+ ^& @1 b+ P# j+ y0 \ {2 I0 K! g1 k) k! v( e
itemElem.m_bItemResist=(BYTE)xRandom(1,6);6 \4 x* o t% [. \0 c u. \
itemElem.m_nResistAbilityOption=10;
! s# }) D0 t/ I7 D }
. e( ~, e2 W2 e
) ?, Q" O6 o3 W! W: e1 I& H就是上面这句。- I" R4 t" Z# T. G. O7 J2 x
U% S. L4 s- Z+ ~4 @' R至于加在哪里,不用我说了吧,就在创建物品之前就行了。
9 H; \2 H C, D
8 c3 Z+ G/ ?$ n6 \1 L( M: C, y; y: Y! _( X
& X0 f# L* Z$ M& T! m 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。( Y+ i4 u! G! Q8 j' L C4 q; N4 g
: [8 Q; g* P; O8 u8 Z) O
7 E% F) w. Z: p# }0 q( u5 e. v
1 d8 A; T" m8 \. u( _3 U; O
% B: z3 h; D/ m8 R! @
6 s4 U# R/ L0 C# w$ r( }3 K活动给物品的话那就模仿这里面的创建物品的句子写就行了。
. Z: R# o: c1 Z/ r; k
: u: f T: t% } v以上写法已经通过验证。不成功自己找原因了。4 M+ [5 ~. `8 ~* F3 u
9 w9 t/ A* J3 R1 f( q///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// , N1 h( D2 E# Y N
5 n' j5 E s$ l( E0 {$ a) O
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )% y6 q/ q( }' j: `2 k2 @
$ D4 j! x X: ` w1 d3 q. z# g 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =" f" }3 N* n) S% H+ W/ s
' J. D6 |5 S4 K* k
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -! O" i6 d8 o7 J" s
) a2 h; I# v9 T# v/ E+ d& }
; ?2 W8 u3 d0 i) G) G0 n
|
|