|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
" y* V. Q" l6 L" ^+ r6 f. w1 m4 [: h7 I8 J0 M5 u
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
. K, V$ k; _8 S- h8 q1 P! Z* f0 r6 [+ m, v0 W! A& i
然后是开箱子得到装备,在user.cpp下的函数。- E/ J) y$ a! r
! Q, T+ `& ]0 h
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
9 v8 s3 L; Q6 y. I0 f* t+ V* V& }0 o; e. z
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
7 [2 e+ {. w, f. r" I$ T/ u/ r1 h4 m1 @3 }% }. S/ k1 E- [, J
在这两个函数体下加一个判断就行了; U/ U: k1 ?/ O4 n
; ?9 Z* t3 G* I' W) H
if(itemElem.GetProp()->dwItemRare==300)
" i& U2 c. s6 k- }6 N {. c2 L7 v, t; u
itemElem.m_bItemResist=(BYTE)xRandom(1,6);4 r1 Q3 l: I0 L/ o
itemElem.m_nResistAbilityOption=10;$ B0 @1 P$ S; S+ x/ z
}% w, I& _' D) A. Y/ n2 }" {
3 e% p/ s- o# F4 j( C% v9 N! M9 J+ Z
就是上面这句。: f( h& D, D, u# q
" v% J8 H9 n* G6 d
至于加在哪里,不用我说了吧,就在创建物品之前就行了。
) U' \ q, i. a. M9 ~, f' Y4 l W: P4 E; ~, x& ~
( n8 n; }2 t2 M, j) I" @% n
) v5 e. f9 X" z8 |$ } 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
) Z! `* |7 N6 E* } }3 v4 H! m) g2 ?
, v* o, G) h( I* h5 K% C( @3 }9 D# `. @
& T/ S7 g5 t9 w$ N: G, N( n+ t
* ^& b6 N* P9 {& c2 X [
活动给物品的话那就模仿这里面的创建物品的句子写就行了。 A7 L+ A# P+ g- K S. u, {: a
1 J! k( E0 H0 I5 M: Z
以上写法已经通过验证。不成功自己找原因了。. t4 O' S& y" C: W) T5 V7 O2 c
: V4 c4 }) s/ P/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
' e* L7 b% I# F Y1 P
{2 c8 i9 o& [* Q8 G BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
: Y/ B+ z, ]1 ?1 M
8 Z! U' v& p6 ?) p# P 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =. L9 w8 J. k1 n7 O, A! m3 M
0 W3 E! P: W( u5 }- Z0 o
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
7 g, T4 r+ k, S/ n) A
% @9 `6 J9 y4 S0 p3 H
# T: E0 C- W" g. R3 E9 l ^ |
|