|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。3 H* y- }7 @: F, h Z
/ ~5 M0 Q( x6 e# _7 s
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。: O) T9 `; q; J7 h
* B/ ]6 Y ]. i) f3 Q1 z然后是开箱子得到装备,在user.cpp下的函数。
8 u3 r7 ^% M ?# M& f3 F
* j5 n8 a& x' c1 V% Q: I8 S' ~DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子/ E' w! n d- p- c5 l. R1 B J
8 Q8 }/ V: X" G6 z+ rDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
$ l! a0 W; H. H+ W; x. b( x, m7 y- _2 @. x8 `
在这两个函数体下加一个判断就行了$ E. T" Y) H2 Y ]6 n
! i6 r) l: g# L& z- M if(itemElem.GetProp()->dwItemRare==300), B% f5 m) K. T( O: a/ R4 ^7 O' K
{) k# x) K1 D& s- B
itemElem.m_bItemResist=(BYTE)xRandom(1,6);( H2 J, u/ U8 R: ]+ A
itemElem.m_nResistAbilityOption=10;
6 J1 O( h! D& i9 L2 a: U }
. D! S7 B4 V8 q4 O) l% i- q$ {
就是上面这句。
8 A2 f) W/ n( `8 t- I; c' S: Y* @4 C' Y
至于加在哪里,不用我说了吧,就在创建物品之前就行了。
" _) m2 @& d1 {' x) y/ f
0 X* V' O* o' g: L9 ~
5 w( o& x$ N& X5 u- ]: }, t" @/ e
: N7 \, t0 t+ p; @' l& ~; e2 `4 M 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。- B0 y1 G4 J2 H8 a6 Q
7 P7 [- C4 f8 w# ?: E: G$ h; u; h6 P; ? Z
8 m B' A9 R# k! x6 j
9 T& l# o9 ^/ L$ S" ^& G F5 y
! j; r/ `- W3 b+ L: ~" j* f @
活动给物品的话那就模仿这里面的创建物品的句子写就行了。3 H. J, }" \5 G+ S+ f
) {; ]3 {* ^3 }, e. ~4 x
以上写法已经通过验证。不成功自己找原因了。
Z+ T' f, O! }
/ E) p8 C+ H- v- w' {$ q- w* e3 W( E///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// $ L4 }4 c+ q) N+ m
- C5 _1 S! S" E; H# e BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
$ r u: o( L; q0 @: M
& r: ~8 _% j' l 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
% R1 ] k0 N" R; @! b- w; D& z$ v4 m# y5 y* ^1 N2 j$ k1 V
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -# [' X$ d) x* n* e( Y) M; L
) R q6 F$ r4 o1 I* M# @9 h2 v- ]8 a) x1 k' p% [- x; O) Q7 c" v
|
|