|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
' y, o2 p3 [8 }9 f
% W- Q' g" @# n$ | 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
1 V% O5 i$ m/ k& s
! u; o7 w c7 L0 g( P, k4 x8 p然后是开箱子得到装备,在user.cpp下的函数。4 G+ q/ K& u! c
% u/ ^& A- F9 K2 A- r7 I: [4 iDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子6 X2 H1 u# v1 S' ~
% E5 o" t: |. G: BDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
( M& M; J! I: r# p+ ?5 m1 R% q1 u1 r
在这两个函数体下加一个判断就行了* M5 Y) `9 a8 U- S; a
, {7 {; [$ h3 m5 K7 i if(itemElem.GetProp()->dwItemRare==300). f, D6 K( w: p- Y; \
{" X9 b4 i) n# G- \8 H7 G7 S
itemElem.m_bItemResist=(BYTE)xRandom(1,6);9 v9 U7 O: d6 e, B5 w) M
itemElem.m_nResistAbilityOption=10;5 x, l& ] b& D3 H& v+ ]% X2 f3 U3 i
}
. p, W H2 Y8 y* `; A6 f) C: `$ V7 Y: F
就是上面这句。* x4 t5 L, d, I
6 U i4 e+ I1 S( J( V
至于加在哪里,不用我说了吧,就在创建物品之前就行了。
* s4 h* @! h8 r' A( ~1 b- `
8 ~0 s' S0 ~8 t9 @0 y8 c$ T L
2 l$ T- M7 }; K6 T0 A# t( H( j1 d& n3 L
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
! C4 A3 K, ?5 [7 P
6 |7 n7 U6 x H: h
# n5 h+ S5 |& Y& ~* _, X7 z6 i& x2 J4 Q, j: e' N
C) u! D5 e f& c6 p" N; r, M5 M9 j5 W [1 T6 i
活动给物品的话那就模仿这里面的创建物品的句子写就行了。
$ u2 F |2 }( {& R8 ]; r* J5 X0 B" o: U- z3 H3 Y! J9 z
以上写法已经通过验证。不成功自己找原因了。# |7 z6 M. C. X5 ]
8 Z" B! l1 [& \/ {* D: B///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// * g- v( d; C) i+ _3 F" j: V
- U2 ?1 V9 |/ W BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )' g5 {! Q( L2 v. h0 V; {
8 Q' k% S! t- w7 Q
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =! V4 E+ L. g# u1 D7 ?" H9 Z/ Q
6 _' d- h+ u7 D2 e2 i6 }
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -/ o6 z0 a5 [' ?" d* b
, T: u A( x( Q, y: p
- o& g; d- j" a% g2 g9 d
|
|