|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。8 V/ G6 `+ q8 X+ S
k |9 u; f" ~7 G6 K5 s
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
+ `- Y0 G X* k; l' Z5 z% S0 c$ \/ S, j2 j. Y# `5 C5 Q9 }* p- [
然后是开箱子得到装备,在user.cpp下的函数。
: X8 b& o9 D: O) a' h/ J( x& t" S! K9 {3 {: m- I1 k
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
: R8 P. t0 x& A! r- u" f
# U/ N/ S6 U6 IDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
6 I' r [' T; N" I, C
4 w7 q! z8 G9 ^- z6 G' G 在这两个函数体下加一个判断就行了
. F4 A1 a9 Q; K- N: z4 Q7 X5 x: g$ d+ _, l: u+ W% k
if(itemElem.GetProp()->dwItemRare==300)
X; l1 m: i9 V" C: v% |7 h! X {3 e) g* C* P" e) U1 r
itemElem.m_bItemResist=(BYTE)xRandom(1,6);
; j0 ?3 W2 S% }1 Y: b$ J# F* J itemElem.m_nResistAbilityOption=10;
4 e6 k5 m8 G9 p. Q }# m/ `+ k' B+ }! m% ?9 s, G3 E
1 S: t# T( `/ p* u9 }: {( ~
就是上面这句。
' k5 e0 K$ V( ?+ g% a
% H( h3 d {& ?# J( |: ^至于加在哪里,不用我说了吧,就在创建物品之前就行了。+ O+ @+ O6 K" B& ]
! L0 L: d( x4 W7 P* i/ p
% ` ]3 O7 n6 K! x4 |0 X. }9 W" e! s( F+ M
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。' t3 X n% @9 U5 B' f
8 m, o% H; D- ?4 Z: `' f# k0 `
) G0 y3 `( T! X6 Q' t
# _# d9 t4 g' b0 M( c
/ @4 d9 _4 Y3 |0 w/ G
7 Q; v/ P" B' l+ e7 Y* f2 q$ L活动给物品的话那就模仿这里面的创建物品的句子写就行了。
' t, H& o% j- ?- m: d8 Q) r
- E# @' y! q8 z1 u) U# V: E4 e$ Q5 ]以上写法已经通过验证。不成功自己找原因了。0 `% H* E2 x7 S+ u
5 C# j/ t+ z6 \7 B+ x- Z& Z///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 8 J* W3 Q$ q `$ Q. C b4 I
. ~) F+ n/ D5 o
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )8 f2 U! a* j0 e1 c
: o( T$ u+ e; L/ X+ r8 d9 A
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
# n$ K; a# f8 _+ u+ S2 [ q( k; K+ `( t- q
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- - ^+ \9 d6 k; Z5 Z
5 Z8 ^. J3 h1 H1 t$ i; U' K* V, w7 o4 B2 s9 p1 ^- S
|
|