|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
; r" J& h0 E/ y8 U. l
8 ~- @, Q: r F. F 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
( X& [5 m/ \" |0 K" |6 M1 w1 W1 g# r
然后是开箱子得到装备,在user.cpp下的函数。
$ s3 x* V0 n3 Y1 N7 l4 {
) [* e" r+ A) K0 v/ d6 wDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
; ^7 [0 e, @! a# M
: l9 v6 @0 b+ T; E; W8 {DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
5 a6 q, X, d0 |- s7 A$ a$ X/ a# n9 ^' [4 f/ K t- j9 r
在这两个函数体下加一个判断就行了
, \2 o* ?5 m! x6 v: k; c6 s6 Z V K- s, t$ O+ E/ t
if(itemElem.GetProp()->dwItemRare==300)
7 f: R" d$ q3 u) p; U" t {
8 A" @1 _5 z- a+ _" L9 j itemElem.m_bItemResist=(BYTE)xRandom(1,6);
- v4 c7 `5 Y0 `! D itemElem.m_nResistAbilityOption=10;
$ j( ~. [1 @1 Q3 y& ?- E }
$ A5 @6 F, }& A6 ]4 G6 J
% X \( S- u4 E1 I6 o就是上面这句。- J* j* k3 ]6 b$ M2 e! L
7 G/ O/ Q5 `9 r7 W/ z至于加在哪里,不用我说了吧,就在创建物品之前就行了。
- d8 B: T) J' \; s0 k
8 N' h1 U% s8 |6 Y
: ^4 O9 f; \+ w, M6 _5 D1 W- l" a/ a8 G9 t
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。/ b; T& i8 K1 T$ Z
/ V# V9 G! _2 f, b" h1 j( J3 k4 a, [7 ~
2 u, S' S- b# t9 z/ ]& ~0 t
! D& n* ~" h0 {; `( X, S. x+ I5 T0 T
活动给物品的话那就模仿这里面的创建物品的句子写就行了。
+ u' F( s6 b9 `/ g8 R8 G/ K+ {' B e: w
以上写法已经通过验证。不成功自己找原因了。 _$ R, Y9 X# i
- O5 B- u# f d% v. t///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 6 U" V! N) \5 {- c: o
- Y- ^% _5 P% g5 D0 ] BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
0 M- N* Q7 j1 `4 j
: b& q/ l8 j3 M# q9 |" l+ ?! U- s 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
6 ?" U& R5 {3 n9 |7 Z9 g* M
. m( I; I* Y9 `. r从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -/ d9 o5 a0 {3 R5 }0 F7 W' p/ R
$ L9 E a/ S; G8 r2 z8 A
) q9 `& X, Y* w$ C. d1 \8 k" L) c |
|