|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。, e2 ?3 v$ [! P, j7 D
0 b/ y- f8 b5 I0 v
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
/ g/ v/ g. Y4 N" X$ w) D+ b5 ?" S* l) B, f7 Z& O
然后是开箱子得到装备,在user.cpp下的函数。
( t9 f! F- ` p- r7 U4 O8 Y5 v3 ~4 J3 @1 h- j9 P
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子9 Y% P( G7 V k
+ C( B8 f1 ^ c& P6 Y1 K3 R! l' t! B
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
6 ^& E3 Z. }: K' g. O/ T9 e9 h! L$ h; U) B
在这两个函数体下加一个判断就行了% Q2 X2 Z) |* L, d6 U( }
# k4 @+ i3 p7 ?% x0 S' u if(itemElem.GetProp()->dwItemRare==300)/ u% [/ I4 A# h' [
{' m6 }$ n3 _( |1 a# i
itemElem.m_bItemResist=(BYTE)xRandom(1,6);1 H6 k# K( n4 U5 F) K1 K5 n
itemElem.m_nResistAbilityOption=10;: y g( v* O% e% K
}
; o! x* y5 U. ]0 \
. X6 t( n" }- v! }- C9 }: P就是上面这句。
; {$ Q2 f* [- A! i, l1 |
% `, D* F8 @; j. T# _: S% Z9 W至于加在哪里,不用我说了吧,就在创建物品之前就行了。0 @- n) U* y1 s
8 d/ l9 w" j+ p6 ^: a$ _
) }: e9 j# n# \& C$ a4 F! b
~' l# j. i/ [% L* G 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。# k# o" F& r2 b' c% l
5 F4 B1 G" H5 V; m! X( ]
; Q+ v/ Y7 ^0 H" {+ g
' p+ n" e2 b8 `( h8 F5 \5 p' o. y2 A
( | p6 r i, j! Z7 F
活动给物品的话那就模仿这里面的创建物品的句子写就行了。
/ Z- n( Y# |& y- t0 w$ }! }' q$ K7 I5 W. U, [# y& d c# l
以上写法已经通过验证。不成功自己找原因了。9 C1 Y7 N$ h! k2 H% k
( \% {4 B! ^; F- a6 {
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
9 \/ I. G9 C3 Q$ g$ v9 }( K
( P( ^; m0 q6 e BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
! [: ]" o0 x7 N, H5 f& f4 H0 X3 F) p
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
8 E" a) y+ ]3 h5 k& O- ~$ v% z- n; f0 y2 I. J
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
U$ i5 c" T7 T S
/ S1 `# C) I8 t
7 B: l" ^0 I6 c& K$ b3 o! [4 ~, L |
|