|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
. e$ T2 ~ L) a) t! K- c* O
# W5 ?' X1 \, @ p$ F; v 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。% t# Q1 B# N& u' s# m
0 c; j: D0 A- B( a1 g3 V) q
然后是开箱子得到装备,在user.cpp下的函数。; l+ X$ E1 a: d, H3 ?+ p) R# p
8 e% c7 T X( D; |" l" \
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子3 {# J8 t# L8 \0 j, h4 Y
' S0 m; K: R- ?- @1 JDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
& Q3 ~& y! v4 H
0 b5 j4 M6 y. Y1 E 在这两个函数体下加一个判断就行了* M: g h' C7 M, o% C& d
7 X' a! A0 z2 e8 B5 f if(itemElem.GetProp()->dwItemRare==300): c5 \8 H: X9 a/ _) d* D
{; W% R( |; w: E2 B/ [
itemElem.m_bItemResist=(BYTE)xRandom(1,6);
8 C( @1 k$ D) ` itemElem.m_nResistAbilityOption=10;
! c& P1 J! _6 k& M+ |; h/ w3 Q }
q& r1 y6 j4 `& F
, q" u* i0 e- b- k" R& s& v就是上面这句。 r! W" |( Z7 g
: B( `# O' W5 O% _8 H, A/ }6 M至于加在哪里,不用我说了吧,就在创建物品之前就行了。8 k: k: f( @/ @6 s9 g
7 d) G6 S8 R: T+ g
! u& j5 w( B O7 Z4 Q+ k- m s
% |$ l+ R2 w" E. S 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。( T$ ^# l9 `+ S. j# N; R- Z
; T/ c; H* ~6 s1 y$ n, y: I
0 u# _/ G1 o8 z3 f2 B& ^, U9 A
3 z& C3 O; p! z- @
0 b; j' n6 q. {" Z$ I
: Q) M/ `6 F2 z7 |8 s* M) M活动给物品的话那就模仿这里面的创建物品的句子写就行了。
& D+ l: q* S m( N8 ^7 x. N. O. B! V' l) T3 U: }
以上写法已经通过验证。不成功自己找原因了。5 Y, d* J! J+ z3 m
/ q/ ]% U5 r1 C. l2 @/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- Q b+ Q$ c1 t6 V2 D! g% G" W3 b1 R; K1 V y/ q; f
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
. q7 P* {) Q" o' v7 q/ I/ T3 G. k& B! c& S2 m
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =3 |: K5 X4 V0 J* ~! ~) |, I
1 P/ p7 g; I; [% q: k& s从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
; c; c; _) u. w7 Y5 W2 L
$ z& O) ^; h! D( R4 z9 F" e4 h0 k6 w; B, N- i0 o
|
|