|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
& e; T% E+ K3 u+ m
4 B$ ^8 I$ h) F( R, b) H 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
" ^# h% P! B3 c; r( L: z
, { ]6 M, P, \然后是开箱子得到装备,在user.cpp下的函数。
1 m8 m" d: X* H) \* O6 ?+ I$ _% J2 L& v P# X. r! k; U
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
6 ^7 E) x7 U3 ?, ]. j* }$ B% d/ D" m$ q6 R$ ~8 d8 D- z
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子, c. y$ l! c; d+ {7 g3 M
0 U# W3 R" B% @
在这两个函数体下加一个判断就行了 N- m( q2 l& U! q$ Z+ m
7 ?4 n) l8 D6 n if(itemElem.GetProp()->dwItemRare==300)0 e2 ?. s7 F; L" G+ F/ W
{
' C: q* o: Z3 ~- {6 F) P itemElem.m_bItemResist=(BYTE)xRandom(1,6);
J0 p8 B" w3 }" G1 G1 Q2 \ itemElem.m_nResistAbilityOption=10;$ H% @' [3 P( I' E
}9 |& y& \4 K' [
) d) n6 B0 M' s( a; l1 j
就是上面这句。
7 N- |% s! i& j6 `: U" V' w3 e3 T; u: H1 @; C1 O4 ? H
至于加在哪里,不用我说了吧,就在创建物品之前就行了。5 s4 x# z! ] V) U
- v$ t8 g, ~, B# P' i
& F8 T" m9 q2 S) K. W! [
- z/ r4 f* C% q$ f: i/ W( r& a 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。1 O k2 k5 W- T4 K: g1 O% j
" i1 Q6 }6 V5 t
3 U p, r/ [6 p ]- {: G. ^% g- k+ k n. A3 f% O, m; i2 r3 C2 L
- C3 W, ^! S f
5 B1 n( W; d: F, h) W0 J活动给物品的话那就模仿这里面的创建物品的句子写就行了。
: x/ y9 f9 A( n `
+ O {; t7 k7 y7 g以上写法已经通过验证。不成功自己找原因了。) x) v& b F- I- u* n! Y! D
2 @8 }+ A0 A% b///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ' e1 b! r1 G5 E2 T3 i
- ~& o0 z* d5 `# d BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount ); b; m" ?! T; I/ D2 K$ E, a
1 j) \' }( x0 o& T, W1 d: q( [. Y+ D 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =$ c7 m1 y* b7 d# Q, A5 T! v% j9 a- }' f
+ A! y* d$ J" P/ Y从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
; F. N* X) w1 `* K0 B# p" H: S* c2 x) L2 A/ F! H2 Y7 A& [+ L
# O8 y7 r9 F, i. y |
|