|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。 m$ g7 O2 `7 ^+ u4 H* k8 Q9 M- ?
( e8 C* u/ E' n' z3 l$ i 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。# n; g* r% C2 t
1 j9 I p8 X) [& T) f然后是开箱子得到装备,在user.cpp下的函数。
; S* L7 X! G2 w @1 A
3 d; ?% v3 q6 ~1 gDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
- s$ Z; X5 M5 X6 c2 p1 |1 X/ T {8 h/ _1 B6 [0 F2 T
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
( }/ F: E4 k* Z3 b g( |
: M$ o, h$ D1 }) W: }* |! e" \ 在这两个函数体下加一个判断就行了6 F" o* u r5 r9 c6 R! B5 K% k
, c3 n6 S+ i4 P0 Y% T if(itemElem.GetProp()->dwItemRare==300)1 Z- q( \# ?9 i E& U2 V# u
{! J4 F J3 @! f: g
itemElem.m_bItemResist=(BYTE)xRandom(1,6);& P* d& i$ R* X @: l% K+ K
itemElem.m_nResistAbilityOption=10;
+ o8 E( x. [. |2 z. o( D! ` }7 U" h8 [& ?' A3 c9 Y9 g
, x* s @6 _) E就是上面这句。0 L" z3 X8 G0 @+ O$ ^: t% O+ G
; j( `: Y" B0 E4 e2 E
至于加在哪里,不用我说了吧,就在创建物品之前就行了。
# ^8 D9 {$ L- Q: A; |' h2 ^. X' a) R, @& R
7 f' i) Y& h$ [ K7 r. Z" `
# s- f% i6 B1 y& [3 @
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。. ?7 Y: |& I5 |$ p( h1 o( s, h
& z" N% j% u ]9 E
$ F; J6 D9 t; [/ @; w2 M0 y4 D' s4 X& B! v, r
g' X/ T8 }- V% c6 \) O& Z F0 t* l9 j! m3 z6 v
活动给物品的话那就模仿这里面的创建物品的句子写就行了。
8 H z [6 U/ C' b2 O$ l O) m8 z- i/ \; e' G/ U
以上写法已经通过验证。不成功自己找原因了。
* f8 w, {5 O$ _8 l4 R& c3 K# V% s! r9 m; M
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 9 g& C2 X6 ^ q- c' c
) _& `$ Z7 H9 I0 g2 w5 ?
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )- V7 b0 Z1 o8 X* y s' {
* E2 @5 E7 a9 V9 e& j 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =7 _2 _3 A- [% ]3 @& d0 C
6 j' v4 U/ g& P0 L8 f, X
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -, ~+ o8 S5 {! ]3 m5 e$ |
( I# y9 S3 ^ f* ]0 \0 H! i; i- S+ F9 m2 |+ O
|
|