|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
- B) ~3 X. Q: [# h% U4 F/ j3 \; Z4 T6 b2 Q; |$ V' |" I
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。0 O2 ^6 c) G9 v9 y) x$ l$ B
8 u$ }0 _; t- b* d3 @然后是开箱子得到装备,在user.cpp下的函数。
2 x b3 O: d& K6 g% g4 v: N% W' @ t+ c' O( K4 [
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
6 Q! O, M L/ {7 f0 C
; j: s* g, F- T/ C( \; g5 KDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
: m* C6 j' j0 U0 `1 C
& U( P. C" P; a: s 在这两个函数体下加一个判断就行了% Q2 ^* G8 Q u* ?; B! _
% z; }# n4 J, }5 m8 I- K4 r/ T7 O5 G if(itemElem.GetProp()->dwItemRare==300)$ ]9 M: I% O1 U& P1 P
{: O, v$ G$ W" l7 ~
itemElem.m_bItemResist=(BYTE)xRandom(1,6);8 R- E, a! @3 ~# h0 v E f
itemElem.m_nResistAbilityOption=10;9 @9 f9 a& i: n7 G P: Z
}: h: _& C9 I( O8 p/ E, U9 h0 w
7 R- {1 R9 e' R: S/ k2 }, z7 @就是上面这句。
' [/ N2 b' ~& f* A' L9 H" p9 r& x4 A: y: H4 i
至于加在哪里,不用我说了吧,就在创建物品之前就行了。; C$ H/ g- X" e: R; d
$ t' u; C3 k8 u$ X; w+ c% ?
5 x( K; F& n3 q& g) W7 q
0 E6 {5 p0 f: @ 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。* Q4 a9 u2 h( }/ ~( ]( C
Y/ _7 u M9 N% r d8 [8 k5 c0 g
$ Q$ E9 b7 W4 w$ \0 ?/ g+ Y7 f" ]/ H0 g* @
! [/ U4 D4 b# ]/ n( E6 V- e$ Q7 K& f- a' Y' f- U
活动给物品的话那就模仿这里面的创建物品的句子写就行了。/ _$ ^# t7 H6 Z, @, S( `" y
( \ ?! K' }. e) z
以上写法已经通过验证。不成功自己找原因了。( Y1 A( A% S# X: [( o' d, p
% T& q o% i" _. ^' q f/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
" Z! Z B) R3 q. M9 D
' l1 C; q* @$ y) O4 \6 w BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
& ~- p0 Q; K# M8 ^+ i. b# g% ~
) ^( _( t: L& l9 H" z' ~ 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =' K( a' X0 ~3 E% Y1 v
- f, k) i% w& @ r7 r7 m l从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
. m& D6 n6 J' D8 w8 V2 t: S# h
$ d5 o8 j' C7 ~) H- Z
% |: A' h# E& C! @, K |
|