|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。1 k/ {" [) @% E
: c3 N9 B% x$ F, h
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
3 A+ o0 i9 @! B0 H- @- D! @8 n; Y( c, Y9 _- o/ u1 e
然后是开箱子得到装备,在user.cpp下的函数。/ D! B* ~0 Q) O. a2 s% @+ W4 E4 x
. e& W$ E0 Z/ Q. a* ], \+ ?1 CDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
% J* D' C% N" B. J" u) A( L- d! `" X6 g/ _2 }
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
* s" `" T4 D8 W* d) o4 J! K3 z2 F" C; F" V. z8 l
在这两个函数体下加一个判断就行了4 a8 {7 b& i2 I! H t `' p. G* ~
8 f0 t- m+ @ u/ a: Q
if(itemElem.GetProp()->dwItemRare==300)
; A! ?; V2 _! h5 t {
6 _+ S, m1 ^: u7 J itemElem.m_bItemResist=(BYTE)xRandom(1,6);
U" }2 t5 o1 N' k4 P' W( O itemElem.m_nResistAbilityOption=10;
4 A/ h5 Z R' U5 l- ]: r7 ]9 J }
# t9 T. l5 j" u" v- c. u' q( q7 D3 h, Z# O# x
就是上面这句。 V' y+ G5 Z2 w! F J0 {# T/ p2 T
8 |' J( ]" q% @0 N# u至于加在哪里,不用我说了吧,就在创建物品之前就行了。
, i- P- m- L) I0 M" I$ H+ ~. X! v. v8 I$ T
# t6 @+ d0 U3 c7 \. m$ g6 N+ X. n1 x4 f! I
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
1 o1 g; p& t# t6 n9 Y. @2 B; z, g+ V: k" M$ D! o' u
! ^* f K0 ?2 ~7 z3 p8 G4 ]) H* Y# J
" N8 ^$ {+ m4 I, t) B# S% [! {
: e# M3 N4 @8 F$ R9 h7 F! Y
活动给物品的话那就模仿这里面的创建物品的句子写就行了。7 q& D: r) r/ Z1 j
2 w& V5 @$ v& s4 t) O% G以上写法已经通过验证。不成功自己找原因了。: c1 E. [- m/ X
: ^0 s3 J; j1 C" w( {% m( \' p& Z/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- H9 F l: }+ o3 |* Z7 _6 b% B2 X+ k/ a. i' j; `
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
/ ]6 Q3 i* w Y
* u" j" F6 _, j g5 I2 i 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
6 ?, `( v) V: ], h1 F$ V
/ K6 s3 T, J1 [) a/ Z' a$ q从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -- Y0 n" F* |' ^, h
- W) F1 F0 i: P
+ m% W ]* P( M* e" ^' ~) B
|
|