|
老飞的完美武器虽然我也经历过不过早忘了咋回事,应该是系统赠送的吧,现在星辰搞出的我也没玩过不知道咋产出的,既然有人说是开箱子,那咱就用箱子得到好了。! R3 |$ R/ |) u- I( c1 j
& ^& T2 k3 ~0 @3 e
首先是武器名称为红色,看我的另一篇文章有介绍,星辰是设置了完美武器这么个属性,就是U武、绿武、普通的那个分类,具体哪栏我忘了。可以自己设置,我出于测试就以dwItemRare==300 这个属性来判断好了。
8 F3 G% O7 T$ i3 B3 z2 x* b1 g: e1 y
然后是开箱子得到装备,在user.cpp下的函数。; l+ x, C3 [# o6 t) @. z
5 O) O, i, [: c2 T2 {. n! aDoUseGiftbox( CItemElem* pItemElem, DWORD dwItemId )//这个是开随机箱子
4 d M6 x6 \; o& b$ j! R! X8 k' }5 I0 a9 D" ^( o4 K# i L1 e
DoUsePackItem( CItemElem* pItemElem, PPACKITEMELEM pPackItemElem )//这个是开普通箱子
5 [$ f) M* D) g/ v) Y2 ~9 u6 U. K5 U5 f1 ~& d/ _2 n( O
在这两个函数体下加一个判断就行了
1 V) d8 V# V' w4 Z" n
# Y: E& A. v/ T7 G. s if(itemElem.GetProp()->dwItemRare==300)% t+ ^# i! o4 H6 T
{% ~! V9 Y% Z3 @# O
itemElem.m_bItemResist=(BYTE)xRandom(1,6);
1 h9 X* _: z. a8 ^7 D h# { itemElem.m_nResistAbilityOption=10;$ X! s- F$ }; l7 @/ Y
}% u9 h& f/ V8 @/ _3 n
# V) ?8 c) g- w! |- B6 n/ n0 r就是上面这句。6 X( g2 {# K' }& z# C+ v
! Z0 ~+ a; C6 Q* t6 N# @
至于加在哪里,不用我说了吧,就在创建物品之前就行了。7 A6 E5 i6 T' }! `: }0 u
x# C* U- w3 a# B& B
8 x9 x4 t4 |. \, ~; T0 v& d7 T* [- S3 @) {2 y' z
对了,现在的端一般都是加20才满的,如果不想让玩家还能继续加工,就在加工那写个判断了,如果为完美武器则提示,特殊装备无法加工然后返回即可。也可以直接让他属性定义成20,这样已经满了就不用再管了。: i6 e5 u& M# p$ |4 ?0 i
n6 S2 e4 I5 \8 K6 e
5 E4 p* e& S; t' k" C L
' [; s6 N: m$ B: g. N% p2 M
+ X; t6 h# A$ i* v3 h) ~: @
+ V7 K$ h( p* T0 w! c! q u活动给物品的话那就模仿这里面的创建物品的句子写就行了。. _* R" B: |2 k8 R( p8 F
2 K& h- d5 q2 I g0 S
以上写法已经通过验证。不成功自己找原因了。$ Y6 w! E, l, }+ k* T
! R [6 _6 O& l: S' X+ V/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
S; ]. F# }7 s, M8 n$ k+ S. T. [7 z4 Z' n
BOOL CMover::CreateItem( CItemBase* pItemBase, BYTE* pnId, short* pnNum, BYTE nCount )' s% `7 H$ P, x: q. l4 H1 P
2 y+ t- l8 f* F; a
在这个函数下修改的话,只要修改这一处,任何方式获得的都是完美武器= =
3 l: X' P: K0 { Y8 D& A3 U" t8 }- a8 e2 n
从B包拿出物品也会调用,所以不适合用在随机属性的物品上,这样可以随时换属性了- - }; I. j3 Y( Y* z! |. i
7 y: g8 N/ E- O* V9 A/ @! t" @+ ?+ ^
|
|