|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。
" h1 ~% D" f2 ?7 }1 h' B+ T2 n& \% U3 u
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。1 C" `6 E, S$ `9 {) K+ \
% M( K; J# B, S6 ?! [4 H然后是开箱子得到装备,在user.cpp下的函数。
0 `, O5 q1 X6 v+ K% R: E! X9 d' x8 _" n& [/ U1 K; _& \
DoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
( J( l9 ~; F6 T: q& r! Y
" G+ W: `7 J! |: V) G. O# BDoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
3 d( a+ M' g! c; \3 w1 {9 U0 w1 }
在这两个函数体下加一个判断就行了
$ N( a# e! Y$ d4 e6 U) k t$ ^+ W/ X6 Q
if(itemElem.GetProp()->dwItemRare==300)
" _/ P x3 e' B' e. a, f% i! f {
. e$ L; T3 s+ N: Q itemElem.m_bItemResist=(BYTE)xRandom(1,6);9 f; J3 ?# M" W. f a/ S% g
itemElem.m_nResistAbilityOption=10;
6 z: t8 A8 {* x% F }+ s* e- F2 }: g( l+ ~; g' D
/ q8 m! I9 Q# t9 ?! Z" _4 y$ S就是上面这句。$ S6 S. A' @: F0 V# g& J$ u
) L6 ^, o1 s: M$ }1 e7 x
至于加在哪里,不用我说了吧,就在创建物品之前就行了。- i/ Q5 z/ Z1 G5 ]+ a
+ H3 |" j: P5 I4 Q: M- \# v5 a
# ~9 ~6 @( Z8 m& D( H4 Y
8 ]. U: M" f& |& T) }: Z 对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。
" ]3 [ T8 U9 p7 O# Z. M9 ^* G# H/ [: j' A
# Z( Z3 z) T r* g
8 K: y8 N5 S6 J1 O# c {( t! M! Y' F/ b |/ n9 h
* X$ g. ~! X, u) s. q% H
活动给物品的话那就模仿这里面的创建物品的句子写就行了。
. a& f2 N; j% v
& |) y+ k% m+ c/ K以上写法已经通过验证。不成功自己找原因了。
" H1 ? u4 z5 b: b! S+ \ r; @1 W) W
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 4 {( P; D, m/ y0 E3 g" t
- X/ j% S; g! W0 @9 N- p: n
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )) J5 o8 C7 q5 b' j
, {) \6 }( |: Z* p
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
, T4 _3 O: o! @7 B% ?8 R
- H/ p0 J! e9 f9 l" c, R2 M从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- -: F( e; b# A/ s" C
1 Y x4 n$ [# a. K1 A, t) X, q
9 ^" V! D6 f9 C4 F
|
|