|
|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
1 r k% | T: V. E/ S. A; A7 q. w; N
/ ?% H. w- F2 W) ~1 | 首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。+ q& T6 ]+ A6 W8 \! ~6 X
, d2 m2 \1 e0 k, s1 n
然后是开箱子得到装备,在user.cpp下的函数。 h; ]7 F3 Z k+ t, {
4 E. N2 ?( O; t5 A( x' z
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子) |/ Q* ?/ `& D3 f7 b
! P, {- Q* P# N! _/ T: ` p" G! lDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
" \" M( b( T3 ]: q2 t7 S
" A: j1 b$ t9 z+ d/ O 在这两个函数体下加一个判断就行了. ?( t: h( Q! P; l$ _
& N: N) X( K( E' h if(itemElem.GetProp()->dwItemRare==300)! m, C8 U, F q$ s
{4 \4 h$ s# Y: V
itemElem.m_bItemResist=(BYTE)xRandom(1,6);$ O+ o& o/ S' ]- D8 z0 ?7 K
itemElem.m_nResistAbilityOption=10;2 Y. P! i9 Q) |- z' Y! Y* R
}* u& ~8 A( p* ]; b8 t3 x
" M6 ?, F5 P8 }" m) \就是上面这句。
4 t* @7 ~' S/ ^, N5 N z0 D$ Z j: g1 v
至于加在哪里,不用我说了吧,就在创建物品之前就行了。
" d8 B% ]1 U. E/ s. F6 v ]- r/ B) N$ B, k
& P( @5 s ~. M( g- B$ U: w3 K% I3 X) L7 `4 [1 ?
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
; `0 }! L. T; T8 F+ E6 F/ c7 _( K7 Z% |3 K' m
1 y {1 U+ g3 ~6 l4 T0 } z% G
' v, z( u5 R- l1 v
) a/ M/ j6 @6 u+ j8 V7 R$ I; J" g& A! B4 i
活动给物品的话那就模仿这里面的创建物品的句子写就行了。
z1 q- A% t# F6 A |
, n7 e) [. g8 f& o以上写法已经通过验证。不成功自己找原因了。
% ]9 Q& |: B7 k9 d, u. ~3 G2 A2 }/ o" a0 k0 F
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
; `% {0 D+ m! u0 ]: F8 N" b
5 `. T# i% ?4 c; k4 m. S2 ^, j BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )* U. W9 o. G/ D H& C
8 S- g" J2 \% Y 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
4 H5 y4 L! L- H+ X- }
: U/ b( I( ?1 ?从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
_3 X( ^* |: t: I1 U# h4 @3 n8 q; ~! c: b' \
, R# ?' _! Q( e. z* k, s5 q- M
|
|