|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
0 ~3 s1 H+ Q' X! j6 @ o* P# [8 l$ I. }% ? O8 \
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
8 n! f2 Y% _. n$ j! c* @
& ~2 t) M k: ?3 ]然后是开箱子得到装备,在user.cpp下的函数。- Z+ T4 f* W2 U4 P" b' n0 y
& n* d, p2 H7 X) O8 k9 M6 S. XDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
# v+ L9 A) Z+ V! [4 Z5 K
1 l m/ f7 E6 m8 V) kDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
6 U9 @: i. K2 }6 ~# ^ y, e
( B, u6 \5 E `1 A' V 在这两个函数体下加一个判断就行了
; V8 g ^4 C5 d5 Q# l1 o) a+ Q; y3 [
if(itemElem.GetProp()->dwItemRare==300); C5 C+ G! V& x( O! |: I" r
{! y5 H1 s! z, H1 q% g# q+ {
itemElem.m_bItemResist=(BYTE)xRandom(1,6); ?% }5 [4 J5 Z- W0 D
itemElem.m_nResistAbilityOption=10;5 I# r% {' p1 B& n, a% `, b! ~
}; U8 B; B& P2 v
+ ^, R- i" K% y u8 _3 _& S就是上面这句。+ |) N- u1 l# E+ L# E
+ O9 I- a$ q2 z# c" {: S* ]/ x至于加在哪里,不用我说了吧,就在创建物品之前就行了。" a! R% f+ T& I; C
5 @3 W( V) b( k
! @9 s( X( ?& I3 |: L( G# E
( Q$ N# s- N4 Q* ] 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
8 b- h/ D; A( I" c- {3 R0 p: A0 u( r# J1 d4 M; L$ i
3 B6 e( B) [9 ~- X& z+ _( b
; p1 |6 r5 F/ Z' j/ A& Q7 h, I3 Y6 W/ t* u
8 D$ X: n) y5 N, v
活动给物品的话那就模仿这里面的创建物品的句子写就行了。
6 h7 q- m' G1 p
. z7 u; a( p" Q" V& q以上写法已经通过验证。不成功自己找原因了。# U M1 G6 a X% w
0 l" V3 ]7 l8 K/ m
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
9 f! b9 e5 M9 S& K9 D; c# r# g% M) ^; |& _5 t
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )
, n" Q0 ?! F) F$ h H Y
6 B; p3 W/ e- @4 B 在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
3 X! V y7 ?4 @2 [% t6 L4 m
1 i6 O# I; X* Q从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -
! H; T. {# K2 M. M3 \/ t0 c1 _
1 W0 r, q/ |4 U$ [
6 l; ~1 J; y# [1 a! j& @. H |
|