|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。4 ~1 Q7 L7 V$ l7 n' B' f3 e. ^
2 e; J' i) a0 k; N% |) r s9 r
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。6 k. a% E& z6 h; m
, Y7 e- e0 I% v w; s然后是开箱子得到装备,在user.cpp下的函数。
* @! k1 }+ L3 N" g* R
6 x" N8 W6 Y( A, W ?2 n. GDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子2 j* _* o3 x! r& U; p
. U4 `( G; f! V8 |
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子* Q* @1 I; g0 u, L. r: @5 E
$ k8 R' t, T" ]3 z
在这两个函数体下加一个判断就行了
' x4 r( c3 U! `9 N6 v
+ b5 T( K$ H3 \7 V if(itemElem.GetProp()->dwItemRare==300). O8 l) a/ F$ g0 U1 T
{, I- t$ x+ a" p* w1 V
itemElem.m_bItemResist=(BYTE)xRandom(1,6);
& C1 ], W. r$ c7 P$ R2 C itemElem.m_nResistAbilityOption=10;% v5 K( g% K+ R' Q
}
/ i) W8 `, m% l5 e7 {# D3 R% T- ^# A& r* ]
就是上面这句。
7 H! \* N2 w% A3 U7 [" l1 _# [
. f1 `0 @0 A8 W' _. Z" \" W! }至于加在哪里,不用我说了吧,就在创建物品之前就行了。
. \' }1 R9 r3 I$ _* ~) D7 s* y9 ~. a6 A P- v
) K0 t/ \4 K# a, [& M G! X/ z8 h* x
N# R, {) u& C+ S0 n+ A 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。; Q2 ^, A0 Y/ e( g, p3 ?
9 }- J, y1 s# S, C- T
' I1 p% j6 t% S; E; W& r3 E. m8 P& b, J) p y# k, C
+ l3 h, Z; C, ?1 x# Y2 |( R
) p: c! a8 I; C- @5 O- B* z活动给物品的话那就模仿这里面的创建物品的句子写就行了。3 H& m' t# Z: k+ j
! ? `" C8 t z7 {$ ]) w+ p以上写法已经通过验证。不成功自己找原因了。
+ t" @" p# e9 G% D- _9 Y( ^7 Z, [$ e) Y' h. o- ^
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$ ~( y! l1 k! d2 c- P* [' I) O/ R, ?6 n/ w6 w# X( y" L7 z$ S
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )4 m$ m9 Z6 j( C( N% [! x
q3 o3 |/ n, E
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
! v6 T" D+ B) I; z- ]9 f9 c* n
5 ~/ l; z- [1 e6 R$ U z7 l* I从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -/ \# a* R" U+ s; K: t4 S
/ l' S8 D$ ~0 x* P) I8 e
0 _. X; G1 o0 O7 ]0 ]7 { |
|