|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。& _ o: r( R% m2 l+ _
) T$ `/ B3 v) V6 T3 _ 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。( q9 t' s3 B0 J6 ]7 z! w1 e9 e; u: Q' G
( a2 G) P) B2 @' C然后是开箱子得到装备,在user.cpp下的函数。- f- I' p) o5 R3 J7 t, U$ @0 `1 l
\5 [8 y" W" o3 O) o8 |' @DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子% c! t# F4 M6 o) o$ ]
9 [ |! v q! f+ [+ A8 l
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子: J; k" M- I! V y! L; `
6 A: }9 C H+ O7 A4 w2 S
在这两个函数体下加一个判断就行了- Q0 P7 X" e( L O3 R
' E" P: @% Y9 G if(itemElem.GetProp()->dwItemRare==300)- G# F2 v9 a4 I, `
{ ]$ r+ N& p( e* \2 o
itemElem.m_bItemResist=(BYTE)xRandom(1,6);
6 k' s" `6 e" s itemElem.m_nResistAbilityOption=10;
% o. A- G: G) E- v1 D }
4 f7 p) ]3 R) A+ l/ o, n( [4 M" j0 o. w8 h% U; |1 j8 E" B3 B
就是上面这句。
) D9 |3 w5 S |$ @3 s$ e2 r. [/ J, ^6 K& S0 m
至于加在哪里,不用我说了吧,就在创建物品之前就行了。$ @8 ]2 S' A' R/ B9 x! F
$ s- x7 B- L( E! I7 i2 |- F0 D1 c; R5 q
; ^0 X0 _2 U0 b3 Y; [
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。6 y C9 ?7 U+ I4 T; h3 ]( U
& k n6 e- u4 C/ \* `+ L9 |2 g2 n9 x. ]+ T9 O* _/ }" A# w7 l
2 I7 V" `3 {$ I
7 _( x- x' c: O6 }4 ^2 b' L" v! u4 t9 j% m$ {4 g
活动给物品的话那就模仿这里面的创建物品的句子写就行了。
' @* [9 X# ]. ]3 @' C! h
/ h( g0 E5 X& h- H8 t5 d5 f: k5 x. K以上写法已经通过验证。不成功自己找原因了。
% }' ]9 K, Y- N& V3 P+ c* |, A" X# Q0 A) j' i* q, q1 e
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ; r' b& q' `( E( t9 y4 d
- |, s9 v. N9 b5 m
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount ): Q2 ~1 w3 _/ I0 `) O( |1 z0 T
7 M$ e# e6 h# q! C4 l1 s7 N0 E
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =) e8 {) K' n0 r9 q( Q
2 d6 Z J* @9 p3 W从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
6 H: M: k; g/ k7 c0 p
! ^6 i# D' T9 R! ^8 D3 {1 [& {! P5 {: C) G q: w, y' `0 ^
|
|