|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
, G7 T8 m# e- m- w- O% j& e
' i' R2 m9 |+ T( }4 l' O 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
4 [: ^, } c' O# U9 ?1 z; T% R) v; |+ o% d; o
然后是开箱子得到装备,在user.cpp下的函数。
3 M. b6 E; [, `6 z/ z; k+ ^. p5 V$ _# X8 y
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
, }& P! }' X% _
! b" F+ o. U+ H( n2 aDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
0 @9 _$ `1 n3 N3 O3 g4 `4 ^. U
, O8 L- ^% w# D2 Z2 c: Z 在这两个函数体下加一个判断就行了
) L8 A& T m2 Z- b: V6 J% d( ]2 p% |" _- N$ @0 L$ j c6 t$ Z$ A
if(itemElem.GetProp()->dwItemRare==300)
) l4 _1 R" c! t R0 W- L. F+ \ {$ g8 d/ k% V7 V h- |
itemElem.m_bItemResist=(BYTE)xRandom(1,6);: r) @0 W& j8 O
itemElem.m_nResistAbilityOption=10;
R# `( n1 R, b0 t7 v }
+ }4 j, K6 M @. V
% `+ s! K; Z5 U" I0 C就是上面这句。! `# v0 E0 B4 [
4 o$ ?# n5 N; M0 P1 W至于加在哪里,不用我说了吧,就在创建物品之前就行了。
4 c* k8 F7 }% n8 y8 s8 T: o4 B* Q4 d {& M7 d
" l' I, _& S. {8 d6 N& l, q
) j, s& h6 |2 \+ H+ \! W6 I) } 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。5 K7 S/ n6 |: l, i0 H+ q" p! l" Q
) D: Y9 A) v- w D+ G+ @% Y. A; W0 h+ [: _
& B ]$ I' u1 b: V
% R+ [" [; k/ L, e9 e4 ?
$ a; |! p* |8 ?, t. l$ _4 _! G活动给物品的话那就模仿这里面的创建物品的句子写就行了。' ]) c- Y P& b. D* u7 }
1 c6 x" B1 u6 o; _
以上写法已经通过验证。不成功自己找原因了。' i$ g& d/ Q l; G0 c4 T6 j
3 f$ P5 X3 K6 m///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 8 X- d/ [& ]1 ^5 _
0 A. J% D) N8 I1 k- u* Y' L* ]
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount ), Z' h( X4 D8 H2 ^. I2 i
3 @ N3 q* R- F3 H
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
6 Z* u5 L1 g, ^5 Z9 y- y+ g
/ Q) i2 G9 d+ j/ e' Q* i- {从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
* n+ ?7 C( h* [0 @; _ m4 U% x
# {5 y. G K+ h9 R
1 X2 k) F; t. U* o- z( ? |
|