|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。! U' s" v5 x4 J8 W0 a; o7 I7 ]! d4 V
. s. k# y; O3 G0 q" k2 h 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
, W1 R: H, k) E3 v
4 |# a0 l! z! ?* f5 O/ v然后是开箱子得到装备,在user.cpp下的函数。$ k0 r- ^! Z3 t4 Z# a
# I7 C I: P k' E' UDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子+ W9 ^& O7 ^2 p1 @
$ G4 ~) k I9 ?DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子7 _; ^5 `. n) }' w: H
# T0 K2 |8 v" i* U- t 在这两个函数体下加一个判断就行了
5 D0 J0 `+ a2 l, m/ \) w% p/ [
7 i& R2 w# V5 w) o3 {9 q* H if(itemElem.GetProp()->dwItemRare==300)% o* |. N& B8 R+ a6 A. L1 V4 F
{
& a, c' ]. H3 f itemElem.m_bItemResist=(BYTE)xRandom(1,6);
9 b" t- k4 Z1 w$ B6 I itemElem.m_nResistAbilityOption=10; C& T, F& G6 H4 v3 i; \
}
! ^- \/ F+ E- K n* i
W8 [8 y, Y7 u. e' G+ g* X# N就是上面这句。
6 Y, ?: Z$ Y% T3 R) p) ~
) G6 ?4 d- @2 l至于加在哪里,不用我说了吧,就在创建物品之前就行了。
& D4 o! G n5 T, x$ ~
; B$ V. A, ]# ]' ~9 ]! s0 ?: v2 i
, l& w; W* Y$ g7 o. I
, _' }) O' S) h9 M r 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
W( A. [ h5 Y1 G; c$ p w
, ?+ w2 G; o+ ^
. f N6 E7 ]0 e$ U/ A
* }/ p- t7 w8 h! N7 V& t( Z% J8 |% ^2 Y' C
+ n( @; V* T9 A% ? C活动给物品的话那就模仿这里面的创建物品的句子写就行了。
6 [: [: a4 K; j1 ~5 z
+ ^" q; K6 c; R: m3 r2 {以上写法已经通过验证。不成功自己找原因了。' u; i. ]/ I9 o9 Q# }1 U) K" ]
# h* w3 x- h. E5 D/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
( H2 q) T% v3 i h$ c3 q! `5 `, G4 ^4 K$ ]) ?1 Y6 f
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )$ L: R5 [6 @/ F+ G' P* b$ T
. Z, `" r1 C5 ~& { 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =" B8 Y3 d# ~0 i2 L" g$ {. Q
F; n+ p4 X1 P7 S% \1 v从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
; E. w, [) k X6 p5 R6 e: E! C* W: {0 J/ e7 z& z" m( j
- L7 f7 @) ~0 l: Z. k6 H7 c |
|