|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
2 b( f5 j- L% s6 H! @' E2 p: i6 T s }; w( j" f( Q) n
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
8 H8 P6 e+ Z) @$ F( N% Q
( D. f |6 D9 o( s* ^然后是开箱子得到装备,在user.cpp下的函数。
& z, S* `5 |5 M, x7 w2 f% f1 I9 K( t" Z0 T' w
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子5 @' X- G1 L1 M1 O1 F( \
0 {8 v9 {: N/ d3 M
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子- @9 f$ ^6 e/ v' {1 @
, J) B; x& {+ R# t
在这两个函数体下加一个判断就行了
+ w/ b+ v: t0 b8 `
4 I+ W7 a+ w8 e if(itemElem.GetProp()->dwItemRare==300)$ ~/ q9 R+ Y, J% v5 A: d4 W: z
{
$ y& X( A7 C- {6 V itemElem.m_bItemResist=(BYTE)xRandom(1,6);
$ ?! ~: q! D% M: G- i+ J itemElem.m_nResistAbilityOption=10;
" z' M! O' g- s }
# S/ D8 [) I6 {1 u \, t" n! H' Z5 G* ?; |
就是上面这句。
" ^+ |2 r4 w3 g i, C T! U
! j2 ^6 D5 K/ _5 W6 O# |" h% B- T至于加在哪里,不用我说了吧,就在创建物品之前就行了。0 k; d+ O5 e( o1 D- F2 l
9 i* \/ n6 Y) `
8 y1 ^5 m4 O0 _ M
4 A2 u+ t8 C- H: x' `8 L( V! B. ^ 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。1 E- O9 a3 y; P* s
' R# H9 C0 t" l5 u) U9 u
8 T8 p: H# f x) I' i% n4 [8 u3 Y9 L# z
5 J: P9 N/ C5 `( u" m/ P0 a
% [7 h8 o$ y: U5 a
活动给物品的话那就模仿这里面的创建物品的句子写就行了。 V7 A# W4 O8 m9 ]6 ]
; ]( Q% K/ J! j; {( f! O以上写法已经通过验证。不成功自己找原因了。9 i/ N. G4 a6 G* _
. P' J, Z* v/ j7 p8 b' N+ X! \* ]/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
% d) H- m9 n2 }2 j& M$ j5 n0 c; l
. C2 X; ?$ q* q/ J% n BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
$ g! ?3 b5 r9 Z3 }6 j
+ A6 n1 j. N+ \6 M& b9 _% ~ 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
0 F% D. U" a( `- z5 f1 i% g+ l* n: T4 X
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -6 p9 M" G$ n4 o- ]
: E l$ a/ R3 K# n& B
9 u4 u- q& v; d; ?( Y5 r3 i) h7 f
|
|