|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
, S/ F) _2 b( l" |5 O
! x2 g0 N, S# I- l' Z 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
, o4 U8 P6 U: C# T+ o1 Z
/ c6 h0 {, ~4 b1 T+ _. h然后是开箱子得到装备,在user.cpp下的函数。( z& p: @( C5 f/ }
5 s* a; u; _) o" q" @# W8 p, t
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子/ N) _! w* F, n- V9 i: d. s. Z
6 H7 K# P2 [: n+ X- c5 T5 A+ R
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
; `2 f; D8 r7 P9 Z# g. S3 j8 a# V+ i
在这两个函数体下加一个判断就行了) E$ d6 `+ Y9 B. p
" o9 f3 z4 D9 j if(itemElem.GetProp()->dwItemRare==300)
3 R& \- G/ B; v k& `7 d; I {
6 l" Q+ G8 T; }- ^+ [( N/ n' I5 T9 N$ L itemElem.m_bItemResist=(BYTE)xRandom(1,6);
& e0 f, o6 z( S+ D1 I itemElem.m_nResistAbilityOption=10;. i& H4 W" G% p1 e9 N/ u# y' |" b
}+ C! i) H, `7 }2 P
. g8 E w" M# ^$ p, c7 j
就是上面这句。
3 y0 H& m1 w' o" c# d/ @, Y. Z+ U- y$ X) |( s+ X5 Z
至于加在哪里,不用我说了吧,就在创建物品之前就行了。1 `* ~# W: V! ]. o* t0 z, l& z
z' |( q! q( [% D5 `
! p- ^6 a( x: Y! Z9 e) u1 t& Z+ O
$ }" l6 Q/ K! }/ ]$ }
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。4 [" u) i; Y6 w- q! ~
. @' [! L; R: h. X; m
; v2 y$ H% o) a K% L" s
! c8 g% y' G# r# B. x7 N# {: B/ N+ _. s, P& {8 P$ H
9 I$ h/ T+ b) y H5 v0 u
活动给物品的话那就模仿这里面的创建物品的句子写就行了。( F- e4 l) M: |8 X- O* f
# V+ ]- q1 P) o. b+ ~1 C; k
以上写法已经通过验证。不成功自己找原因了。
; J4 B( Q4 V+ \: Y3 E/ {; K
" L8 P; {$ R* ?" n5 }///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// $ u* \5 `7 `% o1 D4 `
5 @# {. M+ p v6 O
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
9 F9 y! B, z: y! a
) t0 E% ~3 t. g6 Z 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =; v3 D' P5 V' ?' Y' B
3 z/ H* c" \# |+ e' h3 p
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -2 c, K# @ b6 L2 j0 l- F2 t
9 U0 S$ _3 C. i' {" U
7 i3 q! B5 Z( n5 X, H |
|