|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
4 }8 ~, m" l1 J+ o7 x& o( U3 ?) J+ D% @& x* b- Q) l4 G
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。. K; L9 n+ k! s& @. I
8 e a+ E7 { B然后是开箱子得到装备,在user.cpp下的函数。
. c; ?; B' q- m. U& e: |0 Q
' X3 ?' ]- o8 C+ R: C: FDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子0 d$ A0 m, y+ G* o, U
3 A# b0 O, j# f& ]
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子# K; M: P2 r0 C& |! f8 d0 m! }
. \) }$ Y+ I) w1 x. O# y: O" \* R6 C 在这两个函数体下加一个判断就行了
+ m% E3 a9 ?* A2 K( q: z" {, R; V8 v( e8 X+ }# Y( g% W
if(itemElem.GetProp()->dwItemRare==300)
2 p! L2 q3 @! b {1 ?2 @1 v1 k; z1 y% z
itemElem.m_bItemResist=(BYTE)xRandom(1,6);
+ q3 O" l( P; l' A. b1 {5 e itemElem.m_nResistAbilityOption=10;
* m$ V5 q; \9 E, g* V! E. L6 J Y }
0 C% Q; b% k" o" r2 ^' t0 X( Z- M( j* W6 @; G
就是上面这句。% b( H9 j% a7 ]
Y" [$ Z1 J3 f. r
至于加在哪里,不用我说了吧,就在创建物品之前就行了。# Z/ ^7 d5 G2 P
$ i# l: S6 }0 l0 a r, a0 `1 P% a2 c* g2 f/ Q2 s* U/ K
( @) c& N/ u5 e8 x 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
4 T( Z; z% R! A$ T# C1 l! q- P. r7 P. W# A3 ?5 |
$ E! E2 e8 K$ V" ~/ }1 M \$ E t3 |0 Y0 g. i t7 r. H
# F" E* c5 @, d& I9 v$ I M) ^' O, m6 c+ S3 O0 J
活动给物品的话那就模仿这里面的创建物品的句子写就行了。
8 i4 p: k, v% h' R" M) @* J' m k3 C/ i* z+ R
以上写法已经通过验证。不成功自己找原因了。
- v* }1 u, z* @ I. ?; V
( q5 E% d( M' E0 C2 j///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ( P/ E3 N$ F4 V5 P+ X
8 ?8 A% m. e( w4 j& @; D b( |) f: Q
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )# R4 q: x- r+ O! g3 ~
8 f) g0 d* D6 l$ d# S9 w# S5 q& K 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
& A! y T, q; ]% _# Z5 L0 M( ~% C# ^) M; _+ I
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -$ _: S$ W3 i7 X" j6 I
2 p& w* Z; g/ v
9 x: ^% l d# Z5 T' J2 [/ r) k+ _ |
|