|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
6 S% _) b" V. v/ y
4 D! }$ [ _0 a 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。2 m+ j7 Z2 G' |( T; ]6 S; ]3 ^
; \9 w. G- c- ?" o7 c9 _- {6 x: G k然后是开箱子得到装备,在user.cpp下的函数。
& {6 J4 Z* F: k+ e. B# Y5 p* n' I
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子, y$ S+ C$ L& B9 Y
, }- m4 f C1 b& \( [3 W# c
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子% S9 X2 e+ @/ _0 W
- q4 c2 K8 z) u* W* H0 s& L 在这两个函数体下加一个判断就行了
3 l+ x; U1 u) |9 V' H5 X; Y% N; p
1 X# Q0 K6 H* t+ e8 r& s% x8 U if(itemElem.GetProp()->dwItemRare==300)' y$ B5 ?5 l- E" e" x
{ t* y/ E& c6 t: ~5 f: u5 t; e( [
itemElem.m_bItemResist=(BYTE)xRandom(1,6);: O% T, p. _" Y w" V! p
itemElem.m_nResistAbilityOption=10;
5 X1 G7 Z2 s f5 d3 x! } }7 ?- J! B7 ?( ?# {( E
, a V$ ^3 ~! }就是上面这句。8 s) G! r" ]) K5 W% H0 l
! G5 Y6 c1 o4 f0 ^
至于加在哪里,不用我说了吧,就在创建物品之前就行了。& U* i7 h$ P' ~
6 Q( r0 n$ P* b3 `8 B! t
9 O( |2 P. t3 j: p O' H
2 j7 i8 m9 z3 _ Z 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。7 w |7 M; p! R* l: u
* V, A0 y. p! z% Q
* r/ e$ G I6 r- B
2 M# M: |% m/ x) C* W3 I. f
% ^7 K; V- x" q( D6 ]! ~! ?4 G" C) k0 V( }, ?5 p+ U
活动给物品的话那就模仿这里面的创建物品的句子写就行了。
+ t) K* |1 p" m# T$ k1 P6 G7 }1 C$ A% |/ W4 X6 J5 ]) H
以上写法已经通过验证。不成功自己找原因了。
/ B/ V0 W* O( }( T7 k0 Z. N3 e5 K0 l- M9 S2 U) [5 A0 u( x% o
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// : P0 B9 ^ ]: L5 f; n1 p9 X6 k
6 o( O, O' h$ h* N8 k; b1 h/ \
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
1 O) |8 P4 |! C/ e; |2 c* {' o$ r9 q# _
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =6 Z7 `8 Q* K+ [8 y2 l* J
2 Q% U& }+ y" f3 |9 H+ [
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
* N: e( e) w* b0 } W$ i: }: J0 O4 |; o; J4 {% P/ J
; |% Q+ c+ S" ^3 N |
|