|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
+ h5 \' [& O! A. U" F% C! s- o6 e& v1 z8 W+ ^
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。! |9 k. c( c3 D9 ?
2 Z- ^8 P7 G( b7 X3 j" U* z
然后是开箱子得到装备,在user.cpp下的函数。
p' H, g. J0 G( K5 r' ^ E8 u4 D$ P) Q& Z8 g7 T
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子6 U1 \) J& i# m/ ~
) z( n# G( F+ S1 i+ UDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
4 b ^1 Y* x5 x6 B- H
4 H, V8 `) x+ R% f* n0 k, j 在这两个函数体下加一个判断就行了+ i% c5 X0 J/ e2 |% l6 t
& n) i, A1 I1 [7 y
if(itemElem.GetProp()->dwItemRare==300)
3 h/ p, a. }9 @' Y# ? {$ ]" b* D9 Y- W$ \, o" V1 @( o
itemElem.m_bItemResist=(BYTE)xRandom(1,6);
% x( w" W0 C0 V itemElem.m_nResistAbilityOption=10;3 J. J2 l2 u9 j( ?9 S1 U# |4 s
}
/ H+ f0 b; Z; |# L. n% ?' b
. w: W$ b' {1 g6 n就是上面这句。. \& T X/ ^0 U
# e ^2 u! r( r4 S5 M: l2 x% f
至于加在哪里,不用我说了吧,就在创建物品之前就行了。6 [. F- `5 V& `. q% U$ {- G
0 j) d+ a: k5 a6 s8 k
" M$ Z5 d7 @/ z# r) O* b
8 s) C4 T& y+ ` 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
~5 Q% y. [ r; \$ P2 o9 O9 {- P! C1 i
@2 V8 ~) D( O7 N
9 }, {. O* c' x7 ^0 }# T
" H4 o, y: b( T! K5 V* I
0 w0 p) \, a4 H7 G0 P/ Q活动给物品的话那就模仿这里面的创建物品的句子写就行了。
1 D' h; X4 B5 Y) F7 D$ \4 [
u( g+ ?. J4 c* F& B4 e以上写法已经通过验证。不成功自己找原因了。
# ?; T: i$ I" S$ u- K. r
9 F* i9 R. ]1 ]1 y6 _; a, x6 G* u% Q///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + w" P' E+ H' j3 ]0 {
/ F' |* ?+ q( G: F$ }9 R! i' x% F
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
2 o4 Q% t7 r2 I+ e& @, j; Q+ B# Q3 c2 K# q9 G# u6 Q
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =8 J+ c& v; B/ f' v: F
+ c* Z5 U3 e7 g( |* z6 n从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
; G0 `: _( }9 m2 G6 S5 c/ p
+ J I$ \+ Y7 N" Q8 k: t" V
+ H# B+ C( d" W. J, ?( [9 ? |
|